Subject: Re: [RFC PATCH] PCI-E broken on PPC (regression)

From: Kenji Kaneshige <[email-masked]>
Date: Tue, 26 Jan 2010 13:36:44 +0900

Jesse Barnes wrote:
> On Mon, 25 Jan 2010 12:38:49 -0800
> Jesse Barnes <[email-masked]> wrote:
> 
>> On Mon, 25 Jan 2010 11:42:29 -0200
>> Breno Leitao <[email-masked]> wrote:
>>
>>> Hello, 
>>>
>>> I found that qlge is broken on PPC, and it got broken after commit 
>>> 06a1cbafb253c4c60d6a54a994887f5fbceabcc0. It happens because
>>> dev->pcie is not set on PPC, because the function
>>> set_pcie_port_type(), who sets dev->pcie, is not being called on PPC
>>> PCI code.
>> You mean dev->is_pcie?
>>
>> Why isn't pci_scan_device calling pci_setup_device for you?  That
>> should do the proper PCIe init depending on the device, along with
>> extracting other device info...
> 
> Cc'ing Ben for PPC.  Ben, should PPC use pci_scan_device when probing
> its root busses?  Sounds like it just uses pci_device_add for each one
> it finds instead?
> 
> If you don't actually need scanning (though what about hotplug?) we can
> move the call to device_add instead...
> 

As I mentioned in the other e-mail, I think the set_pcie_port_type() needs
to be called before pci_fixup_device() call in the pci_setup_device()
because some fixup handler might refer the dev->is_pcie, dev->pcie_cap,
or dev->pcie_type.

Thanks,
Kenji Kaneshige