[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