From patchwork Tue Aug 18 05:24:29 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Torokhov X-Patchwork-Id: 42265 Received: from vger.kernel.org (vger.kernel.org [209.132.176.167]) by demeter.kernel.org (8.14.2/8.14.2) with ESMTP id n7I5OlQL018768 for ; Tue, 18 Aug 2009 05:24:47 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751420AbZHRFYh (ORCPT ); Tue, 18 Aug 2009 01:24:37 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751492AbZHRFYh (ORCPT ); Tue, 18 Aug 2009 01:24:37 -0400 Received: from rv-out-0506.google.com ([209.85.198.229]:3711 "EHLO rv-out-0506.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751420AbZHRFYg (ORCPT ); Tue, 18 Aug 2009 01:24:36 -0400 Received: by rv-out-0506.google.com with SMTP id f6so929637rvb.1 for ; Mon, 17 Aug 2009 22:24:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:date:from:to:cc:subject :references:mime-version:content-type:content-disposition :in-reply-to:user-agent:message-id; bh=aXkm7ogJ3kc3RneEKV+rMFJD0GnD4h6nq7XLm/jaX/w=; b=J+GDeKB4iwVnF1ByKY0dKOtbMDRD36NkIxIHUmbFrPSeqFIcNb4C/eQr6seopvv7uo pLFJsnS98VVJkK6ZNDvivUZ39/seBHc76ZhSYZ5ubgT1NDXbbSOHgF9dat6u43BQOFs1 W1PdJ7rfCDPT/f0PO9yeHmj/61XR5LNvkrvBQ= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=date:from:to:cc:subject:references:mime-version:content-type :content-disposition:in-reply-to:user-agent:message-id; b=J8B4Opui7zjUunCg+2tNRgJHS1vwMyIJAm0XigvvLMBI9pA91ySD3SCIYLWSjMUV11 S6OOdvf14nIO9878xjODeqStjw+lDSiir2QQD2cIuWlDeOe1yis3SvHEoKR3tJdA6WuD U3DhNzXz+QyOpklbfaHTCU9wAUiNpAfDke7Yw= Received: by 10.140.131.5 with SMTP id e5mr2953865rvd.205.1250573074933; Mon, 17 Aug 2009 22:24:34 -0700 (PDT) Received: from mailhub.coreip.homeip.net (c-24-6-153-137.hsd1.ca.comcast.net [24.6.153.137]) by mx.google.com with ESMTPS id g31sm16748964rvb.56.2009.08.17.22.24.32 (version=TLSv1/SSLv3 cipher=RC4-MD5); Mon, 17 Aug 2009 22:24:33 -0700 (PDT) Date: Mon, 17 Aug 2009 22:24:29 -0700 From: Dmitry Torokhov To: Eugeniy Meshcheryakov Cc: linux-input@vger.kernel.org Subject: Re: [PATCH] input: i8042 - add Acer Aspire 5536 to the noloop list References: <1250471002-20780-1-git-send-email-eugen@debian.org> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <1250471002-20780-1-git-send-email-eugen@debian.org> User-Agent: Mutt/1.5.19 (2009-01-05) Message-Id: <20090818055542.CB3F6526EA5@mailhub.coreip.homeip.net> Sender: linux-input-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-input@vger.kernel.org On Mon, Aug 17, 2009 at 03:03:22AM +0200, Eugeniy Meshcheryakov wrote: > Without this patch it is not possible to reenable touchpad > after disabling it using disable button. Applied, thank you Eugeniy. However for 2.6.32 I am looking for more generic solution, could you please try the patch below (without yours applied)? Thanks! diff --git a/drivers/input/serio/i8042-x86ia64io.h b/drivers/input/serio/i8042-x86ia64io.h index ae04d8a..6747b9d 100644 --- a/drivers/input/serio/i8042-x86ia64io.h +++ b/drivers/input/serio/i8042-x86ia64io.h @@ -449,6 +449,34 @@ static struct dmi_system_id __initdata i8042_dmi_nopnp_table[] = { }, { } }; + +static struct dmi_system_id __initdata i8042_dmi_laptop_table[] = { + { + .ident = "Portable", + .matches = { + DMI_MATCH(DMI_CHASSIS_TYPE, "8"), /* Portable */ + }, + }, + { + .ident = "Laptop", + .matches = { + DMI_MATCH(DMI_CHASSIS_TYPE, "9"), /* Laptop */ + }, + }, + { + .ident = "Notebook", + .matches = { + DMI_MATCH(DMI_CHASSIS_TYPE, "10"), /* Notebook */ + }, + }, + { + .ident = "Sub-Notebook", + .matches = { + DMI_MATCH(DMI_CHASSIS_TYPE, "14"), /* Sub-Notebook */ + }, + }, + +}; #endif /* @@ -727,6 +755,12 @@ static int __init i8042_pnp_init(void) i8042_kbd_irq = i8042_pnp_kbd_irq; i8042_aux_irq = i8042_pnp_aux_irq; +#ifdef CONFIG_X86 + i8042_bypass_aux_irq_test = !i8042_noaux && + !pnp_data_busted && + dmi_check_system(i8042_dmi_laptop_table); +#endif + return 0; } diff --git a/drivers/input/serio/i8042.c b/drivers/input/serio/i8042.c index 9f5c050..b53a015 100644 --- a/drivers/input/serio/i8042.c +++ b/drivers/input/serio/i8042.c @@ -83,6 +83,8 @@ module_param_named(debug, i8042_debug, bool, 0600); MODULE_PARM_DESC(debug, "Turn i8042 debugging mode on and off"); #endif +static bool i8042_bypass_aux_irq_test; + #include "i8042.h" static DEFINE_SPINLOCK(i8042_lock); @@ -641,7 +643,7 @@ static int __devinit i8042_check_aux(void) * used it for a PCI card or somethig else. */ - if (i8042_noloop || aux_loop_broken) { + if (i8042_noloop || i8042_bypass_aux_irq_test || aux_loop_broken) { /* * Without LOOP command we can't test AUX IRQ delivery. Assume the port * is working and hope we are right.