aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJulia Lawall <Julia.Lawall@lip6.fr>2013-08-24 13:13:15 -0400
committerMark Brown <broonie@linaro.org>2013-08-29 08:39:35 -0400
commitb3136f8f7c49bb4ca71247046f688fdffa104310 (patch)
treea119f4bf171596adb6eecbe66abcc8f79da3b5e5
parent72be0ee42ebaf744d4a5cf684ee68dba59d6bac1 (diff)
spi: simplify devm_request_mem_region/devm_ioremap
Convert the composition of devm_request_mem_region and devm_ioremap to a single call to devm_ioremap_resource. The associated call to platform_get_resource is also simplified and moved next to the new call to devm_ioremap_resource. This was done using a combination of the semantic patches devm_ioremap_resource.cocci and devm_request_and_ioremap.cocci, found in the scripts/coccinelle/api directory. This patch also removes the label exit_busy, to use the error code returned by the failing operation, rather than always -EBUSY. Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr> Signed-off-by: Mark Brown <broonie@linaro.org>
-rw-r--r--drivers/spi/spi-altera.c17
-rw-r--r--drivers/spi/spi-oc-tiny.c22
2 files changed, 14 insertions, 25 deletions
diff --git a/drivers/spi/spi-altera.c b/drivers/spi/spi-altera.c
index 453fa5ac04ad..dce4a7e69b46 100644
--- a/drivers/spi/spi-altera.c
+++ b/drivers/spi/spi-altera.c
@@ -239,15 +239,11 @@ static int altera_spi_probe(struct platform_device *pdev)
239 239
240 /* find and map our resources */ 240 /* find and map our resources */
241 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 241 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
242 if (!res) 242 hw->base = devm_ioremap_resource(&pdev->dev, res);
243 goto exit_busy; 243 if (IS_ERR(hw->base)) {
244 if (!devm_request_mem_region(&pdev->dev, res->start, resource_size(res), 244 err = PTR_ERR(hw->base);
245 pdev->name)) 245 goto exit;
246 goto exit_busy; 246 }
247 hw->base = devm_ioremap_nocache(&pdev->dev, res->start,
248 resource_size(res));
249 if (!hw->base)
250 goto exit_busy;
251 /* program defaults into the registers */ 247 /* program defaults into the registers */
252 hw->imr = 0; /* disable spi interrupts */ 248 hw->imr = 0; /* disable spi interrupts */
253 writel(hw->imr, hw->base + ALTERA_SPI_CONTROL); 249 writel(hw->imr, hw->base + ALTERA_SPI_CONTROL);
@@ -274,9 +270,6 @@ static int altera_spi_probe(struct platform_device *pdev)
274 dev_info(&pdev->dev, "base %p, irq %d\n", hw->base, hw->irq); 270 dev_info(&pdev->dev, "base %p, irq %d\n", hw->base, hw->irq);
275 271
276 return 0; 272 return 0;
277
278exit_busy:
279 err = -EBUSY;
280exit: 273exit:
281 spi_master_put(master); 274 spi_master_put(master);
282 return err; 275 return err;
diff --git a/drivers/spi/spi-oc-tiny.c b/drivers/spi/spi-oc-tiny.c
index 58deb79d046b..d36ba907743d 100644
--- a/drivers/spi/spi-oc-tiny.c
+++ b/drivers/spi/spi-oc-tiny.c
@@ -315,15 +315,11 @@ static int tiny_spi_probe(struct platform_device *pdev)
315 315
316 /* find and map our resources */ 316 /* find and map our resources */
317 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 317 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
318 if (!res) 318 hw->base = devm_ioremap_resource(&pdev->dev, res);
319 goto exit_busy; 319 if (IS_ERR(hw->base)) {
320 if (!devm_request_mem_region(&pdev->dev, res->start, resource_size(res), 320 err = PTR_ERR(hw->base);
321 pdev->name)) 321 goto exit;
322 goto exit_busy; 322 }
323 hw->base = devm_ioremap_nocache(&pdev->dev, res->start,
324 resource_size(res));
325 if (!hw->base)
326 goto exit_busy;
327 /* irq is optional */ 323 /* irq is optional */
328 hw->irq = platform_get_irq(pdev, 0); 324 hw->irq = platform_get_irq(pdev, 0);
329 if (hw->irq >= 0) { 325 if (hw->irq >= 0) {
@@ -337,8 +333,10 @@ static int tiny_spi_probe(struct platform_device *pdev)
337 if (platp) { 333 if (platp) {
338 hw->gpio_cs_count = platp->gpio_cs_count; 334 hw->gpio_cs_count = platp->gpio_cs_count;
339 hw->gpio_cs = platp->gpio_cs; 335 hw->gpio_cs = platp->gpio_cs;
340 if (platp->gpio_cs_count && !platp->gpio_cs) 336 if (platp->gpio_cs_count && !platp->gpio_cs) {
341 goto exit_busy; 337 err = -EBUSY;
338 goto exit;
339 }
342 hw->freq = platp->freq; 340 hw->freq = platp->freq;
343 hw->baudwidth = platp->baudwidth; 341 hw->baudwidth = platp->baudwidth;
344 } else { 342 } else {
@@ -365,8 +363,6 @@ static int tiny_spi_probe(struct platform_device *pdev)
365exit_gpio: 363exit_gpio:
366 while (i-- > 0) 364 while (i-- > 0)
367 gpio_free(hw->gpio_cs[i]); 365 gpio_free(hw->gpio_cs[i]);
368exit_busy:
369 err = -EBUSY;
370exit: 366exit:
371 spi_master_put(master); 367 spi_master_put(master);
372 return err; 368 return err;