Message ID | 20230811214853.8623-1-giulio.benetti@benettiengineering.com |
---|---|
State | New |
Headers | show |
Series | mmc: sdhci-esdhc-imx: improve ESDHC_FLAG_ERR010450 | expand |
On 12/08/23 00:48, Giulio Benetti 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. > Cc: Jim Reinhart <jimr@tekvox.com> > Cc: James Autry <jautry@tekvox.com> > Cc: Matthew Maron <matthewm@tekvox.com> > Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> Haibo Chen, can we get an Acked-by from you? > --- > 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;
> -----Original Message----- > From: Adrian Hunter <adrian.hunter@intel.com> > Sent: 2023年8月15日 20:08 > To: Giulio Benetti <giulio.benetti@benettiengineering.com>; Bough Chen > <haibo.chen@nxp.com>; Ulf Hansson <ulf.hansson@linaro.org>; Shawn Guo > <shawnguo@kernel.org>; Sascha Hauer <s.hauer@pengutronix.de>; Fabio > Estevam <festevam@gmail.com>; dl-linux-imx <linux-imx@nxp.com> > Cc: Pengutronix Kernel Team <kernel@pengutronix.de>; > linux-mmc@vger.kernel.org; linux-arm-kernel@lists.infradead.org; > linux-kernel@vger.kernel.org; Jim Reinhart <jimr@tekvox.com>; James Autry > <jautry@tekvox.com>; Matthew Maron <matthewm@tekvox.com> > Subject: Re: [PATCH] mmc: sdhci-esdhc-imx: improve ESDHC_FLAG_ERR010450 > > On 12/08/23 00:48, Giulio Benetti 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. > > Cc: Jim Reinhart <jimr@tekvox.com> > > Cc: James Autry <jautry@tekvox.com> > > Cc: Matthew Maron <matthewm@tekvox.com> > > Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> > > Haibo Chen, can we get an Acked-by from you? Sorry for the delay, I just forget this mail. I just double check the Errata doc, yes, the limitation is only for 1.8v I/O timing. So Acked-by: Haibo Chen <haibo.chen@nxp.com> Thanks Best Regards Haibo Chen. > > > --- > > 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;
On 12/08/23 00:48, Giulio Benetti 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. > Cc: Jim Reinhart <jimr@tekvox.com> > Cc: James Autry <jautry@tekvox.com> > Cc: Matthew Maron <matthewm@tekvox.com> > Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> Acked-by: Adrian Hunter <adrian.hunter@intel.com> > --- > 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;
On Fri, 11 Aug 2023 at 23:49, Giulio Benetti <giulio.benetti@benettiengineering.com> 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? > Cc: Jim Reinhart <jimr@tekvox.com> > Cc: James Autry <jautry@tekvox.com> > Cc: Matthew Maron <matthewm@tekvox.com> > Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> 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 >
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@benettiengineering.com> 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@broadcom.com/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
On Wed, 16 Aug 2023 at 19:14, Giulio Benetti <giulio.benetti@benettiengineering.com> wrote: > > 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@benettiengineering.com> 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@broadcom.com/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. Yes, but that seems silly to me. We should not be using tags in this way. First there needs to be an agreement of what kind of tags we should allow in the commit messages, before we start using them. > > 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? My opinion is just one voice here, so at this point it doesn't really matter what I think. If *you* think this is a good idea, I encourage you to submit an RFC to the kernel docs for this. In this way we can collect the comments and see if people think this is a good idea. That said, do you want me to apply $subject patch without the tag or would you rather proceed with submitting an RFC first? [...] Kind regards Uffe
Hello Ulf, On 16/08/23 23:36, Ulf Hansson wrote: > On Wed, 16 Aug 2023 at 19:14, Giulio Benetti > <giulio.benetti@benettiengineering.com> wrote: >> >> 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@benettiengineering.com> 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@broadcom.com/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. > > Yes, but that seems silly to me. > > We should not be using tags in this way. First there needs to be an > agreement of what kind of tags we should allow in the commit messages, > before we start using them. > >> >> 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? > > My opinion is just one voice here, so at this point it doesn't really > matter what I think. > > If *you* think this is a good idea, I encourage you to submit an RFC > to the kernel docs for this. In this way we can collect the comments > and see if people think this is a good idea. Ok, I will go with a RFC soon, > That said, do you want me to apply $subject patch without the tag or > would you rather proceed with submitting an RFC first? It would be great if you can apply the patch without the tag please. Thank you Best regards
On Thu, 17 Aug 2023 at 18:44, Giulio Benetti <giulio.benetti@benettiengineering.com> wrote: > > Hello Ulf, > > On 16/08/23 23:36, Ulf Hansson wrote: > > On Wed, 16 Aug 2023 at 19:14, Giulio Benetti > > <giulio.benetti@benettiengineering.com> wrote: > >> > >> 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@benettiengineering.com> 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@broadcom.com/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. > > > > Yes, but that seems silly to me. > > > > We should not be using tags in this way. First there needs to be an > > agreement of what kind of tags we should allow in the commit messages, > > before we start using them. > > > >> > >> 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? > > > > My opinion is just one voice here, so at this point it doesn't really > > matter what I think. > > > > If *you* think this is a good idea, I encourage you to submit an RFC > > to the kernel docs for this. In this way we can collect the comments > > and see if people think this is a good idea. > > Ok, I will go with a RFC soon, > > > That said, do you want me to apply $subject patch without the tag or > > would you rather proceed with submitting an RFC first? > > It would be great if you can apply the patch without the tag please. Patch applied for next, thanks! Kind regards Uffe
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;
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. Cc: Jim Reinhart <jimr@tekvox.com> Cc: James Autry <jautry@tekvox.com> Cc: Matthew Maron <matthewm@tekvox.com> Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> --- drivers/mmc/host/sdhci-esdhc-imx.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)