ar71xx: pb44_spi: call pb44_spi_{en,dis}able from probe/remove

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29709 3c298f89-4303-0410-b956-a3cf2f4a3e73
master
Gabor Juhos 2012-01-11 09:14:17 +00:00
parent a1de404466
commit d4f8c16d01
1 changed files with 4 additions and 6 deletions

View File

@ -110,8 +110,6 @@ static int pb44_spi_setup_cs(struct spi_device *spi)
{ {
struct ar71xx_spi *sp = spidev_to_sp(spi); struct ar71xx_spi *sp = spidev_to_sp(spi);
pb44_spi_enable(sp);
if (spi->chip_select) { if (spi->chip_select) {
unsigned long gpio = (unsigned long) spi->controller_data; unsigned long gpio = (unsigned long) spi->controller_data;
int status = 0; 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) static void pb44_spi_cleanup_cs(struct spi_device *spi)
{ {
struct ar71xx_spi *sp = spidev_to_sp(spi);
if (spi->chip_select) { if (spi->chip_select) {
unsigned long gpio = (unsigned long) spi->controller_data; unsigned long gpio = (unsigned long) spi->controller_data;
gpio_free(gpio); gpio_free(gpio);
} }
pb44_spi_disable(sp);
} }
static int pb44_spi_setup(struct spi_device *spi) static int pb44_spi_setup(struct spi_device *spi)
@ -256,10 +250,13 @@ static int pb44_spi_probe(struct platform_device *pdev)
goto err1; goto err1;
} }
pb44_spi_enable(sp);
ret = spi_bitbang_start(&sp->bitbang); ret = spi_bitbang_start(&sp->bitbang);
if (!ret) if (!ret)
return 0; return 0;
pb44_spi_disable(sp);
iounmap(sp->base); iounmap(sp->base);
err1: err1:
platform_set_drvdata(pdev, NULL); 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); struct ar71xx_spi *sp = platform_get_drvdata(pdev);
spi_bitbang_stop(&sp->bitbang); spi_bitbang_stop(&sp->bitbang);
pb44_spi_disable(sp);
iounmap(sp->base); iounmap(sp->base);
platform_set_drvdata(pdev, NULL); platform_set_drvdata(pdev, NULL);
spi_master_put(sp->bitbang.master); spi_master_put(sp->bitbang.master);