Loading drivers/misc/atmel-ssc.c +15 −32 Original line number Diff line number Diff line Loading @@ -70,37 +70,33 @@ EXPORT_SYMBOL(ssc_free); static int __init ssc_probe(struct platform_device *pdev) { int retval = 0; struct resource *regs; struct ssc_device *ssc; ssc = kzalloc(sizeof(struct ssc_device), GFP_KERNEL); ssc = devm_kzalloc(&pdev->dev, sizeof(struct ssc_device), GFP_KERNEL); if (!ssc) { dev_dbg(&pdev->dev, "out of memory\n"); retval = -ENOMEM; goto out; return -ENOMEM; } ssc->pdev = pdev; regs = platform_get_resource(pdev, IORESOURCE_MEM, 0); if (!regs) { dev_dbg(&pdev->dev, "no mmio resource defined\n"); retval = -ENXIO; goto out_free; return -ENXIO; } ssc->clk = clk_get(&pdev->dev, "pclk"); if (IS_ERR(ssc->clk)) { dev_dbg(&pdev->dev, "no pclk clock defined\n"); retval = -ENXIO; goto out_free; } ssc->pdev = pdev; ssc->regs = ioremap(regs->start, resource_size(regs)); ssc->regs = devm_request_and_ioremap(&pdev->dev, regs); if (!ssc->regs) { dev_dbg(&pdev->dev, "ioremap failed\n"); retval = -EINVAL; goto out_clk; return -EINVAL; } ssc->clk = devm_clk_get(&pdev->dev, "pclk"); if (IS_ERR(ssc->clk)) { dev_dbg(&pdev->dev, "no pclk clock defined\n"); return -ENXIO; } /* disable all interrupts */ Loading @@ -112,8 +108,7 @@ static int __init ssc_probe(struct platform_device *pdev) ssc->irq = platform_get_irq(pdev, 0); if (!ssc->irq) { dev_dbg(&pdev->dev, "could not get irq\n"); retval = -ENXIO; goto out_unmap; return -ENXIO; } spin_lock(&user_lock); Loading @@ -125,16 +120,7 @@ static int __init ssc_probe(struct platform_device *pdev) dev_info(&pdev->dev, "Atmel SSC device at 0x%p (irq %d)\n", ssc->regs, ssc->irq); goto out; out_unmap: iounmap(ssc->regs); out_clk: clk_put(ssc->clk); out_free: kfree(ssc); out: return retval; return 0; } static int __devexit ssc_remove(struct platform_device *pdev) Loading @@ -142,10 +128,7 @@ static int __devexit ssc_remove(struct platform_device *pdev) struct ssc_device *ssc = platform_get_drvdata(pdev); spin_lock(&user_lock); iounmap(ssc->regs); clk_put(ssc->clk); list_del(&ssc->list); kfree(ssc); spin_unlock(&user_lock); return 0; Loading Loading
drivers/misc/atmel-ssc.c +15 −32 Original line number Diff line number Diff line Loading @@ -70,37 +70,33 @@ EXPORT_SYMBOL(ssc_free); static int __init ssc_probe(struct platform_device *pdev) { int retval = 0; struct resource *regs; struct ssc_device *ssc; ssc = kzalloc(sizeof(struct ssc_device), GFP_KERNEL); ssc = devm_kzalloc(&pdev->dev, sizeof(struct ssc_device), GFP_KERNEL); if (!ssc) { dev_dbg(&pdev->dev, "out of memory\n"); retval = -ENOMEM; goto out; return -ENOMEM; } ssc->pdev = pdev; regs = platform_get_resource(pdev, IORESOURCE_MEM, 0); if (!regs) { dev_dbg(&pdev->dev, "no mmio resource defined\n"); retval = -ENXIO; goto out_free; return -ENXIO; } ssc->clk = clk_get(&pdev->dev, "pclk"); if (IS_ERR(ssc->clk)) { dev_dbg(&pdev->dev, "no pclk clock defined\n"); retval = -ENXIO; goto out_free; } ssc->pdev = pdev; ssc->regs = ioremap(regs->start, resource_size(regs)); ssc->regs = devm_request_and_ioremap(&pdev->dev, regs); if (!ssc->regs) { dev_dbg(&pdev->dev, "ioremap failed\n"); retval = -EINVAL; goto out_clk; return -EINVAL; } ssc->clk = devm_clk_get(&pdev->dev, "pclk"); if (IS_ERR(ssc->clk)) { dev_dbg(&pdev->dev, "no pclk clock defined\n"); return -ENXIO; } /* disable all interrupts */ Loading @@ -112,8 +108,7 @@ static int __init ssc_probe(struct platform_device *pdev) ssc->irq = platform_get_irq(pdev, 0); if (!ssc->irq) { dev_dbg(&pdev->dev, "could not get irq\n"); retval = -ENXIO; goto out_unmap; return -ENXIO; } spin_lock(&user_lock); Loading @@ -125,16 +120,7 @@ static int __init ssc_probe(struct platform_device *pdev) dev_info(&pdev->dev, "Atmel SSC device at 0x%p (irq %d)\n", ssc->regs, ssc->irq); goto out; out_unmap: iounmap(ssc->regs); out_clk: clk_put(ssc->clk); out_free: kfree(ssc); out: return retval; return 0; } static int __devexit ssc_remove(struct platform_device *pdev) Loading @@ -142,10 +128,7 @@ static int __devexit ssc_remove(struct platform_device *pdev) struct ssc_device *ssc = platform_get_drvdata(pdev); spin_lock(&user_lock); iounmap(ssc->regs); clk_put(ssc->clk); list_del(&ssc->list); kfree(ssc); spin_unlock(&user_lock); return 0; Loading