* [PATCH 0/9] mmc: sh_mobile_sdhi: add HS200 support
@ 2016-12-12 19:51 Wolfram Sang
2016-12-12 19:51 ` [PATCH 1/9] mmc: sh_mobile_sdhi: simplify accessing DT data Wolfram Sang
` (9 more replies)
0 siblings, 10 replies; 14+ messages in thread
From: Wolfram Sang @ 2016-12-12 19:51 UTC (permalink / raw)
To: linux-mmc; +Cc: linux-renesas-soc, Simon Horman, Wolfram Sang
Here is a series adding HS200 support to the SDHI driver. Building the actual
functionality on top of SDR104 support was rather easy. However, I figured the
checks for enabling tuning were rather scattered over the driver and could be
further improved. So I did some refactoring of that to make adding HS200
support then a one-liner :)
This has been tested on Salvator-X boards with R-Car H3 and M3-W SoCs. It has
also been tested on a Lager board (R-Car H2) checking SDR50/104 for
regressions. The whole test document showing significant speed-ups reading from
the on-board eMMC can be found here:
http://elinux.org/Tests:eMMC-HS
and the branch can be found here:
git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux.git renesas/topic/sdhi-emmc-hs
Please comment, review, apply...
Thanks,
Wolfram
Wolfram Sang (9):
mmc: sh_mobile_sdhi: simplify accessing DT data
mmc: sh_mobile_sdhi: improve prerequisite for hw_reset
mmc: sh_mobile_sdhi: improve prerequisites for tuning
mmc: sh_mobile_sdhi: remove superfluous check in hw_reset
mmc: sh_mobile_sdhi: remove superfluous check in init_tuning
mmc: sh_mobile_sdhi: remove superfluous check in SCC error check
mmc: sh_mobile_sdhi: enable HS200
arm64: dts: r8a7795: enable HS200 for eMMC
arm64: dts: r8a7796: enable HS200 for eMMC
arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts | 1 +
arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts | 1 +
drivers/mmc/host/sh_mobile_sdhi.c | 67 ++++++++--------------
3 files changed, 27 insertions(+), 42 deletions(-)
--
2.10.2
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 1/9] mmc: sh_mobile_sdhi: simplify accessing DT data
2016-12-12 19:51 [PATCH 0/9] mmc: sh_mobile_sdhi: add HS200 support Wolfram Sang
@ 2016-12-12 19:51 ` Wolfram Sang
2016-12-13 10:48 ` Geert Uytterhoeven
2016-12-12 19:51 ` [PATCH 2/9] mmc: sh_mobile_sdhi: improve prerequisite for hw_reset Wolfram Sang
` (8 subsequent siblings)
9 siblings, 1 reply; 14+ messages in thread
From: Wolfram Sang @ 2016-12-12 19:51 UTC (permalink / raw)
To: linux-mmc; +Cc: linux-renesas-soc, Simon Horman, Wolfram Sang
By using the helper of_device_get_match_data(), we can skip some
checking and make the code simpler.
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
---
drivers/mmc/host/sh_mobile_sdhi.c | 15 ++++-----------
1 file changed, 4 insertions(+), 11 deletions(-)
diff --git a/drivers/mmc/host/sh_mobile_sdhi.c b/drivers/mmc/host/sh_mobile_sdhi.c
index 15c77bc6e4ee72..b48e3ae4549b6b 100644
--- a/drivers/mmc/host/sh_mobile_sdhi.c
+++ b/drivers/mmc/host/sh_mobile_sdhi.c
@@ -548,8 +548,7 @@ static void sh_mobile_sdhi_enable_dma(struct tmio_mmc_host *host, bool enable)
static int sh_mobile_sdhi_probe(struct platform_device *pdev)
{
- const struct of_device_id *of_id =
- of_match_device(sh_mobile_sdhi_of_match, &pdev->dev);
+ const struct sh_mobile_sdhi_of_data *of_data = of_device_get_match_data(&pdev->dev);
struct sh_mobile_sdhi *priv;
struct tmio_mmc_data *mmc_data;
struct tmio_mmc_data *mmd = pdev->dev.platform_data;
@@ -590,9 +589,7 @@ static int sh_mobile_sdhi_probe(struct platform_device *pdev)
goto eprobe;
}
- if (of_id && of_id->data) {
- const struct sh_mobile_sdhi_of_data *of_data = of_id->data;
-
+ if (of_data) {
mmc_data->flags |= of_data->tmio_flags;
mmc_data->capabilities |= of_data->capabilities;
mmc_data->capabilities2 |= of_data->capabilities2;
@@ -662,14 +659,10 @@ static int sh_mobile_sdhi_probe(struct platform_device *pdev)
if (host->mmc->caps & MMC_CAP_UHS_SDR104) {
host->mmc->caps |= MMC_CAP_HW_RESET;
- if (of_id && of_id->data) {
- const struct sh_mobile_sdhi_of_data *of_data;
- const struct sh_mobile_sdhi_scc *taps;
+ if (of_data) {
+ const struct sh_mobile_sdhi_scc *taps = of_data->taps;
bool hit = false;
- of_data = of_id->data;
- taps = of_data->taps;
-
for (i = 0; i < of_data->taps_num; i++) {
if (taps[i].clk_rate == 0 ||
taps[i].clk_rate == host->mmc->f_max) {
--
2.10.2
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH 2/9] mmc: sh_mobile_sdhi: improve prerequisite for hw_reset
2016-12-12 19:51 [PATCH 0/9] mmc: sh_mobile_sdhi: add HS200 support Wolfram Sang
2016-12-12 19:51 ` [PATCH 1/9] mmc: sh_mobile_sdhi: simplify accessing DT data Wolfram Sang
@ 2016-12-12 19:51 ` Wolfram Sang
2016-12-13 10:51 ` Geert Uytterhoeven
2016-12-12 19:51 ` [PATCH 3/9] mmc: sh_mobile_sdhi: improve prerequisites for tuning Wolfram Sang
` (7 subsequent siblings)
9 siblings, 1 reply; 14+ messages in thread
From: Wolfram Sang @ 2016-12-12 19:51 UTC (permalink / raw)
To: linux-mmc; +Cc: linux-renesas-soc, Simon Horman, Wolfram Sang
We need a SCC unit for hw_reset. Those units can only be described in
of_data. So, of_data and a valid SCC offset are prerequisites for
enabling the hw_reset capability. Merge the two 'if' conditions into one
and add a check for an scc offset.
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
---
drivers/mmc/host/sh_mobile_sdhi.c | 30 ++++++++++++++----------------
1 file changed, 14 insertions(+), 16 deletions(-)
diff --git a/drivers/mmc/host/sh_mobile_sdhi.c b/drivers/mmc/host/sh_mobile_sdhi.c
index b48e3ae4549b6b..f3ea2c8b12040c 100644
--- a/drivers/mmc/host/sh_mobile_sdhi.c
+++ b/drivers/mmc/host/sh_mobile_sdhi.c
@@ -656,27 +656,25 @@ static int sh_mobile_sdhi_probe(struct platform_device *pdev)
if (ret < 0)
goto efree;
- if (host->mmc->caps & MMC_CAP_UHS_SDR104) {
+ if (of_data && of_data->scc_offset && host->mmc->caps & MMC_CAP_UHS_SDR104) {
+ const struct sh_mobile_sdhi_scc *taps = of_data->taps;
+ bool hit = false;
+
host->mmc->caps |= MMC_CAP_HW_RESET;
- if (of_data) {
- const struct sh_mobile_sdhi_scc *taps = of_data->taps;
- bool hit = false;
-
- for (i = 0; i < of_data->taps_num; i++) {
- if (taps[i].clk_rate == 0 ||
- taps[i].clk_rate == host->mmc->f_max) {
- host->scc_tappos = taps->tap;
- hit = true;
- break;
- }
+ for (i = 0; i < of_data->taps_num; i++) {
+ if (taps[i].clk_rate == 0 ||
+ taps[i].clk_rate == host->mmc->f_max) {
+ host->scc_tappos = taps->tap;
+ hit = true;
+ break;
}
+ }
- if (!hit)
- dev_warn(&host->pdev->dev, "Unknown clock rate for SDR104\n");
+ if (!hit)
+ dev_warn(&host->pdev->dev, "Unknown clock rate for SDR104\n");
- priv->scc_ctl = host->ctl + of_data->scc_offset;
- }
+ priv->scc_ctl = host->ctl + of_data->scc_offset;
}
i = 0;
--
2.10.2
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH 3/9] mmc: sh_mobile_sdhi: improve prerequisites for tuning
2016-12-12 19:51 [PATCH 0/9] mmc: sh_mobile_sdhi: add HS200 support Wolfram Sang
2016-12-12 19:51 ` [PATCH 1/9] mmc: sh_mobile_sdhi: simplify accessing DT data Wolfram Sang
2016-12-12 19:51 ` [PATCH 2/9] mmc: sh_mobile_sdhi: improve prerequisite for hw_reset Wolfram Sang
@ 2016-12-12 19:51 ` Wolfram Sang
2016-12-12 19:51 ` [PATCH 4/9] mmc: sh_mobile_sdhi: remove superfluous check in hw_reset Wolfram Sang
` (6 subsequent siblings)
9 siblings, 0 replies; 14+ messages in thread
From: Wolfram Sang @ 2016-12-12 19:51 UTC (permalink / raw)
To: linux-mmc; +Cc: linux-renesas-soc, Simon Horman, Wolfram Sang
Prerequisites for tuning are the same as for hw_reset. We need an SCC
and a supported mode. Populate the tuning related functions only when
those conditions are met. This also removes a tiny race window.
Previously, the functions were populated when the SCC offset was not
initialized which could have led to an OOPS.
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
---
drivers/mmc/host/sh_mobile_sdhi.c | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/drivers/mmc/host/sh_mobile_sdhi.c b/drivers/mmc/host/sh_mobile_sdhi.c
index f3ea2c8b12040c..96ebe985d5cdc6 100644
--- a/drivers/mmc/host/sh_mobile_sdhi.c
+++ b/drivers/mmc/host/sh_mobile_sdhi.c
@@ -611,11 +611,6 @@ static int sh_mobile_sdhi_probe(struct platform_device *pdev)
host->card_busy = sh_mobile_sdhi_card_busy;
host->start_signal_voltage_switch =
sh_mobile_sdhi_start_signal_voltage_switch;
- host->init_tuning = sh_mobile_sdhi_init_tuning;
- host->prepare_tuning = sh_mobile_sdhi_prepare_tuning;
- host->select_tuning = sh_mobile_sdhi_select_tuning;
- host->check_scc_error = sh_mobile_sdhi_check_scc_error;
- host->hw_reset = sh_mobile_sdhi_hw_reset;
}
/* Orginally registers were 16 bit apart, could be 32 or 64 nowadays */
@@ -656,6 +651,7 @@ static int sh_mobile_sdhi_probe(struct platform_device *pdev)
if (ret < 0)
goto efree;
+ /* Enable tuning iff we have an SCC and a supported mode */
if (of_data && of_data->scc_offset && host->mmc->caps & MMC_CAP_UHS_SDR104) {
const struct sh_mobile_sdhi_scc *taps = of_data->taps;
bool hit = false;
@@ -675,6 +671,11 @@ static int sh_mobile_sdhi_probe(struct platform_device *pdev)
dev_warn(&host->pdev->dev, "Unknown clock rate for SDR104\n");
priv->scc_ctl = host->ctl + of_data->scc_offset;
+ host->init_tuning = sh_mobile_sdhi_init_tuning;
+ host->prepare_tuning = sh_mobile_sdhi_prepare_tuning;
+ host->select_tuning = sh_mobile_sdhi_select_tuning;
+ host->check_scc_error = sh_mobile_sdhi_check_scc_error;
+ host->hw_reset = sh_mobile_sdhi_hw_reset;
}
i = 0;
--
2.10.2
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH 4/9] mmc: sh_mobile_sdhi: remove superfluous check in hw_reset
2016-12-12 19:51 [PATCH 0/9] mmc: sh_mobile_sdhi: add HS200 support Wolfram Sang
` (2 preceding siblings ...)
2016-12-12 19:51 ` [PATCH 3/9] mmc: sh_mobile_sdhi: improve prerequisites for tuning Wolfram Sang
@ 2016-12-12 19:51 ` Wolfram Sang
2016-12-12 19:51 ` [PATCH 5/9] mmc: sh_mobile_sdhi: remove superfluous check in init_tuning Wolfram Sang
` (5 subsequent siblings)
9 siblings, 0 replies; 14+ messages in thread
From: Wolfram Sang @ 2016-12-12 19:51 UTC (permalink / raw)
To: linux-mmc; +Cc: linux-renesas-soc, Simon Horman, Wolfram Sang
The capability for HW_RESET is only activated if SDR104 is present, so
no need to check for SDR104 in the function itself again.
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
---
drivers/mmc/host/sh_mobile_sdhi.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/drivers/mmc/host/sh_mobile_sdhi.c b/drivers/mmc/host/sh_mobile_sdhi.c
index 96ebe985d5cdc6..7964f9a87d9c20 100644
--- a/drivers/mmc/host/sh_mobile_sdhi.c
+++ b/drivers/mmc/host/sh_mobile_sdhi.c
@@ -460,9 +460,6 @@ static void sh_mobile_sdhi_hw_reset(struct tmio_mmc_host *host)
{
struct sh_mobile_sdhi *priv;
- if (!(host->mmc->caps & MMC_CAP_UHS_SDR104))
- return;
-
priv = host_to_priv(host);
/* Reset SCC */
--
2.10.2
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH 5/9] mmc: sh_mobile_sdhi: remove superfluous check in init_tuning
2016-12-12 19:51 [PATCH 0/9] mmc: sh_mobile_sdhi: add HS200 support Wolfram Sang
` (3 preceding siblings ...)
2016-12-12 19:51 ` [PATCH 4/9] mmc: sh_mobile_sdhi: remove superfluous check in hw_reset Wolfram Sang
@ 2016-12-12 19:51 ` Wolfram Sang
2016-12-12 19:51 ` [PATCH 6/9] mmc: sh_mobile_sdhi: remove superfluous check in SCC error check Wolfram Sang
` (4 subsequent siblings)
9 siblings, 0 replies; 14+ messages in thread
From: Wolfram Sang @ 2016-12-12 19:51 UTC (permalink / raw)
To: linux-mmc; +Cc: linux-renesas-soc, Simon Horman, Wolfram Sang
The function will only be available if SDR104 was detected in probe,
so no need to check in the function itself again.
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
---
drivers/mmc/host/sh_mobile_sdhi.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/drivers/mmc/host/sh_mobile_sdhi.c b/drivers/mmc/host/sh_mobile_sdhi.c
index 7964f9a87d9c20..22bedbea8ec502 100644
--- a/drivers/mmc/host/sh_mobile_sdhi.c
+++ b/drivers/mmc/host/sh_mobile_sdhi.c
@@ -327,9 +327,6 @@ static unsigned int sh_mobile_sdhi_init_tuning(struct tmio_mmc_host *host)
{
struct sh_mobile_sdhi *priv;
- if (!(host->mmc->caps & MMC_CAP_UHS_SDR104))
- return 0;
-
priv = host_to_priv(host);
/* set sampling clock selection range */
--
2.10.2
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH 6/9] mmc: sh_mobile_sdhi: remove superfluous check in SCC error check
2016-12-12 19:51 [PATCH 0/9] mmc: sh_mobile_sdhi: add HS200 support Wolfram Sang
` (4 preceding siblings ...)
2016-12-12 19:51 ` [PATCH 5/9] mmc: sh_mobile_sdhi: remove superfluous check in init_tuning Wolfram Sang
@ 2016-12-12 19:51 ` Wolfram Sang
2016-12-12 19:51 ` [PATCH 7/9] mmc: sh_mobile_sdhi: enable HS200 Wolfram Sang
` (3 subsequent siblings)
9 siblings, 0 replies; 14+ messages in thread
From: Wolfram Sang @ 2016-12-12 19:51 UTC (permalink / raw)
To: linux-mmc; +Cc: linux-renesas-soc, Simon Horman, Wolfram Sang
The function will only be available if SDR104 was detected in probe,
so no need to check in the function itself again.
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
---
drivers/mmc/host/sh_mobile_sdhi.c | 7 +------
1 file changed, 1 insertion(+), 6 deletions(-)
diff --git a/drivers/mmc/host/sh_mobile_sdhi.c b/drivers/mmc/host/sh_mobile_sdhi.c
index 22bedbea8ec502..2bd17890ec4b77 100644
--- a/drivers/mmc/host/sh_mobile_sdhi.c
+++ b/drivers/mmc/host/sh_mobile_sdhi.c
@@ -433,12 +433,7 @@ static int sh_mobile_sdhi_select_tuning(struct tmio_mmc_host *host)
static bool sh_mobile_sdhi_check_scc_error(struct tmio_mmc_host *host)
{
- struct sh_mobile_sdhi *priv;
-
- if (!(host->mmc->caps & MMC_CAP_UHS_SDR104))
- return 0;
-
- priv = host_to_priv(host);
+ struct sh_mobile_sdhi *priv = host_to_priv(host);
/* Check SCC error */
if (sd_scc_read32(host, priv, SH_MOBILE_SDHI_SCC_RVSCNTL) &
--
2.10.2
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH 7/9] mmc: sh_mobile_sdhi: enable HS200
2016-12-12 19:51 [PATCH 0/9] mmc: sh_mobile_sdhi: add HS200 support Wolfram Sang
` (5 preceding siblings ...)
2016-12-12 19:51 ` [PATCH 6/9] mmc: sh_mobile_sdhi: remove superfluous check in SCC error check Wolfram Sang
@ 2016-12-12 19:51 ` Wolfram Sang
2016-12-12 19:51 ` [PATCH 8/9] arm64: dts: r8a7795: enable HS200 for eMMC Wolfram Sang
` (2 subsequent siblings)
9 siblings, 0 replies; 14+ messages in thread
From: Wolfram Sang @ 2016-12-12 19:51 UTC (permalink / raw)
To: linux-mmc; +Cc: linux-renesas-soc, Simon Horman, Wolfram Sang
Setup tuning when the board is HS200 enabled.
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
---
drivers/mmc/host/sh_mobile_sdhi.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/mmc/host/sh_mobile_sdhi.c b/drivers/mmc/host/sh_mobile_sdhi.c
index 2bd17890ec4b77..c79545e4f69444 100644
--- a/drivers/mmc/host/sh_mobile_sdhi.c
+++ b/drivers/mmc/host/sh_mobile_sdhi.c
@@ -641,7 +641,9 @@ static int sh_mobile_sdhi_probe(struct platform_device *pdev)
goto efree;
/* Enable tuning iff we have an SCC and a supported mode */
- if (of_data && of_data->scc_offset && host->mmc->caps & MMC_CAP_UHS_SDR104) {
+ if (of_data && of_data->scc_offset &&
+ (host->mmc->caps & MMC_CAP_UHS_SDR104 ||
+ host->mmc->caps2 & MMC_CAP2_HS200_1_8V_SDR)) {
const struct sh_mobile_sdhi_scc *taps = of_data->taps;
bool hit = false;
--
2.10.2
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH 8/9] arm64: dts: r8a7795: enable HS200 for eMMC
2016-12-12 19:51 [PATCH 0/9] mmc: sh_mobile_sdhi: add HS200 support Wolfram Sang
` (6 preceding siblings ...)
2016-12-12 19:51 ` [PATCH 7/9] mmc: sh_mobile_sdhi: enable HS200 Wolfram Sang
@ 2016-12-12 19:51 ` Wolfram Sang
2016-12-12 19:51 ` [PATCH 9/9] arm64: dts: r8a7796: " Wolfram Sang
2016-12-29 19:02 ` [PATCH 0/9] mmc: sh_mobile_sdhi: add HS200 support Ulf Hansson
9 siblings, 0 replies; 14+ messages in thread
From: Wolfram Sang @ 2016-12-12 19:51 UTC (permalink / raw)
To: linux-mmc; +Cc: linux-renesas-soc, Simon Horman, Wolfram Sang
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
---
arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts b/arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts
index 56f3a91c72cc9b..d7758d3c0efa21 100644
--- a/arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts
+++ b/arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts
@@ -547,6 +547,7 @@
vmmc-supply = <®_3p3v>;
vqmmc-supply = <®_1p8v>;
bus-width = <8>;
+ mmc-hs200-1_8v;
non-removable;
status = "okay";
};
--
2.10.2
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH 9/9] arm64: dts: r8a7796: enable HS200 for eMMC
2016-12-12 19:51 [PATCH 0/9] mmc: sh_mobile_sdhi: add HS200 support Wolfram Sang
` (7 preceding siblings ...)
2016-12-12 19:51 ` [PATCH 8/9] arm64: dts: r8a7795: enable HS200 for eMMC Wolfram Sang
@ 2016-12-12 19:51 ` Wolfram Sang
2016-12-29 19:02 ` [PATCH 0/9] mmc: sh_mobile_sdhi: add HS200 support Ulf Hansson
9 siblings, 0 replies; 14+ messages in thread
From: Wolfram Sang @ 2016-12-12 19:51 UTC (permalink / raw)
To: linux-mmc; +Cc: linux-renesas-soc, Simon Horman, Wolfram Sang
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
---
arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts b/arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts
index da46ac73ff2ae3..f8e1211b1d9034 100644
--- a/arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts
+++ b/arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts
@@ -262,6 +262,7 @@
vmmc-supply = <®_3p3v>;
vqmmc-supply = <®_1p8v>;
bus-width = <8>;
+ mmc-hs200-1_8v;
non-removable;
status = "okay";
};
--
2.10.2
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH 1/9] mmc: sh_mobile_sdhi: simplify accessing DT data
2016-12-12 19:51 ` [PATCH 1/9] mmc: sh_mobile_sdhi: simplify accessing DT data Wolfram Sang
@ 2016-12-13 10:48 ` Geert Uytterhoeven
0 siblings, 0 replies; 14+ messages in thread
From: Geert Uytterhoeven @ 2016-12-13 10:48 UTC (permalink / raw)
To: Wolfram Sang; +Cc: Linux MMC List, Linux-Renesas, Simon Horman
On Mon, Dec 12, 2016 at 8:51 PM, Wolfram Sang
<wsa+renesas@sang-engineering.com> wrote:
> By using the helper of_device_get_match_data(), we can skip some
> checking and make the code simpler.
>
> Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
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] 14+ messages in thread
* Re: [PATCH 2/9] mmc: sh_mobile_sdhi: improve prerequisite for hw_reset
2016-12-12 19:51 ` [PATCH 2/9] mmc: sh_mobile_sdhi: improve prerequisite for hw_reset Wolfram Sang
@ 2016-12-13 10:51 ` Geert Uytterhoeven
2016-12-13 11:08 ` Wolfram Sang
0 siblings, 1 reply; 14+ messages in thread
From: Geert Uytterhoeven @ 2016-12-13 10:51 UTC (permalink / raw)
To: Wolfram Sang; +Cc: Linux MMC List, Linux-Renesas, Simon Horman
On Mon, Dec 12, 2016 at 8:51 PM, Wolfram Sang
<wsa+renesas@sang-engineering.com> wrote:
> We need a SCC unit for hw_reset. Those units can only be described in
> of_data. So, of_data and a valid SCC offset are prerequisites for
> enabling the hw_reset capability. Merge the two 'if' conditions into one
> and add a check for an scc offset.
>
> Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
> ---
> drivers/mmc/host/sh_mobile_sdhi.c | 30 ++++++++++++++----------------
> 1 file changed, 14 insertions(+), 16 deletions(-)
>
> diff --git a/drivers/mmc/host/sh_mobile_sdhi.c b/drivers/mmc/host/sh_mobile_sdhi.c
> index b48e3ae4549b6b..f3ea2c8b12040c 100644
> --- a/drivers/mmc/host/sh_mobile_sdhi.c
> +++ b/drivers/mmc/host/sh_mobile_sdhi.c
> @@ -656,27 +656,25 @@ static int sh_mobile_sdhi_probe(struct platform_device *pdev)
> if (ret < 0)
> goto efree;
>
> - if (host->mmc->caps & MMC_CAP_UHS_SDR104) {
> + if (of_data && of_data->scc_offset && host->mmc->caps & MMC_CAP_UHS_SDR104) {
For readability, you may want to add parentheses around the last check,
and break the long line before the classical punch card line limit.
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] 14+ messages in thread
* Re: [PATCH 2/9] mmc: sh_mobile_sdhi: improve prerequisite for hw_reset
2016-12-13 10:51 ` Geert Uytterhoeven
@ 2016-12-13 11:08 ` Wolfram Sang
0 siblings, 0 replies; 14+ messages in thread
From: Wolfram Sang @ 2016-12-13 11:08 UTC (permalink / raw)
To: Geert Uytterhoeven
Cc: Wolfram Sang, Linux MMC List, Linux-Renesas, Simon Horman
[-- Attachment #1: Type: text/plain, Size: 340 bytes --]
> > - if (host->mmc->caps & MMC_CAP_UHS_SDR104) {
> > + if (of_data && of_data->scc_offset && host->mmc->caps & MMC_CAP_UHS_SDR104) {
>
> For readability, you may want to add parentheses around the last check,
> and break the long line before the classical punch card line limit.
Your wish comes true in patch 7 :)
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 0/9] mmc: sh_mobile_sdhi: add HS200 support
2016-12-12 19:51 [PATCH 0/9] mmc: sh_mobile_sdhi: add HS200 support Wolfram Sang
` (8 preceding siblings ...)
2016-12-12 19:51 ` [PATCH 9/9] arm64: dts: r8a7796: " Wolfram Sang
@ 2016-12-29 19:02 ` Ulf Hansson
9 siblings, 0 replies; 14+ messages in thread
From: Ulf Hansson @ 2016-12-29 19:02 UTC (permalink / raw)
To: Wolfram Sang; +Cc: linux-mmc@vger.kernel.org, Linux-Renesas, Simon Horman
On 12 December 2016 at 20:51, Wolfram Sang
<wsa+renesas@sang-engineering.com> wrote:
> Here is a series adding HS200 support to the SDHI driver. Building the actual
> functionality on top of SDR104 support was rather easy. However, I figured the
> checks for enabling tuning were rather scattered over the driver and could be
> further improved. So I did some refactoring of that to make adding HS200
> support then a one-liner :)
>
> This has been tested on Salvator-X boards with R-Car H3 and M3-W SoCs. It has
> also been tested on a Lager board (R-Car H2) checking SDR50/104 for
> regressions. The whole test document showing significant speed-ups reading from
> the on-board eMMC can be found here:
>
> http://elinux.org/Tests:eMMC-HS
>
> and the branch can be found here:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux.git renesas/topic/sdhi-emmc-hs
>
> Please comment, review, apply...
>
> Thanks,
>
> Wolfram
>
>
> Wolfram Sang (9):
> mmc: sh_mobile_sdhi: simplify accessing DT data
> mmc: sh_mobile_sdhi: improve prerequisite for hw_reset
> mmc: sh_mobile_sdhi: improve prerequisites for tuning
> mmc: sh_mobile_sdhi: remove superfluous check in hw_reset
> mmc: sh_mobile_sdhi: remove superfluous check in init_tuning
> mmc: sh_mobile_sdhi: remove superfluous check in SCC error check
> mmc: sh_mobile_sdhi: enable HS200
> arm64: dts: r8a7795: enable HS200 for eMMC
> arm64: dts: r8a7796: enable HS200 for eMMC
>
> arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts | 1 +
> arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts | 1 +
> drivers/mmc/host/sh_mobile_sdhi.c | 67 ++++++++--------------
> 3 files changed, 27 insertions(+), 42 deletions(-)
>
Thanks, applied patch 1 -> 7 for next. DTS changes in patch 8 and 9
are for Simon to pick up.
Kind regards
Uffe
> --
> 2.10.2
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2016-12-29 19:02 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-12-12 19:51 [PATCH 0/9] mmc: sh_mobile_sdhi: add HS200 support Wolfram Sang
2016-12-12 19:51 ` [PATCH 1/9] mmc: sh_mobile_sdhi: simplify accessing DT data Wolfram Sang
2016-12-13 10:48 ` Geert Uytterhoeven
2016-12-12 19:51 ` [PATCH 2/9] mmc: sh_mobile_sdhi: improve prerequisite for hw_reset Wolfram Sang
2016-12-13 10:51 ` Geert Uytterhoeven
2016-12-13 11:08 ` Wolfram Sang
2016-12-12 19:51 ` [PATCH 3/9] mmc: sh_mobile_sdhi: improve prerequisites for tuning Wolfram Sang
2016-12-12 19:51 ` [PATCH 4/9] mmc: sh_mobile_sdhi: remove superfluous check in hw_reset Wolfram Sang
2016-12-12 19:51 ` [PATCH 5/9] mmc: sh_mobile_sdhi: remove superfluous check in init_tuning Wolfram Sang
2016-12-12 19:51 ` [PATCH 6/9] mmc: sh_mobile_sdhi: remove superfluous check in SCC error check Wolfram Sang
2016-12-12 19:51 ` [PATCH 7/9] mmc: sh_mobile_sdhi: enable HS200 Wolfram Sang
2016-12-12 19:51 ` [PATCH 8/9] arm64: dts: r8a7795: enable HS200 for eMMC Wolfram Sang
2016-12-12 19:51 ` [PATCH 9/9] arm64: dts: r8a7796: " Wolfram Sang
2016-12-29 19:02 ` [PATCH 0/9] mmc: sh_mobile_sdhi: add HS200 support Ulf Hansson
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.