diff options
Diffstat (limited to 'drivers/video/imxfb.c')
| -rw-r--r-- | drivers/video/imxfb.c | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/drivers/video/imxfb.c b/drivers/video/imxfb.c index 43f0639b1c10..5c363d026f64 100644 --- a/drivers/video/imxfb.c +++ b/drivers/video/imxfb.c | |||
| @@ -40,6 +40,12 @@ | |||
| 40 | */ | 40 | */ |
| 41 | #define DEBUG_VAR 1 | 41 | #define DEBUG_VAR 1 |
| 42 | 42 | ||
| 43 | #if defined(CONFIG_BACKLIGHT_CLASS_DEVICE) || \ | ||
| 44 | (defined(CONFIG_BACKLIGHT_CLASS_DEVICE_MODULE) && \ | ||
| 45 | defined(CONFIG_FB_IMX_MODULE)) | ||
| 46 | #define PWMR_BACKLIGHT_AVAILABLE | ||
| 47 | #endif | ||
| 48 | |||
| 43 | #define DRIVER_NAME "imx-fb" | 49 | #define DRIVER_NAME "imx-fb" |
| 44 | 50 | ||
| 45 | #define LCDC_SSA 0x00 | 51 | #define LCDC_SSA 0x00 |
| @@ -175,7 +181,9 @@ struct imxfb_info { | |||
| 175 | 181 | ||
| 176 | struct imx_fb_videomode *mode; | 182 | struct imx_fb_videomode *mode; |
| 177 | int num_modes; | 183 | int num_modes; |
| 184 | #ifdef PWMR_BACKLIGHT_AVAILABLE | ||
| 178 | struct backlight_device *bl; | 185 | struct backlight_device *bl; |
| 186 | #endif | ||
| 179 | 187 | ||
| 180 | void (*lcd_power)(int); | 188 | void (*lcd_power)(int); |
| 181 | void (*backlight_power)(int); | 189 | void (*backlight_power)(int); |
| @@ -450,8 +458,7 @@ static int imxfb_set_par(struct fb_info *info) | |||
| 450 | return 0; | 458 | return 0; |
| 451 | } | 459 | } |
| 452 | 460 | ||
| 453 | 461 | #ifdef PWMR_BACKLIGHT_AVAILABLE | |
| 454 | |||
| 455 | static int imxfb_bl_get_brightness(struct backlight_device *bl) | 462 | static int imxfb_bl_get_brightness(struct backlight_device *bl) |
| 456 | { | 463 | { |
| 457 | struct imxfb_info *fbi = bl_get_data(bl); | 464 | struct imxfb_info *fbi = bl_get_data(bl); |
| @@ -516,6 +523,7 @@ static void imxfb_exit_backlight(struct imxfb_info *fbi) | |||
| 516 | if (fbi->bl) | 523 | if (fbi->bl) |
| 517 | backlight_device_unregister(fbi->bl); | 524 | backlight_device_unregister(fbi->bl); |
| 518 | } | 525 | } |
| 526 | #endif | ||
| 519 | 527 | ||
| 520 | static void imxfb_enable_controller(struct imxfb_info *fbi) | 528 | static void imxfb_enable_controller(struct imxfb_info *fbi) |
| 521 | { | 529 | { |
| @@ -647,6 +655,9 @@ static int imxfb_activate_var(struct fb_var_screeninfo *var, struct fb_info *inf | |||
| 647 | fbi->regs + LCDC_SIZE); | 655 | fbi->regs + LCDC_SIZE); |
| 648 | 656 | ||
| 649 | writel(fbi->pcr, fbi->regs + LCDC_PCR); | 657 | writel(fbi->pcr, fbi->regs + LCDC_PCR); |
| 658 | #ifndef PWMR_BACKLIGHT_AVAILABLE | ||
| 659 | writel(fbi->pwmr, fbi->regs + LCDC_PWMR); | ||
| 660 | #endif | ||
| 650 | writel(fbi->lscr1, fbi->regs + LCDC_LSCR1); | 661 | writel(fbi->lscr1, fbi->regs + LCDC_LSCR1); |
| 651 | writel(fbi->dmacr, fbi->regs + LCDC_DMACR); | 662 | writel(fbi->dmacr, fbi->regs + LCDC_DMACR); |
| 652 | 663 | ||
| @@ -847,7 +858,9 @@ static int __init imxfb_probe(struct platform_device *pdev) | |||
| 847 | 858 | ||
| 848 | imxfb_enable_controller(fbi); | 859 | imxfb_enable_controller(fbi); |
| 849 | fbi->pdev = pdev; | 860 | fbi->pdev = pdev; |
| 861 | #ifdef PWMR_BACKLIGHT_AVAILABLE | ||
| 850 | imxfb_init_backlight(fbi); | 862 | imxfb_init_backlight(fbi); |
| 863 | #endif | ||
| 851 | 864 | ||
| 852 | return 0; | 865 | return 0; |
| 853 | 866 | ||
| @@ -885,7 +898,9 @@ static int __devexit imxfb_remove(struct platform_device *pdev) | |||
| 885 | 898 | ||
| 886 | imxfb_disable_controller(fbi); | 899 | imxfb_disable_controller(fbi); |
| 887 | 900 | ||
| 901 | #ifdef PWMR_BACKLIGHT_AVAILABLE | ||
| 888 | imxfb_exit_backlight(fbi); | 902 | imxfb_exit_backlight(fbi); |
| 903 | #endif | ||
| 889 | unregister_framebuffer(info); | 904 | unregister_framebuffer(info); |
| 890 | 905 | ||
| 891 | pdata = pdev->dev.platform_data; | 906 | pdata = pdev->dev.platform_data; |
