staging: fbtft: replace master->setup() with spi_setup()
Calling the setup of the SPI master directly causes a NULL pointer dereference with master drivers without a separate setup function. This problem is reproduceable on ARM MXS platform. So fix this issue by using spi_setup() instead. Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com> Acked-by: Noralf Trønnes <noralf@tronnes.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Родитель
cabb5b2a28
Коммит
dd3afa57c5
|
@ -76,7 +76,7 @@ static int init_display(struct fbtft_par *par)
|
|||
|
||||
/* Set CS active high */
|
||||
par->spi->mode |= SPI_CS_HIGH;
|
||||
ret = par->spi->master->setup(par->spi);
|
||||
ret = spi_setup(par->spi);
|
||||
if (ret) {
|
||||
dev_err(par->info->device, "Could not set SPI_CS_HIGH\n");
|
||||
return ret;
|
||||
|
|
|
@ -169,7 +169,7 @@ static int init_display(struct fbtft_par *par)
|
|||
/* enable SPI interface by having CS and MOSI low during reset */
|
||||
save_mode = par->spi->mode;
|
||||
par->spi->mode |= SPI_CS_HIGH;
|
||||
ret = par->spi->master->setup(par->spi); /* set CS inactive low */
|
||||
ret = spi_setup(par->spi); /* set CS inactive low */
|
||||
if (ret) {
|
||||
dev_err(par->info->device, "Could not set SPI_CS_HIGH\n");
|
||||
return ret;
|
||||
|
@ -180,7 +180,7 @@ static int init_display(struct fbtft_par *par)
|
|||
par->fbtftops.reset(par);
|
||||
mdelay(1000);
|
||||
par->spi->mode = save_mode;
|
||||
ret = par->spi->master->setup(par->spi);
|
||||
ret = spi_setup(par->spi);
|
||||
if (ret) {
|
||||
dev_err(par->info->device, "Could not restore SPI mode\n");
|
||||
return ret;
|
||||
|
|
Загрузка…
Ссылка в новой задаче