[PATCH 0/1][B][D][E][Unstable] intel-lpss driver conflicts with write-combining MTRR region

AceLan Kao acelan.kao at canonical.com
Fri Sep 27 08:07:44 UTC 2019

BugLink: https://bugs.launchpad.net/bugs/1845584

The memory region intel-lpss-pci uses has been declared as
[ 0.001728] 5 base 4000000000 mask 6000000000 write-combining
This leads to the system hangs up during booting up.

This is a BIOS issue, but there are some platforms on the market and
users are struggling on booting up the machines. So, we may have to
fix this in the kernel.

Tuowen Zhao(ztuowen at gmail.com)[1] provides a diff patch for intel-lpss
driver to claim to use un-cacheable memory while calling
__devm_ioremap(), and it works well. But it haven't been accepted by
maintainer yet.

To avoid the potential impact on other machines, I add a quirk to list
the machines which has the write-combining area in MTRR which overlaps
with the address that intel-lpss uses, only the machines in the list
pass DEVM_IOREMAP_UC to __devm_ioremap().

Verified on Dell XPS 13 7390 2-in-1

[Regression Potential]
Low, without this patch, the machine even can't boot. And the quirk only
for specific machines, so the modification won't affect other machines.

1. https://bugzilla.kernel.org/show_bug.cgi?id=203485#c23

AceLan Kao (1):
  mfd: intel-lpss: add quirk for Dell XPS 13 7390 2-in-1

 drivers/mfd/intel-lpss.c | 20 ++++++++++++++++++--
 include/linux/io.h       |  2 ++
 lib/devres.c             | 20 ++++++++++++++++++++
 3 files changed, 40 insertions(+), 2 deletions(-)


More information about the kernel-team mailing list