On Fri, Apr 18, 2008 at 8:30 PM, Larry Finger <[EMAIL PROTECTED]>
wrote:

> What is happening on the bcm43xx mailing list? I keep getting the mail
> way out of order. It certainly makes following a thread difficult.
>

Sorry for that, it's most likely because I often forgot to CC the list when
I answer a message coming from it. Gmail defaults to sending the answer
directly to the sender, rather than the mailing list.

>
> In any case, the following patch makes my ASUS-138G work.
>
> Index: wireless-testing/drivers/net/wireless/b43/main.c
> ===================================================================
> --- wireless-testing.orig/drivers/net/wireless/b43/main.c
> +++ wireless-testing/drivers/net/wireless/b43/main.c
> @@ -4413,6 +4413,9 @@ static void b43_sprom_fixup(struct ssb_b
>        if (bus->boardinfo.vendor == SSB_BOARDVENDOR_DELL &&
>            bus->chip_id == 0x4301 && bus->boardinfo.rev == 0x74)
>                bus->sprom.boardflags_lo |= B43_BFL_BTCOEXIST;
> +       if (bus->boardinfo.vendor == SSB_BOARDVENDOR_ASUS &&
> +           bus->chip_id == 0x4318 && bus->boardinfo.rev == 0x02)
> +               bus->sprom.boardflags_lo |= B43_BFL_BTCMOD;


That's wrong. You shouldn't force BTCMOD to be always 1, you should force
BTCOEXIST to be always 0.


>
>        if (bus->boardinfo.vendor == PCI_VENDOR_ID_APPLE &&
>            bus->boardinfo.type == 0x4E && bus->boardinfo.rev > 0x40)
>                bus->sprom.boardflags_lo |= B43_BFL_PACTRL;
> Index: wireless-testing/include/linux/ssb/ssb.h
> ===================================================================
> --- wireless-testing.orig/include/linux/ssb/ssb.h
> +++ wireless-testing/include/linux/ssb/ssb.h
> @@ -212,6 +212,7 @@ enum ssb_bustype {
>  #define SSB_BOARDVENDOR_BCM    0x14E4  /* Broadcom */
>  #define SSB_BOARDVENDOR_DELL   0x1028  /* Dell */
>  #define SSB_BOARDVENDOR_HP     0x0E11  /* HP */
> +#define SSB_BOARDVENDOR_ASUS   0x1043  /* AsusTek */
>  /* board_type */
>  #define SSB_BOARD_BCM94306MP   0x0418
>  #define SSB_BOARD_BCM4309G     0x0421
>
> The value for boardinfo.rev is a bit troubling. The SPROM dump shows 0x42,
> but test printk's show it to be 0x02 at this point.
>
> Larry
>
>
>
> Index: wireless-testing/drivers/net/wireless/b43/main.c
> ===================================================================
> --- wireless-testing.orig/drivers/net/wireless/b43/main.c
> +++ wireless-testing/drivers/net/wireless/b43/main.c
> @@ -4413,6 +4413,9 @@ static void b43_sprom_fixup(struct ssb_b
>        if (bus->boardinfo.vendor == SSB_BOARDVENDOR_DELL &&
>            bus->chip_id == 0x4301 && bus->boardinfo.rev == 0x74)
>                bus->sprom.boardflags_lo |= B43_BFL_BTCOEXIST;
> +       if (bus->boardinfo.vendor == SSB_BOARDVENDOR_ASUS &&
> +           bus->chip_id == 0x4318 && bus->boardinfo.rev == 0x2)
> +               bus->sprom.boardflags_lo |= B43_BFL_BTCMOD;


Again, disable BTCOEXIST altogether, as this card doesn't have a Bluetooth
chip at all.

>
>        if (bus->boardinfo.vendor == PCI_VENDOR_ID_APPLE &&
>            bus->boardinfo.type == 0x4E && bus->boardinfo.rev > 0x40)
>                bus->sprom.boardflags_lo |= B43_BFL_PACTRL;
> Index: wireless-testing/include/linux/ssb/ssb.h
> ===================================================================
> --- wireless-testing.orig/include/linux/ssb/ssb.h
> +++ wireless-testing/include/linux/ssb/ssb.h
> @@ -212,6 +212,7 @@ enum ssb_bustype {
>  #define SSB_BOARDVENDOR_BCM    0x14E4  /* Broadcom */
>  #define SSB_BOARDVENDOR_DELL   0x1028  /* Dell */
>  #define SSB_BOARDVENDOR_HP     0x0E11  /* HP */
> +#define SSB_BOARDVENDOR_ASUS   0x1043  /* AsusTek */
>  /* board_type */
>  #define SSB_BOARD_BCM94306MP   0x0418
>  #define SSB_BOARD_BCM4309G     0x0421
>
>
>


-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
_______________________________________________
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev

Reply via email to