From patchwork Fri Jul 2 08:44:23 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?b?VGhvbWFzIELDg8KkY2hsZXI=?= X-Patchwork-Id: 109837 Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by demeter.kernel.org (8.14.4/8.14.3) with ESMTP id o628isHq031352 for ; Fri, 2 Jul 2010 08:45:39 GMT Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 218BE9EEB8 for ; Fri, 2 Jul 2010 01:44:54 -0700 (PDT) X-Original-To: intel-gfx@lists.freedesktop.org Delivered-To: intel-gfx@lists.freedesktop.org Received: from archlinux.org (gerolde.archlinux.org [66.211.214.132]) by gabe.freedesktop.org (Postfix) with ESMTP id 4C9409E7D7 for ; Fri, 2 Jul 2010 01:44:45 -0700 (PDT) Received: from localhost.localdomain (81-035.eduroam.RWTH-Aachen.DE [134.61.81.35]) by archlinux.org (Postfix) with ESMTPSA id 5ED21906EA; Fri, 2 Jul 2010 04:44:34 -0400 (EDT) From: =?UTF-8?q?Thomas=20B=C3=A4chler?= To: eric@anholt.net Date: Fri, 2 Jul 2010 10:44:23 +0200 Message-Id: <1278060263-4507-1-git-send-email-thomas@archlinux.org> X-Mailer: git-send-email 1.7.1.1 In-Reply-To: <87d3v625bp.fsf@pollan.anholt.net> References: <87d3v625bp.fsf@pollan.anholt.net> MIME-Version: 1.0 Cc: intel-gfx@lists.freedesktop.org Subject: [Intel-gfx] [PATCH] gpu/drm/i915: Add a blacklist to omit modeset on LID open X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces+patchwork-intel-gfx=patchwork.kernel.org@lists.freedesktop.org Errors-To: intel-gfx-bounces+patchwork-intel-gfx=patchwork.kernel.org@lists.freedesktop.org X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.3 (demeter.kernel.org [140.211.167.41]); Fri, 02 Jul 2010 08:45:39 +0000 (UTC) X-MIME-Autoconverted: from base64 to 8bit by demeter.kernel.org id o628isHq031352 diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c index 31df55f..0eab8df 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; +} + +/* 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;