diff options
author | Bruno Prémont <bonbons@linux-vserver.org> | 2010-02-26 07:04:54 -0500 |
---|---|---|
committer | Richard Purdie <rpurdie@linux.intel.com> | 2010-03-16 16:10:17 -0400 |
commit | fa11de0a33e214a00e205494c27fb5a7bb71a5fa (patch) | |
tree | bed4af34b31f9e782159f3c2c17fe13817df52a9 /drivers/video | |
parent | f0af78991363d704694a3618b638662c97d8a110 (diff) |
backlight: blackfin - Fix missing registration failure handling
Check newly registered backlight_device for error and properly
return error to parent
Mark struct backlight_ops as const.
Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org>
Acked-by: Mike Frysinger <vapier@gentoo.org> (constify struct backlight_ops)
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
Diffstat (limited to 'drivers/video')
-rw-r--r-- | drivers/video/bf54x-lq043fb.c | 10 | ||||
-rw-r--r-- | drivers/video/bfin-t350mcqb-fb.c | 10 |
2 files changed, 18 insertions, 2 deletions
diff --git a/drivers/video/bf54x-lq043fb.c b/drivers/video/bf54x-lq043fb.c index 54df3d44af8f..23b2a8c0dbfc 100644 --- a/drivers/video/bf54x-lq043fb.c +++ b/drivers/video/bf54x-lq043fb.c | |||
@@ -433,7 +433,7 @@ static int bl_get_brightness(struct backlight_device *bd) | |||
433 | return 0; | 433 | return 0; |
434 | } | 434 | } |
435 | 435 | ||
436 | static struct backlight_ops bfin_lq043fb_bl_ops = { | 436 | static const struct backlight_ops bfin_lq043fb_bl_ops = { |
437 | .get_brightness = bl_get_brightness, | 437 | .get_brightness = bl_get_brightness, |
438 | }; | 438 | }; |
439 | 439 | ||
@@ -650,6 +650,12 @@ static int __devinit bfin_bf54x_probe(struct platform_device *pdev) | |||
650 | props.max_brightness = 255; | 650 | props.max_brightness = 255; |
651 | bl_dev = backlight_device_register("bf54x-bl", NULL, NULL, | 651 | bl_dev = backlight_device_register("bf54x-bl", NULL, NULL, |
652 | &bfin_lq043fb_bl_ops, &props); | 652 | &bfin_lq043fb_bl_ops, &props); |
653 | if (IS_ERR(bl_dev)) { | ||
654 | printk(KERN_ERR DRIVER_NAME | ||
655 | ": unable to register backlight.\n"); | ||
656 | ret = -EINVAL; | ||
657 | goto out9; | ||
658 | } | ||
653 | 659 | ||
654 | lcd_dev = lcd_device_register(DRIVER_NAME, &pdev->dev, NULL, &bfin_lcd_ops); | 660 | lcd_dev = lcd_device_register(DRIVER_NAME, &pdev->dev, NULL, &bfin_lcd_ops); |
655 | lcd_dev->props.max_contrast = 255, printk(KERN_INFO "Done.\n"); | 661 | lcd_dev->props.max_contrast = 255, printk(KERN_INFO "Done.\n"); |
@@ -657,6 +663,8 @@ static int __devinit bfin_bf54x_probe(struct platform_device *pdev) | |||
657 | 663 | ||
658 | return 0; | 664 | return 0; |
659 | 665 | ||
666 | out9: | ||
667 | unregister_framebuffer(fbinfo); | ||
660 | out8: | 668 | out8: |
661 | free_irq(info->irq, info); | 669 | free_irq(info->irq, info); |
662 | out7: | 670 | out7: |
diff --git a/drivers/video/bfin-t350mcqb-fb.c b/drivers/video/bfin-t350mcqb-fb.c index 3a8e811a7e9f..31a2dec927bb 100644 --- a/drivers/video/bfin-t350mcqb-fb.c +++ b/drivers/video/bfin-t350mcqb-fb.c | |||
@@ -352,7 +352,7 @@ static int bl_get_brightness(struct backlight_device *bd) | |||
352 | return 0; | 352 | return 0; |
353 | } | 353 | } |
354 | 354 | ||
355 | static struct backlight_ops bfin_lq043fb_bl_ops = { | 355 | static const struct backlight_ops bfin_lq043fb_bl_ops = { |
356 | .get_brightness = bl_get_brightness, | 356 | .get_brightness = bl_get_brightness, |
357 | }; | 357 | }; |
358 | 358 | ||
@@ -545,6 +545,12 @@ static int __devinit bfin_t350mcqb_probe(struct platform_device *pdev) | |||
545 | props.max_brightness = 255; | 545 | props.max_brightness = 255; |
546 | bl_dev = backlight_device_register("bf52x-bl", NULL, NULL, | 546 | bl_dev = backlight_device_register("bf52x-bl", NULL, NULL, |
547 | &bfin_lq043fb_bl_ops, &props); | 547 | &bfin_lq043fb_bl_ops, &props); |
548 | if (IS_ERR(bl_dev)) { | ||
549 | printk(KERN_ERR DRIVER_NAME | ||
550 | ": unable to register backlight.\n"); | ||
551 | ret = -EINVAL; | ||
552 | goto out9; | ||
553 | } | ||
548 | 554 | ||
549 | lcd_dev = lcd_device_register(DRIVER_NAME, NULL, &bfin_lcd_ops); | 555 | lcd_dev = lcd_device_register(DRIVER_NAME, NULL, &bfin_lcd_ops); |
550 | lcd_dev->props.max_contrast = 255, printk(KERN_INFO "Done.\n"); | 556 | lcd_dev->props.max_contrast = 255, printk(KERN_INFO "Done.\n"); |
@@ -552,6 +558,8 @@ static int __devinit bfin_t350mcqb_probe(struct platform_device *pdev) | |||
552 | 558 | ||
553 | return 0; | 559 | return 0; |
554 | 560 | ||
561 | out9: | ||
562 | unregister_framebuffer(fbinfo); | ||
555 | out8: | 563 | out8: |
556 | free_irq(info->irq, info); | 564 | free_irq(info->irq, info); |
557 | out7: | 565 | out7: |