Hi Steve, 

I'm happy too with the result, but..
I did the test with the patch that Michael sent (with and without)
disabling the function ssb_pcicore_dev_irqvecs_enable following the
e-mails, without the same result. (Kernel 2.6.25.9-wl500gpv2). 

Steve can you verify the modifications of the test, please, I want to
reproduce the result.

} //else
//ssb_pcicore_dev_irqvecs_enable(&sdev->bus->pcicore, sdev);

Thanks,
Fmay
On Fri, 2008-07-04 at 20:33 -0400, Steve Brown wrote:
> Forgot the cc's. And to close the thread.
> 
> Michael Buesch wrote:
> > On Friday 04 July 2008 21:39:46 Steve Brown wrote:
> >   
> >> Michael Buesch wrote:
> >>     
> >>> On Tuesday 01 July 2008 21:50:43 Steve Brown wrote:
> >>>   
> >>>       
> >>>> It looks like (almost) every other phy register doesn't respond. I put 
> >>>> in a large (200us) delay between accesses with no change in behaviour. 
> >>>> If it is timing, it must be on the pci bus side of the core.
> >>>>     
> >>>>         
> >>> Ah this is a minipci card?
> >>> Can you try to play with the PCI bus timings that are initialised in
> >>> the PCI-core driver of SSB? See the function that initialises the
> >>> PCI-core in hostmode.
> >>>
> >>>   
> >>>       
> >> The problem is actually in b44. The ssb_pcicore_dev_irqvecs_enable call 
> >> in b44_chip_enable at b44.c:1281 is the cause of the problem. It gets 
> >> called unconditionally, even if the b44 is not on the pci. With it 
> >> commented out, b43 loads, loads firmware and returns scan results.
> >>
> >> It crept in sometime after 2.6.23.1. I'm not familiar with b44 and can't 
> >> offer a fix.
> >>
> >> I still don't understand how this caused the bus errors. Anybody got an 
> >> explanation?
> >>     
> >
> > So do you have a PCI bus on the system? Is the wireless connected via
> > minipci?
> >
> >
> >   
> 
> Yeah well. Probably a silicon glitch. We're not supposed
> to change the IRQ routing of the PCI core on the board, as the
> IRQs on the board are routed through the Mips core.
> 
> Can you try the following patch?
> Please try ethernet and wireless. For wireless it's probably OK
> to try loading the driver. But I'd prefer if you try to scan the
> channels. That would probably be enough to make sure it works correctly.
> 
> I'll immediately submit this for inclusion in mainline, if you report 
> success.
> Thanks for testing.
> 
> 
> Index: wireless-testing/drivers/ssb/driver_pcicore.c
> ===================================================================
> --- wireless-testing.orig/drivers/ssb/driver_pcicore.c    2008-06-10 
> 13:58:23.000000000 +0200
> +++ wireless-testing/drivers/ssb/driver_pcicore.c    2008-07-04 
> 23:16:02.000000000 +0200
> @@ -537,6 +537,13 @@ int ssb_pcicore_dev_irqvecs_enable(struc
>      int err = 0;
>      u32 tmp;
>  
> +    if (dev->bus->bustype != SSB_BUSTYPE_PCI) {
> +        /* This SSB device is not on a PCI host-bus. So the IRQs are
> +         * not routed through the PCI core.
> +         * So we must not enable routing through the PCI core. */
> +        goto out;
> +    }
> +
>      if (!pdev)
>          goto out;
>      bus = pdev->bus;
> 
> ----------------------------
>   The bug is fixed!
> 
> The b43 driver now loads, loads firmware and returns scan results.
> 
> Thanks,
> 
> Steve
> 
> _______________________________________________
> openwrt-devel mailing list
> openwrt-devel@lists.openwrt.org
> http://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel

_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
http://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel

Reply via email to