2011-07-26 22:52:37

by Pavel Roskin

[permalink] [raw]
Subject: [PATCH 1/3] pcmcia: add PCMCIA_DEVICE_MANF_CARD_PROD_ID3

This is needed to match wireless cards with Intersil firmware that have
ID 0x0156:0x0002 and the third ID "Version 01.02". Such cards are
currently matched by orinoco_cs, which doesn't support WPA. They should
be matched by hostap_cs.

The first and the second product ID vary widely, so there are few users
with some particular IDs. Of those, very few can submit a patch for
hostap_cs or write a useful bugreport. It's still important to support
their hardware properly.

With PCMCIA_DEVICE_MANF_CARD_PROD_ID3, it should be possible to cover
the remaining Intersil based designs that kept the numeric ID and the
"version" of the reference design.

Signed-off-by: Pavel Roskin <[email protected]>
---
include/pcmcia/device_id.h | 9 +++++++++
1 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/include/pcmcia/device_id.h b/include/pcmcia/device_id.h
index 63e5b8f..00dbfac 100644
--- a/include/pcmcia/device_id.h
+++ b/include/pcmcia/device_id.h
@@ -95,6 +95,15 @@
.prod_id = { (v1), NULL, NULL, NULL }, \
.prod_id_hash = { (vh1), 0, 0, 0 }, }

+#define PCMCIA_DEVICE_MANF_CARD_PROD_ID3(manf, card, v3, vh3) { \
+ .match_flags = PCMCIA_DEV_ID_MATCH_MANF_ID| \
+ PCMCIA_DEV_ID_MATCH_CARD_ID| \
+ PCMCIA_DEV_ID_MATCH_PROD_ID3, \
+ .manf_id = (manf), \
+ .card_id = (card), \
+ .prod_id = { NULL, NULL, (v3), NULL }, \
+ .prod_id_hash = { 0, 0, (vh3), 0 }, }
+

/* multi-function devices */



2011-07-29 18:27:44

by Pavel Roskin

[permalink] [raw]
Subject: Re: [PATCH 1/3] pcmcia: add PCMCIA_DEVICE_MANF_CARD_PROD_ID3

On 07/29/2011 12:00 PM, Dominik Brodowski wrote:
> Applied all three patches to -pcmcia.

Thank you!

--
Regards,
Pavel Roskin

2011-07-26 22:52:43

by Pavel Roskin

[permalink] [raw]
Subject: [PATCH 2/3] hostap_cs: support cards with "Version 01.02" as third product ID

Cards with numeric ID 0x0156:0x0002 and third ID "Version 01.02" can be
assumed to have Intersil firmware. Cards with Agere firmware use
"Version 01.01".

Signed-off-by: Pavel Roskin <[email protected]>
---
drivers/net/wireless/hostap/hostap_cs.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/drivers/net/wireless/hostap/hostap_cs.c b/drivers/net/wireless/hostap/hostap_cs.c
index c052a0d..5441ad1 100644
--- a/drivers/net/wireless/hostap/hostap_cs.c
+++ b/drivers/net/wireless/hostap/hostap_cs.c
@@ -648,6 +648,8 @@ static const struct pcmcia_device_id hostap_cs_ids[] = {
0x74c5e40d),
PCMCIA_DEVICE_MANF_CARD_PROD_ID1(0x0156, 0x0002, "Intersil",
0x4b801a17),
+ PCMCIA_DEVICE_MANF_CARD_PROD_ID3(0x0156, 0x0002, "Version 01.02",
+ 0x4b74baa0),
PCMCIA_MFC_DEVICE_PROD_ID12(0, "SanDisk", "ConnectPlus",
0x7a954bd9, 0x74be00c6),
PCMCIA_DEVICE_PROD_ID123(

2011-07-29 18:18:47

by Dominik Brodowski

[permalink] [raw]
Subject: Re: [PATCH 1/3] pcmcia: add PCMCIA_DEVICE_MANF_CARD_PROD_ID3

Applied all three patches to -pcmcia.

Thanks,
Dominik

On Tue, Jul 26, 2011 at 06:52:35PM -0400, Pavel Roskin wrote:
> This is needed to match wireless cards with Intersil firmware that have
> ID 0x0156:0x0002 and the third ID "Version 01.02". Such cards are
> currently matched by orinoco_cs, which doesn't support WPA. They should
> be matched by hostap_cs.
>
> The first and the second product ID vary widely, so there are few users
> with some particular IDs. Of those, very few can submit a patch for
> hostap_cs or write a useful bugreport. It's still important to support
> their hardware properly.
>
> With PCMCIA_DEVICE_MANF_CARD_PROD_ID3, it should be possible to cover
> the remaining Intersil based designs that kept the numeric ID and the
> "version" of the reference design.
>
> Signed-off-by: Pavel Roskin <[email protected]>
> ---
> include/pcmcia/device_id.h | 9 +++++++++
> 1 files changed, 9 insertions(+), 0 deletions(-)
>
> diff --git a/include/pcmcia/device_id.h b/include/pcmcia/device_id.h
> index 63e5b8f..00dbfac 100644
> --- a/include/pcmcia/device_id.h
> +++ b/include/pcmcia/device_id.h
> @@ -95,6 +95,15 @@
> .prod_id = { (v1), NULL, NULL, NULL }, \
> .prod_id_hash = { (vh1), 0, 0, 0 }, }
>
> +#define PCMCIA_DEVICE_MANF_CARD_PROD_ID3(manf, card, v3, vh3) { \
> + .match_flags = PCMCIA_DEV_ID_MATCH_MANF_ID| \
> + PCMCIA_DEV_ID_MATCH_CARD_ID| \
> + PCMCIA_DEV_ID_MATCH_PROD_ID3, \
> + .manf_id = (manf), \
> + .card_id = (card), \
> + .prod_id = { NULL, NULL, (v3), NULL }, \
> + .prod_id_hash = { 0, 0, (vh3), 0 }, }
> +
>
> /* multi-function devices */
>
>
> _______________________________________________
> Linux PCMCIA reimplementation list
> http://lists.infradead.org/mailman/listinfo/linux-pcmcia

2011-07-26 22:52:49

by Pavel Roskin

[permalink] [raw]
Subject: [PATCH 3/3] orinoco_cs: be more careful when matching cards with ID 0x0156:0x0002

Without CONFIG_HERMES_PRISM, only match cards that have "Version 01.01"
as the third product ID. Those have Agere firmware.

With CONFIG_HERMES_PRISM, match all 0x0156:0x0002 cards.

Signed-off-by: Pavel Roskin <[email protected]>
---
drivers/net/wireless/orinoco/orinoco_cs.c | 5 ++++-
1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/drivers/net/wireless/orinoco/orinoco_cs.c b/drivers/net/wireless/orinoco/orinoco_cs.c
index 3f7fc4a..d7dbc00 100644
--- a/drivers/net/wireless/orinoco/orinoco_cs.c
+++ b/drivers/net/wireless/orinoco/orinoco_cs.c
@@ -239,7 +239,6 @@ static int orinoco_cs_resume(struct pcmcia_device *link)

static const struct pcmcia_device_id orinoco_cs_ids[] = {
PCMCIA_DEVICE_MANF_CARD(0x0101, 0x0777), /* 3Com AirConnect PCI 777A */
- PCMCIA_DEVICE_MANF_CARD(0x0156, 0x0002), /* Lucent Orinoco and old Intersil */
PCMCIA_DEVICE_MANF_CARD(0x016b, 0x0001), /* Ericsson WLAN Card C11 */
PCMCIA_DEVICE_MANF_CARD(0x01eb, 0x080a), /* Nortel Networks eMobility 802.11 Wireless Adapter */
PCMCIA_DEVICE_MANF_CARD(0x0261, 0x0002), /* AirWay 802.11 Adapter (PCMCIA) */
@@ -272,6 +271,7 @@ static const struct pcmcia_device_id orinoco_cs_ids[] = {
PCMCIA_DEVICE_PROD_ID12("PROXIM", "LAN PCI CARD HARMONY 80211B", 0xc6536a5e, 0x9f494e26),
PCMCIA_DEVICE_PROD_ID12("SAMSUNG", "11Mbps WLAN Card", 0x43d74cb4, 0x579bd91b),
PCMCIA_DEVICE_PROD_ID12("Symbol Technologies", "LA4111 Spectrum24 Wireless LAN PC Card", 0x3f02b4d6, 0x3663cb0e),
+ PCMCIA_DEVICE_MANF_CARD_PROD_ID3(0x0156, 0x0002, "Version 01.01", 0xd27deb1a), /* Lucent Orinoco */
#ifdef CONFIG_HERMES_PRISM
/* Only entries that certainly identify Prism chipset */
PCMCIA_DEVICE_MANF_CARD(0x000b, 0x7100), /* SonicWALL Long Range Wireless Card */
@@ -321,6 +321,9 @@ static const struct pcmcia_device_id orinoco_cs_ids[] = {
PCMCIA_DEVICE_PROD_ID3("ISL37100P", 0x630d52b2),
PCMCIA_DEVICE_PROD_ID3("ISL37101P-10", 0xdd97a26b),
PCMCIA_DEVICE_PROD_ID3("ISL37300P", 0xc9049a39),
+
+ /* This may be Agere or Intersil Firmware */
+ PCMCIA_DEVICE_MANF_CARD(0x0156, 0x0002),
#endif
PCMCIA_DEVICE_NULL,
};