Re: [PATCH] mmc: sdhci-esdhc-imx: improve ESDHC_FLAG_ERR010450

From: Giulio Benetti
Date: Wed Aug 16 2023 - 13:16:08 EST


Hello Ulf, and All,

+Cc Andrew Lunn,

On 16/08/23 11:52, Ulf Hansson wrote:
On Fri, 11 Aug 2023 at 23:49, Giulio Benetti
<giulio.benetti@xxxxxxxxxxxxxxxxxxxxxx> wrote:

Errata ERR010450 only shows up if voltage is 1.8V, but if the device is
supplied by 3v3 the errata can be ignored. So let's check for if quirk
SDHCI_QUIRK2_NO_1_8_V is defined or not before limiting the frequency.

Sponsored by: Tekvox Inc.

Didn't know we have this kind of tag. Can you point me to the
documentation of it?

I've been pointed by Andew Lunn almost the same question here:
https://lore.kernel.org/lkml/859ff6a9-3ba9-ea2e-7b85-01813c5df0dd@xxxxxxxxxxxx/t/

and also asked to update:
Documentation/process/submitting-patches.rst

I've taken inspiration by this commit:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=73c289bac05919286f8c7e1660fcaf6ec0468363

where there is "Sponsored by:" and not "Sponsored-by:" otherwise
checkpatch.pl script complains about it.

Other commits already have that sort of tag.

I could add Sponsored-by tag documentation and in checkpatch.pl script
as well as other possible scripts where required as pointed by Andrew.

I think this is a good way to give credits to companies that sponsor
patches and it could be more interesting for companies in general to
pay someone to upstream patches because they have their name on it.
Otherwise it's not an everyday task to add a driver from scratch
and write in the top comment that is sponsored by some company.
Also now there is SPDX so that part would be dropped too.

What do you All think about this? Do I go for a RFC patchset to add
the Sponsored-by: tag?

Best regards
--
Giulio Benetti
CEO&CTO@Benetti Engineering sas

Cc: Jim Reinhart <jimr@xxxxxxxxxx>
Cc: James Autry <jautry@xxxxxxxxxx>
Cc: Matthew Maron <matthewm@xxxxxxxxxx>
Signed-off-by: Giulio Benetti <giulio.benetti@xxxxxxxxxxxxxxxxxxxxxx>

Kind regards
Uffe

---
drivers/mmc/host/sdhci-esdhc-imx.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c b/drivers/mmc/host/sdhci-esdhc-imx.c
index eebf94604a7f..cddecc1e1ac2 100644
--- a/drivers/mmc/host/sdhci-esdhc-imx.c
+++ b/drivers/mmc/host/sdhci-esdhc-imx.c
@@ -171,8 +171,8 @@
#define ESDHC_FLAG_HS400 BIT(9)
/*
* The IP has errata ERR010450
- * uSDHC: Due to the I/O timing limit, for SDR mode, SD card clock can't
- * exceed 150MHz, for DDR mode, SD card clock can't exceed 45MHz.
+ * uSDHC: At 1.8V due to the I/O timing limit, for SDR mode, SD card
+ * clock can't exceed 150MHz, for DDR mode, SD card clock can't exceed 45MHz.
*/
#define ESDHC_FLAG_ERR010450 BIT(10)
/* The IP supports HS400ES mode */
@@ -961,7 +961,8 @@ static inline void esdhc_pltfm_set_clock(struct sdhci_host *host,
| ESDHC_CLOCK_MASK);
sdhci_writel(host, temp, ESDHC_SYSTEM_CONTROL);

- if (imx_data->socdata->flags & ESDHC_FLAG_ERR010450) {
+ if ((imx_data->socdata->flags & ESDHC_FLAG_ERR010450) &&
+ (!(host->quirks2 & SDHCI_QUIRK2_NO_1_8_V))) {
unsigned int max_clock;

max_clock = imx_data->is_ddr ? 45000000 : 150000000;
--
2.34.1