Re: [PATCH] pci: Workaround Stratus broken PCIE hierarchy

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Nov 15, 2011 at 9:08 AM, Rolf Eike Beer <eike-kernel@xxxxxxxxx> wrote:
>> Trying [v2]....
>>
>>
>> pci: Workaround Stratus broken PCIE hierarchy
>>
>> Stratus systems have a hierarchy that includes a PCIE Downstream bridge
>> connected to a PCIE Upstream bridge and a PCI Downstream bridge.  The
>> system
>> boots with this wrong hierarchy into a crippled mode (USB doesn't work,
>> network doesn't work ...).  Avoiding the Downstream bridge check in
>> only_one_child() causes all the bridges to be enumerated and the system
>> to function properly.
>>
>> Unfortunately this hardware is currently available so we should at least
>> keep it functional.
>>
>> [v2]
>> - ddutile@xxxxxxxxxx requested drivers/pci/quirks.c code
>> - matthew@xxxxxxx requested that dmi_name_in_vendors() be called only once
>> with a static var check
>> - added a kernel parameter to enable scanning of all PCIE devices.
>>
>> Signed-off-by: Prarit Bhargava <prarit@xxxxxxxxxx>
>>
>> diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
>> index 6f45a73..f478bd5 100644
>> --- a/drivers/pci/pci.c
>> +++ b/drivers/pci/pci.c
>> @@ -3589,6 +3589,9 @@ static int __init pci_setup(char *str)
>>                               pcie_bus_config = PCIE_BUS_PERFORMANCE;
>>                       } else if (!strncmp(str, "pcie_bus_peer2peer", 18)) {
>>                               pcie_bus_config = PCIE_BUS_PEER2PEER;
>> +                     } else if (!strncmp(str, "pcie_scan_all", 13)) {
>> +                             printk(KERN_ERR HW_ERR "PCIE: Scanning all devices.\n");
>> +                             pcie_scan_all = 1;
>>                       } else {
>>                               printk(KERN_ERR "PCI: Unknown option `%s'\n",
>>                                               str);
>
> To scan all devices isn't an error, is it? The user has requested this, so
> KERN_INFO should be enough.
>
> Eike

Is this problem a regression?  If so, what commit caused it?
f07852d6442, which introduced only_one_child()?

Does Windows work on this system?

Is this something that could be fixed by a firmware upgrade?  If so,
is there a Stratus/NEC bug report?

Is there a Red Hat bugzilla URL you could include?

What bad things would happen if we just turned on this
Stratus-specific behavior all the time on all systems?  It looks like
f07852d6442 is basically an optimization that makes pci_scan_slot()
faster, so I assume one effect would be to slow down PCI enumeration
for everybody.  By how much?

Bjorn
--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux