diff options
Diffstat (limited to 'drivers/video/backlight/ili9320.c')
-rw-r--r-- | drivers/video/backlight/ili9320.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/drivers/video/backlight/ili9320.c b/drivers/video/backlight/ili9320.c index e2b8b40..f8be90c 100644 --- a/drivers/video/backlight/ili9320.c +++ b/drivers/video/backlight/ili9320.c @@ -198,7 +198,7 @@ static void ili9320_setup_spi(struct ili9320 *ili, int ili9320_probe_spi(struct spi_device *spi, struct ili9320_client *client) { - struct ili9320_platdata *cfg = dev_get_platdata(&spi->dev); + struct ili9320_platdata *cfg = spi->dev.platform_data; struct device *dev = &spi->dev; struct ili9320 *ili; struct lcd_device *lcd; @@ -235,8 +235,7 @@ int ili9320_probe_spi(struct spi_device *spi, ili9320_setup_spi(ili, spi); - lcd = devm_lcd_device_register(&spi->dev, "ili9320", dev, ili, - &ili9320_ops); + lcd = lcd_device_register("ili9320", dev, ili, &ili9320_ops); if (IS_ERR(lcd)) { dev_err(dev, "failed to register lcd device\n"); return PTR_ERR(lcd); @@ -249,16 +248,24 @@ int ili9320_probe_spi(struct spi_device *spi, ret = ili9320_power(ili, FB_BLANK_UNBLANK); if (ret != 0) { dev_err(dev, "failed to set lcd power state\n"); - return ret; + goto err_unregister; } return 0; + + err_unregister: + lcd_device_unregister(lcd); + + return ret; } EXPORT_SYMBOL_GPL(ili9320_probe_spi); int ili9320_remove(struct ili9320 *ili) { ili9320_power(ili, FB_BLANK_POWERDOWN); + + lcd_device_unregister(ili->lcd); + return 0; } EXPORT_SYMBOL_GPL(ili9320_remove); |