diff mbox

mmc: sdhci-esdhc-imx: do not touch other bit when config DTOCV

Message ID 1471249178-32204-1-git-send-email-haibo.chen@nxp.com (mailing list archive)
State New, archived
Headers show

Commit Message

Bough Chen Aug. 15, 2016, 8:19 a.m. UTC
Now, when call esdhc_set_timeout() to set the data timeout counter value,
IPP_RST_N(bit 23) is wrongly affected. This patch add a mask to avoid this.

Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
---
 drivers/mmc/host/sdhci-esdhc-imx.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Dong Aisheng Aug. 16, 2016, 7:30 a.m. UTC | #1
On Mon, Aug 15, 2016 at 04:19:38PM +0800, Haibo Chen wrote:
> Now, when call esdhc_set_timeout() to set the data timeout counter value,
> IPP_RST_N(bit 23) is wrongly affected. This patch add a mask to avoid this.
> 
> Signed-off-by: Haibo Chen <haibo.chen@nxp.com>

Acked-by: Dong Aisheng <aisheng.dong@nxp.com>

Regards
Dong Aisheng

> ---
>  drivers/mmc/host/sdhci-esdhc-imx.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c b/drivers/mmc/host/sdhci-esdhc-imx.c
> index 99e0b33..437c448 100644
> --- a/drivers/mmc/host/sdhci-esdhc-imx.c
> +++ b/drivers/mmc/host/sdhci-esdhc-imx.c
> @@ -31,6 +31,7 @@
>  #include "sdhci-pltfm.h"
>  #include "sdhci-esdhc.h"
>  
> +#define ESDHC_SYS_CTRL_DTOCV_MASK	0x0f
>  #define	ESDHC_CTRL_D3CD			0x08
>  #define ESDHC_BURST_LEN_EN_INCR		(1 << 27)
>  /* VENDOR SPEC register */
> @@ -937,7 +938,8 @@ static void esdhc_set_timeout(struct sdhci_host *host, struct mmc_command *cmd)
>  	struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host);
>  
>  	/* use maximum timeout counter */
> -	sdhci_writeb(host, esdhc_is_usdhc(imx_data) ? 0xF : 0xE,
> +	esdhc_clrset_le(host, ESDHC_SYS_CTRL_DTOCV_MASK,
> +			esdhc_is_usdhc(imx_data) ? 0xF : 0xE,
>  			SDHCI_TIMEOUT_CONTROL);
>  }
>  
> -- 
> 1.9.1
> 
> --
> 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
--
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
Adrian Hunter Aug. 18, 2016, 12:49 p.m. UTC | #2
On 16/08/16 10:30, Dong Aisheng wrote:
> On Mon, Aug 15, 2016 at 04:19:38PM +0800, Haibo Chen wrote:
>> Now, when call esdhc_set_timeout() to set the data timeout counter value,
>> IPP_RST_N(bit 23) is wrongly affected. This patch add a mask to avoid this.
>>
>> Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
> 
> Acked-by: Dong Aisheng <aisheng.dong@nxp.com>

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

> 
> Regards
> Dong Aisheng
> 
>> ---
>>  drivers/mmc/host/sdhci-esdhc-imx.c | 4 +++-
>>  1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c b/drivers/mmc/host/sdhci-esdhc-imx.c
>> index 99e0b33..437c448 100644
>> --- a/drivers/mmc/host/sdhci-esdhc-imx.c
>> +++ b/drivers/mmc/host/sdhci-esdhc-imx.c
>> @@ -31,6 +31,7 @@
>>  #include "sdhci-pltfm.h"
>>  #include "sdhci-esdhc.h"
>>  
>> +#define ESDHC_SYS_CTRL_DTOCV_MASK	0x0f
>>  #define	ESDHC_CTRL_D3CD			0x08
>>  #define ESDHC_BURST_LEN_EN_INCR		(1 << 27)
>>  /* VENDOR SPEC register */
>> @@ -937,7 +938,8 @@ static void esdhc_set_timeout(struct sdhci_host *host, struct mmc_command *cmd)
>>  	struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host);
>>  
>>  	/* use maximum timeout counter */
>> -	sdhci_writeb(host, esdhc_is_usdhc(imx_data) ? 0xF : 0xE,
>> +	esdhc_clrset_le(host, ESDHC_SYS_CTRL_DTOCV_MASK,
>> +			esdhc_is_usdhc(imx_data) ? 0xF : 0xE,
>>  			SDHCI_TIMEOUT_CONTROL);
>>  }
>>  
>> -- 
>> 1.9.1
>>
>> --
>> 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
> 

--
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
Ulf Hansson Aug. 22, 2016, 1:40 p.m. UTC | #3
On 15 August 2016 at 10:19, Haibo Chen <haibo.chen@nxp.com> wrote:
> Now, when call esdhc_set_timeout() to set the data timeout counter value,
> IPP_RST_N(bit 23) is wrongly affected. This patch add a mask to avoid this.
>
> Signed-off-by: Haibo Chen <haibo.chen@nxp.com>'

Thanks, applied for next!

Kind regards
Uffe

> ---
>  drivers/mmc/host/sdhci-esdhc-imx.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c b/drivers/mmc/host/sdhci-esdhc-imx.c
> index 99e0b33..437c448 100644
> --- a/drivers/mmc/host/sdhci-esdhc-imx.c
> +++ b/drivers/mmc/host/sdhci-esdhc-imx.c
> @@ -31,6 +31,7 @@
>  #include "sdhci-pltfm.h"
>  #include "sdhci-esdhc.h"
>
> +#define ESDHC_SYS_CTRL_DTOCV_MASK      0x0f
>  #define        ESDHC_CTRL_D3CD                 0x08
>  #define ESDHC_BURST_LEN_EN_INCR                (1 << 27)
>  /* VENDOR SPEC register */
> @@ -937,7 +938,8 @@ static void esdhc_set_timeout(struct sdhci_host *host, struct mmc_command *cmd)
>         struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host);
>
>         /* use maximum timeout counter */
> -       sdhci_writeb(host, esdhc_is_usdhc(imx_data) ? 0xF : 0xE,
> +       esdhc_clrset_le(host, ESDHC_SYS_CTRL_DTOCV_MASK,
> +                       esdhc_is_usdhc(imx_data) ? 0xF : 0xE,
>                         SDHCI_TIMEOUT_CONTROL);
>  }
>
> --
> 1.9.1
>
--
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
diff mbox

Patch

diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c b/drivers/mmc/host/sdhci-esdhc-imx.c
index 99e0b33..437c448 100644
--- a/drivers/mmc/host/sdhci-esdhc-imx.c
+++ b/drivers/mmc/host/sdhci-esdhc-imx.c
@@ -31,6 +31,7 @@ 
 #include "sdhci-pltfm.h"
 #include "sdhci-esdhc.h"
 
+#define ESDHC_SYS_CTRL_DTOCV_MASK	0x0f
 #define	ESDHC_CTRL_D3CD			0x08
 #define ESDHC_BURST_LEN_EN_INCR		(1 << 27)
 /* VENDOR SPEC register */
@@ -937,7 +938,8 @@  static void esdhc_set_timeout(struct sdhci_host *host, struct mmc_command *cmd)
 	struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host);
 
 	/* use maximum timeout counter */
-	sdhci_writeb(host, esdhc_is_usdhc(imx_data) ? 0xF : 0xE,
+	esdhc_clrset_le(host, ESDHC_SYS_CTRL_DTOCV_MASK,
+			esdhc_is_usdhc(imx_data) ? 0xF : 0xE,
 			SDHCI_TIMEOUT_CONTROL);
 }