aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_panel.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/i915/intel_panel.c')
-rw-r--r--drivers/gpu/drm/i915/intel_panel.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c
index 2e1338a5d488..5e6c888b4928 100644
--- a/drivers/gpu/drm/i915/intel_panel.c
+++ b/drivers/gpu/drm/i915/intel_panel.c
@@ -567,6 +567,7 @@ void intel_panel_set_backlight(struct intel_connector *connector, u32 level,
567 enum pipe pipe = intel_get_pipe_from_connector(connector); 567 enum pipe pipe = intel_get_pipe_from_connector(connector);
568 u32 freq; 568 u32 freq;
569 unsigned long flags; 569 unsigned long flags;
570 u64 n;
570 571
571 if (!panel->backlight.present || pipe == INVALID_PIPE) 572 if (!panel->backlight.present || pipe == INVALID_PIPE)
572 return; 573 return;
@@ -577,10 +578,9 @@ void intel_panel_set_backlight(struct intel_connector *connector, u32 level,
577 578
578 /* scale to hardware max, but be careful to not overflow */ 579 /* scale to hardware max, but be careful to not overflow */
579 freq = panel->backlight.max; 580 freq = panel->backlight.max;
580 if (freq < max) 581 n = (u64)level * freq;
581 level = level * freq / max; 582 do_div(n, max);
582 else 583 level = n;
583 level = freq / max * level;
584 584
585 panel->backlight.level = level; 585 panel->backlight.level = level;
586 if (panel->backlight.device) 586 if (panel->backlight.device)