Patchwork [RESEND,2/2] mtd: bcm47: convert to module_platform_driver instead of init/exit

login
register
mail settings
Submitter Libo Chen
Date May 30, 2013, 2:22 a.m.
Message ID <51A6B7D8.8090600@huawei.com>
Download mbox | patch
Permalink /patch/247441/
State New
Headers show

Comments

Libo Chen - May 30, 2013, 2:22 a.m.
convert to module_platform_driver instead of init/exit

Suggested-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Signed-off-by: Libo chen <libo.chen@huawei.com>
---
 drivers/mtd/devices/bcm47xxsflash.c |   20 +-------------------
 1 files changed, 1 insertions(+), 19 deletions(-)
Andy Shevchenko - May 30, 2013, 10:30 a.m.
On Thu, May 30, 2013 at 5:22 AM, Libo Chen <clbchenlibo.chen@huawei.com> wrote:
>
> convert to module_platform_driver instead of init/exit

I give another thought about it. We have to be sure that the flash
device will be online when it's really needed.
module_init initcall is quite far in the boot process. Is it what we want?

> --- a/drivers/mtd/devices/bcm47xxsflash.c
> +++ b/drivers/mtd/devices/bcm47xxsflash.c
> @@ -108,22 +108,4 @@ static struct platform_driver bcma_sflash_driver = {
>   * Init
>   **************************************************/
>
> -static int __init bcm47xxsflash_init(void)
> -{
> -       int err;
> -
> -       err = platform_driver_register(&bcma_sflash_driver);
> -       if (err)
> -               pr_err("Failed to register BCMA serial flash driver: %d\n",
> -                      err);
> -
> -       return err;
> -}
> -
> -static void __exit bcm47xxsflash_exit(void)
> -{
> -       platform_driver_unregister(&bcma_sflash_driver);
> -}
> -
> -module_init(bcm47xxsflash_init);
> -module_exit(bcm47xxsflash_exit);
> +module_platform_driver(bcma_sflash_driver);
> --
> 1.7.1
>
>



--
With Best Regards,
Andy Shevchenko
Hauke Mehrtens - May 30, 2013, 10:55 a.m.
On 05/30/2013 12:30 PM, Andy Shevchenko wrote:
> On Thu, May 30, 2013 at 5:22 AM, Libo Chen <clbchenlibo.chen@huawei.com> wrote:
>>
>> convert to module_platform_driver instead of init/exit
> 
> I give another thought about it. We have to be sure that the flash
> device will be online when it's really needed.
> module_init initcall is quite far in the boot process. Is it what we want?

This is no problem, the flash driver is needed when the root file system
is mounted. The arch code reads the SoC configuration values in its own
code in arch/mips/bcm47xx/nvram.c without using the mtd subsystem. These
values are needed very early in the boot process.

Hauke

Patch

diff --git a/drivers/mtd/devices/bcm47xxsflash.c b/drivers/mtd/devices/bcm47xxsflash.c
index 2630d5c..54230cd 100644
--- a/drivers/mtd/devices/bcm47xxsflash.c
+++ b/drivers/mtd/devices/bcm47xxsflash.c
@@ -108,22 +108,4 @@  static struct platform_driver bcma_sflash_driver = {
  * Init
  **************************************************/

-static int __init bcm47xxsflash_init(void)
-{
-	int err;
-
-	err = platform_driver_register(&bcma_sflash_driver);
-	if (err)
-		pr_err("Failed to register BCMA serial flash driver: %d\n",
-		       err);
-
-	return err;
-}
-
-static void __exit bcm47xxsflash_exit(void)
-{
-	platform_driver_unregister(&bcma_sflash_driver);
-}
-
-module_init(bcm47xxsflash_init);
-module_exit(bcm47xxsflash_exit);
+module_platform_driver(bcma_sflash_driver);