LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
* [PATCH v2 0/3] Fix issues with phy configurations in am65x MMC driver
@ 2019-05-10 3:42 Faiz Abbas
2019-05-10 3:42 ` [PATCH v2 1/3] mmc: sdhci_am654: Improve line wrapping with regmap_*() calls Faiz Abbas
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Faiz Abbas @ 2019-05-10 3:42 UTC (permalink / raw)
To: linux-kernel, linux-mmc; +Cc: ulf.hansson, adrian.hunter, faiz_abbas
The following patches fix issues with phy configurations for
sdhci_am654 driver.
v2:
1. Split patch 1 into 2 separate patches.
2. Improved patch descriptions.
Faiz Abbas (3):
mmc: sdhci_am654: Improve line wrapping with regmap_*() calls
mmc: sdhci_am654: Print error message if the DLL fails to lock
mmc: sdhci_am654: Fix SLOTTYPE write
drivers/mmc/host/sdhci_am654.c | 37 ++++++++++++++++------------------
1 file changed, 17 insertions(+), 20 deletions(-)
--
2.19.2
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v2 1/3] mmc: sdhci_am654: Improve line wrapping with regmap_*() calls
2019-05-10 3:42 [PATCH v2 0/3] Fix issues with phy configurations in am65x MMC driver Faiz Abbas
@ 2019-05-10 3:42 ` Faiz Abbas
2019-05-10 3:42 ` [PATCH v2 2/3] mmc: sdhci_am654: Print error message if the DLL fails to lock Faiz Abbas
2019-05-10 3:42 ` [PATCH v2 3/3] mmc: sdhci_am654: Fix SLOTTYPE write Faiz Abbas
2 siblings, 0 replies; 6+ messages in thread
From: Faiz Abbas @ 2019-05-10 3:42 UTC (permalink / raw)
To: linux-kernel, linux-mmc; +Cc: ulf.hansson, adrian.hunter, faiz_abbas
Line wrapping with the regmap_*() functions is way more conservative
than required by the 80 character rule. Expand the function calls out to
use less number of lines.
Signed-off-by: Faiz Abbas <faiz_abbas@ti.com>
---
drivers/mmc/host/sdhci_am654.c | 34 +++++++++++++---------------------
1 file changed, 13 insertions(+), 21 deletions(-)
diff --git a/drivers/mmc/host/sdhci_am654.c b/drivers/mmc/host/sdhci_am654.c
index a91c0b45c48d..337c24b8f4a8 100644
--- a/drivers/mmc/host/sdhci_am654.c
+++ b/drivers/mmc/host/sdhci_am654.c
@@ -88,8 +88,7 @@ static void sdhci_am654_set_clock(struct sdhci_host *host, unsigned int clock)
int ret;
if (sdhci_am654->dll_on) {
- regmap_update_bits(sdhci_am654->base, PHY_CTRL1,
- ENDLL_MASK, 0);
+ regmap_update_bits(sdhci_am654->base, PHY_CTRL1, ENDLL_MASK, 0);
sdhci_am654->dll_on = false;
}
@@ -101,8 +100,7 @@ static void sdhci_am654_set_clock(struct sdhci_host *host, unsigned int clock)
mask = OTAPDLYENA_MASK | OTAPDLYSEL_MASK;
val = (1 << OTAPDLYENA_SHIFT) |
(sdhci_am654->otap_del_sel << OTAPDLYSEL_SHIFT);
- regmap_update_bits(sdhci_am654->base, PHY_CTRL4,
- mask, val);
+ regmap_update_bits(sdhci_am654->base, PHY_CTRL4, mask, val);
switch (clock) {
case 200000000:
sel50 = 0;
@@ -120,8 +118,7 @@ static void sdhci_am654_set_clock(struct sdhci_host *host, unsigned int clock)
/* Configure PHY DLL frequency */
mask = SEL50_MASK | SEL100_MASK;
val = (sel50 << SEL50_SHIFT) | (sel100 << SEL100_SHIFT);
- regmap_update_bits(sdhci_am654->base, PHY_CTRL5,
- mask, val);
+ regmap_update_bits(sdhci_am654->base, PHY_CTRL5, mask, val);
/* Configure DLL TRIM */
mask = DLL_TRIM_ICP_MASK;
val = sdhci_am654->trm_icp << DLL_TRIM_ICP_SHIFT;
@@ -129,20 +126,17 @@ static void sdhci_am654_set_clock(struct sdhci_host *host, unsigned int clock)
/* Configure DLL driver strength */
mask |= DR_TY_MASK;
val |= sdhci_am654->drv_strength << DR_TY_SHIFT;
- regmap_update_bits(sdhci_am654->base, PHY_CTRL1,
- mask, val);
+ regmap_update_bits(sdhci_am654->base, PHY_CTRL1, mask, val);
/* Enable DLL */
- regmap_update_bits(sdhci_am654->base, PHY_CTRL1,
- ENDLL_MASK, 0x1 << ENDLL_SHIFT);
+ regmap_update_bits(sdhci_am654->base, PHY_CTRL1, ENDLL_MASK,
+ 0x1 << ENDLL_SHIFT);
/*
* Poll for DLL ready. Use a one second timeout.
* Works in all experiments done so far
*/
- ret = regmap_read_poll_timeout(sdhci_am654->base,
- PHY_STAT1, val,
- val & DLLRDY_MASK,
- 1000, 1000000);
-
+ ret = regmap_read_poll_timeout(sdhci_am654->base, PHY_STAT1,
+ val, val & DLLRDY_MASK, 1000,
+ 1000000);
sdhci_am654->dll_on = true;
}
}
@@ -208,8 +202,7 @@ static int sdhci_am654_init(struct sdhci_host *host)
/* Reset OTAP to default value */
mask = OTAPDLYENA_MASK | OTAPDLYSEL_MASK;
- regmap_update_bits(sdhci_am654->base, PHY_CTRL4,
- mask, 0x0);
+ regmap_update_bits(sdhci_am654->base, PHY_CTRL4, mask, 0x0);
regmap_read(sdhci_am654->base, PHY_STAT1, &val);
if (~val & CALDONE_MASK) {
@@ -223,15 +216,14 @@ static int sdhci_am654_init(struct sdhci_host *host)
}
/* Enable pins by setting IO mux to 0 */
- regmap_update_bits(sdhci_am654->base, PHY_CTRL1,
- IOMUX_ENABLE_MASK, 0);
+ regmap_update_bits(sdhci_am654->base, PHY_CTRL1, IOMUX_ENABLE_MASK, 0);
/* Set slot type based on SD or eMMC */
if (host->mmc->caps & MMC_CAP_NONREMOVABLE)
ctl_cfg_2 = SLOTTYPE_EMBEDDED;
- regmap_update_bits(sdhci_am654->base, CTL_CFG_2,
- ctl_cfg_2, SLOTTYPE_MASK);
+ regmap_update_bits(sdhci_am654->base, CTL_CFG_2, ctl_cfg_2,
+ SLOTTYPE_MASK);
return sdhci_add_host(host);
}
--
2.19.2
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v2 2/3] mmc: sdhci_am654: Print error message if the DLL fails to lock
2019-05-10 3:42 [PATCH v2 0/3] Fix issues with phy configurations in am65x MMC driver Faiz Abbas
2019-05-10 3:42 ` [PATCH v2 1/3] mmc: sdhci_am654: Improve line wrapping with regmap_*() calls Faiz Abbas
@ 2019-05-10 3:42 ` Faiz Abbas
2019-05-10 3:42 ` [PATCH v2 3/3] mmc: sdhci_am654: Fix SLOTTYPE write Faiz Abbas
2 siblings, 0 replies; 6+ messages in thread
From: Faiz Abbas @ 2019-05-10 3:42 UTC (permalink / raw)
To: linux-kernel, linux-mmc; +Cc: ulf.hansson, adrian.hunter, faiz_abbas
Print an error message and return if DLL fails to lock.
Signed-off-by: Faiz Abbas <faiz_abbas@ti.com>
---
drivers/mmc/host/sdhci_am654.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/drivers/mmc/host/sdhci_am654.c b/drivers/mmc/host/sdhci_am654.c
index 337c24b8f4a8..3ff949925127 100644
--- a/drivers/mmc/host/sdhci_am654.c
+++ b/drivers/mmc/host/sdhci_am654.c
@@ -137,6 +137,11 @@ static void sdhci_am654_set_clock(struct sdhci_host *host, unsigned int clock)
ret = regmap_read_poll_timeout(sdhci_am654->base, PHY_STAT1,
val, val & DLLRDY_MASK, 1000,
1000000);
+ if (ret) {
+ dev_err(mmc_dev(host->mmc), "DLL failed to relock\n");
+ return;
+ }
+
sdhci_am654->dll_on = true;
}
}
--
2.19.2
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v2 3/3] mmc: sdhci_am654: Fix SLOTTYPE write
2019-05-10 3:42 [PATCH v2 0/3] Fix issues with phy configurations in am65x MMC driver Faiz Abbas
2019-05-10 3:42 ` [PATCH v2 1/3] mmc: sdhci_am654: Improve line wrapping with regmap_*() calls Faiz Abbas
2019-05-10 3:42 ` [PATCH v2 2/3] mmc: sdhci_am654: Print error message if the DLL fails to lock Faiz Abbas
@ 2019-05-10 3:42 ` Faiz Abbas
2019-05-10 5:58 ` Adrian Hunter
2 siblings, 1 reply; 6+ messages in thread
From: Faiz Abbas @ 2019-05-10 3:42 UTC (permalink / raw)
To: linux-kernel, linux-mmc; +Cc: ulf.hansson, adrian.hunter, faiz_abbas
In the call to regmap_update_bits() for SLOTTYPE, the mask and value
fields are exchanged. Fix this. This didn't have any affect on the
driver because this was a NOP and it was taking the correct value from
the bootloader.
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Faiz Abbas <faiz_abbas@ti.com>
---
drivers/mmc/host/sdhci_am654.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/mmc/host/sdhci_am654.c b/drivers/mmc/host/sdhci_am654.c
index 3ff949925127..d0b20780dd0f 100644
--- a/drivers/mmc/host/sdhci_am654.c
+++ b/drivers/mmc/host/sdhci_am654.c
@@ -227,8 +227,8 @@ static int sdhci_am654_init(struct sdhci_host *host)
if (host->mmc->caps & MMC_CAP_NONREMOVABLE)
ctl_cfg_2 = SLOTTYPE_EMBEDDED;
- regmap_update_bits(sdhci_am654->base, CTL_CFG_2, ctl_cfg_2,
- SLOTTYPE_MASK);
+ regmap_update_bits(sdhci_am654->base, CTL_CFG_2, SLOTTYPE_MASK,
+ ctl_cfg_2);
return sdhci_add_host(host);
}
--
2.19.2
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v2 3/3] mmc: sdhci_am654: Fix SLOTTYPE write
2019-05-10 3:42 ` [PATCH v2 3/3] mmc: sdhci_am654: Fix SLOTTYPE write Faiz Abbas
@ 2019-05-10 5:58 ` Adrian Hunter
2019-05-28 8:32 ` Faiz Abbas
0 siblings, 1 reply; 6+ messages in thread
From: Adrian Hunter @ 2019-05-10 5:58 UTC (permalink / raw)
To: Faiz Abbas, linux-kernel, linux-mmc; +Cc: ulf.hansson
On 10/05/19 6:42 AM, Faiz Abbas wrote:
> In the call to regmap_update_bits() for SLOTTYPE, the mask and value
> fields are exchanged. Fix this. This didn't have any affect on the
> driver because this was a NOP and it was taking the correct value from
> the bootloader.
>
> Cc: stable <stable@vger.kernel.org>
Except that it doesn't apply to stable because of patch 1. Maybe make this
the first patch.
> Signed-off-by: Faiz Abbas <faiz_abbas@ti.com>
> ---
> drivers/mmc/host/sdhci_am654.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/mmc/host/sdhci_am654.c b/drivers/mmc/host/sdhci_am654.c
> index 3ff949925127..d0b20780dd0f 100644
> --- a/drivers/mmc/host/sdhci_am654.c
> +++ b/drivers/mmc/host/sdhci_am654.c
> @@ -227,8 +227,8 @@ static int sdhci_am654_init(struct sdhci_host *host)
> if (host->mmc->caps & MMC_CAP_NONREMOVABLE)
> ctl_cfg_2 = SLOTTYPE_EMBEDDED;
>
> - regmap_update_bits(sdhci_am654->base, CTL_CFG_2, ctl_cfg_2,
> - SLOTTYPE_MASK);
> + regmap_update_bits(sdhci_am654->base, CTL_CFG_2, SLOTTYPE_MASK,
> + ctl_cfg_2);
>
> return sdhci_add_host(host);
> }
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2 3/3] mmc: sdhci_am654: Fix SLOTTYPE write
2019-05-10 5:58 ` Adrian Hunter
@ 2019-05-28 8:32 ` Faiz Abbas
0 siblings, 0 replies; 6+ messages in thread
From: Faiz Abbas @ 2019-05-28 8:32 UTC (permalink / raw)
To: Adrian Hunter, linux-kernel, linux-mmc; +Cc: ulf.hansson
Hi Adrian,
On 10/05/19 11:28 AM, Adrian Hunter wrote:
> On 10/05/19 6:42 AM, Faiz Abbas wrote:
>> In the call to regmap_update_bits() for SLOTTYPE, the mask and value
>> fields are exchanged. Fix this. This didn't have any affect on the
>> driver because this was a NOP and it was taking the correct value from
>> the bootloader.
>>
>> Cc: stable <stable@vger.kernel.org>
>
> Except that it doesn't apply to stable because of patch 1. Maybe make this
> the first patch.
>
Ok. Sending v3 with this as first patch.
Thanks,
Faiz
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2019-05-28 8:32 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-05-10 3:42 [PATCH v2 0/3] Fix issues with phy configurations in am65x MMC driver Faiz Abbas
2019-05-10 3:42 ` [PATCH v2 1/3] mmc: sdhci_am654: Improve line wrapping with regmap_*() calls Faiz Abbas
2019-05-10 3:42 ` [PATCH v2 2/3] mmc: sdhci_am654: Print error message if the DLL fails to lock Faiz Abbas
2019-05-10 3:42 ` [PATCH v2 3/3] mmc: sdhci_am654: Fix SLOTTYPE write Faiz Abbas
2019-05-10 5:58 ` Adrian Hunter
2019-05-28 8:32 ` Faiz Abbas
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).