]> git.ipfire.org Git - ipfire-2.x.git/blobdiff - src/patches/suse-2.6.27.39/patches.drivers/libata-ahci-blacklist-double-spin-off
Updated kernel (2.6.27.41).
[ipfire-2.x.git] / src / patches / suse-2.6.27.39 / patches.drivers / libata-ahci-blacklist-double-spin-off
diff --git a/src/patches/suse-2.6.27.39/patches.drivers/libata-ahci-blacklist-double-spin-off b/src/patches/suse-2.6.27.39/patches.drivers/libata-ahci-blacklist-double-spin-off
deleted file mode 100644 (file)
index e034f3f..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-From 60d90dc8151413ae21bc6adcf0cfd995628ae87f Mon Sep 17 00:00:00 2001
-From: Rafael J. Wysocki <rjw@sisk.pl>
-Date: Mon, 3 Nov 2008 19:01:05 +0900
-Subject: [PATCH] SATA AHCI: Blacklist system that spins off disks during ACPI power off
-References: bnc#441721
-
-Some notebooks from HP have the problem that their BIOSes attempt to
-spin down hard drives before entering ACPI system states S4 and S5.
-This leads to a yo-yo effect during system power-off shutdown and the
-last phase of hibernation when the disk is first spun down by the
-kernel and then almost immediately turned on and off by the BIOS.
-This, in turn, may result in shortening the disk's life times.
-
-To prevent this from happening we can blacklist the affected systems
-using DMI information.
-
-Blacklist HP nx6310 that uses the AHCI driver.
-
-Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
-Signed-off-by: Tejun Heo <tj@kernel.org>
-Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
-Signed-off-by: Tejun Heo <teheo@suse.de>
----
- drivers/ata/ahci.c |   32 ++++++++++++++++++++++++++++++++
- 1 file changed, 32 insertions(+)
-
-Index: linux-2.6.27/drivers/ata/ahci.c
-===================================================================
---- linux-2.6.27.orig/drivers/ata/ahci.c
-+++ linux-2.6.27/drivers/ata/ahci.c
-@@ -2528,6 +2528,32 @@ static void ahci_p5wdh_workaround(struct
-       }
- }
-+static bool ahci_broken_system_poweroff(struct pci_dev *pdev)
-+{
-+      static const struct dmi_system_id broken_systems[] = {
-+              {
-+                      .ident = "HP Compaq nx6310",
-+                      .matches = {
-+                              DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
-+                              DMI_MATCH(DMI_PRODUCT_NAME, "HP Compaq nx6310"),
-+                      },
-+                      /* PCI slot number of the controller */
-+                      .driver_data = (void *)0x1FUL,
-+              },
-+
-+              { }     /* terminate list */
-+      };
-+      const struct dmi_system_id *dmi = dmi_first_match(broken_systems);
-+
-+      if (dmi) {
-+              unsigned long slot = (unsigned long)dmi->driver_data;
-+              /* apply the quirk only to on-board controllers */
-+              return slot == PCI_SLOT(pdev->devfn);
-+      }
-+
-+      return false;
-+}
-+
- static int ahci_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
- {
-       static int printed_version;
-@@ -2623,6 +2649,12 @@ static int ahci_init_one(struct pci_dev
-               }
-       }
-+      if (ahci_broken_system_poweroff(pdev)) {
-+              pi.flags |= ATA_FLAG_NO_POWEROFF_SPINDOWN;
-+              dev_info(&pdev->dev,
-+                      "quirky BIOS, skipping spindown on poweroff\n");
-+      }
-+
-       /* CAP.NP sometimes indicate the index of the last enabled
-        * port, at other times, that of the last possible port, so
-        * determining the maximum port number requires looking at