diff --git a/debian/changelog b/debian/changelog index b636191e8..edc342d28 100644 --- a/debian/changelog +++ b/debian/changelog @@ -5,6 +5,7 @@ linux (3.16.7-ckt4-4) UNRELEASED; urgency=medium [ Ben Hutchings ] * shm: add memfd.h to UAPI export list, so kdbus will build + * [x86] HPET force enable for e6xx based systems (Closes: #772951) -- Ian Campbell Mon, 09 Feb 2015 06:17:31 +0000 diff --git a/debian/patches/bugfix/x86/x86-hpet-force-enable-for-e6xx-based-systems.patch b/debian/patches/bugfix/x86/x86-hpet-force-enable-for-e6xx-based-systems.patch new file mode 100644 index 000000000..3fcca286d --- /dev/null +++ b/debian/patches/bugfix/x86/x86-hpet-force-enable-for-e6xx-based-systems.patch @@ -0,0 +1,63 @@ +From: Peter Neubauer +Date: Fri, 12 Sep 2014 13:06:13 +0200 +Subject: x86: HPET force enable for e6xx based systems +Origin: https://git.kernel.org/linus/2e151c70dfb0075ff83bec305c52a9da1ba49089 + +As the Soekris net6501 and other e6xx based systems do not have +any ACPI implementation, HPET won't get enabled. +This patch enables HPET on such platforms. + +[ 0.430149] pci 0000:00:01.0: Force enabled HPET at 0xfed00000 +[ 0.644838] HPET: 3 timers in total, 0 timers will be used for per-cpu timer + +Original patch by Peter Neubauer (http://www.mail-archive.com/soekris-tech@lists.soekris.com/msg06462.html) +slightly modified by Conrad Kostecki and massaged +accoring to Thomas Gleixners by me. + +Suggested-by: Conrad Kostecki +Signed-off-by: Eric Sesterhenn +Cc: Peter Neubauer +Link: http://lkml.kernel.org/r/5412D3A5.2030909@lsexperts.de +Signed-off-by: Thomas Gleixner +--- + arch/x86/kernel/quirks.c | 18 ++++++++++++++++++ + include/linux/pci_ids.h | 1 + + 2 files changed, 19 insertions(+) + +--- a/arch/x86/kernel/quirks.c ++++ b/arch/x86/kernel/quirks.c +@@ -498,6 +498,24 @@ void force_hpet_resume(void) + } + + /* ++ * According to the datasheet e6xx systems have the HPET hardwired to ++ * 0xfed00000 ++ */ ++static void e6xx_force_enable_hpet(struct pci_dev *dev) ++{ ++ if (hpet_address || force_hpet_address) ++ return; ++ ++ force_hpet_address = 0xFED00000; ++ force_hpet_resume_type = NONE_FORCE_HPET_RESUME; ++ dev_printk(KERN_DEBUG, &dev->dev, "Force enabled HPET at " ++ "0x%lx\n", force_hpet_address); ++ return; ++} ++DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_E6XX_CU, ++ e6xx_force_enable_hpet); ++ ++/* + * HPET MSI on some boards (ATI SB700/SB800) has side effect on + * floppy DMA. Disable HPET MSI on such platforms. + * See erratum #27 (Misinterpreted MSI Requests May Result in +--- a/include/linux/pci_ids.h ++++ b/include/linux/pci_ids.h +@@ -2859,6 +2859,7 @@ + #define PCI_DEVICE_ID_INTEL_82372FB_1 0x7601 + #define PCI_DEVICE_ID_INTEL_SCH_LPC 0x8119 + #define PCI_DEVICE_ID_INTEL_SCH_IDE 0x811a ++#define PCI_DEVICE_ID_INTEL_E6XX_CU 0x8183 + #define PCI_DEVICE_ID_INTEL_ITC_LPC 0x8186 + #define PCI_DEVICE_ID_INTEL_82454GX 0x84c4 + #define PCI_DEVICE_ID_INTEL_82450GX 0x84c5 diff --git a/debian/patches/series b/debian/patches/series index 66f9a7e71..27b609d2e 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -502,3 +502,4 @@ bugfix/x86/x86-tls-ldt-stop-checking-lm-in-ldt_empty.patch bugfix/x86/x86-tls-interpret-an-all-zero-struct-user_desc-as-no.patch bugfix/all/net-sctp-fix-slab-corruption-from-use-after-free-on-.patch features/all/kdbus/shm-add-memfd.h-to-uapi-export-list.patch +bugfix/x86/x86-hpet-force-enable-for-e6xx-based-systems.patch