RE: [PATCH 02/18] mfd: adp5520: Make it explicitly non-modular
From: Hennerich, Michael
Date: Fri Dec 07 2018 - 15:25:29 EST
> -----Original Message-----
> From: Paul Gortmaker [mailto:paul.gortmaker@xxxxxxxxxxxxx]
> Sent: Freitag, 7. Dezember 2018 21:11
> To: Lee Jones <lee.jones@xxxxxxxxxx>
> Cc: linux-kernel@xxxxxxxxxxxxxxx; Paul Gortmaker <paul.gortmaker@xxxxxxxxxxxxx>; Hennerich, Michael
> <Michael.Hennerich@xxxxxxxxxx>
> Subject: [PATCH 02/18] mfd: adp5520: Make it explicitly non-modular
>
> The Makefile/Kconfig currently controlling compilation of this code is:
>
> drivers/mfd/Makefile:obj-$(CONFIG_PMIC_ADP5520) += adp5520.o
> drivers/mfd/Kconfig:config PMIC_ADP5520
> drivers/mfd/Kconfig: bool "Analog Devices ADP5520/01 MFD PMIC Core Support"
>
> ...meaning that it currently is not being built as a module by anyone.
>
> Lets remove the modular code that is essentially orphaned, so that
> when reading the driver there is no doubt it is builtin-only.
>
> We explicitly disallow a driver unbind, since that doesn't have a
> sensible use case anyway, and it allows us to drop the ".remove"
> code for non-modular drivers.
>
> Since module_i2c_driver() uses the same init level priority as
> builtin_i2c_driver() the init ordering remains unchanged with
> this commit.
>
> Also note that MODULE_DEVICE_TABLE is a no-op for non-modular code.
>
> We also delete the MODULE_LICENSE tag etc. since all that information
> was (or is now) contained at the top of the file in the comments.
>
> Cc: Michael Hennerich <michael.hennerich@xxxxxxxxxx>
> Cc: Lee Jones <lee.jones@xxxxxxxxxx>
> Acked-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
> Signed-off-by: Paul Gortmaker <paul.gortmaker@xxxxxxxxxxxxx>
Signed-off-by: Michael Hennerich <michael.hennerich@xxxxxxxxxx>
> ---
> drivers/mfd/adp5520.c | 30 +++++++-----------------------
> 1 file changed, 7 insertions(+), 23 deletions(-)
>
> diff --git a/drivers/mfd/adp5520.c b/drivers/mfd/adp5520.c
> index be0497b96720..2cdd39cb8a18 100644
> --- a/drivers/mfd/adp5520.c
> +++ b/drivers/mfd/adp5520.c
> @@ -7,6 +7,8 @@
> *
> * Copyright 2009 Analog Devices Inc.
> *
> + * Author: Michael Hennerich <michael.hennerich@xxxxxxxxxx>
> + *
> * Derived from da903x:
> * Copyright (C) 2008 Compulab, Ltd.
> * Mike Rapoport <mike@xxxxxxxxxxxxxx>
> @@ -18,7 +20,7 @@
> */
>
> #include <linux/kernel.h>
> -#include <linux/module.h>
> +#include <linux/init.h>
> #include <linux/platform_device.h>
> #include <linux/slab.h>
> #include <linux/interrupt.h>
> @@ -304,18 +306,6 @@ static int adp5520_probe(struct i2c_client *client,
> return ret;
> }
>
> -static int adp5520_remove(struct i2c_client *client)
> -{
> - struct adp5520_chip *chip = dev_get_drvdata(&client->dev);
> -
> - if (chip->irq)
> - free_irq(chip->irq, chip);
> -
> - adp5520_remove_subdevs(chip);
> - adp5520_write(chip->dev, ADP5520_MODE_STATUS, 0);
> - return 0;
> -}
> -
> #ifdef CONFIG_PM_SLEEP
> static int adp5520_suspend(struct device *dev)
> {
> @@ -346,20 +336,14 @@ static const struct i2c_device_id adp5520_id[] = {
> { "pmic-adp5501", ID_ADP5501 },
> { }
> };
> -MODULE_DEVICE_TABLE(i2c, adp5520_id);
>
> static struct i2c_driver adp5520_driver = {
> .driver = {
> - .name = "adp5520",
> - .pm = &adp5520_pm,
> + .name = "adp5520",
> + .pm = &adp5520_pm,
> + .suppress_bind_attrs = true,
> },
> .probe = adp5520_probe,
> - .remove = adp5520_remove,
> .id_table = adp5520_id,
> };
> -
> -module_i2c_driver(adp5520_driver);
> -
> -MODULE_AUTHOR("Michael Hennerich <michael.hennerich@xxxxxxxxxx>");
> -MODULE_DESCRIPTION("ADP5520(01) PMIC-MFD Driver");
> -MODULE_LICENSE("GPL");
> +builtin_i2c_driver(adp5520_driver);
> --
> 2.7.4
>