On Wed,  9 Jun 2010 21:40:54 +0200
Thomas Bächler <tho...@archlinux.org> wrote:

> On some machines (currently only the Toshiba Tecra A11 is known), the GPU
> locks up when modeset is forced on LID open. This patch adds a new DMI
> blacklist and omits modesetting for all matches.
> 
> Fixes https://bugzilla.kernel.org/show_bug.cgi?id=15550
> ---
>  drivers/gpu/drm/i915/intel_lvds.c |   23 +++++++++++++++++++++++
>  1 files changed, 23 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_lvds.c 
> b/drivers/gpu/drm/i915/intel_lvds.c
> index 6a1accd..432b867 100644
> --- a/drivers/gpu/drm/i915/intel_lvds.c
> +++ b/drivers/gpu/drm/i915/intel_lvds.c
> @@ -599,6 +599,26 @@ static int intel_lvds_get_modes(struct drm_connector 
> *connector)
>       return 0;
>  }
>  
> +static int intel_no_modeset_on_lid_dmi_callback(const struct dmi_system_id 
> *id)
> +{
> +     DRM_DEBUG_KMS("Skipping forced modeset for %s\n", id->ident);
> +     return 1;
> +}
> +
> +/* These systems claim to have LVDS, but really don't */
> +static const struct dmi_system_id intel_no_modeset_on_lid[] = {
> +     {
> +             .callback = intel_no_modeset_on_lid_dmi_callback,
> +             .ident = "Toshiba Tecra A11",
> +             .matches = {
> +                     DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
> +                     DMI_MATCH(DMI_PRODUCT_NAME, "TECRA A11"),
> +             },
> +     },
> +
> +     { }     /* terminating entry */
> +};
> +
>  /*
>   * Lid events. Note the use of 'modeset_on_lid':
>   *  - we set it on lid close, and reset it on open
> @@ -622,6 +642,9 @@ static int intel_lid_notify(struct notifier_block *nb, 
> unsigned long val,
>        */
>       if (connector)
>               connector->status = connector->funcs->detect(connector);
> +     /* Don't force modeset on machines where it causes a GPU lockup */
> +     if (dmi_check_system(intel_no_modeset_on_lid))
> +             return NOTIFY_OK;
>       if (!acpi_lid_open()) {
>               dev_priv->modeset_on_lid = 1;
>               return NOTIFY_OK;

Other than the comment issue, this one looks fine to me.  We just can't
seem to win when it comes to lid handling...

Reviewed-by: Jesse Barnes <jbar...@virtuousgeek.org>

-- 
Jesse Barnes, Intel Open Source Technology Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to