public inbox for linux-acpi@vger.kernel.org
 help / color / mirror / Atom feed
* [GIT PULL] ibm-acpi patches for 2.6.21
@ 2007-02-06 21:13 Henrique de Moraes Holschuh
  2007-02-06 21:13 ` [PATCH 1/2] ACPI: ibm-acpi: add Ultrabay support for the T60p ThinkPad Henrique de Moraes Holschuh
  0 siblings, 1 reply; 5+ messages in thread
From: Henrique de Moraes Holschuh @ 2007-02-06 21:13 UTC (permalink / raw)
  To: Len Brown; +Cc: ibm-acpi-devel, linux-acpi

Please pull from git://repo.or.cz/linux-2.6/linux-acpi-2.6/ibm-acpi-2.6.git
branch for-upstream/acpi-release

To receive the following patches:

Henrique de Moraes Holschuh (1):
      ACPI: ibm-acpi: cleanup init and exit paths

Theodore Ts'o (1):
      ACPI: ibm-acpi: add Ultrabay support for the T60p ThinkPad

Please schedule these patches to be merged in mainline 2.6.21.

The patches are also going to be sent as replies to this email, for your
convenience.

-- 
  "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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 1/2] ACPI: ibm-acpi: add Ultrabay support for the T60p ThinkPad
  2007-02-06 21:13 [GIT PULL] ibm-acpi patches for 2.6.21 Henrique de Moraes Holschuh
@ 2007-02-06 21:13 ` Henrique de Moraes Holschuh
  2007-02-06 21:13   ` [PATCH 2/2] ACPI: ibm-acpi: cleanup init and exit paths Henrique de Moraes Holschuh
  2007-02-07 14:19   ` [PATCH 1/2] ACPI: ibm-acpi: add Ultrabay support for the T60p ThinkPad Henrique de Moraes Holschuh
  0 siblings, 2 replies; 5+ messages in thread
From: Henrique de Moraes Holschuh @ 2007-02-06 21:13 UTC (permalink / raw)
  To: Len Brown
  Cc: ibm-acpi-devel, linux-acpi, Theodore Ts'o,
	Henrique de Moraes Holschuh

From: Theodore Ts'o <tytso@mit.edu>

The following patch adds support for obtaining the status and ejecting
Ultrabay devices for the T60p Thinkpad; my guess is that it probably
works on T60 Thinkpads and probably more recent Lenovo latops as well.

With the 2.03 BIOS I have been able to eject a SATA drive in an Ultrabay
carrier by using the command:

  "echo 1 > /sys/class/scsi_device/1:0:0:0/device/delete"

and upon re-inserting the it back into the device and issuing the
command:

 "echo 0 0 0 > /sys/class/scsi_host/host1/scan"

have the device appear again.  (With the 1.02 BIOS the device does not
function when re-inserted, even after a warm boot; a cold reboot is
required to store the Ultrabay device's functionality.)

More complicated Ultrabay eject and insert scripts can be found on the
ThinkWiki, although it's important to comment out the "hdparm -Y" as it
apparently doesn't work or do anything, and causes the eject process to
hang for about a minute.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Cc: Whoopie <whoopie79@gmx.net>
Signed-off-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
---
 drivers/acpi/ibm_acpi.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/drivers/acpi/ibm_acpi.c b/drivers/acpi/ibm_acpi.c
index c6144ca..5c0f1b8 100644
--- a/drivers/acpi/ibm_acpi.c
+++ b/drivers/acpi/ibm_acpi.c
@@ -159,7 +159,8 @@ IBM_HANDLE(dock, root, "\\_SB.GDCK",	/* X30, X31, X40 */
 #endif
 IBM_HANDLE(bay, root, "\\_SB.PCI.IDE.SECN.MAST",	/* 570 */
 	   "\\_SB.PCI0.IDE0.IDES.IDSM",	/* 600e/x, 770e, 770x */
-	   "\\_SB.PCI0.SATA.SCND.MSTR",	/* T60, X60, Z60 */ 
+	   "\\_SB.PCI0.SATA.SCND.MSTR",	/* T60, X60, Z60, SATA mode? */
+	   "\\_SB.PCI0.IDE0.PRIM.MSTR", /* T60p, IDE mode? */
 	   "\\_SB.PCI0.IDE0.SCND.MSTR",	/* all others */
     );				/* A21e, R30, R31 */
 
-- 
1.4.4.4


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 2/2] ACPI: ibm-acpi: cleanup init and exit paths
  2007-02-06 21:13 ` [PATCH 1/2] ACPI: ibm-acpi: add Ultrabay support for the T60p ThinkPad Henrique de Moraes Holschuh
@ 2007-02-06 21:13   ` Henrique de Moraes Holschuh
  2007-02-09 20:40     ` Len Brown
  2007-02-07 14:19   ` [PATCH 1/2] ACPI: ibm-acpi: add Ultrabay support for the T60p ThinkPad Henrique de Moraes Holschuh
  1 sibling, 1 reply; 5+ messages in thread
From: Henrique de Moraes Holschuh @ 2007-02-06 21:13 UTC (permalink / raw)
  To: Len Brown; +Cc: ibm-acpi-devel, linux-acpi, Henrique de Moraes Holschuh

This patch fixes a small memory leak on module removal, and does other
assorted minor cleanups on the module init codepath.

Signed-off-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
---
 drivers/acpi/ibm_acpi.c |   13 ++++++++-----
 1 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/drivers/acpi/ibm_acpi.c b/drivers/acpi/ibm_acpi.c
index 5c0f1b8..20cbde5 100644
--- a/drivers/acpi/ibm_acpi.c
+++ b/drivers/acpi/ibm_acpi.c
@@ -497,6 +497,10 @@ static int ibm_acpi_driver_init(void)
 	printk(IBM_INFO "%s v%s\n", IBM_DESC, IBM_VERSION);
 	printk(IBM_INFO "%s\n", IBM_URL);
 
+	if (ibm_thinkpad_ec_found)
+		printk(IBM_INFO "ThinkPad EC firmware %s\n",
+		       ibm_thinkpad_ec_found);
+
 	return 0;
 }
 
@@ -2618,7 +2622,7 @@ static void __init ibm_handle_init(char *name,
 	ibm_handle_init(#object, &object##_handle, *object##_parent,	\
 		object##_paths, ARRAY_SIZE(object##_paths), &object##_path)
 
-static int set_ibm_param(const char *val, struct kernel_param *kp)
+static int __init set_ibm_param(const char *val, struct kernel_param *kp)
 {
 	unsigned int i;
 
@@ -2660,7 +2664,8 @@ static void acpi_ibm_exit(void)
 	for (i = ARRAY_SIZE(ibms) - 1; i >= 0; i--)
 		ibm_exit(&ibms[i]);
 
-	remove_proc_entry(IBM_DIR, acpi_root_dir);
+	if (proc_dir)
+		remove_proc_entry(IBM_DIR, acpi_root_dir);
 
 	if (ibm_thinkpad_ec_found)
 		kfree(ibm_thinkpad_ec_found);
@@ -2711,9 +2716,6 @@ static int __init acpi_ibm_init(void)
 
 	/* Models with newer firmware report the EC in DMI */
 	ibm_thinkpad_ec_found = check_dmi_for_ec();
-	if (ibm_thinkpad_ec_found)
-		printk(IBM_INFO "ThinkPad EC firmware %s\n",
-		       ibm_thinkpad_ec_found);
 
 	/* these handles are not required */
 	IBM_HANDLE_INIT(vid);
@@ -2743,6 +2745,7 @@ static int __init acpi_ibm_init(void)
 	proc_dir = proc_mkdir(IBM_DIR, acpi_root_dir);
 	if (!proc_dir) {
 		printk(IBM_ERR "unable to create proc dir %s", IBM_DIR);
+		acpi_ibm_exit();
 		return -ENODEV;
 	}
 	proc_dir->owner = THIS_MODULE;
-- 
1.4.4.4


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/2] ACPI: ibm-acpi: add Ultrabay support for the T60p ThinkPad
  2007-02-06 21:13 ` [PATCH 1/2] ACPI: ibm-acpi: add Ultrabay support for the T60p ThinkPad Henrique de Moraes Holschuh
  2007-02-06 21:13   ` [PATCH 2/2] ACPI: ibm-acpi: cleanup init and exit paths Henrique de Moraes Holschuh
@ 2007-02-07 14:19   ` Henrique de Moraes Holschuh
  1 sibling, 0 replies; 5+ messages in thread
From: Henrique de Moraes Holschuh @ 2007-02-07 14:19 UTC (permalink / raw)
  To: Len Brown; +Cc: ibm-acpi-devel, linux-acpi, Theodore Ts'o

On Tue, 06 Feb 2007, Henrique de Moraes Holschuh wrote:
>  IBM_HANDLE(bay, root, "\\_SB.PCI.IDE.SECN.MAST",	/* 570 */
>  	   "\\_SB.PCI0.IDE0.IDES.IDSM",	/* 600e/x, 770e, 770x */
> -	   "\\_SB.PCI0.SATA.SCND.MSTR",	/* T60, X60, Z60 */ 
> +	   "\\_SB.PCI0.SATA.SCND.MSTR",	/* T60, X60, Z60, SATA mode? */
> +	   "\\_SB.PCI0.IDE0.PRIM.MSTR", /* T60p, IDE mode? */
>  	   "\\_SB.PCI0.IDE0.SCND.MSTR",	/* all others */
>      );				/* A21e, R30, R31 */

Unfortunately, a bad design bug makes earlier entries in this list that
happen to exist shadow any later entries, which is completely unaceptable
behaviour for the bay support as earlier entries *will* exist in some
models, no matter how you order the list.

Len, if you have not pulled this one yet, please hold the pull request.  I
will not revert the patch, but rather work on a proper fix to ibm-acpi's
bay_init().

-- 
  "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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 2/2] ACPI: ibm-acpi: cleanup init and exit paths
  2007-02-06 21:13   ` [PATCH 2/2] ACPI: ibm-acpi: cleanup init and exit paths Henrique de Moraes Holschuh
@ 2007-02-09 20:40     ` Len Brown
  0 siblings, 0 replies; 5+ messages in thread
From: Len Brown @ 2007-02-09 20:40 UTC (permalink / raw)
  To: Henrique de Moraes Holschuh; +Cc: ibm-acpi-devel, linux-acpi

Applied.

thanks,
-Len

On Tuesday 06 February 2007 16:13, Henrique de Moraes Holschuh wrote:
> This patch fixes a small memory leak on module removal, and does other
> assorted minor cleanups on the module init codepath.
> 
> Signed-off-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
> ---
>  drivers/acpi/ibm_acpi.c |   13 ++++++++-----
>  1 files changed, 8 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/acpi/ibm_acpi.c b/drivers/acpi/ibm_acpi.c
> index 5c0f1b8..20cbde5 100644
> --- a/drivers/acpi/ibm_acpi.c
> +++ b/drivers/acpi/ibm_acpi.c
> @@ -497,6 +497,10 @@ static int ibm_acpi_driver_init(void)
>  	printk(IBM_INFO "%s v%s\n", IBM_DESC, IBM_VERSION);
>  	printk(IBM_INFO "%s\n", IBM_URL);
>  
> +	if (ibm_thinkpad_ec_found)
> +		printk(IBM_INFO "ThinkPad EC firmware %s\n",
> +		       ibm_thinkpad_ec_found);
> +
>  	return 0;
>  }
>  
> @@ -2618,7 +2622,7 @@ static void __init ibm_handle_init(char *name,
>  	ibm_handle_init(#object, &object##_handle, *object##_parent,	\
>  		object##_paths, ARRAY_SIZE(object##_paths), &object##_path)
>  
> -static int set_ibm_param(const char *val, struct kernel_param *kp)
> +static int __init set_ibm_param(const char *val, struct kernel_param *kp)
>  {
>  	unsigned int i;
>  
> @@ -2660,7 +2664,8 @@ static void acpi_ibm_exit(void)
>  	for (i = ARRAY_SIZE(ibms) - 1; i >= 0; i--)
>  		ibm_exit(&ibms[i]);
>  
> -	remove_proc_entry(IBM_DIR, acpi_root_dir);
> +	if (proc_dir)
> +		remove_proc_entry(IBM_DIR, acpi_root_dir);
>  
>  	if (ibm_thinkpad_ec_found)
>  		kfree(ibm_thinkpad_ec_found);
> @@ -2711,9 +2716,6 @@ static int __init acpi_ibm_init(void)
>  
>  	/* Models with newer firmware report the EC in DMI */
>  	ibm_thinkpad_ec_found = check_dmi_for_ec();
> -	if (ibm_thinkpad_ec_found)
> -		printk(IBM_INFO "ThinkPad EC firmware %s\n",
> -		       ibm_thinkpad_ec_found);
>  
>  	/* these handles are not required */
>  	IBM_HANDLE_INIT(vid);
> @@ -2743,6 +2745,7 @@ static int __init acpi_ibm_init(void)
>  	proc_dir = proc_mkdir(IBM_DIR, acpi_root_dir);
>  	if (!proc_dir) {
>  		printk(IBM_ERR "unable to create proc dir %s", IBM_DIR);
> +		acpi_ibm_exit();
>  		return -ENODEV;
>  	}
>  	proc_dir->owner = THIS_MODULE;

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2007-02-09 20:51 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-02-06 21:13 [GIT PULL] ibm-acpi patches for 2.6.21 Henrique de Moraes Holschuh
2007-02-06 21:13 ` [PATCH 1/2] ACPI: ibm-acpi: add Ultrabay support for the T60p ThinkPad Henrique de Moraes Holschuh
2007-02-06 21:13   ` [PATCH 2/2] ACPI: ibm-acpi: cleanup init and exit paths Henrique de Moraes Holschuh
2007-02-09 20:40     ` Len Brown
2007-02-07 14:19   ` [PATCH 1/2] ACPI: ibm-acpi: add Ultrabay support for the T60p ThinkPad Henrique de Moraes Holschuh

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox