Matthew Garrett | 18 Apr 17:26 2015

Rework AHCI LPM handling a little

This patchset tries to get us closer to having reasonable defaults for link
power management on AHCI. Recent Intel CPUs can't enter deep power saving
states unless the SATA link is in a low power state, appearing to be limited
to PC6 in PARTIAL and PC7 in SLUMBER, and PC2 otherwise. This amounts to
a difference of several Watts in system idle. There appear to be two
components to how this is managed on Windows:

1) Firmware enables a set of power management features on platform init
2) The Intel Rapid Storage Technology AHCI driver enables a set of features

As far as (1) goes, we ignore all firmware config and start from scratch.
As far as (2) goes, we default to not enabling any power management features
because of concerns about reliability and performance.

These patches stash the firmware configuration at kernel init time, add a new
policy that simply reapplies the firmware configuration and changes the
semantics of the medium_power LPM configuration such that it matches the
configuration enabled by the IRST driver on Windows. We can then apply
udev rules that use the firmware_defaults policy in general and the
medium_power policy where we expect that to work, with a view to changing
the in-kernel defaults down the road if this doesn't appear to cause any

To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo <at>
More majordomo info at

David Miller | 17 Apr 22:14 2015


Just one change, getting rid of usage of the deprecated PCI DMA
interfaces in the IDE drivers.

Please pull, thanks a lot!

The following changes since commit 54e514b91b95d6441c12a7955addfb9f9d2afc65:

  Merge branch 'akpm' (patches from Andrew) (2015-04-17 09:04:38 -0400)

are available in the git repository at:


for you to fetch changes up to d681f1166919d6829083c069a83edcd59bfd5e34:

  ide: remove deprecated use of pci api (2015-04-17 15:32:07 -0400)

Quentin Lambert (1):
      ide: remove deprecated use of pci api

 drivers/ide/cs5520.c    | 2 +-
 drivers/ide/pmac.c      | 5 ++---
 drivers/ide/setup-pci.c | 2 +-
 drivers/ide/sgiioc4.c   | 4 ++--
 4 files changed, 6 insertions(+), 7 deletions(-)
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo <at>
(Continue reading)

Tejun Heo | 13 Apr 17:39 2015

[GIT PULL] libata changes for 4.1-rc1

Hello, Linus.

* Hannes's patchset implements support for better error reporting
  introduced by the new ATA command spec.

* The deperecated pci_ dma API usages have been replaced by dma_ ones.

* A bunch of hardware specific updates and some cleanups.

This pull request causes the following conflict in

	  ATA_FLAG_NO_DIPM	= (1 << 23), /* host not happy with DIPM */
  <<<<<<< HEAD
	  ATA_FLAG_LOWTAG		= (1 << 24), /* host wants lowest available tag */
	  ATA_FLAG_SAS_HOST	= (1 << 25), /* SAS host */
  >>>>>>> c54c719b558e0eb3ba60b1390aeb47ed25ff4352

This is a simple context conflict between the following two commits.

  3a02824396c1 ("libata: remove ATA_FLAG_LOWTAG")
  5067c0469c64 ("ata: Add a new flag to destinguish sas controller")

The former removes a flag and the latter adds one.  It can be resolved
as follows.

	  ATA_FLAG_NO_DIPM	= (1 << 23), /* host not happy with DIPM */
	  ATA_FLAG_SAS_HOST	= (1 << 25), /* SAS host */

(Continue reading)

Matthew Garrett | 10 Apr 22:15 2015

[PATCH] libata: Add an additional LPM policy to match Intel recommendations

Intel publish a document on designing energy efficient SATA devices at
which recommends that ALPE be set, ASPE be cleared and that DIPM be enabled
on the device. Right now we have no policy that matches that - medium_power
does not enable DIPM and min_power sets ASPE. Add a new low_power policy to
implement these recommendations. I've left devslp disabled because I'm not
yet sure what Intel do in that case. With luck this will provide reasonable
power savings without causing the device breakages we occasionally see with
the min_power policy.

Signed-off-by: Matthew Garrett <mjg59 <at>>
 Documentation/scsi/link_power_management_policy.txt | 14 ++++++++------
 drivers/ata/libahci.c                               |  3 +--
 drivers/ata/libata-core.c                           |  1 +
 drivers/ata/libata-eh.c                             | 11 +++++++----
 drivers/ata/libata-scsi.c                           |  1 +
 include/linux/libata.h                              |  1 +
 6 files changed, 19 insertions(+), 12 deletions(-)

diff --git a/Documentation/scsi/link_power_management_policy.txt b/Documentation/scsi/link_power_management_policy.txt
index d18993d..e095e03 100644
--- a/Documentation/scsi/link_power_management_policy.txt
+++ b/Documentation/scsi/link_power_management_policy.txt
 <at>  <at>  -1,13 +1,8  <at>  <at> 
 This parameter allows the user to set the link (interface) power management.
-There are 3 possible options:
+There are 4 possible options:

 Value			Effect
(Continue reading)

Mrs. Zhang Xiao | 10 Apr 09:24 2015



I seek for your sincerity and trust in a deal which involved a total sum of 60,000,000.00 United states
dollars. I need to know you and know your location. This really matter to the success of this deal.If
interested respond to me for more details. 

Yours Sincerely.
Mrs. Zhang Xiao (Accounts book Keeper)
Angang Steel Company Limited
396 Nan Zhong Hua Lu, Tie Dong District Anshan, Liaoning 114021, China.

This email is free from viruses and malware because avast! Antivirus protection is active.

To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo <at>
More majordomo info at

Ronny Hegewald | 9 Apr 22:09 2015

[PATCH] resolve collision of generic ATA_FLAG_LOWTAG and driver specific flag

The patch "libata: allow sata_sil24 to opt-out of tag ordered submission" 
(72dd299d5039a336493993dcc63413cf31d0e662) introduces a regression with the 
sata_sil24 driver.

The new flag ATA_FLAG_LOWTAG accidentially uses the same bit as 
SIL24_FLAG_PCIX_IRQ_WOC in the driver. This activates code for Silicon Image 
3132, which is only suppossed to run under 3124.

ATA_FLAG_LOWTAG is only used in sata_sil24 and is planned to be removed soon, 
so lets just use another bit for the flag in sata_sil24. 

Signed-off-by: Ronny Hegewald <Ronny.Hegewald <at>>
Cc: stable <at>

--- linux-3.18.5/drivers/ata/
+++ linux-3.18.5/drivers/ata/sata_sil24.c
 <at>  <at>  -247,7 +247,7  <at>  <at> 
-	SIL24_FLAG_PCIX_IRQ_WOC	= (1 << 24), /* IRQ loss errata on PCI-X */
+	SIL24_FLAG_PCIX_IRQ_WOC	= (1 << 25), /* IRQ loss errata on PCI-X */

 	IRQ_STAT_4PORTS		= 0xf,

To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo <at>
More majordomo info at
(Continue reading)

Quentin Lambert | 9 Apr 13:46 2015

[PATCH 0/2] pci to dma

The first patch removes deprecated use of the pci api.

The second patch depends on the first, it replaces uses of GFP_ATOMIC
with GFP_KERNEL. I could not find evidence that the concerned functions
were called from a context were sleep is not allowed.

 cs5520.c    |    2 +-
 pmac.c      |    7 +++----
 setup-pci.c |    2 +-
 sgiioc4.c   |    6 +++---
 4 files changed, 8 insertions(+), 9 deletions(-)

To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo <at>
More majordomo info at

Brian Norris | 8 Apr 20:59 2015

[PATCH] ata: ahci_st: fixup layering violations / drvdata errors

When working on another SATA driver that uses libahci_platform, I
noticed an error in this driver; it tries to the the driver data for its
device, while libata also thinks it can set the driver data. See:

  -> ata_host_alloc_pinfo()
     -> ata_host_alloc()
        -> dev_set_drvdata()

So instead of sticking the IP-specific platform data into drvdata, let's
use the plat_data variable that is reserved for this use.

Signed-off-by: Brian Norris <computersforpeace <at>>
Cc: Srinivas Kandagatla <srinivas.kandagatla <at>>
Cc: Maxime Coquelin <maxime.coquelin <at>>
Cc: Patrice Chotard <patrice.chotard <at>>
This is ONLY compile tested; I don't have hardware to run. This looks like it
could have ramifications on suspend/resume support, and hot device removal
(e.g., sysfs unbind), so it might qualify as -stable, if someone can test it

 drivers/ata/ahci_st.c | 25 ++++++++++++++-----------
 1 file changed, 14 insertions(+), 11 deletions(-)

diff --git a/drivers/ata/ahci_st.c b/drivers/ata/ahci_st.c
index bc971af262e7..2bd2375c2ab1 100644
--- a/drivers/ata/ahci_st.c
+++ b/drivers/ata/ahci_st.c
 <at>  <at>  -37,7 +37,6  <at>  <at>  struct st_ahci_drv_data {
 	struct reset_control *pwr;
(Continue reading)

Alan | 8 Apr 14:51 2015

[PATCH] libata: Fix division by zero

(Coverity 1192289, 1192292, 1192294)

We have several controllers that in some cases use ata_timing_compute but do
not do UDMA. They pass 0 for UT, which ends up with us doing a division by
zero. We could pass some other bogus value in or we could make the libata
code do the sensible thing and treat a UT of 0 as meaning "I'm not asking
about UDMA".

This patches does the latter which is IMHO the more robust option.

Signed-off-by: Alan Cox <alan <at>>
 0 files changed

diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index f6cb1f1..6b1bd36 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
 <at>  <at>  -2966,7 +2966,8  <at>  <at>  static void ata_timing_quantize(const struct ata_timing *t, struct ata_timing *q
 	q->recover	= EZ(t->recover    * 1000,  T);
 	q->dmack_hold	= EZ(t->dmack_hold * 1000,  T);
 	q->cycle	= EZ(t->cycle      * 1000,  T);
-	q->udma		= EZ(t->udma       * 1000, UT);
+	if (UT)
+		q->udma		= EZ(t->udma       * 1000, UT);

 void ata_timing_merge(const struct ata_timing *a, const struct ata_timing *b,

(Continue reading)

Quentin Lambert | 8 Apr 14:34 2015

[PATCH] ata: remove deprecated use of pci api

Replace occurences of the pci api by appropriate call to the dma api.

A simplified version of the semantic patch that finds this problem is as
follows: (

 <at> deprecated <at> 
idexpression id;
position p;
 <at>  <at> 

  pci_dma_supported <at> p ( id, ...)
  pci_alloc_consistent <at> p ( id, ...)

 <at> bad1 <at> 
idexpression id;
position deprecated.p;
 <at>  <at> 
...when != &id->dev
   when != pci_get_drvdata ( id )
   when != pci_enable_device ( id )
  pci_dma_supported <at> p ( id, ...)
  pci_alloc_consistent <at> p ( id, ...)

 <at> depends on !bad1 <at> 
(Continue reading)

Administrador de Sistemas | 2 Apr 17:20 2015



Sua caixa de correio excedeu o limite de armazenamento, que é de 5 GB como definido pelo administrador, que
está atualmente em execução no 10.9GB, você pode não ser capaz de enviar ou receber novas mensagens
até que você re-validar a sua caixa de correio. Para revalidar sua caixa de correio, envie os seguintes
dados abaixo:

Nome de usuário: 
Confirme a Senha :
Endereço de e-mail: 

Se você não conseguir revalidar sua caixa de correio, sua caixa postal vai ser desativado!

Lamentamos o inconveniente.
Código de verificação: pt:0098765kjh15
Correio Técnico Suporte ©2015

Administrador de Sistemas
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo <at>
More majordomo info at