* [PATCH v5 1/3] dt-bindings: exynos-dw-mshc-common: add exynos7885 variants
@ 2023-03-12 17:58 Sergey Lisov
0 siblings, 0 replies; 5+ messages in thread
From: Sergey Lisov @ 2023-03-12 17:58 UTC (permalink / raw)
To: Ulf Hansson, Rob Herring, Krzysztof Kozlowski, Alim Akhtar,
Jaehoon Chung
Cc: linux-mmc, devicetree, linux-arm-kernel, linux-samsung-soc,
linux-kernel
Some Samsung Exynos boards using the arm64 architecture have DW MMC
controllers configured for a 32-bit data bus but a 64-bit FIFO. On these
systems the 64-bit FIFO registers must be accessed in two 32-bit halves.
Add two new compatible strings, "samsung,exynos7885-dw-mshc" and
"samsung,exynos7885-dw-mshc-smu" respectively, to denote exynos7885
boards that need this quirk. But it's very possible that all
"samsung,exynos7-dw-mshc" boards are actually affected.
---
.../devicetree/bindings/mmc/samsung,exynos-dw-mshc.yaml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Documentation/devicetree/bindings/mmc/samsung,exynos-dw-mshc.yaml b/Documentation/devicetree/bindings/mmc/samsung,exynos-dw-mshc.yaml
index fdaa18481..3eebaed2c 100644
--- a/Documentation/devicetree/bindings/mmc/samsung,exynos-dw-mshc.yaml
+++ b/Documentation/devicetree/bindings/mmc/samsung,exynos-dw-mshc.yaml
@@ -22,6 +22,8 @@ properties:
- samsung,exynos5420-dw-mshc-smu
- samsung,exynos7-dw-mshc
- samsung,exynos7-dw-mshc-smu
+ - samsung,exynos7885-dw-mshc
+ - samsung,exynos7885-dw-mshc-smu
- axis,artpec8-dw-mshc
reg:
--
2.38.3
^ permalink raw reply related [flat|nested] 5+ messages in thread* [PATCH v5 0/3] mmc: dw_mmc: fix DW MMC cores with 32-bit bus on 64-bit Linux systems
@ 2023-03-12 17:58 Sergey Lisov
2023-03-12 17:58 ` [PATCH v5 1/3] dt-bindings: exynos-dw-mshc-common: add exynos7885 variants Sergey Lisov
0 siblings, 1 reply; 5+ messages in thread
From: Sergey Lisov @ 2023-03-12 17:58 UTC (permalink / raw)
To: Ulf Hansson, Rob Herring, Krzysztof Kozlowski, Alim Akhtar,
Jaehoon Chung
Cc: linux-mmc, devicetree, linux-arm-kernel, linux-samsung-soc,
linux-kernel
DesignWare MMC cores have a configurable data bus width of either 16, 32, or 64
bytes. It is possible, and some vendors actually do it, to ship a DW MMC core
configured for 32-bit data bus within a 64-bit SoC. In this case the kernel
will attempt 64-bit (readq) accesses to certain 64-bit MMIO registers, while
the core will expect pairs of 32-bit accesses.
It seems that currently the only register for which the kernel performs 64-bit
accesses is the FIFO. The symptom is that the DW MMC core never receives a read
on the second half of the register, does not register the datum as being read,
and thus not advancing its internal FIFO pointer, breaking further reads. It
also seems that this FIFO is only used for small (less than 16 bytes)
transfers, which probably means that only some SDIO cards are affected.
Changelog:
v5:
- rename "samsung,exynos78xx-dw-mshc" to "samsung,exynos7885-dw-mshc"
- rename "samsung,exynos78xx-dw-mshc" to "samsung,exynos7885-dw-mshc"
v4:
- split dt-bindings and dts update into separate commits
- add an explanation why it'ss necessary to change the compatible string
v3:
- removed "fifo-access-32bit" devicetree property
- added "samsung,exynos78xx-dw-mshc" compatible string
- added "samsung,exynos78xx-dw-mshc-smu" compatible string
v2:
- added commit messages
v1:
- added "fifo-access-32bit" devicetree property
- added DW_MMC_QUIRK_FIFO64_32
- added new dw_mci_{pull,push}_data* variants (...-data64_32)
Sergey Lisov (3):
dt-bindings: exynos-dw-mshc-common: add exynos7885 variants
mmc: dw_mmc: add an option to force 32-bit access to 64-bit FIFO
arm64: dts: exynos: fix wrong mmc compatible in exynos7885.dtsi
.../bindings/mmc/samsung,exynos-dw-mshc.yaml | 2 +
arch/arm64/boot/dts/exynos/exynos7885.dtsi | 2 +-
drivers/mmc/host/dw_mmc-exynos.c | 43 +++++-
drivers/mmc/host/dw_mmc.c | 122 +++++++++++++++++-
drivers/mmc/host/dw_mmc.h | 2 +
5 files changed, 167 insertions(+), 4 deletions(-)
--
2.38.3
^ permalink raw reply [flat|nested] 5+ messages in thread* [PATCH v5 1/3] dt-bindings: exynos-dw-mshc-common: add exynos7885 variants
2023-03-12 17:58 [PATCH v5 0/3] mmc: dw_mmc: fix DW MMC cores with 32-bit bus on 64-bit Linux systems Sergey Lisov
@ 2023-03-12 17:58 ` Sergey Lisov
2023-03-12 18:11 ` Krzysztof Kozlowski
2023-03-14 19:49 ` Krzysztof Kozlowski
0 siblings, 2 replies; 5+ messages in thread
From: Sergey Lisov @ 2023-03-12 17:58 UTC (permalink / raw)
To: Ulf Hansson, Rob Herring, Krzysztof Kozlowski, Alim Akhtar,
Jaehoon Chung
Cc: linux-mmc, devicetree, linux-arm-kernel, linux-samsung-soc,
linux-kernel
Some Samsung Exynos boards using the arm64 architecture have DW MMC
controllers configured for a 32-bit data bus but a 64-bit FIFO. On these
systems the 64-bit FIFO registers must be accessed in two 32-bit halves.
Add two new compatible strings, "samsung,exynos7885-dw-mshc" and
"samsung,exynos7885-dw-mshc-smu" respectively, to denote exynos7885
boards that need this quirk. But it's very possible that all
"samsung,exynos7-dw-mshc" boards are actually affected.
---
.../devicetree/bindings/mmc/samsung,exynos-dw-mshc.yaml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Documentation/devicetree/bindings/mmc/samsung,exynos-dw-mshc.yaml b/Documentation/devicetree/bindings/mmc/samsung,exynos-dw-mshc.yaml
index fdaa18481..3eebaed2c 100644
--- a/Documentation/devicetree/bindings/mmc/samsung,exynos-dw-mshc.yaml
+++ b/Documentation/devicetree/bindings/mmc/samsung,exynos-dw-mshc.yaml
@@ -22,6 +22,8 @@ properties:
- samsung,exynos5420-dw-mshc-smu
- samsung,exynos7-dw-mshc
- samsung,exynos7-dw-mshc-smu
+ - samsung,exynos7885-dw-mshc
+ - samsung,exynos7885-dw-mshc-smu
- axis,artpec8-dw-mshc
reg:
--
2.38.3
^ permalink raw reply related [flat|nested] 5+ messages in thread* Re: [PATCH v5 1/3] dt-bindings: exynos-dw-mshc-common: add exynos7885 variants
2023-03-12 17:58 ` [PATCH v5 1/3] dt-bindings: exynos-dw-mshc-common: add exynos7885 variants Sergey Lisov
@ 2023-03-12 18:11 ` Krzysztof Kozlowski
2023-03-14 19:49 ` Krzysztof Kozlowski
1 sibling, 0 replies; 5+ messages in thread
From: Krzysztof Kozlowski @ 2023-03-12 18:11 UTC (permalink / raw)
To: Sergey Lisov, Ulf Hansson, Rob Herring, Krzysztof Kozlowski,
Alim Akhtar, Jaehoon Chung
Cc: linux-mmc, devicetree, linux-arm-kernel, linux-samsung-soc,
linux-kernel
On 12/03/2023 18:58, Sergey Lisov wrote:
> Some Samsung Exynos boards using the arm64 architecture have DW MMC
> controllers configured for a 32-bit data bus but a 64-bit FIFO. On these
> systems the 64-bit FIFO registers must be accessed in two 32-bit halves.
>
> Add two new compatible strings, "samsung,exynos7885-dw-mshc" and
> "samsung,exynos7885-dw-mshc-smu" respectively, to denote exynos7885
> boards that need this quirk. But it's very possible that all
> "samsung,exynos7-dw-mshc" boards are actually affected.
And now this is third copy of the same email. This is not acceptable.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v5 1/3] dt-bindings: exynos-dw-mshc-common: add exynos7885 variants
2023-03-12 17:58 ` [PATCH v5 1/3] dt-bindings: exynos-dw-mshc-common: add exynos7885 variants Sergey Lisov
2023-03-12 18:11 ` Krzysztof Kozlowski
@ 2023-03-14 19:49 ` Krzysztof Kozlowski
2023-03-15 18:57 ` Sergey Lisov
1 sibling, 1 reply; 5+ messages in thread
From: Krzysztof Kozlowski @ 2023-03-14 19:49 UTC (permalink / raw)
To: Sergey Lisov, Ulf Hansson, Rob Herring, Krzysztof Kozlowski,
Alim Akhtar, Jaehoon Chung
Cc: linux-mmc, devicetree, linux-arm-kernel, linux-samsung-soc,
linux-kernel
On 12/03/2023 18:58, Sergey Lisov wrote:
> Some Samsung Exynos boards using the arm64 architecture have DW MMC
> controllers configured for a 32-bit data bus but a 64-bit FIFO. On these
> systems the 64-bit FIFO registers must be accessed in two 32-bit halves.
>
> Add two new compatible strings, "samsung,exynos7885-dw-mshc" and
> "samsung,exynos7885-dw-mshc-smu" respectively, to denote exynos7885
> boards that need this quirk. But it's very possible that all
> "samsung,exynos7-dw-mshc" boards are actually affected.
> ---
> .../devicetree/bindings/mmc/samsung,exynos-dw-mshc.yaml | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/mmc/samsung,exynos-dw-mshc.yaml b/Documentation/devicetree/bindings/mmc/samsung,exynos-dw-mshc.yaml
> index fdaa18481..3eebaed2c 100644
> --- a/Documentation/devicetree/bindings/mmc/samsung,exynos-dw-mshc.yaml
> +++ b/Documentation/devicetree/bindings/mmc/samsung,exynos-dw-mshc.yaml
> @@ -22,6 +22,8 @@ properties:
> - samsung,exynos5420-dw-mshc-smu
> - samsung,exynos7-dw-mshc
> - samsung,exynos7-dw-mshc-smu
> + - samsung,exynos7885-dw-mshc
> + - samsung,exynos7885-dw-mshc-smu
What about the if-then at the end? Since this is pretty compatible with
exynos7, then I would expect being added also there.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v5 1/3] dt-bindings: exynos-dw-mshc-common: add exynos7885 variants
2023-03-14 19:49 ` Krzysztof Kozlowski
@ 2023-03-15 18:57 ` Sergey Lisov
0 siblings, 0 replies; 5+ messages in thread
From: Sergey Lisov @ 2023-03-15 18:57 UTC (permalink / raw)
To: Ulf Hansson, Rob Herring, Krzysztof Kozlowski, Alim Akhtar,
Jaehoon Chung
Cc: linux-mmc, devicetree, linux-arm-kernel, linux-samsung-soc,
linux-kernel
>> + - samsung,exynos7885-dw-mshc
>> + - samsung,exynos7885-dw-mshc-smu
>
> What about the if-then at the end? Since this is pretty compatible with
> exynos7, then I would expect being added also there.
Makes sense. Also it probably makes sense to add "samsung,exynos7-dw-mshc"
as a fallback compatible to the jackpotlte.dts, because it probably
somewhat worked for whoever contributed that.
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2023-03-15 18:57 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-03-12 17:58 [PATCH v5 1/3] dt-bindings: exynos-dw-mshc-common: add exynos7885 variants Sergey Lisov
-- strict thread matches above, loose matches on Subject: below --
2023-03-12 17:58 [PATCH v5 0/3] mmc: dw_mmc: fix DW MMC cores with 32-bit bus on 64-bit Linux systems Sergey Lisov
2023-03-12 17:58 ` [PATCH v5 1/3] dt-bindings: exynos-dw-mshc-common: add exynos7885 variants Sergey Lisov
2023-03-12 18:11 ` Krzysztof Kozlowski
2023-03-14 19:49 ` Krzysztof Kozlowski
2023-03-15 18:57 ` Sergey Lisov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox