* [patch 1/2] ahci: Dont start port DMA engines unless a device is present [not found] <20080325221646.567639335@intel.com> @ 2008-03-25 22:28 ` Kristen Carlson Accardi 2008-04-12 4:21 ` Jeff Garzik 2008-03-25 22:28 ` [patch 2/2] libata: power off unused ports Kristen Carlson Accardi 1 sibling, 1 reply; 9+ messages in thread From: Kristen Carlson Accardi @ 2008-03-25 22:28 UTC (permalink / raw) To: jeff; +Cc: linux-ide, arjan, Kristen Carlson Accardi According to the AHCI spec, you should not set PxCMD.ST unless a functional device is present, as determined by PxTFD.STS.BSY=0, PxTFD.STS.DRQ=0, and PxSSTS.DET = 3. Signed-off-by: Kristen Carlson Accardi <kristen.c.accardi@intel.com> Index: linux-2.6.25-rc3/drivers/ata/ahci.c =================================================================== --- linux-2.6.25-rc3.orig/drivers/ata/ahci.c +++ linux-2.6.25-rc3/drivers/ata/ahci.c @@ -783,11 +783,40 @@ static int ahci_scr_write(struct ata_por return -EINVAL; } +static int ahci_is_device_present(struct ata_port *ap) +{ + void __iomem *port_mmio = ahci_port_base(ap); + u8 status; + + /* Make sure PxTFD.STS.BSY and PxTFD.STS.DRQ are 0 */ + status = ahci_check_status(ap); + if (status & (ATA_BUSY | ATA_DRQ)) + return 0; + + /* Make sure PxSSTS.DET is 3h */ + status = readl(port_mmio + PORT_SCR_STAT); + status &= 0xf; + if ((status & 0xf) != 3) + return 0; + return 1; +} + static void ahci_start_engine(struct ata_port *ap) { void __iomem *port_mmio = ahci_port_base(ap); u32 tmp; + /* + * See AHCI specification 1.2 section 10.1.2 + * + * Software shall not set PxCMD.ST to '1' until it is + * determined that a functional device is present on + * the port, as determined by PxTFD.STS.BSY = '0', + * PxTFD.STS.DRQ = '0', PxSSTS.DET = 3h + */ + if (!ahci_is_device_present(ap)) + return; + /* start DMA */ tmp = readl(port_mmio + PORT_CMD); tmp |= PORT_CMD_START; -- ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [patch 1/2] ahci: Dont start port DMA engines unless a device is present 2008-03-25 22:28 ` [patch 1/2] ahci: Dont start port DMA engines unless a device is present Kristen Carlson Accardi @ 2008-04-12 4:21 ` Jeff Garzik 0 siblings, 0 replies; 9+ messages in thread From: Jeff Garzik @ 2008-04-12 4:21 UTC (permalink / raw) To: Kristen Carlson Accardi; +Cc: linux-ide, arjan Kristen Carlson Accardi wrote: > According to the AHCI spec, you should not set PxCMD.ST unless > a functional device is present, as determined by PxTFD.STS.BSY=0, > PxTFD.STS.DRQ=0, and PxSSTS.DET = 3. > > Signed-off-by: Kristen Carlson Accardi <kristen.c.accardi@intel.com> > > Index: linux-2.6.25-rc3/drivers/ata/ahci.c > =================================================================== > --- linux-2.6.25-rc3.orig/drivers/ata/ahci.c > +++ linux-2.6.25-rc3/drivers/ata/ahci.c > @@ -783,11 +783,40 @@ static int ahci_scr_write(struct ata_por > return -EINVAL; > } > > +static int ahci_is_device_present(struct ata_port *ap) > +{ > + void __iomem *port_mmio = ahci_port_base(ap); > + u8 status; > + > + /* Make sure PxTFD.STS.BSY and PxTFD.STS.DRQ are 0 */ > + status = ahci_check_status(ap); > + if (status & (ATA_BUSY | ATA_DRQ)) > + return 0; > + > + /* Make sure PxSSTS.DET is 3h */ > + status = readl(port_mmio + PORT_SCR_STAT); > + status &= 0xf; > + if ((status & 0xf) != 3) > + return 0; > + return 1; > +} > + > static void ahci_start_engine(struct ata_port *ap) > { > void __iomem *port_mmio = ahci_port_base(ap); > u32 tmp; > > + /* > + * See AHCI specification 1.2 section 10.1.2 > + * > + * Software shall not set PxCMD.ST to '1' until it is > + * determined that a functional device is present on > + * the port, as determined by PxTFD.STS.BSY = '0', > + * PxTFD.STS.DRQ = '0', PxSSTS.DET = 3h > + */ > + if (!ahci_is_device_present(ap)) > + return; > + > /* start DMA */ > tmp = readl(port_mmio + PORT_CMD); This seems incomplete? If we wish to maintain this invariant, which seems like a good idea and the right thing to do, then this patch fails to cover the hotplug case, correct? Jeff ^ permalink raw reply [flat|nested] 9+ messages in thread
* [patch 2/2] libata: power off unused ports [not found] <20080325221646.567639335@intel.com> 2008-03-25 22:28 ` [patch 1/2] ahci: Dont start port DMA engines unless a device is present Kristen Carlson Accardi @ 2008-03-25 22:28 ` Kristen Carlson Accardi 2008-03-28 7:43 ` Andi Kleen 2008-04-12 4:28 ` Jeff Garzik 1 sibling, 2 replies; 9+ messages in thread From: Kristen Carlson Accardi @ 2008-03-25 22:28 UTC (permalink / raw) To: jeff; +Cc: linux-ide, arjan, Kristen Carlson Accardi If a port doesn't support hot plug, there's no reason to keep the phy powered on unoccupied ports. Signed-off-by: Kristen Carlson Accardi <kristen.c.accardi@intel.com> Index: linux-2.6.25-rc3/drivers/ata/ahci.c =================================================================== --- linux-2.6.25-rc3.orig/drivers/ata/ahci.c +++ linux-2.6.25-rc3/drivers/ata/ahci.c @@ -52,6 +52,7 @@ static int ahci_enable_alpm(struct ata_port *ap, enum link_pm policy); static void ahci_disable_alpm(struct ata_port *ap); +static int ahci_is_hotplug_capable(struct ata_port *ap); enum { AHCI_PCI_BAR = 5, @@ -163,6 +164,7 @@ enum { PORT_CMD_ASP = (1 << 27), /* Aggressive Slumber/Partial */ PORT_CMD_ALPE = (1 << 26), /* Aggressive Link PM enable */ PORT_CMD_ATAPI = (1 << 24), /* Device is ATAPI */ + PORT_CMD_HPCP = (1 << 18), /* port is hot plug capable */ PORT_CMD_PMP = (1 << 17), /* PMP attached */ PORT_CMD_LIST_ON = (1 << 15), /* cmd list DMA engine running */ PORT_CMD_FIS_ON = (1 << 14), /* FIS DMA engine running */ @@ -783,6 +785,15 @@ static int ahci_scr_write(struct ata_por return -EINVAL; } +static int ahci_is_hotplug_capable(struct ata_port *ap) +{ + void __iomem *port_mmio = ahci_port_base(ap); + u8 cmd; + + cmd = readl(port_mmio + PORT_CMD); + return (cmd & PORT_CMD_HPCP); +} + static int ahci_is_device_present(struct ata_port *ap) { void __iomem *port_mmio = ahci_port_base(ap); @@ -2060,6 +2071,9 @@ static int ahci_port_start(struct ata_po ap->private_data = pp; + /* set some flags based on port capabilities */ + if (!ahci_is_hotplug_capable(ap)) + ap->flags |= ATA_FLAG_NO_HOTPLUG; /* engage engines, captain */ return ahci_port_resume(ap); } Index: linux-2.6.25-rc3/drivers/ata/libata-core.c =================================================================== --- linux-2.6.25-rc3.orig/drivers/ata/libata-core.c +++ linux-2.6.25-rc3/drivers/ata/libata-core.c @@ -1004,6 +1004,19 @@ static void ata_lpm_disable(struct ata_h } #endif /* CONFIG_PM */ +static void ata_phy_offline(struct ata_link *link) +{ + u32 scontrol; + int rc; + + /* set DET to 4 */ + rc = sata_scr_read(link, SCR_CONTROL, &scontrol); + if (rc) + return; + scontrol &= ~0xf; + scontrol |= (1 << 2); + sata_scr_write(link, SCR_CONTROL, scontrol); +} /** * ata_devchk - PATA device presence detection @@ -2812,6 +2825,7 @@ void ata_port_disable(struct ata_port *a ap->link.device[0].class = ATA_DEV_NONE; ap->link.device[1].class = ATA_DEV_NONE; ap->flags |= ATA_FLAG_DISABLED; + ata_phy_offline(&ap->link); } /** @@ -7111,6 +7125,8 @@ int ata_host_register(struct ata_host *h if (ap->ops->error_handler) { struct ata_eh_info *ehi = &ap->link.eh_info; unsigned long flags; + int device_attached = 0; + struct ata_device *dev; ata_port_probe(ap); @@ -7130,6 +7146,14 @@ int ata_host_register(struct ata_host *h /* wait for EH to finish */ ata_port_wait_eh(ap); + ata_link_for_each_dev(dev, &ap->link) + if (ata_dev_enabled(dev)) + device_attached++; + if (!device_attached && + (ap->flags & ATA_FLAG_NO_HOTPLUG)) { + /* no device present, disable port */ + ata_port_disable(ap); + } } else { DPRINTK("ata%u: bus probe begin\n", ap->print_id); rc = ata_bus_probe(ap); Index: linux-2.6.25-rc3/include/linux/libata.h =================================================================== --- linux-2.6.25-rc3.orig/include/linux/libata.h +++ linux-2.6.25-rc3/include/linux/libata.h @@ -194,6 +194,7 @@ enum { ATA_FLAG_AN = (1 << 18), /* controller supports AN */ ATA_FLAG_PMP = (1 << 19), /* controller supports PMP */ ATA_FLAG_IPM = (1 << 20), /* driver can handle IPM */ + ATA_FLAG_NO_HOTPLUG = (1 << 21), /* port doesn't support HP */ /* The following flag belongs to ap->pflags but is kept in * ap->flags because it's referenced in many LLDs and will be -- ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [patch 2/2] libata: power off unused ports 2008-03-25 22:28 ` [patch 2/2] libata: power off unused ports Kristen Carlson Accardi @ 2008-03-28 7:43 ` Andi Kleen 2008-03-28 17:00 ` Kristen Carlson Accardi 2008-04-12 4:28 ` Jeff Garzik 1 sibling, 1 reply; 9+ messages in thread From: Andi Kleen @ 2008-03-28 7:43 UTC (permalink / raw) To: Kristen Carlson Accardi; +Cc: jeff, linux-ide, arjan Kristen Carlson Accardi <kristen.c.accardi@intel.com> writes: > If a port doesn't support hot plug, there's no reason to keep the phy powered > on unoccupied ports. Would it be possible to add some writable sysfs attribute for this too? A lot of ports support hot plug, but the users knows they will never actually hot plug anything there. Exposing it to sysfs would make sense so someone could make a conscious decision to save these watts by sacrifying hotplug-support. -Andi ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [patch 2/2] libata: power off unused ports 2008-03-28 7:43 ` Andi Kleen @ 2008-03-28 17:00 ` Kristen Carlson Accardi 0 siblings, 0 replies; 9+ messages in thread From: Kristen Carlson Accardi @ 2008-03-28 17:00 UTC (permalink / raw) To: Andi Kleen; +Cc: jeff, linux-ide, arjan On 28 Mar 2008 08:43:40 +0100 Andi Kleen <andi@firstfloor.org> wrote: > Kristen Carlson Accardi <kristen.c.accardi@intel.com> writes: > > > If a port doesn't support hot plug, there's no reason to keep the phy powered > > on unoccupied ports. > > Would it be possible to add some writable sysfs attribute for this too? > > A lot of ports support hot plug, but the users knows they will never actually > hot plug anything there. Exposing it to sysfs would make sense so > someone could make a conscious decision to save these watts by sacrifying > hotplug-support. > > -Andi > I had thought about extending the sysfs interface for link power management to include a new value: off. Right now we have min_power, medium_power, and max_performance - we could add a value for just "off" which means the port is inactive - but then we'd have to change all the sysfs stuff to check and see if the user is turning the port back on after it's been off and then re-init everything, so it might be a large effort, so if we did that I'd say it should be a separate effort from this patch series. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [patch 2/2] libata: power off unused ports 2008-03-25 22:28 ` [patch 2/2] libata: power off unused ports Kristen Carlson Accardi 2008-03-28 7:43 ` Andi Kleen @ 2008-04-12 4:28 ` Jeff Garzik 2008-04-14 23:11 ` Kristen Carlson Accardi 1 sibling, 1 reply; 9+ messages in thread From: Jeff Garzik @ 2008-04-12 4:28 UTC (permalink / raw) To: Kristen Carlson Accardi; +Cc: linux-ide, arjan Kristen Carlson Accardi wrote: > If a port doesn't support hot plug, there's no reason to keep the phy powered > on unoccupied ports. > > Signed-off-by: Kristen Carlson Accardi <kristen.c.accardi@intel.com> > > Index: linux-2.6.25-rc3/drivers/ata/ahci.c > =================================================================== > --- linux-2.6.25-rc3.orig/drivers/ata/ahci.c > +++ linux-2.6.25-rc3/drivers/ata/ahci.c > @@ -52,6 +52,7 @@ > static int ahci_enable_alpm(struct ata_port *ap, > enum link_pm policy); > static void ahci_disable_alpm(struct ata_port *ap); > +static int ahci_is_hotplug_capable(struct ata_port *ap); > > enum { > AHCI_PCI_BAR = 5, > @@ -163,6 +164,7 @@ enum { > PORT_CMD_ASP = (1 << 27), /* Aggressive Slumber/Partial */ > PORT_CMD_ALPE = (1 << 26), /* Aggressive Link PM enable */ > PORT_CMD_ATAPI = (1 << 24), /* Device is ATAPI */ > + PORT_CMD_HPCP = (1 << 18), /* port is hot plug capable */ Under which conditions is this bit set? The conclusion reached by this patch seems correct, but I am not sure about the premise... I was under the impression that AHCI ports were hotplug capable, from libata's point of view, simply due to the fundamentals of SATA. Thinking about the bigger pictures, powering off the phy is something we want to do in a lot more cases than this, but there is a stumbling block: we wander into the realm of policy. For most users most of the time, empty SATA ports are needlessly powered. The problem is that, at any given moment, a device may be hot-plugged, so we must be ready for that. We need some way for the user to let the driver know that they will not be hotplugging anything anytime soon, permitting power savings to be enabled. A compromise solution that avoids adding a userspace "knob" has also been proposed (by Tejun, I think?): power up the phy every N seconds, check for device, power down phy if nothing. That should provide some power savings, though not as much as with a "knob" switched to "hotplug: off" Jeff ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [patch 2/2] libata: power off unused ports 2008-04-12 4:28 ` Jeff Garzik @ 2008-04-14 23:11 ` Kristen Carlson Accardi 2008-04-15 19:02 ` Mark Lord 0 siblings, 1 reply; 9+ messages in thread From: Kristen Carlson Accardi @ 2008-04-14 23:11 UTC (permalink / raw) To: Jeff Garzik; +Cc: linux-ide, arjan On Sat, 12 Apr 2008 00:28:13 -0400 Jeff Garzik <jeff@garzik.org> wrote: > Kristen Carlson Accardi wrote: > > If a port doesn't support hot plug, there's no reason to keep the phy powered > > on unoccupied ports. > > > > Signed-off-by: Kristen Carlson Accardi <kristen.c.accardi@intel.com> > > > > Index: linux-2.6.25-rc3/drivers/ata/ahci.c > > =================================================================== > > --- linux-2.6.25-rc3.orig/drivers/ata/ahci.c > > +++ linux-2.6.25-rc3/drivers/ata/ahci.c > > @@ -52,6 +52,7 @@ > > static int ahci_enable_alpm(struct ata_port *ap, > > enum link_pm policy); > > static void ahci_disable_alpm(struct ata_port *ap); > > +static int ahci_is_hotplug_capable(struct ata_port *ap); > > > > enum { > > AHCI_PCI_BAR = 5, > > @@ -163,6 +164,7 @@ enum { > > PORT_CMD_ASP = (1 << 27), /* Aggressive Slumber/Partial */ > > PORT_CMD_ALPE = (1 << 26), /* Aggressive Link PM enable */ > > PORT_CMD_ATAPI = (1 << 24), /* Device is ATAPI */ > > + PORT_CMD_HPCP = (1 << 18), /* port is hot plug capable */ > > Under which conditions is this bit set? > > The conclusion reached by this patch seems correct, but I am not sure > about the premise... > > I was under the impression that AHCI ports were hotplug capable, from > libata's point of view, simply due to the fundamentals of SATA. The HPCP bit is set by the BIOS to indicate policy for that port. For example, a server may set this bit to indicate that there are removable drive bays on it. A laptop may not set this bit because nobody is going to open it up and yank out the cable while it's running. It is safe to use this bit to figure out whether or not it's worth checking for hot plug events on that port in practice, although you are right it is physically possible for us to still do hot plug if we just pop open the machine and go for it. > > > > Thinking about the bigger pictures, powering off the phy is something we > want to do in a lot more cases than this, but there is a stumbling > block: we wander into the realm of policy. > > For most users most of the time, empty SATA ports are needlessly > powered. The problem is that, at any given moment, a device may be > hot-plugged, so we must be ready for that. We need some way for the > user to let the driver know that they will not be hotplugging anything > anytime soon, permitting power savings to be enabled. > > A compromise solution that avoids adding a userspace "knob" has also > been proposed (by Tejun, I think?): power up the phy every N seconds, > check for device, power down phy if nothing. That should provide some > power savings, though not as much as with a "knob" switched to "hotplug: > off" > > Jeff > > I think that for the common case - we should use HPCP to determine if the suggested use of the port is for hot plug. I can see your point about wanting to give the user the option to just disregard the intended use of the port and do what they want, but I say we don't make that the default behavior. And, I don't like the idea of adding another wakeup in the driver to do polling - seems like 99% of users are going to be just fine with a knob - and that they should only have to use the knob to override the default (or how bout a module param?). I don't think we should compromise power for a feature that most people are unlikely to use (if HPCP is not set). ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [patch 2/2] libata: power off unused ports 2008-04-14 23:11 ` Kristen Carlson Accardi @ 2008-04-15 19:02 ` Mark Lord 2008-04-24 17:45 ` Kristen Carlson Accardi 0 siblings, 1 reply; 9+ messages in thread From: Mark Lord @ 2008-04-15 19:02 UTC (permalink / raw) To: kristen.c.accardi; +Cc: Jeff Garzik, linux-ide, arjan Kristen Carlson Accardi wrote: > On Sat, 12 Apr 2008 00:28:13 -0400 > Jeff Garzik <jeff@garzik.org> wrote: .. >> Thinking about the bigger pictures, powering off the phy is something we >> want to do in a lot more cases than this, but there is a stumbling >> block: we wander into the realm of policy. >> >> For most users most of the time, empty SATA ports are needlessly >> powered. The problem is that, at any given moment, a device may be >> hot-plugged, so we must be ready for that. We need some way for the >> user to let the driver know that they will not be hotplugging anything >> anytime soon, permitting power savings to be enabled. >> >> A compromise solution that avoids adding a userspace "knob" has also >> been proposed (by Tejun, I think?): power up the phy every N seconds, >> check for device, power down phy if nothing. That should provide some >> power savings, though not as much as with a "knob" switched to "hotplug: >> off" .. How long does a poll actually take, in real time? Probably a hundred milliseconds or two, to see if the PHY syncs up? So with a knob set to, say 2 seconds (sysfs), then this would save 90% of the power of a permanent "off". That's pretty good, and setting that same knob to "infinity" (-1 ?) would achieve 100%. Definitely a good way to go, IMHO. > I think that for the common case - we should use HPCP to determine if > the suggested use of the port is for hot plug. I can see your point > about wanting to give the user the option to just disregard the intended > use of the port and do what they want, but I say we don't make that > the default behavior. And, I don't like the idea of adding another > wakeup in the driver to do polling - seems like 99% of users are > going to be just fine with a knob - and that they should only > have to use the knob to override the default (or how bout a > module param?). I don't think we should compromise power for a > feature that most people are unlikely to use (if HPCP is not set). .. I worry that this is far too x86 / vendor specific. Most of the SATA ports I have here, for example, probably lack this HPCP bit even on x86, and on other arch's it likely doesn't exist at all, right? For arch/system/device that does have HPCP implemented, then sure, it could be used to automatically tweak the sysfs knob. But from userspace perhaps, rather than kernel ? Thanks ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [patch 2/2] libata: power off unused ports 2008-04-15 19:02 ` Mark Lord @ 2008-04-24 17:45 ` Kristen Carlson Accardi 0 siblings, 0 replies; 9+ messages in thread From: Kristen Carlson Accardi @ 2008-04-24 17:45 UTC (permalink / raw) To: Mark Lord; +Cc: Jeff Garzik, linux-ide, arjan On Tue, 15 Apr 2008 15:02:40 -0400 Mark Lord <liml@rtr.ca> wrote: > Kristen Carlson Accardi wrote: > > On Sat, 12 Apr 2008 00:28:13 -0400 > > Jeff Garzik <jeff@garzik.org> wrote: > .. > >> Thinking about the bigger pictures, powering off the phy is something we > >> want to do in a lot more cases than this, but there is a stumbling > >> block: we wander into the realm of policy. > >> > >> For most users most of the time, empty SATA ports are needlessly > >> powered. The problem is that, at any given moment, a device may be > >> hot-plugged, so we must be ready for that. We need some way for the > >> user to let the driver know that they will not be hotplugging anything > >> anytime soon, permitting power savings to be enabled. > >> > >> A compromise solution that avoids adding a userspace "knob" has also > >> been proposed (by Tejun, I think?): power up the phy every N seconds, > >> check for device, power down phy if nothing. That should provide some > >> power savings, though not as much as with a "knob" switched to "hotplug: > >> off" > .. > > How long does a poll actually take, in real time? > Probably a hundred milliseconds or two, to see if the PHY syncs up? > > So with a knob set to, say 2 seconds (sysfs), then this would > save 90% of the power of a permanent "off". That's pretty good, > and setting that same knob to "infinity" (-1 ?) would achieve 100%. > Definitely a good way to go, IMHO. > > > I think that for the common case - we should use HPCP to determine if > > the suggested use of the port is for hot plug. I can see your point > > about wanting to give the user the option to just disregard the intended > > use of the port and do what they want, but I say we don't make that > > the default behavior. And, I don't like the idea of adding another > > wakeup in the driver to do polling - seems like 99% of users are > > going to be just fine with a knob - and that they should only > > have to use the knob to override the default (or how bout a > > module param?). I don't think we should compromise power for a > > feature that most people are unlikely to use (if HPCP is not set). > .. > > I worry that this is far too x86 / vendor specific. > Most of the SATA ports I have here, for example, probably lack this HPCP bit > even on x86, and on other arch's it likely doesn't exist at all, right? > > For arch/system/device that does have HPCP implemented, then sure, > it could be used to automatically tweak the sysfs knob. > But from userspace perhaps, rather than kernel ? > > Thanks > the HPCP bit is defined in the AHCI specification, so it is architecture independent - as far as actual implementations go, I don't know which system vendors have implemented it - this should be set by firmware according to the spec (section 10.1.1), so you can have the same vendor/device chipset with this set differently depending on the system configuration. I've also realized we want to leave phy powered on by default if ESP is set as well, since that is another likely case where the user would want hot plug on by default. I think the sysfs knob can override the default, but the kernel should set the default to be based on the most likely usage scenario - phy off if this port isn't exposed externally for hot plug either because it's an external sata port of because it's got "signal and power connectors are externally accessible via a joint signal and power connector for blindmate device hot plug" (e.g. removable drive bays). ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2008-04-24 17:51 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20080325221646.567639335@intel.com>
2008-03-25 22:28 ` [patch 1/2] ahci: Dont start port DMA engines unless a device is present Kristen Carlson Accardi
2008-04-12 4:21 ` Jeff Garzik
2008-03-25 22:28 ` [patch 2/2] libata: power off unused ports Kristen Carlson Accardi
2008-03-28 7:43 ` Andi Kleen
2008-03-28 17:00 ` Kristen Carlson Accardi
2008-04-12 4:28 ` Jeff Garzik
2008-04-14 23:11 ` Kristen Carlson Accardi
2008-04-15 19:02 ` Mark Lord
2008-04-24 17:45 ` Kristen Carlson Accardi
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).