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

Submitted by Libo Chen on May 30, 2013, 2:22 a.m.

Details

Message ID 51A6B7D8.8090600@huawei.com
State New, archived
Headers show

Commit Message

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(-)

Comments

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 hide | download patch | download mbox

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);