aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJingoo Han <jg1.han@samsung.com>2012-05-29 18:07:24 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2012-05-29 19:22:31 -0400
commitab03e04741fc7a5747daabc57d15cb1a3e2fd289 (patch)
tree5a067c384207215416da5bd09c75b6e46f2f9d14
parent26f2b35c1e1463c851be23c9774bd24caae7b517 (diff)
backlight: ltv350qv: use devm_ functions
The devm_ functions allocate memory that is released when a driver detaches. This patch uses devm_kzalloc of these functions. Signed-off-by: Jingoo Han <jg1.han@samsung.com> Cc: Haavard Skinnemoen <hskinnemoen@gmail.com> Cc: Richard Purdie <rpurdie@rpsys.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--drivers/video/backlight/ltv350qv.c23
1 files changed, 7 insertions, 16 deletions
diff --git a/drivers/video/backlight/ltv350qv.c b/drivers/video/backlight/ltv350qv.c
index d23922ff3354..6c0f1ac0d32a 100644
--- a/drivers/video/backlight/ltv350qv.c
+++ b/drivers/video/backlight/ltv350qv.c
@@ -232,23 +232,20 @@ static int __devinit ltv350qv_probe(struct spi_device *spi)
232 struct lcd_device *ld; 232 struct lcd_device *ld;
233 int ret; 233 int ret;
234 234
235 lcd = kzalloc(sizeof(struct ltv350qv), GFP_KERNEL); 235 lcd = devm_kzalloc(&spi->dev, sizeof(struct ltv350qv), GFP_KERNEL);
236 if (!lcd) 236 if (!lcd)
237 return -ENOMEM; 237 return -ENOMEM;
238 238
239 lcd->spi = spi; 239 lcd->spi = spi;
240 lcd->power = FB_BLANK_POWERDOWN; 240 lcd->power = FB_BLANK_POWERDOWN;
241 lcd->buffer = kzalloc(8, GFP_KERNEL); 241 lcd->buffer = devm_kzalloc(&spi->dev, 8, GFP_KERNEL);
242 if (!lcd->buffer) { 242 if (!lcd->buffer)
243 ret = -ENOMEM; 243 return -ENOMEM;
244 goto out_free_lcd;
245 }
246 244
247 ld = lcd_device_register("ltv350qv", &spi->dev, lcd, &ltv_ops); 245 ld = lcd_device_register("ltv350qv", &spi->dev, lcd, &ltv_ops);
248 if (IS_ERR(ld)) { 246 if (IS_ERR(ld))
249 ret = PTR_ERR(ld); 247 return PTR_ERR(ld);
250 goto out_free_buffer; 248
251 }
252 lcd->ld = ld; 249 lcd->ld = ld;
253 250
254 ret = ltv350qv_power(lcd, FB_BLANK_UNBLANK); 251 ret = ltv350qv_power(lcd, FB_BLANK_UNBLANK);
@@ -261,10 +258,6 @@ static int __devinit ltv350qv_probe(struct spi_device *spi)
261 258
262out_unregister: 259out_unregister:
263 lcd_device_unregister(ld); 260 lcd_device_unregister(ld);
264out_free_buffer:
265 kfree(lcd->buffer);
266out_free_lcd:
267 kfree(lcd);
268 return ret; 261 return ret;
269} 262}
270 263
@@ -274,8 +267,6 @@ static int __devexit ltv350qv_remove(struct spi_device *spi)
274 267
275 ltv350qv_power(lcd, FB_BLANK_POWERDOWN); 268 ltv350qv_power(lcd, FB_BLANK_POWERDOWN);
276 lcd_device_unregister(lcd->ld); 269 lcd_device_unregister(lcd->ld);
277 kfree(lcd->buffer);
278 kfree(lcd);
279 270
280 return 0; 271 return 0;
281} 272}