From 88e3b826b3557bd835115ef69f5a060c7309a9fc Mon Sep 17 00:00:00 2001 From: yzq Date: Sat, 3 Nov 2012 16:18:28 +0800 Subject: [PATCH] backlight: add get_backlight_status api for fb backlight ctrl --- drivers/video/backlight/rk29_backlight.c | 6 ++++++ drivers/video/rockchip/rk_fb.c | 4 +++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/drivers/video/backlight/rk29_backlight.c b/drivers/video/backlight/rk29_backlight.c index cdae8a9332e5..b1292464b2a9 100755 --- a/drivers/video/backlight/rk29_backlight.c +++ b/drivers/video/backlight/rk29_backlight.c @@ -220,6 +220,12 @@ static struct early_suspend bl_early_suspend = { .level = EARLY_SUSPEND_LEVEL_BLANK_SCREEN - 1, }; +bool rk29_get_backlight_status() +{ + return (rk29_bl->props.state & BL_CORE_DRIVER1)?true:false; +} +EXPORT_SYMBOL(rk29_get_backlight_status); + void rk29_backlight_set(bool on) { printk("%s: set %d\n", __func__, on); diff --git a/drivers/video/rockchip/rk_fb.c b/drivers/video/rockchip/rk_fb.c index a71f8a75e281..cf44ce11fc64 100644 --- a/drivers/video/rockchip/rk_fb.c +++ b/drivers/video/rockchip/rk_fb.c @@ -34,6 +34,7 @@ #include void rk29_backlight_set(bool on); +bool rk29_get_backlight_status(void); #ifdef FB_WIMO_FLAG int (*video_data_to_wimo)(struct fb_info *info,u32 yuv_phy[2]) = NULL; @@ -628,6 +629,7 @@ int rk_fb_switch_screen(rk_screen *screen ,int enable ,int lcdc_id) int ret; int i; int layer_id; + bool backlight_status = rk29_get_backlight_status(); #if defined(CONFIG_ONE_LCDC_DUAL_OUTPUT_INF) rk29_backlight_set(0); @@ -761,7 +763,7 @@ int rk_fb_switch_screen(rk_screen *screen ,int enable ,int lcdc_id) #if defined(CONFIG_NO_DUAL_DISP) //close backlight for device whic do not support dual display rk29_backlight_set(!enable); #elif defined(CONFIG_ONE_LCDC_DUAL_OUTPUT_INF) //close backlight for device whic do not support dual display - if(enable) + if(backlight_status == true) rk29_backlight_set(1); #endif return 0; -- 2.34.1