diff options
Diffstat (limited to 'drivers/spi/spi-sh.c')
| -rw-r--r-- | drivers/spi/spi-sh.c | 15 | 
1 files changed, 6 insertions, 9 deletions
diff --git a/drivers/spi/spi-sh.c b/drivers/spi/spi-sh.c index 03edf5ed0e9f..8e171a76049f 100644 --- a/drivers/spi/spi-sh.c +++ b/drivers/spi/spi-sh.c @@ -432,7 +432,6 @@ static int spi_sh_remove(struct platform_device *pdev)  	spi_unregister_master(ss->master);  	destroy_workqueue(ss->workqueue);  	free_irq(ss->irq, ss); -	iounmap(ss->addr);  	return 0;  } @@ -480,7 +479,7 @@ static int spi_sh_probe(struct platform_device *pdev)  	}  	ss->irq = irq;  	ss->master = master; -	ss->addr = ioremap(res->start, resource_size(res)); +	ss->addr = devm_ioremap(&pdev->dev, res->start, resource_size(res));  	if (ss->addr == NULL) {  		dev_err(&pdev->dev, "ioremap error.\n");  		ret = -ENOMEM; @@ -495,13 +494,13 @@ static int spi_sh_probe(struct platform_device *pdev)  	if (ss->workqueue == NULL) {  		dev_err(&pdev->dev, "create workqueue error\n");  		ret = -EBUSY; -		goto error2; +		goto error1;  	}  	ret = request_irq(irq, spi_sh_irq, 0, "spi_sh", ss);  	if (ret < 0) {  		dev_err(&pdev->dev, "request_irq error\n"); -		goto error3; +		goto error2;  	}  	master->num_chipselect = 2; @@ -513,17 +512,15 @@ static int spi_sh_probe(struct platform_device *pdev)  	ret = spi_register_master(master);  	if (ret < 0) {  		printk(KERN_ERR "spi_register_master error.\n"); -		goto error4; +		goto error3;  	}  	return 0; - error4: -	free_irq(irq, ss);   error3: -	destroy_workqueue(ss->workqueue); +	free_irq(irq, ss);   error2: -	iounmap(ss->addr); +	destroy_workqueue(ss->workqueue);   error1:  	spi_master_put(master);  |