The specifications call for the low 16 bits of the board flags to
be cleared if unset (== 0xFFFF). This step was taken in bcm43xx,
but was missed when ssb was coded. This omission prevents Linksys
WMP11 cards with a BCM4301 from working.

Signed-off-by: Larry Finger <[EMAIL PROTECTED]>
---

John,

This is 2.6.26 material.

Larry
---

Index: linux-2.6/drivers/ssb/pci.c
===================================================================
--- linux-2.6.orig/drivers/ssb/pci.c
+++ linux-2.6/drivers/ssb/pci.c
@@ -377,6 +377,8 @@ static void sprom_extract_r123(struct ss
             SSB_SPROM1_ITSSI_A_SHIFT);
        SPEX(itssi_bg, SSB_SPROM1_ITSSI, SSB_SPROM1_ITSSI_BG, 0);
        SPEX(boardflags_lo, SSB_SPROM1_BFLLO, 0xFFFF, 0);
+       if (out->boardflags_lo == 0xFFFF)
+               out->boardflags_lo = 0x0000;  /* per specs */
        if (out->revision >= 2)
                SPEX(boardflags_hi, SSB_SPROM2_BFLHI, 0xFFFF, 0);
 
_______________________________________________
Bcm43xx-dev mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev

Reply via email to