[PATCH v3 3/5] PCI: st: Provide support for the sti PCIe controller

Bjorn Helgaas bhelgaas at google.com
Wed May 6 06:29:14 PDT 2015

On Wed, May 6, 2015 at 4:14 AM, Gabriel Fernandez
<gabriel.fernandez at linaro.org> wrote:
> Hi Bjorn,
> On 6 May 2015 at 00:16, Bjorn Helgaas <bhelgaas at google.com> wrote:
>> On Fri, Apr 10, 2015 at 11:12:46AM +0200, Gabriel FERNANDEZ wrote:
>>> sti pcie is built around a Synopsis Designware PCIe IP.
>>> Signed-off-by: Fabrice Gasnier <fabrice.gasnier at st.com>
>>> Signed-off-by: Gabriel Fernandez <gabriel.fernandez at linaro.org>
>>> +/* ST PCIe driver does not allow module unload */
>> Is there something that prevents module unload, or is it just untested?
> Yes we haven't tested
>>> +static int __init pcie_init(void)
>>> +{
>>> +     return platform_driver_probe(&st_pcie_driver, st_pcie_probe);
>>> +}
>>> +device_initcall(pcie_init);
>> Can you use module_platform_driver_probe() or module_init() here?
> Yes we can use module_init() here.
> By the way if figure out i removed __init attribute on st_pcie_probe()
> in previous version to follow Arnd's remark.
> But st_pcie_probe calls hook_fault_code() that has __init attribute.
> So I think we need to keep __init for probe routine ?
> Also, we have to restrict bind/unbind with "suppress_bind_attrs" in
> platform_driver structure.
> This is the main reason to not allow module unload/reload.

I don't really care which solution you end up with here.  But please
do take a look at how the other drivers solve the same problem.  Using
"device_initcall()" is unique in drivers/pci/host, and I don't believe
the problem is unique.  If several drivers have the same issue, they
should solve it the same way.

> If you are ok i will send a v4 ?

I think I'll have a few questions about the designware changes, too,
so you might want to wait a day or two.

>>> +MODULE_AUTHOR("Fabrice Gasnier <fabrice.gasnier at st.com>");
>>> +MODULE_DESCRIPTION("PCI express Driver for ST SoCs");
>>> --
>>> 1.9.1

More information about the linux-arm-kernel mailing list