lkml.org 
[lkml]   [2016]   [Nov]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Date
    Subject[PATCH 3.16 158/346] drm/i915/dp: Revert "drm/i915/dp: fall back to 18 bpp when sink capability is unknown"
    3.16.39-rc1 review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Mario Kleiner <mario.kleiner.de@gmail.com>

    commit 196f954e250943df414efd3d632254c29be38e59 upstream.

    This reverts commit 013dd9e03872
    ("drm/i915/dp: fall back to 18 bpp when sink capability is unknown")

    This commit introduced a regression into stable kernels,
    as it reduces output color depth to 6 bpc for any video
    sink connected to a Displayport connector if that sink
    doesn't report a specific color depth via EDID, or if
    our EDID parser doesn't actually recognize the proper
    bpc from EDID.

    Affected are active DisplayPort->VGA converters and
    active DisplayPort->DVI converters. Both should be
    able to handle 8 bpc, but are degraded to 6 bpc with
    this patch.

    The reverted commit was meant to fix
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=105331

    A followup patch implements a fix for that specific bug,
    which is caused by a faulty EDID of the affected DP panel
    by adding a new EDID quirk for that panel.

    DP 18 bpp fallback handling and other improvements to
    DP sink bpc detection will be handled for future
    kernels in a separate series of patches.

    Please backport to stable.

    Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
    Acked-by: Jani Nikula <jani.nikula@intel.com>
    Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    ---
    drivers/gpu/drm/i915/intel_display.c | 20 +++++---------------
    1 file changed, 5 insertions(+), 15 deletions(-)

    --- a/drivers/gpu/drm/i915/intel_display.c
    +++ b/drivers/gpu/drm/i915/intel_display.c
    @@ -9475,21 +9475,11 @@ connected_sink_compute_bpp(struct intel_
    pipe_config->pipe_bpp = connector->base.display_info.bpc*3;
    }

    - /* Clamp bpp to default limit on screens without EDID 1.4 */
    - if (connector->base.display_info.bpc == 0) {
    - int type = connector->base.connector_type;
    - int clamp_bpp = 24;
    -
    - /* Fall back to 18 bpp when DP sink capability is unknown. */
    - if (type == DRM_MODE_CONNECTOR_DisplayPort ||
    - type == DRM_MODE_CONNECTOR_eDP)
    - clamp_bpp = 18;
    -
    - if (bpp > clamp_bpp) {
    - DRM_DEBUG_KMS("clamping display bpp (was %d) to default limit of %d\n",
    - bpp, clamp_bpp);
    - pipe_config->pipe_bpp = clamp_bpp;
    - }
    + /* Clamp bpp to 8 on screens without EDID 1.4 */
    + if (connector->base.display_info.bpc == 0 && bpp > 24) {
    + DRM_DEBUG_KMS("clamping display bpp (was %d) to default limit of 24\n",
    + bpp);
    + pipe_config->pipe_bpp = 24;
    }
    }

    \
     
     \ /
      Last update: 2016-11-14 03:39    [W:4.077 / U:0.424 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site