diff options
author | Jingoo Han <jg1.han@samsung.com> | 2012-05-29 18:07:24 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-05-29 19:22:31 -0400 |
commit | ab03e04741fc7a5747daabc57d15cb1a3e2fd289 (patch) | |
tree | 5a067c384207215416da5bd09c75b6e46f2f9d14 | |
parent | 26f2b35c1e1463c851be23c9774bd24caae7b517 (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.c | 23 |
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, <v_ops); | 245 | ld = lcd_device_register("ltv350qv", &spi->dev, lcd, <v_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 | ||
262 | out_unregister: | 259 | out_unregister: |
263 | lcd_device_unregister(ld); | 260 | lcd_device_unregister(ld); |
264 | out_free_buffer: | ||
265 | kfree(lcd->buffer); | ||
266 | out_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 | } |