Thanks, Larry.  Your 2.6.19.1 patch is the first thing that has
allowed Linux to register my card as a wlan.  I will patiently wait
for the support to develop if it does, but for now at the very least I
can use it.

-Chuckk


On 1/12/07, Larry Finger <[EMAIL PROTECTED]> wrote:
> The PCI-E modifications to bcm43xx do not set up the interrupt vector
> correctly. Tested with BCM4311 (PCI-E) on x86_64 and BCM4306 (PCI) on i386.
>
> Signed-off-by: Larry Finger <[EMAIL PROTECTED]>
> ---
>
> John,
>
> This fix should be applied to wireless-2.6 _AND_ pushed upstream to
> 2.6.20-rcX. Without this patch, none of the PCI-E interfaces will work.
> This version incorporates Michael Buesch's comments, and forgoes some
> code clean-ups that were in the first version/
>
> Larry
>
>
> Index: linux-2.6/drivers/net/wireless/bcm43xx/bcm43xx_main.c
> ===================================================================
> --- linux-2.6.orig/drivers/net/wireless/bcm43xx/bcm43xx_main.c
> +++ linux-2.6/drivers/net/wireless/bcm43xx/bcm43xx_main.c
> @@ -2704,8 +2704,8 @@ static int bcm43xx_probe_cores(struct bc
>                 sb_id_hi = bcm43xx_read32(bcm, BCM43xx_CIR_SB_ID_HI);
>
>                 /* extract core_id, core_rev, core_vendor */
> -               core_id = (sb_id_hi & 0xFFF0) >> 4;
> -               core_rev = (sb_id_hi & 0xF);
> +               core_id = (sb_id_hi & 0x8FF0) >> 4;
> +               core_rev = ((sb_id_hi & 0xF) | ((sb_id_hi & 0x7000) >> 8));
>                 core_vendor = (sb_id_hi & 0xFFFF0000) >> 16;
>
>                 dprintk(KERN_INFO PFX "Core %d: ID 0x%x, rev 0x%x, vendor 
> 0x%x\n",
> @@ -2876,7 +2876,10 @@ static int bcm43xx_wireless_core_init(st
>                 sbimconfiglow = bcm43xx_read32(bcm, 
> BCM43xx_CIR_SBIMCONFIGLOW);
>                 sbimconfiglow &= ~ BCM43xx_SBIMCONFIGLOW_REQUEST_TOUT_MASK;
>                 sbimconfiglow &= ~ BCM43xx_SBIMCONFIGLOW_SERVICE_TOUT_MASK;
> -               sbimconfiglow |= 0x32;
> +               if (bcm->bustype == BCM43xx_BUSTYPE_PCI)
> +                       sbimconfiglow |= 0x32;
> +               else
> +                       sbimconfiglow |= 0x53;
>                 bcm43xx_write32(bcm, BCM43xx_CIR_SBIMCONFIGLOW, 
> sbimconfiglow);
>         }
>
> @@ -3080,7 +3083,7 @@ static int bcm43xx_setup_backplane_pci_c
>         if (err)
>                 goto out;
>
> -       if (bcm->current_core->rev < 6 ||
> +       if (bcm->current_core->rev < 6 &&
>                 bcm->current_core->id == BCM43xx_COREID_PCI) {
>                 value = bcm43xx_read32(bcm, BCM43xx_CIR_SBINTVEC);
>                 value |= (1 << backplane_flag_nr);
>
> ---
> _______________________________________________
> Bcm43xx-dev mailing list
> [email protected]
> https://lists.berlios.de/mailman/listinfo/bcm43xx-dev
>


-- 
"Far and away the best prize that life has to offer is the chance to
work hard at work worth doing."
-Theodore Roosevelt
_______________________________________________
Bcm43xx-dev mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev

Reply via email to