Changeset 42489


Ignore:
Timestamp:
2014-09-12T08:51:46+02:00 (3 years ago)
Author:
blogic
Message:

atheros: ar2315-spiflash: use devm_* API to simplify the code

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/target/linux/atheros/patches-3.14/120-spiflash.patch

    r41995 r42489  
    2424--- /dev/null 
    2525+++ b/drivers/mtd/devices/ar2315.c 
    26 @@ -0,0 +1,536 @@ 
     26@@ -0,0 +1,518 @@ 
    2727+ 
    2828+/* 
     
    453453+       int result = 0; 
    454454+ 
    455 +       priv = kzalloc(sizeof(struct spiflash_priv), GFP_KERNEL); 
     455+       priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL); 
     456+       if (!priv) 
     457+               return -ENOMEM; 
     458+ 
    456459+       spin_lock_init(&priv->lock); 
    457460+       init_waitqueue_head(&priv->wq); 
     
    460463+ 
    461464+       res = platform_get_resource(pdev, IORESOURCE_MEM, 1); 
    462 +       if (!res) { 
    463 +               dev_err(&pdev->dev, "No MMR resource found\n"); 
    464 +               goto error; 
    465 +       } 
    466 + 
    467 +       priv->mmraddr = ioremap_nocache(res->start, resource_size(res)); 
    468 +       if (!priv->mmraddr) { 
    469 +               dev_warn(&pdev->dev, SPIFLASH "Failed to map flash device\n"); 
    470 +               goto error; 
     465+       priv->mmraddr = devm_ioremap_resource(&pdev->dev, res); 
     466+       if (IS_ERR(priv->mmraddr)) { 
     467+               dev_warn(&pdev->dev, "failed to map flash MMR\n"); 
     468+               return PTR_ERR(priv->mmraddr); 
    471469+       } 
    472470+ 
     
    474472+       if (!index) { 
    475473+               dev_warn(&pdev->dev, SPIFLASH "Found no flash device\n"); 
    476 +               goto error; 
     474+               return -ENODEV; 
    477475+       } 
    478476+ 
    479477+       res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 
    480 +       if (!res) { 
    481 +               dev_err(&pdev->dev, "No flash readmem resource found\n"); 
    482 +               goto error; 
    483 +       } 
    484 + 
    485 +       priv->readaddr = ioremap_nocache(res->start, 
    486 +                                        flashconfig_tbl[index].byte_cnt); 
    487 +       if (!priv->readaddr) { 
    488 +               dev_warn(&pdev->dev, SPIFLASH "Failed to map flash device\n"); 
    489 +               goto error; 
     478+       priv->readaddr = devm_ioremap_resource(&pdev->dev, res); 
     479+       if (IS_ERR(priv->readaddr)) { 
     480+               dev_warn(&pdev->dev, "failed to map flash read mem\n"); 
     481+               return PTR_ERR(priv->readaddr); 
    490482+       } 
    491483+ 
     
    514506+ 
    515507+       return result; 
    516 + 
    517 +error: 
    518 +       if (priv->mmraddr) 
    519 +               iounmap(priv->mmraddr); 
    520 +       kfree(priv); 
    521 +       return -ENXIO; 
    522508+} 
    523509+ 
     
    526512+{ 
    527513+       struct spiflash_priv *priv = platform_get_drvdata(pdev); 
    528 +       struct mtd_info *mtd = &priv->mtd; 
    529 + 
    530 +       mtd_device_unregister(mtd); 
    531 +       iounmap(priv->mmraddr); 
    532 +       iounmap(priv->readaddr); 
    533 +       kfree(priv); 
     514+ 
     515+       mtd_device_unregister(&priv->mtd); 
    534516+ 
    535517+       return 0; 
Note: See TracChangeset for help on using the changeset viewer.