diff mbox

[3/3] mfd: ipaq-micro: convert to builtin platform driver

Message ID 1437551743-20599-3-git-send-email-linus.walleij@linaro.org
State Accepted
Commit 035faf4bd2776237940c95d08bfe8928fe0a80e1
Headers show

Commit Message

Linus Walleij July 22, 2015, 7:55 a.m. UTC
Signal that this is a builting driver and call its probe function
immediately on init. Suppress binding attributes and delete the
.remove() function since it is never unloaded. Tag probe() and
functions only called from probe() with __init. Delete all module
macros since this is a pure builtin.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
 drivers/mfd/ipaq-micro.c | 27 ++++-----------------------
 1 file changed, 4 insertions(+), 23 deletions(-)

Comments

Lee Jones July 23, 2015, 3:42 p.m. UTC | #1
On Wed, 22 Jul 2015, Linus Walleij wrote:

> Signal that this is a builting driver and call its probe function
> immediately on init. Suppress binding attributes and delete the
> .remove() function since it is never unloaded. Tag probe() and
> functions only called from probe() with __init. Delete all module
> macros since this is a pure builtin.
> 
> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
> ---
>  drivers/mfd/ipaq-micro.c | 27 ++++-----------------------
>  1 file changed, 4 insertions(+), 23 deletions(-)

Fixed up the typo in the commit log and applied, thanks.

> diff --git a/drivers/mfd/ipaq-micro.c b/drivers/mfd/ipaq-micro.c
> index 9bfe2462c5c5..a41859c55bda 100644
> --- a/drivers/mfd/ipaq-micro.c
> +++ b/drivers/mfd/ipaq-micro.c
> @@ -242,7 +242,7 @@ static u16 ipaq_micro_to_u16(u8 *data)
>  	return data[1] << 8 | data[0];
>  }
>  
> -static void ipaq_micro_eeprom_dump(struct ipaq_micro *micro)
> +static void __init ipaq_micro_eeprom_dump(struct ipaq_micro *micro)
>  {
>  	u8 dump[256];
>  	char *str;
> @@ -386,7 +386,7 @@ static int micro_resume(struct device *dev)
>  	return 0;
>  }
>  
> -static int micro_probe(struct platform_device *pdev)
> +static int __init micro_probe(struct platform_device *pdev)
>  {
>  	struct ipaq_micro *micro;
>  	struct resource *res;
> @@ -448,21 +448,6 @@ static int micro_probe(struct platform_device *pdev)
>  	return 0;
>  }
>  
> -static int micro_remove(struct platform_device *pdev)
> -{
> -	struct ipaq_micro *micro = platform_get_drvdata(pdev);
> -	u32 val;
> -
> -	mfd_remove_devices(&pdev->dev);
> -
> -	val = readl(micro->base + UTCR3);
> -	val &= ~(UTCR3_RXE | UTCR3_RIE); /* disable receive interrupt */
> -	val &= ~(UTCR3_TXE | UTCR3_TIE); /* disable transmit interrupt */
> -	writel(val, micro->base + UTCR3);
> -
> -	return 0;
> -}
> -
>  static const struct dev_pm_ops micro_dev_pm_ops = {
>  	SET_SYSTEM_SLEEP_PM_OPS(NULL, micro_resume)
>  };
> @@ -471,11 +456,7 @@ static struct platform_driver micro_device_driver = {
>  	.driver   = {
>  		.name	= "ipaq-h3xxx-micro",
>  		.pm	= &micro_dev_pm_ops,
> +		.suppress_bind_attrs = true,
>  	},
> -	.probe    = micro_probe,
> -	.remove   = micro_remove,
>  };
> -module_platform_driver(micro_device_driver);
> -
> -MODULE_LICENSE("GPL");
> -MODULE_DESCRIPTION("driver for iPAQ Atmel micro core and backlight");
> +builtin_platform_driver_probe(micro_device_driver, micro_probe);
diff mbox

Patch

diff --git a/drivers/mfd/ipaq-micro.c b/drivers/mfd/ipaq-micro.c
index 9bfe2462c5c5..a41859c55bda 100644
--- a/drivers/mfd/ipaq-micro.c
+++ b/drivers/mfd/ipaq-micro.c
@@ -242,7 +242,7 @@  static u16 ipaq_micro_to_u16(u8 *data)
 	return data[1] << 8 | data[0];
 }
 
-static void ipaq_micro_eeprom_dump(struct ipaq_micro *micro)
+static void __init ipaq_micro_eeprom_dump(struct ipaq_micro *micro)
 {
 	u8 dump[256];
 	char *str;
@@ -386,7 +386,7 @@  static int micro_resume(struct device *dev)
 	return 0;
 }
 
-static int micro_probe(struct platform_device *pdev)
+static int __init micro_probe(struct platform_device *pdev)
 {
 	struct ipaq_micro *micro;
 	struct resource *res;
@@ -448,21 +448,6 @@  static int micro_probe(struct platform_device *pdev)
 	return 0;
 }
 
-static int micro_remove(struct platform_device *pdev)
-{
-	struct ipaq_micro *micro = platform_get_drvdata(pdev);
-	u32 val;
-
-	mfd_remove_devices(&pdev->dev);
-
-	val = readl(micro->base + UTCR3);
-	val &= ~(UTCR3_RXE | UTCR3_RIE); /* disable receive interrupt */
-	val &= ~(UTCR3_TXE | UTCR3_TIE); /* disable transmit interrupt */
-	writel(val, micro->base + UTCR3);
-
-	return 0;
-}
-
 static const struct dev_pm_ops micro_dev_pm_ops = {
 	SET_SYSTEM_SLEEP_PM_OPS(NULL, micro_resume)
 };
@@ -471,11 +456,7 @@  static struct platform_driver micro_device_driver = {
 	.driver   = {
 		.name	= "ipaq-h3xxx-micro",
 		.pm	= &micro_dev_pm_ops,
+		.suppress_bind_attrs = true,
 	},
-	.probe    = micro_probe,
-	.remove   = micro_remove,
 };
-module_platform_driver(micro_device_driver);
-
-MODULE_LICENSE("GPL");
-MODULE_DESCRIPTION("driver for iPAQ Atmel micro core and backlight");
+builtin_platform_driver_probe(micro_device_driver, micro_probe);