gpu/drm/i915: Add a blacklist to omit modeset on LID open
Subsystems (2)
PATCH 1/1 gpu/drm/i915: Add a blacklist to omit modeset on LID open
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(-)
drivers/gpu/drm/i915/intel_lvds.c +23 -0
@@ -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 ;
Signature · 1 line
1.7.1
Am 09.06.2010 21:40, schrieb Thomas Bächler:
drivers/gpu/drm/i915/intel_lvds.c static int intel_lvds_get_modes(struct drm_connector *connector) · line 610
Quoted 4 lines
drivers/gpu/drm/i915/intel_lvds.c +4
-0+ +/* These systems claim to have LVDS, but really don't */ +static const struct dmi_system_id intel_no_modeset_on_lid[] = { + {
I just noticed this copy and paste error - the comment is obviously wrong. You should probably change the comment before applying this patch, sorry for the inconvenience.
_______________________________________________
Intel-gfx mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
Quoted 41 lines · On Wed, 9 Jun 2010 21:40:54 +0200 Thomas Bächler <[email protected]> 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(-)drivers/gpu/drm/i915/intel_lvds.c +20
-0@@ -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
drivers/gpu/drm/i915/intel_lvds.c static int intel_lid_notify(struct notifier_block *nb, unsigned long val, · line 650
Quoted 9 lines
drivers/gpu/drm/i915/intel_lvds.c +3
-0@@ -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...
Signature · 5 lines
Jesse Barnes, Intel Open Source Technology Center _______________________________________________ Intel-gfx mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/intel-gfx
Quoted 5 lines · Thomas Bächler
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.
This one is still missing a Signed-off-by: (see Documentation/SubmittingPatches). Could you add that and re-send with the fixed comment?
_______________________________________________
Intel-gfx mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
PATCH 1/1 gpu/drm/i915: Add a blacklist to omit modeset on LID open
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(-)
drivers/gpu/drm/i915/intel_lvds.c +23 -0
@@ -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 ; +} + +/* The GPU hangs up on these systems if modeset is performed on LID open */ +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 ;
Signature · 6 lines
1.7.1.1 _______________________________________________ Intel-gfx mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/intel-gfx
Am 02.07.2010 00:41, schrieb Eric Anholt:
Quoted 10 lines · Thomas Bächler
Quoted 5 lines
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.
This one is still missing a Signed-off-by: (see
Documentation/SubmittingPatches). Could you add that and re-send with the fixed comment?
Oops, some day I'll get this right. Resent with the Signed-off-by. The comment was actually correct in my local git tree, I probably had fixed it in the meantime.
_______________________________________________
Intel-gfx mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
Eric Anholt
AppliedQuoted 8 lines · Thomas Bächler
Am 02.07.2010 00:41, schrieb Eric Anholt:
Quoted 7 lines · Thomas Bächler
Quoted 5 lines
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.
Quoted 7 lines
Quoted 3 lines
This one is still missing a Signed-off-by: (see
Documentation/SubmittingPatches). Could you add that and re-send with the fixed comment?Oops, some day I'll get this right. Resent with the Signed-off-by. The comment was actually correct in my local git tree, I probably had fixed it in the meantime.
Applied to for-linus. Thanks!
_______________________________________________
Intel-gfx mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/intel-gfx