[Intel-gfx] [PATCH] Don't add panel_fixed_mode to the probed modes list at LVDS init time.

Jesse Barnes jbarnes at virtuousgeek.org
Thu Feb 12 22:17:58 CET 2009


On Thursday, February 12, 2009 11:34 am Steve Aarnio wrote:
> In the case where no EDID data is read from the device adding the
> panel_fixed_mode pointer to the probed modes list causes data corruption.
>
> If the panel_fixed_mode pointer is added to the probed modes list at
> init time, a copy of the mode is added again at drm_get_modes() request
> time.  Then, the panel_fixed_mode pointer is freed because it is seen as
> a duplicate mode.  Unfortunately, this pointer is still stored and used
> in mode_fixup().
>
> Because the panel_fixed_mode data is copied and returned at
> drm_get_modes() time, it is unnecessary to add this information at init
> time.
>
> ---
>   drivers/gpu/drm/i915/intel_lvds.c |    2 --
>   1 files changed, 0 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_lvds.c
> b/drivers/gpu/drm/i915/intel_lvds.c
> index 6d4f912..0d211af 100644
> --- a/drivers/gpu/drm/i915/intel_lvds.c
> +++ b/drivers/gpu/drm/i915/intel_lvds.c
> @@ -481,8 +481,6 @@ void intel_lvds_init(struct drm_device *dev)
>   		if (dev_priv->panel_fixed_mode) {
>   			dev_priv->panel_fixed_mode->type |=
>   				DRM_MODE_TYPE_PREFERRED;
> -			drm_mode_probed_add(connector,
> -				dev_priv->panel_fixed_mode);
>   			goto out;
>   		}
>   	}

Looks good, we should get this upstream asap.  Something we could do in the 
future to clean things up a bit more would be to make the VBT mode detection 
dynamic (no more "panel_fixed_mode" field in dev_priv), but until then we'll 
need to handle it specially.

Acked-by: Jesse Barnes <jbarnes at virtuousgeek.org>

Thanks,
-- 
Jesse Barnes, Intel Open Source Technology Center



More information about the Intel-gfx mailing list