public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Thomas Renninger <trenn@suse.de>
To: Luca Tettamanti <kronos.it@gmail.com>
Cc: Jean Delvare <khali@linux-fr.org>,
	Hans de Goede <hdegoede@redhat.com>,
	linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org,
	Len Brown <lenb@kernel.org>
Subject: [PATCH 2/2] RFC: ACPI: Set enforce_resources to strict if a ATK0110 device is found in namespace
Date: Mon, 2 Feb 2009 18:22:19 +0100	[thread overview]
Message-ID: <200902021822.20237.trenn@suse.de> (raw)
In-Reply-To: <68676e00902020338o7326ff7dx4efadf94ed534acf@mail.gmail.com>

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset="utf-8", Size: 6217 bytes --]

On Monday 02 February 2009 12:38:24 you wrote:> On Mon, Feb 2, 2009 at 10:11 AM, Jean Delvare <khali@linux-fr.org> wrote:> > On Sun, 1 Feb 2009 22:22:43 +0100, Luca Tettamanti wrote:> >> --- a/drivers/acpi/osl.c> >> +++ b/drivers/acpi/osl.c> >> @@ -1063,7 +1063,10 @@ __setup("acpi_wake_gpes_always_on",> >> acpi_wake_gpes_always_on_setup); * in arbitrary AML code and can> >> interfere with legacy drivers. * acpi_enforce_resources= can be set to:> >>   *> >> - *   - strict           (2)> >> + *   - auto             (2)> >> + *     -> detect possible conflicts with ACPI drivers and switch to> >> + *     strict if needed, otherwise act like lax> >> + *   - strict           (3)> >>   *     -> further driver trying to access the resources will not load> >>   *   - lax (default)    (1)> >>   *     -> further driver trying to access the resources will load, but> >> you @@ -1073,11 +1076,12 @@ __setup("acpi_wake_gpes_always_on",> >> acpi_wake_gpes_always_on_setup); *     -> ACPI Operation Region> >> resources will not be registered *> >>   */> >> -#define ENFORCE_RESOURCES_STRICT 2> >> +#define ENFORCE_RESOURCES_STRICT 3> >> +#define ENFORCE_RESOURCES_AUTO   2> >>  #define ENFORCE_RESOURCES_LAX    1> >>  #define ENFORCE_RESOURCES_NO     0> >> > I don't see any reason to change ENFORCE_RESOURCES_STRICT from 2 to 3.> > Just add ENFORCE_RESOURCES_AUTO as 3 and that's it, makes your patch> > smaller.>> There's an unspoken reason ;-) The options are ordered by> "strictness", I was experimenting with an API to export the parameter,> in order to move the code to a separate quirk file. Since it's not> relevant in this patch I'll back out the change.
And the other one, implementing the ATK0110 quirk.The same probably could be easy done now with video_detect.c.The video device HID should get added in scan.c again as suggested by Bjorn.Then the video_detect.c can go into quirks.c and get deleted.
What do you think?
     Thomas
---ACPI: Set enforce_resources to strict if a ATK0110 device is found in namespace
ATK0110 acpi driver on ASUS boards touches the hwmon HW via ACPI functions.Every native hwmon driver which tries to acquire resources which are alreadydefined as OperationRegions will not load on these boards by default.This avoids interference between non-atomic data/command register readsbetween the hwmon and the ATK0110 Asus ACPI drivers.
Signed-off-by: Thomas Renninger <trenn@suse.de>
diff --git a/drivers/acpi/acpi.h b/drivers/acpi/acpi.hindex 95e29ca..c08037e 100644--- a/drivers/acpi/acpi.h+++ b/drivers/acpi/acpi.h@@ -5,4 +5,28 @@  void __init acpi_device_quirks(void); +/* Check of resource interference between native drivers and ACPI+ * OperationRegions (SystemIO and System Memory only).+ * IO ports and memory declared in ACPI might be used by the ACPI subsystem+ * in arbitrary AML code and can interfere with legacy drivers.+ * acpi_enforce_resources= can be set to:+ *+ *   - strict           (2)+ *     -> further driver trying to access the resources will not load+ *   - lax (default)    (1)+ *     -> further driver trying to access the resources will load, but you+ *     get a system message that something might go wrong...+ *+ *   - no               (0)+ *     -> ACPI Operation Region resources will not be registered+ *+ */+#define ENFORCE_RESOURCES_AUTO   3+#define ENFORCE_RESOURCES_STRICT 2+#define ENFORCE_RESOURCES_LAX    1+#define ENFORCE_RESOURCES_NO     0++extern unsigned int acpi_enforce_resources;++ #endif /* _LINUX_LOCAL_ACPI_H */diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.cindex 6729a49..92e4226 100644--- a/drivers/acpi/osl.c+++ b/drivers/acpi/osl.c@@ -50,6 +50,7 @@ #include <acpi/acpi.h> #include <acpi/acpi_bus.h> #include <acpi/processor.h>+#include "acpi.h"  #define _COMPONENT		ACPI_OS_SERVICES ACPI_MODULE_NAME("osl");@@ -1057,27 +1058,7 @@ static int __init acpi_wake_gpes_always_on_setup(char *str)  __setup("acpi_wake_gpes_always_on", acpi_wake_gpes_always_on_setup); -/* Check of resource interference between native drivers and ACPI- * OperationRegions (SystemIO and System Memory only).- * IO ports and memory declared in ACPI might be used by the ACPI subsystem- * in arbitrary AML code and can interfere with legacy drivers.- * acpi_enforce_resources= can be set to:- *- *   - strict           (2)- *     -> further driver trying to access the resources will not load- *   - lax (default)    (1)- *     -> further driver trying to access the resources will load, but you- *     get a system message that something might go wrong...- *- *   - no               (0)- *     -> ACPI Operation Region resources will not be registered- *- */-#define ENFORCE_RESOURCES_STRICT 2-#define ENFORCE_RESOURCES_LAX    1-#define ENFORCE_RESOURCES_NO     0--static unsigned int acpi_enforce_resources = ENFORCE_RESOURCES_LAX;+unsigned int acpi_enforce_resources = ENFORCE_RESOURCES_AUTO;  static int __init acpi_enforce_resources_setup(char *str) {diff --git a/drivers/acpi/quirks.c b/drivers/acpi/quirks.cindex 844480e..a0d0731 100644--- a/drivers/acpi/quirks.c+++ b/drivers/acpi/quirks.c@@ -30,6 +30,20 @@ struct acpi_device_fixup { };  /*+ * ATK0110 is known to interfere with several hwmon drivers, as it also+ * reads temperture, fan, etc. on the same device hwmon drivers do.+ * Make sure possibly interfering hwmon/i2c/smbus drivers touching IO areas+ * which already got declared as ACPI Operation Regions cannot be loaded.+ */+int __init atk0110_interfere_fixups (struct acpi_device *dev) {++	printk ("Found device: %s\n", acpi_device_bid(dev));+	if (acpi_enforce_resources == ENFORCE_RESOURCES_AUTO)+		acpi_enforce_resources = ENFORCE_RESOURCES_STRICT;+	return 0;+}++/*  * Add a callback here if your module needs to process code after the ACPI  * core has parsed the DSDT and initialized all devices, but the code must  * be processed before module load time.@@ -37,6 +51,7 @@ struct acpi_device_fixup {  * before the driver is loaded.  */ const struct acpi_device_fixup __initdata fixup_table[] = {+	{ "ATK0110", atk0110_interfere_fixups }, };  static acpi_status __init\0ÿôèº{.nÇ+‰·Ÿ®‰­†+%ŠËÿ±éݶ\x17¥Šwÿº{.nÇ+‰·¥Š{±þG«éÿŠ{ayº\x1dʇڙë,j\a­¢f£¢·hšïêÿ‘êçz_è®\x03(­éšŽŠÝ¢j"ú\x1a¶^[m§ÿÿ¾\a«þG«éÿ¢¸?™¨è­Ú&£ø§~á¶iO•æ¬z·švØ^\x14\x04\x1a¶^[m§ÿÿÃ\fÿ¶ìÿ¢¸?–I¥

  parent reply	other threads:[~2009-02-02 17:23 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-01-25 21:05 [PATCH] ACPI: add "auto" to acpi_enforce_resources Luca Tettamanti
2009-01-26  8:37 ` Hans de Goede
2009-01-29 10:30 ` Thomas Renninger
2009-01-29 15:16   ` Luca Tettamanti
2009-01-29 16:29     ` Thomas Renninger
2009-01-29 18:58       ` Hans de Goede
2009-01-29 21:31         ` Jean Delvare
2009-01-30 14:29         ` Thomas Renninger
2009-02-01 21:22           ` Luca Tettamanti
2009-02-02  9:11             ` Jean Delvare
2009-02-02 11:38               ` Luca Tettamanti
2009-02-02 17:22                 ` [PATCH 1/2] RFC: ACPI: Interface for ACPI drivers to place quirk code which gets executed early Thomas Renninger
2009-02-02 20:22                   ` Luca Tettamanti
2009-02-03 13:08                     ` Thomas Renninger
2009-02-03 13:45                       ` Luca Tettamanti
2009-02-03 14:19                         ` Jean Delvare
2009-02-04 13:37                     ` Thomas Renninger
2009-02-02 17:22                 ` Thomas Renninger [this message]
2009-02-02 20:29                   ` [PATCH 2/2] RFC: ACPI: Set enforce_resources to strict if a ATK0110 device is found in namespace Luca Tettamanti
2009-02-02 11:38             ` [PATCH] ACPI: add "auto" to acpi_enforce_resources Thomas Renninger
2009-01-29 21:15       ` Luca Tettamanti
2009-02-04  5:52     ` Len Brown
2009-02-04  6:05       ` Matthew Garrett
2009-02-04  8:37         ` Hans de Goede
2009-02-04 13:17           ` Matthew Garrett
2009-02-04 13:26             ` Jean Delvare
2009-02-04 14:20               ` Matthew Garrett
2009-02-10 13:57                 ` Jean Delvare
2009-02-10 14:08                   ` Matthew Garrett
2009-02-10 15:32                     ` Hans de Goede
2009-02-10 16:24                       ` Jean Delvare
2009-02-27 13:27                         ` Pavel Machek
2009-03-24 12:39                           ` Luca Tettamanti
2009-03-24 13:21                             ` Hans de Goede
2009-03-24 13:43                               ` Jean Delvare
2009-03-24 14:29                                 ` Hans de Goede
2009-03-29 20:16                               ` Luca Tettamanti
2009-03-29 20:33                                 ` Pavel Machek
2009-03-29 20:55                                 ` Jean Delvare
2009-03-29 22:01                                   ` Luca Tettamanti
2009-03-30  7:36                                     ` Jean Delvare
2009-04-02 22:59                                     ` Len Brown
2009-04-03  9:40                                       ` Jean Delvare
2009-02-12 12:44                     ` Jean Delvare
2009-04-02 22:45         ` polling (Re: [PATCH] ACPI: add "auto" to acpi_enforce_resources) Len Brown

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200902021822.20237.trenn@suse.de \
    --to=trenn@suse.de \
    --cc=hdegoede@redhat.com \
    --cc=khali@linux-fr.org \
    --cc=kronos.it@gmail.com \
    --cc=lenb@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox