linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v5 0/4] Fix MTRR bug for intel-lpss-pci
@ 2019-10-16 21:06 Tuowen Zhao
  2019-10-16 21:06 ` [PATCH v5 1/4] sparc64: implement ioremap_uc Tuowen Zhao
                   ` (5 more replies)
  0 siblings, 6 replies; 31+ messages in thread
From: Tuowen Zhao @ 2019-10-16 21:06 UTC (permalink / raw)
  To: lee.jones, linux-kernel
  Cc: andriy.shevchenko, mika.westerberg, acelan.kao, mcgrof, davem,
	Tuowen Zhao

Some BIOS erroneously specifies write-combining BAR for intel-lpss-pci
in MTRR. This will cause the system to hang during boot. If possible,
this bug could be corrected with a firmware update.

Previous version: https://lkml.org/lkml/2019/10/14/575

Changes from previous version:

 * implement ioremap_uc for sparc64
 * split docs changes to not CC stable (doc location moved since 5.3)

Tuowen Zhao (4):
  sparc64: implement ioremap_uc
  lib: devres: add a helper function for ioremap_uc
  mfd: intel-lpss: use devm_ioremap_uc for MMIO
  docs: driver-model: add devm_ioremap_uc

 .../driver-api/driver-model/devres.rst        |  1 +
 arch/sparc/include/asm/io_64.h                |  1 +
 drivers/mfd/intel-lpss.c                      |  2 +-
 include/linux/io.h                            |  2 ++
 lib/devres.c                                  | 19 +++++++++++++++++++
 5 files changed, 24 insertions(+), 1 deletion(-)

-- 
2.23.0


^ permalink raw reply	[flat|nested] 31+ messages in thread

* [PATCH v5 1/4] sparc64: implement ioremap_uc
  2019-10-16 21:06 [PATCH v5 0/4] Fix MTRR bug for intel-lpss-pci Tuowen Zhao
@ 2019-10-16 21:06 ` Tuowen Zhao
  2019-10-16 21:20   ` David Miller
                     ` (2 more replies)
  2019-10-16 21:06 ` [PATCH v5 2/4] lib: devres: add a helper function for ioremap_uc Tuowen Zhao
                   ` (4 subsequent siblings)
  5 siblings, 3 replies; 31+ messages in thread
From: Tuowen Zhao @ 2019-10-16 21:06 UTC (permalink / raw)
  To: lee.jones, linux-kernel
  Cc: andriy.shevchenko, mika.westerberg, acelan.kao, mcgrof, davem,
	Tuowen Zhao, kbuild test robot

On sparc64, the whole physical IO address space is accessible using
physically addressed loads and stores. *_uc does nothing like the
others.

Cc: <stable@vger.kernel.org>
Reported-by: kbuild test robot <lkp@intel.com>
Signed-off-by: Tuowen Zhao <ztuowen@gmail.com>
---
 arch/sparc/include/asm/io_64.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/sparc/include/asm/io_64.h b/arch/sparc/include/asm/io_64.h
index 688911051b44..f4afa301954a 100644
--- a/arch/sparc/include/asm/io_64.h
+++ b/arch/sparc/include/asm/io_64.h
@@ -407,6 +407,7 @@ static inline void __iomem *ioremap(unsigned long offset, unsigned long size)
 }
 
 #define ioremap_nocache(X,Y)		ioremap((X),(Y))
+#define ioremap_uc(X,Y)			ioremap((X),(Y))
 #define ioremap_wc(X,Y)			ioremap((X),(Y))
 #define ioremap_wt(X,Y)			ioremap((X),(Y))
 
-- 
2.23.0


^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [PATCH v5 2/4] lib: devres: add a helper function for ioremap_uc
  2019-10-16 21:06 [PATCH v5 0/4] Fix MTRR bug for intel-lpss-pci Tuowen Zhao
  2019-10-16 21:06 ` [PATCH v5 1/4] sparc64: implement ioremap_uc Tuowen Zhao
@ 2019-10-16 21:06 ` Tuowen Zhao
       [not found]   ` <20191017143144.9985421848@mail.kernel.org>
  2019-11-11  8:41   ` Lee Jones
  2019-10-16 21:06 ` [PATCH v5 3/4] mfd: intel-lpss: use devm_ioremap_uc for MMIO Tuowen Zhao
                   ` (3 subsequent siblings)
  5 siblings, 2 replies; 31+ messages in thread
From: Tuowen Zhao @ 2019-10-16 21:06 UTC (permalink / raw)
  To: lee.jones, linux-kernel
  Cc: andriy.shevchenko, mika.westerberg, acelan.kao, mcgrof, davem,
	Tuowen Zhao

Implement a resource managed strongly uncachable ioremap function.

Cc: <stable@vger.kernel.org>
Tested-by: AceLan Kao <acelan.kao@canonical.com>
Signed-off-by: Tuowen Zhao <ztuowen@gmail.com>
Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Acked-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Luis Chamberlain <mcgrof@kernel.org>
Acked-for-MFD-by: Lee Jones <lee.jones@linaro.org>
---
 include/linux/io.h |  2 ++
 lib/devres.c       | 19 +++++++++++++++++++
 2 files changed, 21 insertions(+)

diff --git a/include/linux/io.h b/include/linux/io.h
index accac822336a..a59834bc0a11 100644
--- a/include/linux/io.h
+++ b/include/linux/io.h
@@ -64,6 +64,8 @@ static inline void devm_ioport_unmap(struct device *dev, void __iomem *addr)
 
 void __iomem *devm_ioremap(struct device *dev, resource_size_t offset,
 			   resource_size_t size);
+void __iomem *devm_ioremap_uc(struct device *dev, resource_size_t offset,
+				   resource_size_t size);
 void __iomem *devm_ioremap_nocache(struct device *dev, resource_size_t offset,
 				   resource_size_t size);
 void __iomem *devm_ioremap_wc(struct device *dev, resource_size_t offset,
diff --git a/lib/devres.c b/lib/devres.c
index 6a0e9bd6524a..17624d35e82d 100644
--- a/lib/devres.c
+++ b/lib/devres.c
@@ -9,6 +9,7 @@
 enum devm_ioremap_type {
 	DEVM_IOREMAP = 0,
 	DEVM_IOREMAP_NC,
+	DEVM_IOREMAP_UC,
 	DEVM_IOREMAP_WC,
 };
 
@@ -39,6 +40,9 @@ static void __iomem *__devm_ioremap(struct device *dev, resource_size_t offset,
 	case DEVM_IOREMAP_NC:
 		addr = ioremap_nocache(offset, size);
 		break;
+	case DEVM_IOREMAP_UC:
+		addr = ioremap_uc(offset, size);
+		break;
 	case DEVM_IOREMAP_WC:
 		addr = ioremap_wc(offset, size);
 		break;
@@ -68,6 +72,21 @@ void __iomem *devm_ioremap(struct device *dev, resource_size_t offset,
 }
 EXPORT_SYMBOL(devm_ioremap);
 
+/**
+ * devm_ioremap_uc - Managed ioremap_uc()
+ * @dev: Generic device to remap IO address for
+ * @offset: Resource address to map
+ * @size: Size of map
+ *
+ * Managed ioremap_uc().  Map is automatically unmapped on driver detach.
+ */
+void __iomem *devm_ioremap_uc(struct device *dev, resource_size_t offset,
+			      resource_size_t size)
+{
+	return __devm_ioremap(dev, offset, size, DEVM_IOREMAP_UC);
+}
+EXPORT_SYMBOL_GPL(devm_ioremap_uc);
+
 /**
  * devm_ioremap_nocache - Managed ioremap_nocache()
  * @dev: Generic device to remap IO address for
-- 
2.23.0


^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [PATCH v5 3/4] mfd: intel-lpss: use devm_ioremap_uc for MMIO
  2019-10-16 21:06 [PATCH v5 0/4] Fix MTRR bug for intel-lpss-pci Tuowen Zhao
  2019-10-16 21:06 ` [PATCH v5 1/4] sparc64: implement ioremap_uc Tuowen Zhao
  2019-10-16 21:06 ` [PATCH v5 2/4] lib: devres: add a helper function for ioremap_uc Tuowen Zhao
@ 2019-10-16 21:06 ` Tuowen Zhao
  2019-10-22 19:01   ` Roman Gilg
                     ` (2 more replies)
  2019-10-16 21:06 ` [PATCH v5 4/4] docs: driver-model: add devm_ioremap_uc Tuowen Zhao
                   ` (2 subsequent siblings)
  5 siblings, 3 replies; 31+ messages in thread
From: Tuowen Zhao @ 2019-10-16 21:06 UTC (permalink / raw)
  To: lee.jones, linux-kernel
  Cc: andriy.shevchenko, mika.westerberg, acelan.kao, mcgrof, davem,
	Tuowen Zhao

Some BIOS erroneously specifies write-combining BAR for intel-lpss-pci
in MTRR. This will cause the system to hang during boot. If possible,
this bug could be corrected with a firmware update.

This patch use devm_ioremap_uc to overwrite/ignore the MTRR settings
by forcing the use of strongly uncachable pages for intel-lpss.

The BIOS bug is present on Dell XPS 13 7390 2-in-1:

[    0.001734]   5 base 4000000000 mask 6000000000 write-combining

4000000000-7fffffffff : PCI Bus 0000:00
  4000000000-400fffffff : 0000:00:02.0 (i915)
  4010000000-4010000fff : 0000:00:15.0 (intel-lpss-pci)

Link: https://bugzilla.kernel.org/show_bug.cgi?id=203485
Cc: <stable@vger.kernel.org>
Tested-by: AceLan Kao <acelan.kao@canonical.com>
Signed-off-by: Tuowen Zhao <ztuowen@gmail.com>
Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Acked-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-for-MFD-by: Lee Jones <lee.jones@linaro.org>
---
 drivers/mfd/intel-lpss.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/mfd/intel-lpss.c b/drivers/mfd/intel-lpss.c
index bfe4ff337581..b0f0781a6b9c 100644
--- a/drivers/mfd/intel-lpss.c
+++ b/drivers/mfd/intel-lpss.c
@@ -384,7 +384,7 @@ int intel_lpss_probe(struct device *dev,
 	if (!lpss)
 		return -ENOMEM;
 
-	lpss->priv = devm_ioremap(dev, info->mem->start + LPSS_PRIV_OFFSET,
+	lpss->priv = devm_ioremap_uc(dev, info->mem->start + LPSS_PRIV_OFFSET,
 				  LPSS_PRIV_SIZE);
 	if (!lpss->priv)
 		return -ENOMEM;
-- 
2.23.0


^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [PATCH v5 4/4] docs: driver-model: add devm_ioremap_uc
  2019-10-16 21:06 [PATCH v5 0/4] Fix MTRR bug for intel-lpss-pci Tuowen Zhao
                   ` (2 preceding siblings ...)
  2019-10-16 21:06 ` [PATCH v5 3/4] mfd: intel-lpss: use devm_ioremap_uc for MMIO Tuowen Zhao
@ 2019-10-16 21:06 ` Tuowen Zhao
  2019-10-23 11:26   ` Luis Chamberlain
  2019-11-11  8:41   ` Lee Jones
  2019-10-17  7:14 ` [PATCH v5 0/4] Fix MTRR bug for intel-lpss-pci Andy Shevchenko
  2019-11-11  8:43 ` [GIT PULL] Immutable branch between MFD, Docs, Sparc and Lib Devres due for the v5.5 merge window Lee Jones
  5 siblings, 2 replies; 31+ messages in thread
From: Tuowen Zhao @ 2019-10-16 21:06 UTC (permalink / raw)
  To: lee.jones, linux-kernel
  Cc: andriy.shevchenko, mika.westerberg, acelan.kao, mcgrof, davem,
	Tuowen Zhao

Signed-off-by: Tuowen Zhao <ztuowen@gmail.com>
---
 Documentation/driver-api/driver-model/devres.rst | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Documentation/driver-api/driver-model/devres.rst b/Documentation/driver-api/driver-model/devres.rst
index a100bef54952..92628fdc2f11 100644
--- a/Documentation/driver-api/driver-model/devres.rst
+++ b/Documentation/driver-api/driver-model/devres.rst
@@ -314,6 +314,7 @@ IOMAP
   devm_ioport_unmap()
   devm_ioremap()
   devm_ioremap_nocache()
+  devm_ioremap_uc()
   devm_ioremap_wc()
   devm_ioremap_resource() : checks resource, requests memory region, ioremaps
   devm_iounmap()
-- 
2.23.0


^ permalink raw reply related	[flat|nested] 31+ messages in thread

* Re: [PATCH v5 1/4] sparc64: implement ioremap_uc
  2019-10-16 21:06 ` [PATCH v5 1/4] sparc64: implement ioremap_uc Tuowen Zhao
@ 2019-10-16 21:20   ` David Miller
  2019-10-28 20:46   ` Fwd: " Tuowen Zhao
  2019-12-10  8:08   ` Geert Uytterhoeven
  2 siblings, 0 replies; 31+ messages in thread
From: David Miller @ 2019-10-16 21:20 UTC (permalink / raw)
  To: ztuowen
  Cc: lee.jones, linux-kernel, andriy.shevchenko, mika.westerberg,
	acelan.kao, mcgrof, lkp

From: Tuowen Zhao <ztuowen@gmail.com>
Date: Wed, 16 Oct 2019 15:06:27 -0600

> On sparc64, the whole physical IO address space is accessible using
> physically addressed loads and stores. *_uc does nothing like the
> others.
> 
> Cc: <stable@vger.kernel.org>
> Reported-by: kbuild test robot <lkp@intel.com>
> Signed-off-by: Tuowen Zhao <ztuowen@gmail.com>

Acked-by: David S. Miller <davem@davemloft.net>

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH v5 0/4] Fix MTRR bug for intel-lpss-pci
  2019-10-16 21:06 [PATCH v5 0/4] Fix MTRR bug for intel-lpss-pci Tuowen Zhao
                   ` (3 preceding siblings ...)
  2019-10-16 21:06 ` [PATCH v5 4/4] docs: driver-model: add devm_ioremap_uc Tuowen Zhao
@ 2019-10-17  7:14 ` Andy Shevchenko
  2019-10-17  7:31   ` Lee Jones
  2019-11-11  8:43 ` [GIT PULL] Immutable branch between MFD, Docs, Sparc and Lib Devres due for the v5.5 merge window Lee Jones
  5 siblings, 1 reply; 31+ messages in thread
From: Andy Shevchenko @ 2019-10-17  7:14 UTC (permalink / raw)
  To: Tuowen Zhao
  Cc: lee.jones, linux-kernel, mika.westerberg, acelan.kao, mcgrof, davem

On Wed, Oct 16, 2019 at 03:06:25PM -0600, Tuowen Zhao wrote:
> Some BIOS erroneously specifies write-combining BAR for intel-lpss-pci
> in MTRR. This will cause the system to hang during boot. If possible,
> this bug could be corrected with a firmware update.
> 
> Previous version: https://lkml.org/lkml/2019/10/14/575
> 
> Changes from previous version:
> 
>  * implement ioremap_uc for sparc64
>  * split docs changes to not CC stable (doc location moved since 5.3)
> 

It forgot to explicitly mention through which tree is supposed to go.
I think it's MFD one, correct?

Other than above remark, the series looks good to me, thanks!

-- 
With Best Regards,
Andy Shevchenko



^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH v5 0/4] Fix MTRR bug for intel-lpss-pci
  2019-10-17  7:14 ` [PATCH v5 0/4] Fix MTRR bug for intel-lpss-pci Andy Shevchenko
@ 2019-10-17  7:31   ` Lee Jones
  2019-10-17  8:04     ` Andy Shevchenko
  0 siblings, 1 reply; 31+ messages in thread
From: Lee Jones @ 2019-10-17  7:31 UTC (permalink / raw)
  To: Andy Shevchenko
  Cc: Tuowen Zhao, linux-kernel, mika.westerberg, acelan.kao, mcgrof, davem

On Thu, 17 Oct 2019, Andy Shevchenko wrote:

> On Wed, Oct 16, 2019 at 03:06:25PM -0600, Tuowen Zhao wrote:
> > Some BIOS erroneously specifies write-combining BAR for intel-lpss-pci
> > in MTRR. This will cause the system to hang during boot. If possible,
> > this bug could be corrected with a firmware update.
> > 
> > Previous version: https://lkml.org/lkml/2019/10/14/575
> > 
> > Changes from previous version:
> > 
> >  * implement ioremap_uc for sparc64
> >  * split docs changes to not CC stable (doc location moved since 5.3)
> > 
> 
> It forgot to explicitly mention through which tree is supposed to go.
> I think it's MFD one, correct?

To be fair, that's not really up to the submitter to decide.

-- 
Lee Jones [李琼斯]
Linaro Services Technical Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH v5 0/4] Fix MTRR bug for intel-lpss-pci
  2019-10-17  7:31   ` Lee Jones
@ 2019-10-17  8:04     ` Andy Shevchenko
  2019-10-17  8:22       ` Lee Jones
  0 siblings, 1 reply; 31+ messages in thread
From: Andy Shevchenko @ 2019-10-17  8:04 UTC (permalink / raw)
  To: Lee Jones
  Cc: Tuowen Zhao, linux-kernel, mika.westerberg, acelan.kao, mcgrof, davem

On Thu, Oct 17, 2019 at 08:31:16AM +0100, Lee Jones wrote:
> On Thu, 17 Oct 2019, Andy Shevchenko wrote:
> > On Wed, Oct 16, 2019 at 03:06:25PM -0600, Tuowen Zhao wrote:
> > > Some BIOS erroneously specifies write-combining BAR for intel-lpss-pci
> > > in MTRR. This will cause the system to hang during boot. If possible,
> > > this bug could be corrected with a firmware update.
> > > 
> > > Previous version: https://lkml.org/lkml/2019/10/14/575
> > > 
> > > Changes from previous version:
> > > 
> > >  * implement ioremap_uc for sparc64
> > >  * split docs changes to not CC stable (doc location moved since 5.3)
> > > 
> > 
> > It forgot to explicitly mention through which tree is supposed to go.
> > I think it's MFD one, correct?
> 
> To be fair, that's not really up to the submitter to decide.

Submitter still can share their view, no?

-- 
With Best Regards,
Andy Shevchenko



^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH v5 0/4] Fix MTRR bug for intel-lpss-pci
  2019-10-17  8:04     ` Andy Shevchenko
@ 2019-10-17  8:22       ` Lee Jones
  2019-10-17  9:52         ` Andy Shevchenko
  0 siblings, 1 reply; 31+ messages in thread
From: Lee Jones @ 2019-10-17  8:22 UTC (permalink / raw)
  To: Andy Shevchenko
  Cc: Tuowen Zhao, linux-kernel, mika.westerberg, acelan.kao, mcgrof, davem

On Thu, 17 Oct 2019, Andy Shevchenko wrote:

> On Thu, Oct 17, 2019 at 08:31:16AM +0100, Lee Jones wrote:
> > On Thu, 17 Oct 2019, Andy Shevchenko wrote:
> > > On Wed, Oct 16, 2019 at 03:06:25PM -0600, Tuowen Zhao wrote:
> > > > Some BIOS erroneously specifies write-combining BAR for intel-lpss-pci
> > > > in MTRR. This will cause the system to hang during boot. If possible,
> > > > this bug could be corrected with a firmware update.
> > > > 
> > > > Previous version: https://lkml.org/lkml/2019/10/14/575
> > > > 
> > > > Changes from previous version:
> > > > 
> > > >  * implement ioremap_uc for sparc64
> > > >  * split docs changes to not CC stable (doc location moved since 5.3)
> > > > 
> > > 
> > > It forgot to explicitly mention through which tree is supposed to go.
> > > I think it's MFD one, correct?
> > 
> > To be fair, that's not really up to the submitter to decide.
> 
> Submitter still can share their view, no?

Preferences can be voiced, if held, and will always be taken into
consideration.  The final decision will always be made by the people
managing the trees.

The comment above implies a requirement to specify which tree is
preferred, which is not the case.  In almost all cases, it's best not
to specify.

-- 
Lee Jones [李琼斯]
Linaro Services Technical Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH v5 0/4] Fix MTRR bug for intel-lpss-pci
  2019-10-17  8:22       ` Lee Jones
@ 2019-10-17  9:52         ` Andy Shevchenko
  0 siblings, 0 replies; 31+ messages in thread
From: Andy Shevchenko @ 2019-10-17  9:52 UTC (permalink / raw)
  To: Lee Jones
  Cc: Tuowen Zhao, linux-kernel, mika.westerberg, acelan.kao, mcgrof, davem

On Thu, Oct 17, 2019 at 09:22:01AM +0100, Lee Jones wrote:
> On Thu, 17 Oct 2019, Andy Shevchenko wrote:
> > On Thu, Oct 17, 2019 at 08:31:16AM +0100, Lee Jones wrote:
> > > On Thu, 17 Oct 2019, Andy Shevchenko wrote:
> > > > On Wed, Oct 16, 2019 at 03:06:25PM -0600, Tuowen Zhao wrote:
> > > > > Some BIOS erroneously specifies write-combining BAR for intel-lpss-pci
> > > > > in MTRR. This will cause the system to hang during boot. If possible,
> > > > > this bug could be corrected with a firmware update.
> > > > > 
> > > > > Previous version: https://lkml.org/lkml/2019/10/14/575
> > > > > 
> > > > > Changes from previous version:
> > > > > 
> > > > >  * implement ioremap_uc for sparc64
> > > > >  * split docs changes to not CC stable (doc location moved since 5.3)
> > > > > 
> > > > 
> > > > It forgot to explicitly mention through which tree is supposed to go.
> > > > I think it's MFD one, correct?
> > > 
> > > To be fair, that's not really up to the submitter to decide.
> > 
> > Submitter still can share their view, no?
> 
> Preferences can be voiced, if held, and will always be taken into
> consideration.  The final decision will always be made by the people
> managing the trees.
> 
> The comment above implies a requirement to specify which tree is
> preferred, which is not the case.  In almost all cases, it's best not
> to specify.

In my practice I had been asked several times to specify and express my
understanding which subsystem should take series. It's not so unequivocally.

-- 
With Best Regards,
Andy Shevchenko



^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH v5 2/4] lib: devres: add a helper function for ioremap_uc
       [not found]   ` <20191017143144.9985421848@mail.kernel.org>
@ 2019-10-17 17:49     ` Tuowen Zhao
  2019-10-18 16:47       ` Sasha Levin
  0 siblings, 1 reply; 31+ messages in thread
From: Tuowen Zhao @ 2019-10-17 17:49 UTC (permalink / raw)
  To: Sasha Levin, lee.jones, linux-kernel
  Cc: andriy.shevchenko, mika.westerberg, stable

Sorry, patches in this set should have tag # v4.19+

Should I resubmit a set with the correct tags?

Tuowen


^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH v5 2/4] lib: devres: add a helper function for ioremap_uc
  2019-10-17 17:49     ` Tuowen Zhao
@ 2019-10-18 16:47       ` Sasha Levin
  2019-12-04 15:51         ` Tuowen Zhao
  0 siblings, 1 reply; 31+ messages in thread
From: Sasha Levin @ 2019-10-18 16:47 UTC (permalink / raw)
  To: Tuowen Zhao
  Cc: lee.jones, linux-kernel, andriy.shevchenko, mika.westerberg, stable

On Thu, Oct 17, 2019 at 11:49:50AM -0600, Tuowen Zhao wrote:
>Sorry, patches in this set should have tag # v4.19+
>
>Should I resubmit a set with the correct tags?

Nah, this note should be good enough, thanks.

-- 
Thanks,
Sasha

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH v5 3/4] mfd: intel-lpss: use devm_ioremap_uc for MMIO
  2019-10-16 21:06 ` [PATCH v5 3/4] mfd: intel-lpss: use devm_ioremap_uc for MMIO Tuowen Zhao
@ 2019-10-22 19:01   ` Roman Gilg
  2019-11-11  8:41   ` Lee Jones
  2019-12-10  8:11   ` Geert Uytterhoeven
  2 siblings, 0 replies; 31+ messages in thread
From: Roman Gilg @ 2019-10-22 19:01 UTC (permalink / raw)
  To: Tuowen Zhao
  Cc: lee.jones, linux-kernel, andriy.shevchenko, mika.westerberg,
	acelan.kao, mcgrof, davem

On Thu, Oct 17, 2019 at 7:48 PM Tuowen Zhao <ztuowen@gmail.com> wrote:
>
> Some BIOS erroneously specifies write-combining BAR for intel-lpss-pci
> in MTRR. This will cause the system to hang during boot. If possible,
> this bug could be corrected with a firmware update.
>
> This patch use devm_ioremap_uc to overwrite/ignore the MTRR settings
> by forcing the use of strongly uncachable pages for intel-lpss.
>
> The BIOS bug is present on Dell XPS 13 7390 2-in-1:
>
> [    0.001734]   5 base 4000000000 mask 6000000000 write-combining
>
> 4000000000-7fffffffff : PCI Bus 0000:00
>   4000000000-400fffffff : 0000:00:02.0 (i915)
>   4010000000-4010000fff : 0000:00:15.0 (intel-lpss-pci)
>
> Link: https://bugzilla.kernel.org/show_bug.cgi?id=203485
> Cc: <stable@vger.kernel.org>
> Tested-by: AceLan Kao <acelan.kao@canonical.com>
> Signed-off-by: Tuowen Zhao <ztuowen@gmail.com>
> Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
> Acked-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> Acked-for-MFD-by: Lee Jones <lee.jones@linaro.org>
> ---
>  drivers/mfd/intel-lpss.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/mfd/intel-lpss.c b/drivers/mfd/intel-lpss.c
> index bfe4ff337581..b0f0781a6b9c 100644
> --- a/drivers/mfd/intel-lpss.c
> +++ b/drivers/mfd/intel-lpss.c
> @@ -384,7 +384,7 @@ int intel_lpss_probe(struct device *dev,
>         if (!lpss)
>                 return -ENOMEM;
>
> -       lpss->priv = devm_ioremap(dev, info->mem->start + LPSS_PRIV_OFFSET,
> +       lpss->priv = devm_ioremap_uc(dev, info->mem->start + LPSS_PRIV_OFFSET,
>                                   LPSS_PRIV_SIZE);
>         if (!lpss->priv)
>                 return -ENOMEM;
> --
> 2.23.0
>

Tested this v5 series on an XPS 13 7390 2-in-1 with Manjaro/KDE
install and works fine there. Fixes hang during boot. Currently being
backported to 5.3 on that distro:
https://gitlab.manjaro.org/packages/core/linux53/commit/c00ddfb5

Tested-by: Roman Gilg <subdiff@gmail.com>

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH v5 4/4] docs: driver-model: add devm_ioremap_uc
  2019-10-16 21:06 ` [PATCH v5 4/4] docs: driver-model: add devm_ioremap_uc Tuowen Zhao
@ 2019-10-23 11:26   ` Luis Chamberlain
  2019-11-11  8:41   ` Lee Jones
  1 sibling, 0 replies; 31+ messages in thread
From: Luis Chamberlain @ 2019-10-23 11:26 UTC (permalink / raw)
  To: Tuowen Zhao
  Cc: lee.jones, linux-kernel, andriy.shevchenko, mika.westerberg,
	acelan.kao, davem

On Wed, Oct 16, 2019 at 03:06:30PM -0600, Tuowen Zhao wrote:
> Signed-off-by: Tuowen Zhao <ztuowen@gmail.com>

Acked-by: Luis Chamberlain <mcgrof@kernel.org>

  Luis

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Fwd: [PATCH v5 1/4] sparc64: implement ioremap_uc
  2019-10-16 21:06 ` [PATCH v5 1/4] sparc64: implement ioremap_uc Tuowen Zhao
  2019-10-16 21:20   ` David Miller
@ 2019-10-28 20:46   ` Tuowen Zhao
  2019-10-28 23:09     ` David Miller
  2019-11-11  8:40     ` Fwd: " Lee Jones
  2019-12-10  8:08   ` Geert Uytterhoeven
  2 siblings, 2 replies; 31+ messages in thread
From: Tuowen Zhao @ 2019-10-28 20:46 UTC (permalink / raw)
  To: sparclinux, davem, linux-kernel
  Cc: lee.jones, andriy.shevchenko, mika.westerberg, acelan.kao, mcgrof

Adding sparc list. Sorry, first time missed the list.

Looking for some reviews.

Patch set: Fix MTRR bug for intel-lpss-pci
https://lkml.org/lkml/2019/10/16/1230

Tuowen

-------- Forwarded Message --------
From: Tuowen Zhao <ztuowen@gmail.com>
To: lee.jones@linaro.org, linux-kernel@vger.kernel.org
Cc: andriy.shevchenko@linux.intel.com, mika.westerberg@linux.intel.com,
acelan.kao@canonical.com, mcgrof@kernel.org, davem@davemloft.net, 
Tuowen Zhao <ztuowen@gmail.com>, kbuild test robot <lkp@intel.com>
Subject: [PATCH v5 1/4] sparc64: implement ioremap_uc
Date: Wed, 16 Oct 2019 15:06:27 -0600

On sparc64, the whole physical IO address space is accessible using
physically addressed loads and stores. *_uc does nothing like the
others.

Cc: <stable@vger.kernel.org>
Reported-by: kbuild test robot <lkp@intel.com>
Signed-off-by: Tuowen Zhao <ztuowen@gmail.com>
---
 arch/sparc/include/asm/io_64.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/sparc/include/asm/io_64.h
b/arch/sparc/include/asm/io_64.h
index 688911051b44..f4afa301954a 100644
--- a/arch/sparc/include/asm/io_64.h
+++ b/arch/sparc/include/asm/io_64.h
@@ -407,6 +407,7 @@ static inline void __iomem *ioremap(unsigned long
offset, unsigned long size)
 }
 
 #define ioremap_nocache(X,Y)		ioremap((X),(Y))
+#define ioremap_uc(X,Y)			ioremap((X),(Y))
 #define ioremap_wc(X,Y)			ioremap((X),(Y))
 #define ioremap_wt(X,Y)			ioremap((X),(Y))
 
-- 
2.23.0



^ permalink raw reply related	[flat|nested] 31+ messages in thread

* Re: [PATCH v5 1/4] sparc64: implement ioremap_uc
  2019-10-28 20:46   ` Fwd: " Tuowen Zhao
@ 2019-10-28 23:09     ` David Miller
  2019-11-11  8:40     ` Fwd: " Lee Jones
  1 sibling, 0 replies; 31+ messages in thread
From: David Miller @ 2019-10-28 23:09 UTC (permalink / raw)
  To: ztuowen
  Cc: sparclinux, linux-kernel, lee.jones, andriy.shevchenko,
	mika.westerberg, acelan.kao, mcgrof

From: Tuowen Zhao <ztuowen@gmail.com>
Date: Mon, 28 Oct 2019 14:46:00 -0600

> Adding sparc list. Sorry, first time missed the list.
> 
> Looking for some reviews.
> 
> Patch set: Fix MTRR bug for intel-lpss-pci
> https://lkml.org/lkml/2019/10/16/1230
> 
> Tuowen
> 
> -------- Forwarded Message --------
> From: Tuowen Zhao <ztuowen@gmail.com>
> To: lee.jones@linaro.org, linux-kernel@vger.kernel.org
> Cc: andriy.shevchenko@linux.intel.com, mika.westerberg@linux.intel.com,
> acelan.kao@canonical.com, mcgrof@kernel.org, davem@davemloft.net, 
> Tuowen Zhao <ztuowen@gmail.com>, kbuild test robot <lkp@intel.com>
> Subject: [PATCH v5 1/4] sparc64: implement ioremap_uc
> Date: Wed, 16 Oct 2019 15:06:27 -0600
> 
> On sparc64, the whole physical IO address space is accessible using
> physically addressed loads and stores. *_uc does nothing like the
> others.
> 
> Cc: <stable@vger.kernel.org>
> Reported-by: kbuild test robot <lkp@intel.com>
> Signed-off-by: Tuowen Zhao <ztuowen@gmail.com>

Acked-by: David S. Miller <davem@davemloft.net>

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: Fwd: [PATCH v5 1/4] sparc64: implement ioremap_uc
  2019-10-28 20:46   ` Fwd: " Tuowen Zhao
  2019-10-28 23:09     ` David Miller
@ 2019-11-11  8:40     ` Lee Jones
  1 sibling, 0 replies; 31+ messages in thread
From: Lee Jones @ 2019-11-11  8:40 UTC (permalink / raw)
  To: Tuowen Zhao
  Cc: sparclinux, davem, linux-kernel, andriy.shevchenko,
	mika.westerberg, acelan.kao, mcgrof

On Mon, 28 Oct 2019, Tuowen Zhao wrote:

> Adding sparc list. Sorry, first time missed the list.
> 
> Looking for some reviews.
> 
> Patch set: Fix MTRR bug for intel-lpss-pci
> https://lkml.org/lkml/2019/10/16/1230

Applied, thanks.

-- 
Lee Jones [李琼斯]
Linaro Services Technical Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH v5 2/4] lib: devres: add a helper function for ioremap_uc
  2019-10-16 21:06 ` [PATCH v5 2/4] lib: devres: add a helper function for ioremap_uc Tuowen Zhao
       [not found]   ` <20191017143144.9985421848@mail.kernel.org>
@ 2019-11-11  8:41   ` Lee Jones
  2019-12-10  8:06     ` Geert Uytterhoeven
  1 sibling, 1 reply; 31+ messages in thread
From: Lee Jones @ 2019-11-11  8:41 UTC (permalink / raw)
  To: Tuowen Zhao
  Cc: linux-kernel, andriy.shevchenko, mika.westerberg, acelan.kao,
	mcgrof, davem

On Wed, 16 Oct 2019, Tuowen Zhao wrote:

> Implement a resource managed strongly uncachable ioremap function.
> 
> Cc: <stable@vger.kernel.org>
> Tested-by: AceLan Kao <acelan.kao@canonical.com>
> Signed-off-by: Tuowen Zhao <ztuowen@gmail.com>
> Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
> Acked-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> Acked-by: Luis Chamberlain <mcgrof@kernel.org>
> Acked-for-MFD-by: Lee Jones <lee.jones@linaro.org>
> ---
>  include/linux/io.h |  2 ++
>  lib/devres.c       | 19 +++++++++++++++++++
>  2 files changed, 21 insertions(+)

Applied, thanks.

-- 
Lee Jones [李琼斯]
Linaro Services Technical Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH v5 3/4] mfd: intel-lpss: use devm_ioremap_uc for MMIO
  2019-10-16 21:06 ` [PATCH v5 3/4] mfd: intel-lpss: use devm_ioremap_uc for MMIO Tuowen Zhao
  2019-10-22 19:01   ` Roman Gilg
@ 2019-11-11  8:41   ` Lee Jones
  2019-12-10  8:11   ` Geert Uytterhoeven
  2 siblings, 0 replies; 31+ messages in thread
From: Lee Jones @ 2019-11-11  8:41 UTC (permalink / raw)
  To: Tuowen Zhao
  Cc: linux-kernel, andriy.shevchenko, mika.westerberg, acelan.kao,
	mcgrof, davem

On Wed, 16 Oct 2019, Tuowen Zhao wrote:

> Some BIOS erroneously specifies write-combining BAR for intel-lpss-pci
> in MTRR. This will cause the system to hang during boot. If possible,
> this bug could be corrected with a firmware update.
> 
> This patch use devm_ioremap_uc to overwrite/ignore the MTRR settings
> by forcing the use of strongly uncachable pages for intel-lpss.
> 
> The BIOS bug is present on Dell XPS 13 7390 2-in-1:
> 
> [    0.001734]   5 base 4000000000 mask 6000000000 write-combining
> 
> 4000000000-7fffffffff : PCI Bus 0000:00
>   4000000000-400fffffff : 0000:00:02.0 (i915)
>   4010000000-4010000fff : 0000:00:15.0 (intel-lpss-pci)
> 
> Link: https://bugzilla.kernel.org/show_bug.cgi?id=203485
> Cc: <stable@vger.kernel.org>
> Tested-by: AceLan Kao <acelan.kao@canonical.com>
> Signed-off-by: Tuowen Zhao <ztuowen@gmail.com>
> Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
> Acked-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> Acked-for-MFD-by: Lee Jones <lee.jones@linaro.org>
> ---
>  drivers/mfd/intel-lpss.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)

Applied, thanks.

-- 
Lee Jones [李琼斯]
Linaro Services Technical Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH v5 4/4] docs: driver-model: add devm_ioremap_uc
  2019-10-16 21:06 ` [PATCH v5 4/4] docs: driver-model: add devm_ioremap_uc Tuowen Zhao
  2019-10-23 11:26   ` Luis Chamberlain
@ 2019-11-11  8:41   ` Lee Jones
  1 sibling, 0 replies; 31+ messages in thread
From: Lee Jones @ 2019-11-11  8:41 UTC (permalink / raw)
  To: Tuowen Zhao
  Cc: linux-kernel, andriy.shevchenko, mika.westerberg, acelan.kao,
	mcgrof, davem

On Wed, 16 Oct 2019, Tuowen Zhao wrote:

> Signed-off-by: Tuowen Zhao <ztuowen@gmail.com>
> ---
>  Documentation/driver-api/driver-model/devres.rst | 1 +
>  1 file changed, 1 insertion(+)

Applied, thanks.

-- 
Lee Jones [李琼斯]
Linaro Services Technical Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

^ permalink raw reply	[flat|nested] 31+ messages in thread

* [GIT PULL] Immutable branch between MFD, Docs, Sparc and Lib Devres due for the v5.5 merge window
  2019-10-16 21:06 [PATCH v5 0/4] Fix MTRR bug for intel-lpss-pci Tuowen Zhao
                   ` (4 preceding siblings ...)
  2019-10-17  7:14 ` [PATCH v5 0/4] Fix MTRR bug for intel-lpss-pci Andy Shevchenko
@ 2019-11-11  8:43 ` Lee Jones
  5 siblings, 0 replies; 31+ messages in thread
From: Lee Jones @ 2019-11-11  8:43 UTC (permalink / raw)
  To: Tuowen Zhao
  Cc: linux-kernel, andriy.shevchenko, mika.westerberg, acelan.kao,
	mcgrof, davem

Enjoy!

The following changes since commit 54ecb8f7028c5eb3d740bb82b0f1d90f2df63c5c:

  Linux 5.4-rc1 (2019-09-30 10:35:40 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd.git ib-mfd-doc-sparc-libdevres-v5.5

for you to fetch changes up to 7b8c4d73d7fe68f371d11b38a353134e1ffe199f:

  docs: driver-model: add devm_ioremap_uc (2019-11-11 08:40:27 +0000)

----------------------------------------------------------------
Immutable branch between MFD, Docs, Sparc and Lib Devres due for the v5.5 merge window

----------------------------------------------------------------
Tuowen Zhao (4):
      sparc64: implement ioremap_uc
      lib: devres: add a helper function for ioremap_uc
      mfd: intel-lpss: Use devm_ioremap_uc for MMIO
      docs: driver-model: add devm_ioremap_uc

 Documentation/driver-api/driver-model/devres.rst |  1 +
 arch/sparc/include/asm/io_64.h                   |  1 +
 drivers/mfd/intel-lpss.c                         |  2 +-
 include/linux/io.h                               |  2 ++
 lib/devres.c                                     | 19 +++++++++++++++++++
 5 files changed, 24 insertions(+), 1 deletion(-)

-- 
Lee Jones [李琼斯]
Linaro Services Technical Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH v5 2/4] lib: devres: add a helper function for ioremap_uc
  2019-10-18 16:47       ` Sasha Levin
@ 2019-12-04 15:51         ` Tuowen Zhao
  2019-12-04 19:54           ` Andy Shevchenko
  2019-12-16 13:06           ` Greg KH
  0 siblings, 2 replies; 31+ messages in thread
From: Tuowen Zhao @ 2019-12-04 15:51 UTC (permalink / raw)
  To: Sasha Levin
  Cc: lee.jones, linux-kernel, andriy.shevchenko, mika.westerberg,
	stable, linux

Hi Sasha,

Sorry to bother. Can I ask for patches in this series to NOT be applied
to stable?

They causes build failure on Hexagon.

Relevant patches include

sparc64: implement ioremap_uc
lib: devres: add a helper function for ioremap_uc
mfd: intel-lpss: Use devm_ioremap_uc for MMIO

Best,
Tuowen


^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH v5 2/4] lib: devres: add a helper function for ioremap_uc
  2019-12-04 15:51         ` Tuowen Zhao
@ 2019-12-04 19:54           ` Andy Shevchenko
  2019-12-04 20:06             ` Tuowen Zhao
  2019-12-16 13:06           ` Greg KH
  1 sibling, 1 reply; 31+ messages in thread
From: Andy Shevchenko @ 2019-12-04 19:54 UTC (permalink / raw)
  To: Tuowen Zhao
  Cc: Sasha Levin, lee.jones, linux-kernel, mika.westerberg, stable,
	linux, Luis Chamberlain

On Wed, Dec 04, 2019 at 08:51:30AM -0700, Tuowen Zhao wrote:
> Hi Sasha,
> 
> Sorry to bother. Can I ask for patches in this series to NOT be applied
> to stable?
> 
> They causes build failure on Hexagon.
> 
> Relevant patches include
> 
> sparc64: implement ioremap_uc
> lib: devres: add a helper function for ioremap_uc
> mfd: intel-lpss: Use devm_ioremap_uc for MMIO

Since Guenter submitted a fix, we can leave with these ones and fix applied together.

-- 
With Best Regards,
Andy Shevchenko



^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH v5 2/4] lib: devres: add a helper function for ioremap_uc
  2019-12-04 19:54           ` Andy Shevchenko
@ 2019-12-04 20:06             ` Tuowen Zhao
  0 siblings, 0 replies; 31+ messages in thread
From: Tuowen Zhao @ 2019-12-04 20:06 UTC (permalink / raw)
  To: Andy Shevchenko
  Cc: Sasha Levin, lee.jones, linux-kernel, mika.westerberg, stable,
	linux, Luis Chamberlain

On Wed, 2019-12-04 at 21:54 +0200, Andy Shevchenko wrote:
> 
> Since Guenter submitted a fix, we can leave with these ones and fix
> applied together.
> 

Since I have apparently missed something with hexagon, I don't feel
comfortable with messing with stable with this. I'm not sure as before
that this series is self-contained.

Tuowen


^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH v5 2/4] lib: devres: add a helper function for ioremap_uc
  2019-11-11  8:41   ` Lee Jones
@ 2019-12-10  8:06     ` Geert Uytterhoeven
  2019-12-10 12:50       ` Lee Jones
  0 siblings, 1 reply; 31+ messages in thread
From: Geert Uytterhoeven @ 2019-12-10  8:06 UTC (permalink / raw)
  To: Lee Jones
  Cc: Tuowen Zhao, Linux Kernel Mailing List, Andy Shevchenko,
	Mika Westerberg, acelan.kao, Luis R. Rodriguez, David S. Miller,
	Christoph Hellwig

On Mon, Nov 11, 2019 at 9:45 AM Lee Jones <lee.jones@linaro.org> wrote:
> On Wed, 16 Oct 2019, Tuowen Zhao wrote:
> > Implement a resource managed strongly uncachable ioremap function.
> >
> > Cc: <stable@vger.kernel.org>
> > Tested-by: AceLan Kao <acelan.kao@canonical.com>
> > Signed-off-by: Tuowen Zhao <ztuowen@gmail.com>
> > Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
> > Acked-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> > Acked-by: Luis Chamberlain <mcgrof@kernel.org>
> > Acked-for-MFD-by: Lee Jones <lee.jones@linaro.org>
> > ---
> >  include/linux/io.h |  2 ++
> >  lib/devres.c       | 19 +++++++++++++++++++
> >  2 files changed, 21 insertions(+)
>
> Applied, thanks.

This is now commit e537654b7039aacf ("lib: devres: add a helper function
for ioremap_uc") in upstream.

Do we really need this? There is only one user of ioremap_uc(), which
Christoph is trying hard to get rid of, and now you made it mandatory.
https://lore.kernel.org/dri-devel/20191112105507.GA7122@lst.de/

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH v5 1/4] sparc64: implement ioremap_uc
  2019-10-16 21:06 ` [PATCH v5 1/4] sparc64: implement ioremap_uc Tuowen Zhao
  2019-10-16 21:20   ` David Miller
  2019-10-28 20:46   ` Fwd: " Tuowen Zhao
@ 2019-12-10  8:08   ` Geert Uytterhoeven
  2 siblings, 0 replies; 31+ messages in thread
From: Geert Uytterhoeven @ 2019-12-10  8:08 UTC (permalink / raw)
  To: Tuowen Zhao
  Cc: Lee Jones, Linux Kernel Mailing List, Andy Shevchenko,
	Mika Westerberg, acelan.kao, Luis R. Rodriguez, David S. Miller,
	kbuild test robot, Christoph Hellwig

On Thu, Oct 17, 2019 at 7:47 PM Tuowen Zhao <ztuowen@gmail.com> wrote:
> On sparc64, the whole physical IO address space is accessible using
> physically addressed loads and stores. *_uc does nothing like the
> others.
>
> Cc: <stable@vger.kernel.org>
> Reported-by: kbuild test robot <lkp@intel.com>
> Signed-off-by: Tuowen Zhao <ztuowen@gmail.com>
> ---
>  arch/sparc/include/asm/io_64.h | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/arch/sparc/include/asm/io_64.h b/arch/sparc/include/asm/io_64.h
> index 688911051b44..f4afa301954a 100644
> --- a/arch/sparc/include/asm/io_64.h
> +++ b/arch/sparc/include/asm/io_64.h
> @@ -407,6 +407,7 @@ static inline void __iomem *ioremap(unsigned long offset, unsigned long size)
>  }
>
>  #define ioremap_nocache(X,Y)           ioremap((X),(Y))
> +#define ioremap_uc(X,Y)                        ioremap((X),(Y))
>  #define ioremap_wc(X,Y)                        ioremap((X),(Y))
>  #define ioremap_wt(X,Y)                        ioremap((X),(Y))

Do we really need this? There is only one user of ioremap_uc(), which
Christoph is trying hard to get rid of, and the new devres helper that
triggers all of this :-(
https://lore.kernel.org/dri-devel/20191112105507.GA7122@lst.de/

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH v5 3/4] mfd: intel-lpss: use devm_ioremap_uc for MMIO
  2019-10-16 21:06 ` [PATCH v5 3/4] mfd: intel-lpss: use devm_ioremap_uc for MMIO Tuowen Zhao
  2019-10-22 19:01   ` Roman Gilg
  2019-11-11  8:41   ` Lee Jones
@ 2019-12-10  8:11   ` Geert Uytterhoeven
  2 siblings, 0 replies; 31+ messages in thread
From: Geert Uytterhoeven @ 2019-12-10  8:11 UTC (permalink / raw)
  To: Tuowen Zhao
  Cc: Lee Jones, Linux Kernel Mailing List, Andy Shevchenko,
	Mika Westerberg, acelan.kao, Luis R. Rodriguez, David S. Miller,
	Christoph Hellwig

CC Christoph (ioremap() API cleanup)

On Thu, Oct 17, 2019 at 10:44 PM Tuowen Zhao <ztuowen@gmail.com> wrote:
> Some BIOS erroneously specifies write-combining BAR for intel-lpss-pci
> in MTRR. This will cause the system to hang during boot. If possible,
> this bug could be corrected with a firmware update.
>
> This patch use devm_ioremap_uc to overwrite/ignore the MTRR settings
> by forcing the use of strongly uncachable pages for intel-lpss.
>
> The BIOS bug is present on Dell XPS 13 7390 2-in-1:
>
> [    0.001734]   5 base 4000000000 mask 6000000000 write-combining
>
> 4000000000-7fffffffff : PCI Bus 0000:00
>   4000000000-400fffffff : 0000:00:02.0 (i915)
>   4010000000-4010000fff : 0000:00:15.0 (intel-lpss-pci)
>
> Link: https://bugzilla.kernel.org/show_bug.cgi?id=203485
> Cc: <stable@vger.kernel.org>
> Tested-by: AceLan Kao <acelan.kao@canonical.com>
> Signed-off-by: Tuowen Zhao <ztuowen@gmail.com>
> Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
> Acked-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> Acked-for-MFD-by: Lee Jones <lee.jones@linaro.org>
> ---
>  drivers/mfd/intel-lpss.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/mfd/intel-lpss.c b/drivers/mfd/intel-lpss.c
> index bfe4ff337581..b0f0781a6b9c 100644
> --- a/drivers/mfd/intel-lpss.c
> +++ b/drivers/mfd/intel-lpss.c
> @@ -384,7 +384,7 @@ int intel_lpss_probe(struct device *dev,
>         if (!lpss)
>                 return -ENOMEM;
>
> -       lpss->priv = devm_ioremap(dev, info->mem->start + LPSS_PRIV_OFFSET,
> +       lpss->priv = devm_ioremap_uc(dev, info->mem->start + LPSS_PRIV_OFFSET,
>                                   LPSS_PRIV_SIZE);
>         if (!lpss->priv)
>                 return -ENOMEM;

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH v5 2/4] lib: devres: add a helper function for ioremap_uc
  2019-12-10  8:06     ` Geert Uytterhoeven
@ 2019-12-10 12:50       ` Lee Jones
  0 siblings, 0 replies; 31+ messages in thread
From: Lee Jones @ 2019-12-10 12:50 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Tuowen Zhao, Linux Kernel Mailing List, Andy Shevchenko,
	Mika Westerberg, acelan.kao, Luis R. Rodriguez, David S. Miller,
	Christoph Hellwig

On Tue, 10 Dec 2019, Geert Uytterhoeven wrote:

> On Mon, Nov 11, 2019 at 9:45 AM Lee Jones <lee.jones@linaro.org> wrote:
> > On Wed, 16 Oct 2019, Tuowen Zhao wrote:
> > > Implement a resource managed strongly uncachable ioremap function.
> > >
> > > Cc: <stable@vger.kernel.org>
> > > Tested-by: AceLan Kao <acelan.kao@canonical.com>
> > > Signed-off-by: Tuowen Zhao <ztuowen@gmail.com>
> > > Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
> > > Acked-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> > > Acked-by: Luis Chamberlain <mcgrof@kernel.org>
> > > Acked-for-MFD-by: Lee Jones <lee.jones@linaro.org>
> > > ---
> > >  include/linux/io.h |  2 ++
> > >  lib/devres.c       | 19 +++++++++++++++++++
> > >  2 files changed, 21 insertions(+)
> >
> > Applied, thanks.
> 
> This is now commit e537654b7039aacf ("lib: devres: add a helper function
> for ioremap_uc") in upstream.
> 
> Do we really need this? There is only one user of ioremap_uc(), which
> Christoph is trying hard to get rid of, and now you made it mandatory.
> https://lore.kernel.org/dri-devel/20191112105507.GA7122@lst.de/

Patches welcome.

-- 
Lee Jones [李琼斯]
Linaro Services Technical Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH v5 2/4] lib: devres: add a helper function for ioremap_uc
  2019-12-04 15:51         ` Tuowen Zhao
  2019-12-04 19:54           ` Andy Shevchenko
@ 2019-12-16 13:06           ` Greg KH
  2019-12-16 18:02             ` Tuowen Zhao
  1 sibling, 1 reply; 31+ messages in thread
From: Greg KH @ 2019-12-16 13:06 UTC (permalink / raw)
  To: Tuowen Zhao
  Cc: Sasha Levin, lee.jones, linux-kernel, andriy.shevchenko,
	mika.westerberg, stable, linux

On Wed, Dec 04, 2019 at 08:51:30AM -0700, Tuowen Zhao wrote:
> Hi Sasha,
> 
> Sorry to bother. Can I ask for patches in this series to NOT be applied
> to stable?
> 
> They causes build failure on Hexagon.
> 
> Relevant patches include
> 
> sparc64: implement ioremap_uc
> lib: devres: add a helper function for ioremap_uc
> mfd: intel-lpss: Use devm_ioremap_uc for MMIO

Oops, almost added that last one.  Will go drop them all now from my
queue, thanks!

greg k-h

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH v5 2/4] lib: devres: add a helper function for ioremap_uc
  2019-12-16 13:06           ` Greg KH
@ 2019-12-16 18:02             ` Tuowen Zhao
  0 siblings, 0 replies; 31+ messages in thread
From: Tuowen Zhao @ 2019-12-16 18:02 UTC (permalink / raw)
  To: Greg KH
  Cc: Sasha Levin, lee.jones, linux-kernel, andriy.shevchenko,
	mika.westerberg, stable, linux

Thanks, sorry for the trouble.

Tuowen


^ permalink raw reply	[flat|nested] 31+ messages in thread

end of thread, other threads:[~2019-12-16 18:02 UTC | newest]

Thread overview: 31+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-10-16 21:06 [PATCH v5 0/4] Fix MTRR bug for intel-lpss-pci Tuowen Zhao
2019-10-16 21:06 ` [PATCH v5 1/4] sparc64: implement ioremap_uc Tuowen Zhao
2019-10-16 21:20   ` David Miller
2019-10-28 20:46   ` Fwd: " Tuowen Zhao
2019-10-28 23:09     ` David Miller
2019-11-11  8:40     ` Fwd: " Lee Jones
2019-12-10  8:08   ` Geert Uytterhoeven
2019-10-16 21:06 ` [PATCH v5 2/4] lib: devres: add a helper function for ioremap_uc Tuowen Zhao
     [not found]   ` <20191017143144.9985421848@mail.kernel.org>
2019-10-17 17:49     ` Tuowen Zhao
2019-10-18 16:47       ` Sasha Levin
2019-12-04 15:51         ` Tuowen Zhao
2019-12-04 19:54           ` Andy Shevchenko
2019-12-04 20:06             ` Tuowen Zhao
2019-12-16 13:06           ` Greg KH
2019-12-16 18:02             ` Tuowen Zhao
2019-11-11  8:41   ` Lee Jones
2019-12-10  8:06     ` Geert Uytterhoeven
2019-12-10 12:50       ` Lee Jones
2019-10-16 21:06 ` [PATCH v5 3/4] mfd: intel-lpss: use devm_ioremap_uc for MMIO Tuowen Zhao
2019-10-22 19:01   ` Roman Gilg
2019-11-11  8:41   ` Lee Jones
2019-12-10  8:11   ` Geert Uytterhoeven
2019-10-16 21:06 ` [PATCH v5 4/4] docs: driver-model: add devm_ioremap_uc Tuowen Zhao
2019-10-23 11:26   ` Luis Chamberlain
2019-11-11  8:41   ` Lee Jones
2019-10-17  7:14 ` [PATCH v5 0/4] Fix MTRR bug for intel-lpss-pci Andy Shevchenko
2019-10-17  7:31   ` Lee Jones
2019-10-17  8:04     ` Andy Shevchenko
2019-10-17  8:22       ` Lee Jones
2019-10-17  9:52         ` Andy Shevchenko
2019-11-11  8:43 ` [GIT PULL] Immutable branch between MFD, Docs, Sparc and Lib Devres due for the v5.5 merge window Lee Jones

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).