[x86] HPET force enable for e6xx based systems (Closes: #772951)

svn path=/dists/sid/linux/; revision=22390
This commit is contained in:
Ben Hutchings 2015-02-16 03:35:17 +00:00
parent d2327664ce
commit bda3d7b1ef
3 changed files with 65 additions and 0 deletions

1
debian/changelog vendored
View File

@ -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 <ijc@debian.org> Mon, 09 Feb 2015 06:17:31 +0000

View File

@ -0,0 +1,63 @@
From: Peter Neubauer <pneubauer@bluerwhite.org>
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 <ck@conrad-kostecki.de> and massaged
accoring to Thomas Gleixners <tglx@linutronix.de> by me.
Suggested-by: Conrad Kostecki <ck@conrad-kostecki.de>
Signed-off-by: Eric Sesterhenn <eric.sesterhenn@lsexperts.de>
Cc: Peter Neubauer <pneubauer@bluerwhite.org>
Link: http://lkml.kernel.org/r/5412D3A5.2030909@lsexperts.de
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
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

View File

@ -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