From: Axel Lin Date: Tue, 26 Jul 2011 00:11:58 +0000 (-0700) Subject: drivers/video/backlight/ld9040.c: small fixes X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=e2e7da9bccd77ef6793b865c1b78c7e519ccc562;p=openwrt%2Fstaging%2Fblogic.git drivers/video/backlight/ld9040.c: small fixes - Fix checking of wrong return value for backlight_device_register() - Properly free allocated resources in ld9040_probe() error path and ld9040_remove(). Signed-off-by: Axel Lin Cc: Donghwa Lee Cc: Richard Purdie Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- diff --git a/drivers/video/backlight/ld9040.c b/drivers/video/backlight/ld9040.c index 7281b2506a67..62bcde3c97f2 100644 --- a/drivers/video/backlight/ld9040.c +++ b/drivers/video/backlight/ld9040.c @@ -701,9 +701,9 @@ static int ld9040_probe(struct spi_device *spi) bd = backlight_device_register("ld9040-bl", &spi->dev, lcd, &ld9040_backlight_ops, NULL); - if (IS_ERR(ld)) { - ret = PTR_ERR(ld); - goto out_free_lcd; + if (IS_ERR(bd)) { + ret = PTR_ERR(bd); + goto out_unregister_lcd; } bd->props.max_brightness = MAX_BRIGHTNESS; @@ -731,6 +731,8 @@ static int ld9040_probe(struct spi_device *spi) dev_info(&spi->dev, "ld9040 panel driver has been probed.\n"); return 0; +out_unregister_lcd: + lcd_device_unregister(lcd->ld); out_free_lcd: kfree(lcd); return ret; @@ -741,6 +743,7 @@ static int __devexit ld9040_remove(struct spi_device *spi) struct ld9040 *lcd = dev_get_drvdata(&spi->dev); ld9040_power(lcd, FB_BLANK_POWERDOWN); + backlight_device_unregister(lcd->bd); lcd_device_unregister(lcd->ld); kfree(lcd);