diff mbox

[1/2] regulator: s2mps11: Use module_platform_driver() instead subsys initcall

Message ID 1459950587-8807-1-git-send-email-javier@osg.samsung.com (mailing list archive)
State Not Applicable, archived
Headers show

Commit Message

Javier Martinez Canillas April 6, 2016, 1:49 p.m. UTC
The driver's init and exit function don't do anything besides registering
and unregistering the platform driver, so the module_platform_driver()
macro could just be used instead of having separate functions.

Currently the macro is not being used because the driver is initialized at
subsys init call level but this isn't necessary since consumer devices are
defined in the DT as dependencies so there's no need for init calls order.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>

---
This patch was tested on an Exynos5422 Odroid XU4 board.

 drivers/regulator/s2mps11.c | 12 +-----------
 1 file changed, 1 insertion(+), 11 deletions(-)

Comments

Krzysztof Kozlowski April 7, 2016, 12:30 p.m. UTC | #1
On Wed, Apr 06, 2016 at 09:49:46AM -0400, Javier Martinez Canillas wrote:
> The driver's init and exit function don't do anything besides registering
> and unregistering the platform driver, so the module_platform_driver()
> macro could just be used instead of having separate functions.
> 
> Currently the macro is not being used because the driver is initialized at
> subsys init call level but this isn't necessary since consumer devices are
> defined in the DT as dependencies so there's no need for init calls order.
> 
> Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
> 
> ---
> This patch was tested on an Exynos5422 Odroid XU4 board.

This test might not be sufficient. XU4 is not a mobile device like many
other users of this driver (except Arndale Octa and Artiks all of other
users are mobiles/wearables).

For example XU4 does not have USB OTG (like other devices and like XU3).

Best regards,
Krzysztof

> 
>  drivers/regulator/s2mps11.c | 12 +-----------
>  1 file changed, 1 insertion(+), 11 deletions(-)
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Javier Martinez Canillas April 7, 2016, 6:16 p.m. UTC | #2
Hello Krzysztof,

On 04/07/2016 08:30 AM, Krzysztof Kozlowski wrote:
> On Wed, Apr 06, 2016 at 09:49:46AM -0400, Javier Martinez Canillas wrote:
>> The driver's init and exit function don't do anything besides registering
>> and unregistering the platform driver, so the module_platform_driver()
>> macro could just be used instead of having separate functions.
>>
>> Currently the macro is not being used because the driver is initialized at
>> subsys init call level but this isn't necessary since consumer devices are
>> defined in the DT as dependencies so there's no need for init calls order.
>>
>> Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
>>
>> ---
>> This patch was tested on an Exynos5422 Odroid XU4 board.
> 
> This test might not be sufficient. XU4 is not a mobile device like many
> other users of this driver (except Arndale Octa and Artiks all of other
> users are mobiles/wearables).
> 
> For example XU4 does not have USB OTG (like other devices and like XU3).
>

All the consumer device nodes for these regulators are defined in the
exynos5422-odroidxu3-common.dtsi that is shared by all the Odroid XU*
so I thought testing in the XU4 was as good as testing in the XU3
(since the USB OTG doesn't use a regulator from this PMIC).

I've also checked the DTS for all the boards that use regulators that
are registered by this driver and all consumer drivers supports probe
deferral so I think this change is safe.

Also, the driver Kconfig symbol is tristate already so the driver can be
built as module and the init func won't be executed at subsys init call.
 
> Best regards,
> Krzysztof
> 
>>
>>  drivers/regulator/s2mps11.c | 12 +-----------
>>  1 file changed, 1 insertion(+), 11 deletions(-)
>>

Best regards,
Krzysztof Kozlowski April 8, 2016, 3:55 a.m. UTC | #3
On Thu, Apr 07, 2016 at 02:16:29PM -0400, Javier Martinez Canillas wrote:
> Hello Krzysztof,
> 
> On 04/07/2016 08:30 AM, Krzysztof Kozlowski wrote:
> > On Wed, Apr 06, 2016 at 09:49:46AM -0400, Javier Martinez Canillas wrote:
> >> The driver's init and exit function don't do anything besides registering
> >> and unregistering the platform driver, so the module_platform_driver()
> >> macro could just be used instead of having separate functions.
> >>
> >> Currently the macro is not being used because the driver is initialized at
> >> subsys init call level but this isn't necessary since consumer devices are
> >> defined in the DT as dependencies so there's no need for init calls order.
> >>
> >> Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
> >>
> >> ---
> >> This patch was tested on an Exynos5422 Odroid XU4 board.
> > 
> > This test might not be sufficient. XU4 is not a mobile device like many
> > other users of this driver (except Arndale Octa and Artiks all of other
> > users are mobiles/wearables).
> > 
> > For example XU4 does not have USB OTG (like other devices and like XU3).
> >
> 
> All the consumer device nodes for these regulators are defined in the
> exynos5422-odroidxu3-common.dtsi that is shared by all the Odroid XU*
> so I thought testing in the XU4 was as good as testing in the XU3
> (since the USB OTG doesn't use a regulator from this PMIC).
> 
> I've also checked the DTS for all the boards that use regulators that
> are registered by this driver and all consumer drivers supports probe
> deferral so I think this change is safe.

Ah, seems fine then! Thanks for checking.

Best regards,
Krzysztof
--
To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/regulator/s2mps11.c b/drivers/regulator/s2mps11.c
index 6dfa3502e1f1..64a262f10845 100644
--- a/drivers/regulator/s2mps11.c
+++ b/drivers/regulator/s2mps11.c
@@ -1237,17 +1237,7 @@  static struct platform_driver s2mps11_pmic_driver = {
 	.id_table = s2mps11_pmic_id,
 };
 
-static int __init s2mps11_pmic_init(void)
-{
-	return platform_driver_register(&s2mps11_pmic_driver);
-}
-subsys_initcall(s2mps11_pmic_init);
-
-static void __exit s2mps11_pmic_exit(void)
-{
-	platform_driver_unregister(&s2mps11_pmic_driver);
-}
-module_exit(s2mps11_pmic_exit);
+module_platform_driver(s2mps11_pmic_driver);
 
 /* Module information */
 MODULE_AUTHOR("Sangbeom Kim <sbkim73@samsung.com>");