[PATCH] Correct the CIS recognition problem of orinoco_plx underx86_64 Kernel 2.6.10-rc1-mm2

From: Guillaume BINET
Date: Sun Nov 21 2004 - 13:26:21 EST


---

This patch correct the orinoco_plx CIS magic number detection. This bug has been observed and corected under x84_64.

Output before the patch :
Nov 21 17:52:06 sal orinoco_plx: CIS: 4E01:F403:2300:B000:2DFF:D017:1404:5467:465
A:2F08:19FF:5D1D:4005:B701:2E67:A85A:
Nov 21 17:52:06 sal orinoco_plx: The CIS value of Prism2 PC card is invalid.
Nov 21 17:52:06 sal orinoco_plx: init_one(), FAIL!


Signed-off-by: Guillaume BINET <gbin-lkml@xxxxxxxxx>

---

diff -Naur linux-2.6.10-rc2-mm2/drivers/net/wireless/orinoco_plx.c linux-2.6.10-rc2-mm2-gb1/drivers/net/wireless/orinoco_plx.c
--- linux-2.6.10-rc2-mm2/drivers/net/wireless/orinoco_plx.c 2004-11-21 18:44:06.000000000 +0100
+++ linux-2.6.10-rc2-mm2-gb1/drivers/net/wireless/orinoco_plx.c 2004-11-21 18:38:34.000000000 +0100
@@ -175,15 +175,22 @@
if (!attr_mem)
goto out;

+
+ /* Verify whether PC card is present */
+ /* FIXME: we probably need to be smarted about this */
+ memcpy_fromio(magic, attr_mem, 16);
+
+ /* only lower bits seem significant */
+ for (i = 0; i < 8; i++) {
+ magic[i] = magic[i] & 0x00ff;
+ }
+
printk(KERN_DEBUG "orinoco_plx: CIS: ");
for (i = 0; i < 16; i++) {
- printk("%02X:", readw(attr_mem+i));
+ printk("%02X:", readw(magic+i));
}
printk("\n");

- /* Verify whether PC card is present */
- /* FIXME: we probably need to be smarted about this */
- memcpy_fromio(magic, attr_mem, 16);
if (memcmp(magic, cis_magic, 16) != 0) {
printk(KERN_ERR "orinoco_plx: The CIS value of Prism2 PC card is invalid.\n");
err = -EIO;

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/