cpc925_edac: Use module_platform_driver()
PATCH 1/1 cpc925_edac: Use module_platform_driver()
Move edac_op_state assignment operations to probe, then convert to module_platform_drive() to eliminate boilerplate code, and use cpc925_printk instead of printk.
--- drivers/edac/cpc925_edac.c | 33 +++++++-------------------------- 1 files changed, 7 insertions(+), 26 deletions(-)
drivers/edac/cpc925_edac.c +7 -26
@@ -944,6 +944,12 @@ static int cpc925_probe(struct platform_device *pdev)edac_dbg (0 ,"%s platform device found!\n" , pdev->name); +cpc925_printk (KERN_INFO ,CPC925_EDAC_REVISION "\n" ); +cpc925_printk (KERN_INFO ,"\t(c) 2008 Wind River Systems, Inc\n" ); + +/* Only support POLL mode so far */ + edac_op_state =EDAC_OPSTATE_POLL ; +if (!devres_open_group (&pdev->dev, cpc925_probe,GFP_KERNEL )) { res = -ENOMEM ; goto out;
@@ -1065,32 +1071,7 @@ static struct platform_driver cpc925_edac_driver = { } }; -static int __init cpc925_edac_init (void ) -{ -int ret =0 ; - -printk (KERN_INFO "IBM CPC925 EDAC driver " CPC925_EDAC_REVISION "\n" ); -printk (KERN_INFO "\t(c) 2008 Wind River Systems, Inc\n" ); - -/* Only support POLL mode so far */ - edac_op_state =EDAC_OPSTATE_POLL ; - - ret =platform_driver_register (&cpc925_edac_driver); -if (ret) { -printk (KERN_WARNING "Failed to register %s\n" , -CPC925_EDAC_MOD_STR ); - } - -return ret; -} - -static void __exit cpc925_edac_exit(void) -{ -platform_driver_unregister (&cpc925_edac_driver); -} - -module_init (cpc925_edac_init); -module_exit (cpc925_edac_exit); +module_platform_driver (cpc925_edac_driver);MODULE_LICENSE ("GPL" );MODULE_AUTHOR ("Cao Qingtao <[email protected]>" );
Signature · 1 line
1.7.1
PATCH 1/1 cpc925_eadc: Use devm_ioremap_resource()
Convert to devm_ioremap_resource() to simplify code.
--- drivers/edac/cpc925_edac.c | 30 ++++++------------------------ 1 files changed, 6 insertions(+), 24 deletions(-)
drivers/edac/cpc925_edac.c +6 -24
@@ -950,28 +950,12 @@ static int cpc925_probe(struct platform_device *pdev) } r =platform_get_resource (pdev,IORESOURCE_MEM ,0 ); -if (!r) { -cpc925_printk (KERN_ERR ,"Unable to get resource\n" ); - res = -ENOENT ; + vbase =devm_ioremap_resource (&pdev->dev, r); +if (IS_ERR (vbase)) { + res =PTR_ERR (vbase); goto err1; } -if (!devm_request_mem_region (&pdev->dev, - r->start, -resource_size (r), - pdev->name)) { -cpc925_printk (KERN_ERR ,"Unable to request mem region\n" ); - res = -EBUSY ; - goto err1; - } - - vbase =devm_ioremap (&pdev->dev, r->start,resource_size (r)); -if (!vbase) { -cpc925_printk (KERN_ERR ,"Unable to ioremap device\n" ); - res = -ENOMEM ; - goto err2; - } - nr_channels =cpc925_mc_get_channels (vbase) +1 ; layers[0 ].type =EDAC_MC_LAYER_CHIP_SELECT ;
@@ -985,7 +969,7 @@ static int cpc925_probe(struct platform_device *pdev)if (!mci) {cpc925_printk (KERN_ERR ,"No memory for mem_ctl_info\n" ); res = -ENOMEM ; - goto err2; + goto err1; } pdata = mci->pvt_info;
@@ -1018,7 +1002,7 @@ static int cpc925_probe(struct platform_device *pdev)if (edac_mc_add_mc (mci) >0 ) {cpc925_mc_printk (mci,KERN_ERR ,"Failed edac_mc_add_mc()\n" ); - goto err3; + goto err2; }cpc925_add_edac_devices (vbase);
@@ -1029,11 +1013,9 @@ static int cpc925_probe(struct platform_device *pdev) res =0 ; goto out; -err3: +err2:cpc925_mc_exit (mci);edac_mc_free (mci); -err2: -devm_release_mem_region (&pdev->dev, r->start,resource_size (r)); err1:devres_release_group (&pdev->dev, cpc925_probe); out:
Signature · 1 line
1.7.1
Borislav Petkov
maintainerRe: [PATCH] cpc925_eadc: Use devm_ioremap_resource()
Quoted 6 lines · Kefeng Wang
Convert to
devm_ioremap_resource()to simplify code.Signed-off-by Kefeng Wang <[email protected]>--- drivers/edac/cpc925_edac.c | 30 ++++++------------------------ 1 files changed, 6 insertions(+), 24 deletions(-)
Has this one been tested on the actual hardware?
Signature · 5 lines
Regards/Gruss,
Boris.
Sent from a fat crate under my desk. Formatting is fine.
--Quoted 2 lines · Kefeng Wang
Move
edac_op_stateassignment operations to probe, then convert tomodule_platform_drive()to eliminate boilerplate code, and use
module_platform_driver() ;-)
Quoted 59 lines
cpc925_printkinstead of printk.Signed-off-by Kefeng Wang <[email protected]>--- drivers/edac/cpc925_edac.c | 33 +++++++-------------------------- 1 files changed, 7 insertions(+), 26 deletions(-)drivers/edac/cpc925_edac.c +7
-26@@ -944,6 +944,12 @@ static int cpc925_probe(struct platform_device *pdev)edac_dbg (0 ,"%s platform device found!\n" , pdev->name); +cpc925_printk (KERN_INFO ,CPC925_EDAC_REVISION "\n" ); +cpc925_printk (KERN_INFO ,"\t(c) 2008 Wind River Systems, Inc\n" ); + +/* Only support POLL mode so far */ + edac_op_state =EDAC_OPSTATE_POLL ; +if (!devres_open_group (&pdev->dev, cpc925_probe,GFP_KERNEL )) { res = -ENOMEM ; goto out;@@ -1065,32 +1071,7 @@ static struct platform_driver cpc925_edac_driver = { } }; -static int __init cpc925_edac_init (void ) -{ -int ret =0 ; - -printk (KERN_INFO "IBM CPC925 EDAC driver " CPC925_EDAC_REVISION "\n" ); -printk (KERN_INFO "\t(c) 2008 Wind River Systems, Inc\n" ); - -/* Only support POLL mode so far */ - edac_op_state =EDAC_OPSTATE_POLL ; - - ret =platform_driver_register (&cpc925_edac_driver); -if (ret) { -printk (KERN_WARNING "Failed to register %s\n" , -CPC925_EDAC_MOD_STR ); - } - -return ret; -} - -static void __exit cpc925_edac_exit(void) -{ -platform_driver_unregister (&cpc925_edac_driver); -} - -module_init (cpc925_edac_init); -module_exit (cpc925_edac_exit); +module_platform_driver (cpc925_edac_driver);MODULE_LICENSE ("GPL" );MODULE_AUTHOR ("Cao Qingtao <[email protected]>" );
Borislav Petkov
maintainerQuoted 14 lines · Kefeng Wang
Move
edac_op_stateassignment operations to probe, then convert tomodule_platform_drive()to eliminate boilerplate code, and usecpc925_printkinstead of printk.Signed-off-by Kefeng Wang <[email protected]>--- drivers/edac/cpc925_edac.c | 33 +++++++-------------------------- 1 files changed, 7 insertions(+), 26 deletions(-)drivers/edac/cpc925_edac.c +0
-0
drivers/edac/cpc925_edac.c static int cpc925_probe(struct platform_device *pdev) · line 948
Quoted 5 lines
drivers/edac/cpc925_edac.c +2
-0@@ -944,6 +944,12 @@ static int cpc925_probe(struct platform_device *pdev)edac_dbg (0 ,"%s platform device found!\n" , pdev->name); +cpc925_printk (KERN_INFO ,CPC925_EDAC_REVISION "\n" ); +cpc925_printk (KERN_INFO ,"\t(c) 2008 Wind River Systems, Inc\n" );
This will issue multiple times on a multi-node machine with several such bridges.
The bit converting to cpc925_printk is ok and I'll take it if you create a patch only for it.
Signature · 5 lines
Regards/Gruss,
Boris.
Sent from a fat crate under my desk. Formatting is fine.
--