|
@@ -315,15 +315,11 @@ static int tiny_spi_probe(struct platform_device *pdev)
|
|
|
|
|
|
/* find and map our resources */
|
|
|
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
|
|
- if (!res)
|
|
|
- goto exit_busy;
|
|
|
- if (!devm_request_mem_region(&pdev->dev, res->start, resource_size(res),
|
|
|
- pdev->name))
|
|
|
- goto exit_busy;
|
|
|
- hw->base = devm_ioremap_nocache(&pdev->dev, res->start,
|
|
|
- resource_size(res));
|
|
|
- if (!hw->base)
|
|
|
- goto exit_busy;
|
|
|
+ hw->base = devm_ioremap_resource(&pdev->dev, res);
|
|
|
+ if (IS_ERR(hw->base)) {
|
|
|
+ err = PTR_ERR(hw->base);
|
|
|
+ goto exit;
|
|
|
+ }
|
|
|
/* irq is optional */
|
|
|
hw->irq = platform_get_irq(pdev, 0);
|
|
|
if (hw->irq >= 0) {
|
|
@@ -337,8 +333,10 @@ static int tiny_spi_probe(struct platform_device *pdev)
|
|
|
if (platp) {
|
|
|
hw->gpio_cs_count = platp->gpio_cs_count;
|
|
|
hw->gpio_cs = platp->gpio_cs;
|
|
|
- if (platp->gpio_cs_count && !platp->gpio_cs)
|
|
|
- goto exit_busy;
|
|
|
+ if (platp->gpio_cs_count && !platp->gpio_cs) {
|
|
|
+ err = -EBUSY;
|
|
|
+ goto exit;
|
|
|
+ }
|
|
|
hw->freq = platp->freq;
|
|
|
hw->baudwidth = platp->baudwidth;
|
|
|
} else {
|
|
@@ -365,8 +363,6 @@ static int tiny_spi_probe(struct platform_device *pdev)
|
|
|
exit_gpio:
|
|
|
while (i-- > 0)
|
|
|
gpio_free(hw->gpio_cs[i]);
|
|
|
-exit_busy:
|
|
|
- err = -EBUSY;
|
|
|
exit:
|
|
|
spi_master_put(master);
|
|
|
return err;
|