16a4b5b
From 61feb31b0dfecfd7949e672a54ac7256f4dd2c3d Mon Sep 17 00:00:00 2001
16a4b5b
From: Christophe Le Roy <christophe.fish@gmail.com>
16a4b5b
Date: Fri, 11 Dec 2015 09:13:42 +0100
16a4b5b
Subject: [PATCH] PNP: Add Broadwell to Intel MCH size workaround
16a4b5b
16a4b5b
Add device ID 0x1604 for Broadwell to commit cb171f7abb9a ("PNP:
16a4b5b
Work around BIOS defects in Intel MCH area reporting").
16a4b5b
16a4b5b
>From a Lenovo ThinkPad T550:
16a4b5b
16a4b5b
  system 00:01: [io  0x1800-0x189f] could not be reserved
16a4b5b
  system 00:01: [io  0x0800-0x087f] has been reserved
16a4b5b
  system 00:01: [io  0x0880-0x08ff] has been reserved
16a4b5b
  system 00:01: [io  0x0900-0x097f] has been reserved
16a4b5b
  system 00:01: [io  0x0980-0x09ff] has been reserved
16a4b5b
  system 00:01: [io  0x0a00-0x0a7f] has been reserved
16a4b5b
  system 00:01: [io  0x0a80-0x0aff] has been reserved
16a4b5b
  system 00:01: [io  0x0b00-0x0b7f] has been reserved
16a4b5b
  system 00:01: [io  0x0b80-0x0bff] has been reserved
16a4b5b
  system 00:01: [io  0x15e0-0x15ef] has been reserved
16a4b5b
  system 00:01: [io  0x1600-0x167f] has been reserved
16a4b5b
  system 00:01: [io  0x1640-0x165f] has been reserved
16a4b5b
  system 00:01: [mem 0xf8000000-0xfbffffff] could not be reserved
16a4b5b
  system 00:01: [mem 0xfed1c000-0xfed1ffff] has been reserved
16a4b5b
  system 00:01: [mem 0xfed10000-0xfed13fff] has been reserved
16a4b5b
  system 00:01: [mem 0xfed18000-0xfed18fff] has been reserved
16a4b5b
  system 00:01: [mem 0xfed19000-0xfed19fff] has been reserved
16a4b5b
  system 00:01: [mem 0xfed45000-0xfed4bfff] has been reserved
16a4b5b
  system 00:01: Plug and Play ACPI device, IDs PNP0c02 (active)
16a4b5b
  [...]
16a4b5b
  resource sanity check: requesting [mem 0xfed10000-0xfed15fff], which spans more than pnp 00:01 [mem 0xfed10000-0xfed13fff]
16a4b5b
  ------------[ cut here ]------------
16a4b5b
  WARNING: CPU: 2 PID: 1 at /build/linux-CrHvZ_/linux-4.2.6/arch/x86/mm/ioremap.c:198 __ioremap_caller+0x2ee/0x360()
16a4b5b
  Info: mapping multiple BARs. Your kernel is fine.
16a4b5b
  Modules linked in:
16a4b5b
  CPU: 2 PID: 1 Comm: swapper/0 Not tainted 4.2.0-1-amd64 #1 Debian 4.2.6-1
16a4b5b
  Hardware name: LENOVO 20CKCTO1WW/20CKCTO1WW, BIOS N11ET34W (1.10 ) 08/20/2015
16a4b5b
   0000000000000000 ffffffff817e6868 ffffffff8154e2f6 ffff8802241efbf8
16a4b5b
   ffffffff8106e5b1 ffffc90000e98000 0000000000006000 ffffc90000e98000
16a4b5b
   0000000000006000 0000000000000000 ffffffff8106e62a ffffffff817e68c8
16a4b5b
  Call Trace:
16a4b5b
   [<ffffffff8154e2f6>] ? dump_stack+0x40/0x50
16a4b5b
   [<ffffffff8106e5b1>] ? warn_slowpath_common+0x81/0xb0
16a4b5b
   [<ffffffff8106e62a>] ? warn_slowpath_fmt+0x4a/0x50
16a4b5b
   [<ffffffff810742a3>] ? iomem_map_sanity_check+0xb3/0xc0
16a4b5b
   [<ffffffff8105dade>] ? __ioremap_caller+0x2ee/0x360
16a4b5b
   [<ffffffff81036ae6>] ? snb_uncore_imc_init_box+0x66/0x90
16a4b5b
   [<ffffffff810351a8>] ? uncore_pci_probe+0xc8/0x1a0
16a4b5b
   [<ffffffff81302d7f>] ? local_pci_probe+0x3f/0xa0
16a4b5b
   [<ffffffff81303ea4>] ? pci_device_probe+0xc4/0x110
16a4b5b
   [<ffffffff813d9b1e>] ? driver_probe_device+0x1ee/0x450
16a4b5b
   [<ffffffff813d9dfb>] ? __driver_attach+0x7b/0x80
16a4b5b
   [<ffffffff813d9d80>] ? driver_probe_device+0x450/0x450
16a4b5b
   [<ffffffff813d796a>] ? bus_for_each_dev+0x5a/0x90
16a4b5b
   [<ffffffff813d9091>] ? bus_add_driver+0x1f1/0x290
16a4b5b
   [<ffffffff81b37fa8>] ? uncore_cpu_setup+0xc/0xc
16a4b5b
   [<ffffffff813da73f>] ? driver_register+0x5f/0xe0
16a4b5b
   [<ffffffff81b38074>] ? intel_uncore_init+0xcc/0x2b0
16a4b5b
   [<ffffffff81b37fa8>] ? uncore_cpu_setup+0xc/0xc
16a4b5b
   [<ffffffff8100213e>] ? do_one_initcall+0xce/0x200
16a4b5b
   [<ffffffff8108a100>] ? parse_args+0x140/0x4e0
16a4b5b
   [<ffffffff81b2b0cb>] ? kernel_init_freeable+0x162/0x1e8
16a4b5b
   [<ffffffff815443f0>] ? rest_init+0x80/0x80
16a4b5b
   [<ffffffff815443fe>] ? kernel_init+0xe/0xf0
16a4b5b
   [<ffffffff81553e5f>] ? ret_from_fork+0x3f/0x70
16a4b5b
   [<ffffffff815443f0>] ? rest_init+0x80/0x80
16a4b5b
  ---[ end trace 472e7959536abf12 ]---
16a4b5b
16a4b5b
  00:00.0 Host bridge: Intel Corporation Broadwell-U Host Bridge -OPI (rev 09)
16a4b5b
          Subsystem: Lenovo Device 2223
16a4b5b
          Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
16a4b5b
          Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ >SERR- 
16a4b5b
          Latency: 0
16a4b5b
          Capabilities: [e0] Vendor Specific Information: Len=0c 
16a4b5b
          Kernel driver in use: bdw_uncore
16a4b5b
  00: 86 80 04 16 06 00 90 20 09 00 00 06 00 00 00 00
16a4b5b
  10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
16a4b5b
  20: 00 00 00 00 00 00 00 00 00 00 00 00 aa 17 23 22
16a4b5b
  30: 00 00 00 00 e0 00 00 00 00 00 00 00 00 00 00 00
16a4b5b
16a4b5b
Signed-off-by: Christophe Le Roy <christophe.fish@gmail.com>
16a4b5b
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
16a4b5b
---
16a4b5b
 drivers/pnp/quirks.c | 1 +
16a4b5b
 1 file changed, 1 insertion(+)
16a4b5b
16a4b5b
diff --git a/drivers/pnp/quirks.c b/drivers/pnp/quirks.c
16a4b5b
index 943c1cb9566c..f700723ca5d6 100644
16a4b5b
--- a/drivers/pnp/quirks.c
16a4b5b
+++ b/drivers/pnp/quirks.c
16a4b5b
@@ -343,6 +343,7 @@ static void quirk_amd_mmconfig_area(struct pnp_dev *dev)
16a4b5b
 static const unsigned int mch_quirk_devices[] = {
16a4b5b
 	0x0154,	/* Ivy Bridge */
16a4b5b
 	0x0c00,	/* Haswell */
16a4b5b
+	0x1604, /* Broadwell */
16a4b5b
 };
16a4b5b
 
16a4b5b
 static struct pci_dev *get_intel_host(void)
16a4b5b
-- 
16a4b5b
2.5.0
16a4b5b