public inbox for linux-mmc@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] mmc: sdhci: fix SDHCI_QUIRK_NO_HISPD_BIT handling
@ 2017-08-09  5:32 Yangbo Lu
  2017-08-14 11:34 ` Adrian Hunter
  0 siblings, 1 reply; 2+ messages in thread
From: Yangbo Lu @ 2017-08-09  5:32 UTC (permalink / raw)
  To: linux-mmc, ulf.hansson, Adrian Hunter; +Cc: Xiaobo Xie, Yangbo Lu

SD controller with SDHCI_QUIRK_NO_HISPD_BIT quirk probably
use high speed enable bit for other purpose. So this bit
shouldn't be changed for high speed enabling for this type of
SD controller.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
---
 drivers/mmc/host/sdhci.c | 27 ++++++++++++++-------------
 1 file changed, 14 insertions(+), 13 deletions(-)

diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
index a1ad2dd..25393b9 100644
--- a/drivers/mmc/host/sdhci.c
+++ b/drivers/mmc/host/sdhci.c
@@ -1641,19 +1641,20 @@ void sdhci_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
 
 	ctrl = sdhci_readb(host, SDHCI_HOST_CONTROL);
 
-	if ((ios->timing == MMC_TIMING_SD_HS ||
-	     ios->timing == MMC_TIMING_MMC_HS ||
-	     ios->timing == MMC_TIMING_MMC_HS400 ||
-	     ios->timing == MMC_TIMING_MMC_HS200 ||
-	     ios->timing == MMC_TIMING_MMC_DDR52 ||
-	     ios->timing == MMC_TIMING_UHS_SDR50 ||
-	     ios->timing == MMC_TIMING_UHS_SDR104 ||
-	     ios->timing == MMC_TIMING_UHS_DDR50 ||
-	     ios->timing == MMC_TIMING_UHS_SDR25)
-	    && !(host->quirks & SDHCI_QUIRK_NO_HISPD_BIT))
-		ctrl |= SDHCI_CTRL_HISPD;
-	else
-		ctrl &= ~SDHCI_CTRL_HISPD;
+	if (!(host->quirks & SDHCI_QUIRK_NO_HISPD_BIT)) {
+		if ((ios->timing == MMC_TIMING_SD_HS ||
+		     ios->timing == MMC_TIMING_MMC_HS ||
+		     ios->timing == MMC_TIMING_MMC_HS400 ||
+		     ios->timing == MMC_TIMING_MMC_HS200 ||
+		     ios->timing == MMC_TIMING_MMC_DDR52 ||
+		     ios->timing == MMC_TIMING_UHS_SDR50 ||
+		     ios->timing == MMC_TIMING_UHS_SDR104 ||
+		     ios->timing == MMC_TIMING_UHS_DDR50 ||
+		     ios->timing == MMC_TIMING_UHS_SDR25))
+			ctrl |= SDHCI_CTRL_HISPD;
+		else
+			ctrl &= ~SDHCI_CTRL_HISPD;
+	}
 
 	if (host->version >= SDHCI_SPEC_300) {
 		u16 clk, ctrl_2;
-- 
2.1.0.27.g96db324


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] mmc: sdhci: fix SDHCI_QUIRK_NO_HISPD_BIT handling
  2017-08-09  5:32 [PATCH] mmc: sdhci: fix SDHCI_QUIRK_NO_HISPD_BIT handling Yangbo Lu
@ 2017-08-14 11:34 ` Adrian Hunter
  0 siblings, 0 replies; 2+ messages in thread
From: Adrian Hunter @ 2017-08-14 11:34 UTC (permalink / raw)
  To: Yangbo Lu, linux-mmc, ulf.hansson; +Cc: Xiaobo Xie

On 09/08/17 08:32, Yangbo Lu wrote:
> SD controller with SDHCI_QUIRK_NO_HISPD_BIT quirk probably
> use high speed enable bit for other purpose. So this bit
> shouldn't be changed for high speed enabling for this type of
> SD controller.
> 
> Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>

Apart from the duplicate parenthesis.

Acked-by: Adrian Hunter <adrian.hunter@intel.com>

> ---
>  drivers/mmc/host/sdhci.c | 27 ++++++++++++++-------------
>  1 file changed, 14 insertions(+), 13 deletions(-)
> 
> diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
> index a1ad2dd..25393b9 100644
> --- a/drivers/mmc/host/sdhci.c
> +++ b/drivers/mmc/host/sdhci.c
> @@ -1641,19 +1641,20 @@ void sdhci_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
>  
>  	ctrl = sdhci_readb(host, SDHCI_HOST_CONTROL);
>  
> -	if ((ios->timing == MMC_TIMING_SD_HS ||
> -	     ios->timing == MMC_TIMING_MMC_HS ||
> -	     ios->timing == MMC_TIMING_MMC_HS400 ||
> -	     ios->timing == MMC_TIMING_MMC_HS200 ||
> -	     ios->timing == MMC_TIMING_MMC_DDR52 ||
> -	     ios->timing == MMC_TIMING_UHS_SDR50 ||
> -	     ios->timing == MMC_TIMING_UHS_SDR104 ||
> -	     ios->timing == MMC_TIMING_UHS_DDR50 ||
> -	     ios->timing == MMC_TIMING_UHS_SDR25)
> -	    && !(host->quirks & SDHCI_QUIRK_NO_HISPD_BIT))
> -		ctrl |= SDHCI_CTRL_HISPD;
> -	else
> -		ctrl &= ~SDHCI_CTRL_HISPD;
> +	if (!(host->quirks & SDHCI_QUIRK_NO_HISPD_BIT)) {
> +		if ((ios->timing == MMC_TIMING_SD_HS ||

Duplicate parenthesis.

> +		     ios->timing == MMC_TIMING_MMC_HS ||
> +		     ios->timing == MMC_TIMING_MMC_HS400 ||
> +		     ios->timing == MMC_TIMING_MMC_HS200 ||
> +		     ios->timing == MMC_TIMING_MMC_DDR52 ||
> +		     ios->timing == MMC_TIMING_UHS_SDR50 ||
> +		     ios->timing == MMC_TIMING_UHS_SDR104 ||
> +		     ios->timing == MMC_TIMING_UHS_DDR50 ||
> +		     ios->timing == MMC_TIMING_UHS_SDR25))
> +			ctrl |= SDHCI_CTRL_HISPD;
> +		else
> +			ctrl &= ~SDHCI_CTRL_HISPD;
> +	}
>  
>  	if (host->version >= SDHCI_SPEC_300) {
>  		u16 clk, ctrl_2;
> 


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2017-08-14 11:40 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-08-09  5:32 [PATCH] mmc: sdhci: fix SDHCI_QUIRK_NO_HISPD_BIT handling Yangbo Lu
2017-08-14 11:34 ` Adrian Hunter

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox