All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] Allow more IDE power management
@ 2007-08-27 20:47 Ben Guthro
  0 siblings, 0 replies; only message in thread
From: Ben Guthro @ 2007-08-27 20:47 UTC (permalink / raw)
  To: qemu-devel

[-- Attachment #1: Type: text/plain, Size: 852 bytes --]

Made the QEMU IDE disk tolerate more power-mgmt commands, specifically:
   WIN_SETFEATURE(EN_AAM)    - enable automatic acoustic mgmt
   WIN_SETFEATURE(DIS_AAM)    - disable automatic acoustic mgmt
   WIN_STANDBY
   WIN_SETIDLE1
   WIN_SLEEPNOW1
   WIN_STANDBY2
   WIN_SETIDLE2
   WIN_SLEEPNOW2
   WIN_STANDBYNOW2
These are all essentially no-ops, like existing support for EN_RLA (enable
read lookahead) and WIN_STANDBYNOW1.

This fixes a crash in the SLES9-SP3 64bit kernel when the powersaved was
started (with ACPI or ACM).  This guest really only needs EN_AAM, DIS_APM,
and WIN_SETIDLE1 support, but the others seemed sensible to include.

I've excluded EN_APM since I'm unsure of what that's agreeing to do.  It's
probably ok to include.

Signed-off-by: Ben Guthro <bguthro@virtualiron.com>
Signed-off-by: David Lively <dlively@virtualiron.com>


[-- Attachment #2: qemu-ide-allow-more-powermgmt.patch --]
[-- Type: text/x-patch, Size: 1019 bytes --]

diff -r 106bc46793ca hw/ide.c
--- a/hw/ide.c	Mon Aug 27 16:20:33 2007 -0400
+++ b/hw/ide.c	Mon Aug 27 16:27:28 2007 -0400
@@ -1914,6 +1914,8 @@ static void ide_ioport_write(void *opaqu
             case 0x67: /* NOP */
             case 0x96: /* NOP */
             case 0x9a: /* NOP */
+	    case 0x42: /* enable Automatic Acoustic Mode */
+	    case 0xc2: /* disable Automatic Acoustic Mode */
                 s->status = READY_STAT | SEEK_STAT;
                 ide_set_irq(s);
                 break;
@@ -1952,12 +1954,16 @@ static void ide_ioport_write(void *opaqu
 	    s->status = READY_STAT;
             ide_set_irq(s);
             break;
+        case WIN_STANDBY:
+        case WIN_STANDBY2:
 	case WIN_STANDBYNOW1:
         case WIN_STANDBYNOW2:
         case WIN_IDLEIMMEDIATE:
         case CFA_IDLEIMMEDIATE:
         case WIN_SETIDLE1:
         case WIN_SETIDLE2:
+        case WIN_SLEEPNOW1:
+        case WIN_SLEEPNOW2:
 	    s->status = READY_STAT;
             ide_set_irq(s);
             break;

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2007-08-27 21:10 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-08-27 20:47 [Qemu-devel] [PATCH] Allow more IDE power management Ben Guthro

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.