[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bsd-nomads:16631] Re: corega FEther PCC-TXD on 5-current
From: Takeshi Shibagaki <ie9t-sbgk@asahi-net.or.jp>
Subject: [bsd-nomads:16629] Re: corega FEther PCC-TXD on 5-current
sanpei> pccard0: <unknown card> (manufacturer=0x1234, product=0x5678) at function 0
sanpei> pccard0: CIS info: corega K.K., corega FEther PCC-TXD,
thasegawa> ここで、manufacturer IDとproduct IDのマッチングに失敗してますから、
thasegawa> sys/dev/pccard/pccarddevsに
thasegawa> vendor COREGA2 0x1234 Corega K.K.
thasegawa> とか定義してつかってやればなんとかなるとおもいます。
> 確かに
>
> vendor COREGA2 0x1234
> product COREGA2 PCC_TXD 0x5678 corega FEther PCC-TXD
>
> などとすれば、認識はするとは思いますが、それがcommit出来る
> ものかというと別問題です。だいたい、
>
> 0x1234, 0x5678なんて非常に怪しげです。本質的には、
いわれれば、怪しげなんですが、CIS string は読めているようですし、
OLDCARD で、pccard dumpcis して、0x1234, 0x5678 が出てくるようなら、も
ともと、まともな値が書かれていないのではないでしょうか。
その場合、
vendor COREGA2 -1
product COREGA2 FETHER_PCC_TXD { "corega&spK.K.", "corega&spFEther&spPCC-TXD", NULL, NULL } Corega FEther PCC-TXD
として、string match に任せる方がいいと思います。
> pccard.c: pccard_do_product_lookup()
>
> を見て、何故matchしないかを追いかけてからというのが筋では
> ないかと思います。
一番ありそうなのは、
vendor COREGA 0xc00f
と、0x1234 が一致しないので、以下(pccard.c,v 1.72, 339行目付近)ではね
られている(PCCARD_VENDOR_ANY (= -1) で無い場合 string match のときも、
vendor ID のチェックをしている)と思います。
if (matches && ent->pp_vendor != PCCARD_VENDOR_ANY &&
vendor != ent->pp_vendor)
matches = 0;
// みつなが のりあき //