lkml.org 
[lkml]   [2011]   [Sep]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3/9] drm/i915: Only use VBT panel mode on eDP if no EDID is found
    Date
    We're going to assume that EDID is more reliable than the VBT tables
    for eDP panels, which is notably true on MacBook machines where the
    VBT contains completely bogus data.

    Signed-off-by: Keith Packard <keithp@keithp.com>
    ---
    drivers/gpu/drm/i915/intel_dp.c | 20 ++++++++++----------
    1 files changed, 10 insertions(+), 10 deletions(-)

    diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
    index f0cfb6b..8ab2a88 100644
    --- a/drivers/gpu/drm/i915/intel_dp.c
    +++ b/drivers/gpu/drm/i915/intel_dp.c
    @@ -1748,7 +1748,16 @@ static int intel_dp_get_modes(struct drm_connector *connector)

    /* if eDP has no EDID, try to use fixed panel mode from VBT */
    if (is_edp(intel_dp)) {
    - if (dev_priv->panel_fixed_mode != NULL) {
    + /* initialize panel mode from VBT if available for eDP */
    + if (dev_priv->panel_fixed_mode == NULL && dev_priv->lfp_lvds_vbt_mode != NULL) {
    + dev_priv->panel_fixed_mode =
    + drm_mode_duplicate(dev, dev_priv->lfp_lvds_vbt_mode);
    + if (dev_priv->panel_fixed_mode) {
    + dev_priv->panel_fixed_mode->type |=
    + DRM_MODE_TYPE_PREFERRED;
    + }
    + }
    + if (dev_priv->panel_fixed_mode) {
    struct drm_display_mode *mode;
    mode = drm_mode_duplicate(dev, dev_priv->panel_fixed_mode);
    drm_mode_probed_add(connector, mode);
    @@ -2061,15 +2070,6 @@ intel_dp_init(struct drm_device *dev, int output_reg)
    intel_encoder->hot_plug = intel_dp_hot_plug;

    if (is_edp(intel_dp)) {
    - /* initialize panel mode from VBT if available for eDP */
    - if (dev_priv->lfp_lvds_vbt_mode) {
    - dev_priv->panel_fixed_mode =
    - drm_mode_duplicate(dev, dev_priv->lfp_lvds_vbt_mode);
    - if (dev_priv->panel_fixed_mode) {
    - dev_priv->panel_fixed_mode->type |=
    - DRM_MODE_TYPE_PREFERRED;
    - }
    - }
    dev_priv->int_edp_connector = connector;
    intel_panel_setup_backlight(dev);
    }
    --
    1.7.6.3


    \
     
     \ /
      Last update: 2011-09-20 00:25    [W:0.023 / U:63.296 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site