mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
To: Len Brown <lenb@kernel.org>
Cc: linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org,
	Chris Wedgwood <cw@f00f.org>,
	ibm-acpi-devel@lists.sourceforge.net,
	kristen.c.accardi@intel.com
Subject: [PATCH] ACPI: ibm-acpi: allow module to load when acpi notifiers can't be set (v2)
Date: Thu, 15 Mar 2007 16:15:06 -0300	[thread overview]
Message-ID: <20070315191506.GA14394@khazad-dum.debian.net> (raw)
In-Reply-To: <20070315175113.GA6596@khazad-dum.debian.net>

This patch allows for ibm-acpi to coexist (with diminished functionality) with
other drivers like ACPI_BAY.  ibm-acpi will simply disable the functions it is
not able to register ACPI notifiers for.

Signed-off-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Cc: Chris Wedgwood <cw@f00f.org>
Cc: Kristen Carlson Accardi <kristen.c.accardi@intel.com>
---

 There was a minor problem in the first version of the patch, which I didn't
 notice when backporting from acpi-test.  This is a fixed version.  Sorry
 about this.

 Len, you can pull this patch from:
 git://repo.or.cz/linux-2.6/linux-acpi-2.6/ibm-acpi-2.6.git
 branch for-upstream/acpi-release
 
 Please send it to Linus for merge in 2.6.21.
 
 It will clash with the patches in acpi-test that are waiting for 2.6.22.
 I will rediff those, and send you a pull request when this patch
 gets accepted in mainline.

 drivers/acpi/ibm_acpi.c |   19 ++++++++++++++++---
 1 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/drivers/acpi/ibm_acpi.c b/drivers/acpi/ibm_acpi.c
index 3690136..dc10966 100644
--- a/drivers/acpi/ibm_acpi.c
+++ b/drivers/acpi/ibm_acpi.c
@@ -2507,7 +2507,7 @@ static int __init setup_notify(struct ibm_struct *ibm)
 	ret = acpi_bus_get_device(*ibm->handle, &ibm->device);
 	if (ret < 0) {
 		printk(IBM_ERR "%s device not present\n", ibm->name);
-		return 0;
+		return -ENODEV;
 	}
 
 	acpi_driver_data(ibm->device) = ibm;
@@ -2516,8 +2516,13 @@ static int __init setup_notify(struct ibm_struct *ibm)
 	status = acpi_install_notify_handler(*ibm->handle, ibm->type,
 					     dispatch_notify, ibm);
 	if (ACPI_FAILURE(status)) {
-		printk(IBM_ERR "acpi_install_notify_handler(%s) failed: %d\n",
-		       ibm->name, status);
+		if (status == AE_ALREADY_EXISTS) {
+			printk(IBM_NOTICE "another device driver is already handling %s events\n",
+				ibm->name);
+		} else {
+			printk(IBM_ERR "acpi_install_notify_handler(%s) failed: %d\n",
+				ibm->name, status);
+		}
 		return -ENODEV;
 	}
 	ibm->notify_installed = 1;
@@ -2553,6 +2558,8 @@ static int __init register_driver(struct ibm_struct *ibm)
 	return ret;
 }
 
+static void ibm_exit(struct ibm_struct *ibm);
+
 static int __init ibm_init(struct ibm_struct *ibm)
 {
 	int ret;
@@ -2594,6 +2601,12 @@ static int __init ibm_init(struct ibm_struct *ibm)
 
 	if (ibm->notify) {
 		ret = setup_notify(ibm);
+		if (ret == -ENODEV) {
+			printk(IBM_NOTICE "disabling subdriver %s\n",
+				ibm->name);
+			ibm_exit(ibm);
+			return 0;
+		}
 		if (ret < 0)
 			return ret;
 	}
-- 
1.5.0.3

-- 
  "One disk to rule them all, One disk to find them. One disk to bring
  them all and in the darkness grind them. In the Land of Redmond
  where the shadows lie." -- The Silicon Valley Tarot
  Henrique Holschuh

  reply	other threads:[~2007-03-15 19:15 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-03-15  7:10 [PATCH] ACPI_IBM_BAY can not coexist with ACPI_BAY Chris Wedgwood
2007-03-15 13:27 ` Henrique de Moraes Holschuh
2007-03-15 15:04 ` Henrique de Moraes Holschuh
2007-03-15 17:51 ` [PATCH] ACPI: ibm-acpi: allow module to load when acpi notifiers can't be set Henrique de Moraes Holschuh
2007-03-15 19:15   ` Henrique de Moraes Holschuh [this message]
2007-03-16  5:24     ` [PATCH] ACPI: ibm-acpi: allow module to load when acpi notifiers can't be set (v2) Len Brown
2007-03-15 19:17   ` [PATCH] ACPI: ibm-acpi: allow module to load when acpi notifiers can't be set Chris Wedgwood
2007-03-15 19:37     ` Kristen Carlson Accardi
2007-03-15 19:57       ` [ibm-acpi-devel] " Henrique de Moraes Holschuh
2007-03-15 21:57       ` Holger Macht
2007-03-15 19:39     ` Henrique de Moraes Holschuh
2007-03-15 19:26   ` Kristen Carlson Accardi
2007-03-15 19:48     ` [ibm-acpi-devel] " Henrique de Moraes Holschuh

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=20070315191506.GA14394@khazad-dum.debian.net \
    --to=hmh@hmh.eng.br \
    --cc=cw@f00f.org \
    --cc=ibm-acpi-devel@lists.sourceforge.net \
    --cc=kristen.c.accardi@intel.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

all inboxes | Powered by JetHome®