diff mbox series

[1/1] marvell: irqchip: pic: change driver initcall to arch

Message ID 20201222122151.4549-1-kostap@marvell.com (mailing list archive)
State New, archived
Headers show
Series [1/1] marvell: irqchip: pic: change driver initcall to arch | expand

Commit Message

Kostya Porotchkin Dec. 22, 2020, 12:21 p.m. UTC
From: Stefan Chulski <stefanc@marvell.com>

Patch solves the PMU driver probe error.
PMU driver depends on irqchip pic driver, so it should probe
after irqchip pic driver.
Initcall order changed from device to arch.

Signed-off-by: Stefan Chulski <stefanc@marvell.com>
Signed-off-by: Konstantin Porotchkin <kostap@marvell.com>
---
 drivers/irqchip/irq-mvebu-pic.c | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

Comments

Marc Zyngier Dec. 22, 2020, 1:12 p.m. UTC | #1
On 2020-12-22 12:21, kostap@marvell.com wrote:
> From: Stefan Chulski <stefanc@marvell.com>
> 
> Patch solves the PMU driver probe error.
> PMU driver depends on irqchip pic driver, so it should probe
> after irqchip pic driver.
> Initcall order changed from device to arch.
> 
> Signed-off-by: Stefan Chulski <stefanc@marvell.com>
> Signed-off-by: Konstantin Porotchkin <kostap@marvell.com>
> ---
>  drivers/irqchip/irq-mvebu-pic.c | 14 +++++++++++++-
>  1 file changed, 13 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/irqchip/irq-mvebu-pic.c 
> b/drivers/irqchip/irq-mvebu-pic.c
> index eec63951129a..eca1a6edf49c 100644
> --- a/drivers/irqchip/irq-mvebu-pic.c
> +++ b/drivers/irqchip/irq-mvebu-pic.c
> @@ -188,7 +188,19 @@ static struct platform_driver mvebu_pic_driver = {
>  		.of_match_table = mvebu_pic_of_match,
>  	},
>  };
> -module_platform_driver(mvebu_pic_driver);
> +
> +static int __init mvebu_pic_driver_init(void)
> +{
> +	return platform_driver_register(&mvebu_pic_driver);
> +}
> +
> +static void __exit mvebu_pic_driver_exit(void)
> +{
> +	return platform_driver_unregister(&mvebu_pic_driver);
> +}
> +
> +arch_initcall(mvebu_pic_driver_init)
> +module_exit(mvebu_pic_driver_exit)
> 
>  MODULE_AUTHOR("Yehuda Yitschak <yehuday@marvell.com>");
>  MODULE_AUTHOR("Thomas Petazzoni 
> <thomas.petazzoni@free-electrons.com>");

You are trading an implicit dependency for another one,
so this patch isn't acceptable, as it is just as likely to
break as the current situation.

Furthermore, at least on the system I lying around (8040), the PMU
driver is perfectly able to defer its probing until the interrupt
becomes available, so I have no idea what problem you are trying
to solve.

         M.
diff mbox series

Patch

diff --git a/drivers/irqchip/irq-mvebu-pic.c b/drivers/irqchip/irq-mvebu-pic.c
index eec63951129a..eca1a6edf49c 100644
--- a/drivers/irqchip/irq-mvebu-pic.c
+++ b/drivers/irqchip/irq-mvebu-pic.c
@@ -188,7 +188,19 @@  static struct platform_driver mvebu_pic_driver = {
 		.of_match_table = mvebu_pic_of_match,
 	},
 };
-module_platform_driver(mvebu_pic_driver);
+
+static int __init mvebu_pic_driver_init(void)
+{
+	return platform_driver_register(&mvebu_pic_driver);
+}
+
+static void __exit mvebu_pic_driver_exit(void)
+{
+	return platform_driver_unregister(&mvebu_pic_driver);
+}
+
+arch_initcall(mvebu_pic_driver_init)
+module_exit(mvebu_pic_driver_exit)
 
 MODULE_AUTHOR("Yehuda Yitschak <yehuday@marvell.com>");
 MODULE_AUTHOR("Thomas Petazzoni <thomas.petazzoni@free-electrons.com>");