From 9537140b2b7db392b8b13848b146bac8825975e5 Mon Sep 17 00:00:00 2001 From: Jingoo Han Date: Tue, 29 May 2012 15:07:23 -0700 Subject: [PATCH] --- yaml --- r: 308959 b: refs/heads/master c: 86f6be4fae7aeaeb038dc809b232ebe76b2e1dd2 h: refs/heads/master i: 308957: d07a7dedf70607012b1aa7ba574e8e868a056c1b 308955: a95a1d0c2f2c5449eaeaf2ecfcb5fb0d940d577b 308951: 180114e14fccd7b96d778ce7b479550b6868a30a 308943: 8e9cce18d2a23b5b69f648a7f6b3d0cfc30d3e40 308927: 1547bdeda8a054313e70e23cb5a870393fc73c44 v: v3 --- [refs] | 2 +- trunk/drivers/video/backlight/ld9040.c | 14 ++++++-------- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/[refs] b/[refs] index db6565c9ae3e..91fbd2ab2c61 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: ba4a887ac3ff2e3ce876115a3e0828caa9c6f428 +refs/heads/master: 86f6be4fae7aeaeb038dc809b232ebe76b2e1dd2 diff --git a/trunk/drivers/video/backlight/ld9040.c b/trunk/drivers/video/backlight/ld9040.c index 2ea06a5fae55..58f517fb7d40 100644 --- a/trunk/drivers/video/backlight/ld9040.c +++ b/trunk/drivers/video/backlight/ld9040.c @@ -707,7 +707,7 @@ static int ld9040_probe(struct spi_device *spi) struct backlight_device *bd = NULL; struct backlight_properties props; - lcd = kzalloc(sizeof(struct ld9040), GFP_KERNEL); + lcd = devm_kzalloc(&spi->dev, sizeof(struct ld9040), GFP_KERNEL); if (!lcd) return -ENOMEM; @@ -717,7 +717,7 @@ static int ld9040_probe(struct spi_device *spi) ret = spi_setup(spi); if (ret < 0) { dev_err(&spi->dev, "spi setup failed.\n"); - goto out_free_lcd; + return ret; } lcd->spi = spi; @@ -726,7 +726,7 @@ static int ld9040_probe(struct spi_device *spi) lcd->lcd_pd = spi->dev.platform_data; if (!lcd->lcd_pd) { dev_err(&spi->dev, "platform data is NULL.\n"); - goto out_free_lcd; + return -EFAULT; } mutex_init(&lcd->lock); @@ -734,13 +734,13 @@ static int ld9040_probe(struct spi_device *spi) ret = regulator_bulk_get(lcd->dev, ARRAY_SIZE(supplies), supplies); if (ret) { dev_err(lcd->dev, "Failed to get regulators: %d\n", ret); - goto out_free_lcd; + return ret; } ld = lcd_device_register("ld9040", &spi->dev, lcd, &ld9040_lcd_ops); if (IS_ERR(ld)) { ret = PTR_ERR(ld); - goto out_free_lcd; + goto out_free_regulator; } lcd->ld = ld; @@ -782,10 +782,9 @@ static int ld9040_probe(struct spi_device *spi) out_unregister_lcd: lcd_device_unregister(lcd->ld); -out_free_lcd: +out_free_regulator: regulator_bulk_free(ARRAY_SIZE(supplies), supplies); - kfree(lcd); return ret; } @@ -797,7 +796,6 @@ static int __devexit ld9040_remove(struct spi_device *spi) backlight_device_unregister(lcd->bd); lcd_device_unregister(lcd->ld); regulator_bulk_free(ARRAY_SIZE(supplies), supplies); - kfree(lcd); return 0; }