|
|
|
Re: [PATCH] mtx-1: add udelay to mtx1_pci_idsel | |
| [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] | |
On Tue, Jul 24, 2012 at 5:13 PM, Bruno Randolf <br1@xxxxxxxxxxx> wrote:
> Hello? Any feedback?
>
> I know the description is not very good, but this patch is necessary for PCI
> to work on the Surfbox.
>
> Thanks,
> bruno
>
>
> On 07/12/2012 09:54 PM, Bruno Randolf wrote:
>>
>> Without this udelay(1) PCI idsel does not work correctly on the
>> "singleboard"
>> (T-Mobile Surfbox) for the MiniPCI device. The result is that PCI
>> configuration
>> fails and the MiniPCI card is not detected correctly. Instead of
>>
>> PCI host bridge to bus 0000:00
>> pci_bus 0000:00: root bus resource [mem 0x40000000-0x4fffffff]
>> pci_bus 0000:00: root bus resource [io 0x1000-0xffff]
>> pci 0000:00:03.0: BAR 0: assigned [mem 0x40000000-0x4000ffff]
>> pci 0000:00:00.0: BAR 0: assigned [mem 0x40010000-0x40010fff]
>> pci 0000:00:00.1: BAR 0: assigned [mem 0x40011000-0x40011fff]
>>
>> We see only the CardBus device:
>>
>> PCI host bridge to bus 0000:00
>> pci_bus 0000:00: root bus resource [mem 0x40000000-0x4fffffff]
>> pci_bus 0000:00: root bus resource [io 0x1000-0xffff]
>> pci 0000:00:00.0: BAR 0: assigned [mem 0x40000000-0x40000fff]
>> pci 0000:00:00.1: BAR 0: assigned [mem 0x40001000-0x40001fff]
>>
>> Later the device driver shows this error:
>>
>> ath5k 0000:00:03.0: cannot remap PCI memory region
>> ath5k: probe of 0000:00:03.0 failed with error -5
>>
>> I assume that the logic chip which usually supresses the signal to the
>> CardBus
>> card has some settling time and without the delay it would still let the
>> Cardbus interfere with the response from the MiniPCI card.
>>
>> What I cannot explain is why this behaviour shows up now and not in
>> earlier
>> kernel versions before. Maybe older PCI code was slower?
>>
>> Signed-off-by: Bruno Randolf <br1@xxxxxxxxxxx>
>> ---
>> arch/mips/alchemy/board-mtx1.c | 2 ++
>> 1 file changed, 2 insertions(+)
>>
>> diff --git a/arch/mips/alchemy/board-mtx1.c
>> b/arch/mips/alchemy/board-mtx1.c
>> index 295f1a9..e107a2f 100644
>> --- a/arch/mips/alchemy/board-mtx1.c
>> +++ b/arch/mips/alchemy/board-mtx1.c
>> @@ -228,6 +228,8 @@ static int mtx1_pci_idsel(unsigned int devsel, int
>> assert)
>> * adapter on the mtx-1 "singleboard" variant. It triggers a
>> custom
>> * logic chip connected to EXT_IO3 (GPIO1) to suppress IDSEL
>> signals.
>> */
>> + udelay(1);
>> +
>> if (assert && devsel != 0)
>> /* Suppress signal to Cardbus */
>> alchemy_gpio_set_value(1, 0); /* set EXT_IO3 OFF */
>>
Why don't you increase the delay value in the udelay() immediately following
this part?
Manuel
[Linux MIPS Home] [LKML Archive] [Linux ARM] [Linux] [Git] [Photo] [Yosemite News] [Linux SCSI] [Linux Hams]
![]() |
![]() |