Re: [PATCH V5 1/3] pci: Add PCIe driver for Samsung Exynos

From: Arnd Bergmann
Date: Wed Jun 19 2013 - 08:43:24 EST


On Wednesday 19 June 2013, Jingoo Han wrote:
> Then, do you mean the following?
>
> static int __exit exynos_pcie_remove(struct platform_device *pdev)
> {
> struct pcie_port *pp = platform_get_drvdata(pdev);
>
> clk_disable_unprepare(pp->bus_clk);
> clk_disable_unprepare(pp->clk);
>
> return 0;
> }
>
> static struct platform_driver exynos_pcie_driver = {
> .remove = __exit_p(exynos_pcie_remove),
>
> [.....]
>
> /* Exynos PCIe driver does not allow module unload */
>
> static int __init pcie_init(void)
> {
> hook_fault_code(16 + 6, exynos_pcie_abort, SIGBUS, 0,
> "imprecise external abort");
>
> platform_driver_probe(&exynos_pcie_driver, exynos_pcie_probe);
>
> return 0;
> }
> subsys_initcall(pcie_init);
>
> MODULE_AUTHOR("Jingoo Han <jg1.han@xxxxxxxxxxx>");
> MODULE_DESCRIPTION("Samsung PCIe host controller driver");
> MODULE_LICENSE("GPLv2");
>

Yes, this looks good. I would probably use platform_driver_register
rather than platform_driver_probe, but that is your choice. using
platform_driver_probe() mean you cannot deal with deferred probing.

Arnd
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/