mirror of https://gitee.com/openkylin/linux.git
drivers/video/backlight/aat2870_bl.c: fix setting max_current
- Current implementation tests wrong value for setting aat2870_bl->max_current. - In the current implementation, we cannot differentiate between 2 cases: a) if pdata->max_current is not set , or b) pdata->max_current is set to AAT2870_CURRENT_0_45 (which is also 0). Fix it by setting AAT2870_CURRENT_0_45 to be 1 and adjust the equation in aat2870_brightness() accordingly. Signed-off-by: Axel Lin <axel.lin@gmail.com> Cc: Richard Purdie <rpurdie@rpsys.net> Cc: Samuel Ortiz <sameo@linux.intel.com> Tested-by: Jin Park <jinyoungp@nvidia.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
4c4dd903e7
commit
5d6f921b42
|
@ -44,7 +44,7 @@ static inline int aat2870_brightness(struct aat2870_bl_driver_data *aat2870_bl,
|
|||
struct backlight_device *bd = aat2870_bl->bd;
|
||||
int val;
|
||||
|
||||
val = brightness * aat2870_bl->max_current;
|
||||
val = brightness * (aat2870_bl->max_current - 1);
|
||||
val /= bd->props.max_brightness;
|
||||
|
||||
return val;
|
||||
|
@ -175,7 +175,7 @@ static int aat2870_bl_probe(struct platform_device *pdev)
|
|||
else
|
||||
aat2870_bl->channels = AAT2870_BL_CH_ALL;
|
||||
|
||||
if (pdata->max_brightness > 0)
|
||||
if (pdata->max_current > 0)
|
||||
aat2870_bl->max_current = pdata->max_current;
|
||||
else
|
||||
aat2870_bl->max_current = AAT2870_CURRENT_27_9;
|
||||
|
|
|
@ -89,7 +89,7 @@ enum aat2870_id {
|
|||
|
||||
/* Backlight current magnitude (mA) */
|
||||
enum aat2870_current {
|
||||
AAT2870_CURRENT_0_45,
|
||||
AAT2870_CURRENT_0_45 = 1,
|
||||
AAT2870_CURRENT_0_90,
|
||||
AAT2870_CURRENT_1_80,
|
||||
AAT2870_CURRENT_2_70,
|
||||
|
|
Loading…
Reference in New Issue