diff options
author | Gabor Juhos <juhosg@openwrt.org> | 2012-01-11 09:14:17 +0000 |
---|---|---|
committer | Gabor Juhos <juhosg@openwrt.org> | 2012-01-11 09:14:17 +0000 |
commit | e1b7995aef83ef9b55d4a57a715de49e2c77f624 (patch) | |
tree | 75515af9eafa56e18a882fd73d1c7d2d75f8d998 | |
parent | 67444c7795b2d900484176f467d9b4c56f41b3ec (diff) | |
download | upstream-e1b7995aef83ef9b55d4a57a715de49e2c77f624.tar.gz upstream-e1b7995aef83ef9b55d4a57a715de49e2c77f624.tar.bz2 upstream-e1b7995aef83ef9b55d4a57a715de49e2c77f624.zip |
ar71xx: pb44_spi: call pb44_spi_{en,dis}able from probe/remove
SVN-Revision: 29709
-rw-r--r-- | target/linux/ar71xx/files/drivers/spi/pb44_spi.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/target/linux/ar71xx/files/drivers/spi/pb44_spi.c b/target/linux/ar71xx/files/drivers/spi/pb44_spi.c index 61c22f5b3d..01b5f1cc28 100644 --- a/target/linux/ar71xx/files/drivers/spi/pb44_spi.c +++ b/target/linux/ar71xx/files/drivers/spi/pb44_spi.c @@ -110,8 +110,6 @@ static int pb44_spi_setup_cs(struct spi_device *spi) { struct ar71xx_spi *sp = spidev_to_sp(spi); - pb44_spi_enable(sp); - if (spi->chip_select) { unsigned long gpio = (unsigned long) spi->controller_data; int status = 0; @@ -138,14 +136,10 @@ static int pb44_spi_setup_cs(struct spi_device *spi) static void pb44_spi_cleanup_cs(struct spi_device *spi) { - struct ar71xx_spi *sp = spidev_to_sp(spi); - if (spi->chip_select) { unsigned long gpio = (unsigned long) spi->controller_data; gpio_free(gpio); } - - pb44_spi_disable(sp); } static int pb44_spi_setup(struct spi_device *spi) @@ -256,10 +250,13 @@ static int pb44_spi_probe(struct platform_device *pdev) goto err1; } + pb44_spi_enable(sp); + ret = spi_bitbang_start(&sp->bitbang); if (!ret) return 0; + pb44_spi_disable(sp); iounmap(sp->base); err1: platform_set_drvdata(pdev, NULL); @@ -273,6 +270,7 @@ static int pb44_spi_remove(struct platform_device *pdev) struct ar71xx_spi *sp = platform_get_drvdata(pdev); spi_bitbang_stop(&sp->bitbang); + pb44_spi_disable(sp); iounmap(sp->base); platform_set_drvdata(pdev, NULL); spi_master_put(sp->bitbang.master); |