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
[email protected]
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev