• Jani Nikula's avatar
    drm/i915/backlight: fix CPU mode backlight takeover on LPT · bb83d5fb
    Jani Nikula authored
    The pch_get_backlight(), lpt_get_backlight(), and lpt_set_backlight()
    functions operate directly on the hardware registers. If inverting the
    value is needed, using intel_panel_compute_brightness(), it should only
    be done in the interface between hardware registers and
    panel->backlight.level.
    
    The CPU mode takeover code added in commit 5b1ec9ac
    ("drm/i915/backlight: Fix backlight takeover on LPT, v3.") reads the
    hardware register and converts to panel->backlight.level correctly,
    however the value written back should remain in the hardware register
    "domain".
    
    This hasn't been an issue, because GM45 machines are the only known
    users of i915.invert_brightness and the brightness invert quirk, and
    without one of them no conversion is made. It's likely nobody's ever hit
    the problem.
    
    Fixes: 5b1ec9ac ("drm/i915/backlight: Fix backlight takeover on LPT, v3.")
    Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
    Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Cc: Lyude Paul <lyude@redhat.com>
    Cc: <stable@vger.kernel.org> # v5.1+
    Reviewed-by: default avatarLyude Paul <lyude@redhat.com>
    Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20210108152841.6944-1-jani.nikula@intel.com
    (cherry picked from commit 0d4ced1c)
    Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
    bb83d5fb
intel_panel.c 65.9 KB