Felipe Maya wrote:
> 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.
>>>>
>>>>         
>>> So do you have a PCI bus on the system? Is the wireless connected via
>>> minipci?
>>>
>>>
>>>  
>>> I'll immediately submit this for inclusion in mainline, if you report 
>>> success.
>>> Thanks for testing.
>>>
>>>  you got
>>> 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
>>>       
I gather you still get a bus error after the patch. Can you post the oops?

The patch works for me. However, I'm using the wireless-testing tree, 
not the 2.6.25 tree. I moved to wireless-testing because I didn't want 
to end up tracking down a bug that had already been fixed. After you 
post the oops, I'll try to reproduce it with the 2.6.25 tree. Be sure to 
set KALLSYMS=y in your kernel config.

Steve

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

Reply via email to