[PATCH 1/4] pci: fix device registration for directly attached devices

Sebastian Hesselbarth sebastian.hesselbarth at gmail.com
Fri Apr 10 01:24:02 PDT 2015


On 10.04.2015 09:15, Lucas Stach wrote:
> Am Freitag, den 10.04.2015, 03:01 +0200 schrieb Sebastian Hesselbarth:
>> Commit b8a1bb1dd215770670108fe5b0de0e5e137bf8fd
>>   ("pci: defer device registration until after bridge setup")
>> removed pci_register_device() from setup_device() to allow
>> bridges to be registered before attached sub-devices.
>>
>> This breaks normal registration for devices that are not
>> connected through a bridge. Fix this by calling pci_register_device()
>> for normal devices again.
>
>> Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth at gmail.com>
>
> NACK: This again breaks devices that are connected through a bridge if
> the bridge configuration is invalid at startup.
>
> There is already a patch on the list which should fix this problem "pci:
> make sure to activate devices on the root bus".
> Could you please test this instead?

Thanks for the hint, the patch on the list indeed fixes root bus
attached device registration. I've replied with a Tested-by.

Please drop this patch.

Sebastian

>> ---
>> Cc: barebox at lists.infradead.org
>> Cc: Lucas Stach <dev at lynxeye.de>
>> ---
>>   drivers/pci/pci.c | 1 +
>>   1 file changed, 1 insertion(+)
>>
>> diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
>> index d6e95c3ec894..c633d138ca66 100644
>> --- a/drivers/pci/pci.c
>> +++ b/drivers/pci/pci.c
>> @@ -344,6 +344,7 @@ unsigned int pci_scan_bus(struct pci_bus *bus)
>>   			dev->rom_address = (l == 0xffffffff) ? 0 : l;
>>
>>   			setup_device(dev, 6);
>> +			pci_register_device(dev);
>>   			break;
>>   		case PCI_HEADER_TYPE_BRIDGE:
>>   			setup_device(dev, 2);
>
>




More information about the barebox mailing list