diff mbox

mmc: sdhci: fix DRIVER_TYPE_D handling in sdhci_do_set_ios()

Message ID 20150514045500.D88EC220492@puck.mtv.corp.google.com (mailing list archive)
State New, archived
Headers show

Commit Message

Petri Gynther May 14, 2015, 4:55 a.m. UTC
sdhci_do_set_ios() doesn't currently program SDHCI_HOST_CONTROL2
register correctly when ios->drv_type == MMC_SET_DRIVER_TYPE_D.

Signed-off-by: Petri Gynther <pgynther@google.com>
---
 drivers/mmc/host/sdhci.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Petri Gynther May 19, 2015, 6:12 p.m. UTC | #1
Any objections to this patch? In my opinion, this is a must-have fix
for sdhci_do_set_ios() when host->preset_enabled == false and
ios->drv_type == MMC_SET_DRIVER_TYPE_D.

To be complete, I could also add handling for ios->drv_type ==
MMC_SET_DRIVER_TYPE_B, i.e.:
else if (ios->drv_type == MMC_SET_DRIVER_TYPE_B)
    ctrl_2 |= SDHCI_CTRL_DRV_TYPE_B;

but that's not absolutely necessary since:
#define  SDHCI_CTRL_DRV_TYPE_B  0x0000

On Wed, May 13, 2015 at 9:55 PM, Petri Gynther <pgynther@google.com> wrote:
> sdhci_do_set_ios() doesn't currently program SDHCI_HOST_CONTROL2
> register correctly when ios->drv_type == MMC_SET_DRIVER_TYPE_D.
>
> Signed-off-by: Petri Gynther <pgynther@google.com>
> ---
>  drivers/mmc/host/sdhci.c | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
> index c80287a..fe6094d 100644
> --- a/drivers/mmc/host/sdhci.c
> +++ b/drivers/mmc/host/sdhci.c
> @@ -1564,6 +1564,8 @@ static void sdhci_do_set_ios(struct sdhci_host *host, struct mmc_ios *ios)
>                                 ctrl_2 |= SDHCI_CTRL_DRV_TYPE_A;
>                         else if (ios->drv_type == MMC_SET_DRIVER_TYPE_C)
>                                 ctrl_2 |= SDHCI_CTRL_DRV_TYPE_C;
> +                       else if (ios->drv_type == MMC_SET_DRIVER_TYPE_D)
> +                               ctrl_2 |= SDHCI_CTRL_DRV_TYPE_D;
>
>                         sdhci_writew(host, ctrl_2, SDHCI_HOST_CONTROL2);
>                 } else {
> --
> 2.2.0.rc0.207.ga3a616c
>
--
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 May 20, 2015, 10:44 a.m. UTC | #2
On 19 May 2015 at 20:12, Petri Gynther <pgynther@google.com> wrote:
> Any objections to this patch? In my opinion, this is a must-have fix
> for sdhci_do_set_ios() when host->preset_enabled == false and
> ios->drv_type == MMC_SET_DRIVER_TYPE_D.
>
> To be complete, I could also add handling for ios->drv_type ==
> MMC_SET_DRIVER_TYPE_B, i.e.:
> else if (ios->drv_type == MMC_SET_DRIVER_TYPE_B)
>     ctrl_2 |= SDHCI_CTRL_DRV_TYPE_B;
>
> but that's not absolutely necessary since:
> #define  SDHCI_CTRL_DRV_TYPE_B  0x0000

Well to be consistent, I would rather see that you add above else if as well.

Can you please send a new version?

Kind regards
Uffe

>
> On Wed, May 13, 2015 at 9:55 PM, Petri Gynther <pgynther@google.com> wrote:
>> sdhci_do_set_ios() doesn't currently program SDHCI_HOST_CONTROL2
>> register correctly when ios->drv_type == MMC_SET_DRIVER_TYPE_D.
>>
>> Signed-off-by: Petri Gynther <pgynther@google.com>
>> ---
>>  drivers/mmc/host/sdhci.c | 2 ++
>>  1 file changed, 2 insertions(+)
>>
>> diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
>> index c80287a..fe6094d 100644
>> --- a/drivers/mmc/host/sdhci.c
>> +++ b/drivers/mmc/host/sdhci.c
>> @@ -1564,6 +1564,8 @@ static void sdhci_do_set_ios(struct sdhci_host *host, struct mmc_ios *ios)
>>                                 ctrl_2 |= SDHCI_CTRL_DRV_TYPE_A;
>>                         else if (ios->drv_type == MMC_SET_DRIVER_TYPE_C)
>>                                 ctrl_2 |= SDHCI_CTRL_DRV_TYPE_C;
>> +                       else if (ios->drv_type == MMC_SET_DRIVER_TYPE_D)
>> +                               ctrl_2 |= SDHCI_CTRL_DRV_TYPE_D;
>>
>>                         sdhci_writew(host, ctrl_2, SDHCI_HOST_CONTROL2);
>>                 } else {
>> --
>> 2.2.0.rc0.207.ga3a616c
>>
--
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.c b/drivers/mmc/host/sdhci.c
index c80287a..fe6094d 100644
--- a/drivers/mmc/host/sdhci.c
+++ b/drivers/mmc/host/sdhci.c
@@ -1564,6 +1564,8 @@  static void sdhci_do_set_ios(struct sdhci_host *host, struct mmc_ios *ios)
 				ctrl_2 |= SDHCI_CTRL_DRV_TYPE_A;
 			else if (ios->drv_type == MMC_SET_DRIVER_TYPE_C)
 				ctrl_2 |= SDHCI_CTRL_DRV_TYPE_C;
+			else if (ios->drv_type == MMC_SET_DRIVER_TYPE_D)
+				ctrl_2 |= SDHCI_CTRL_DRV_TYPE_D;
 
 			sdhci_writew(host, ctrl_2, SDHCI_HOST_CONTROL2);
 		} else {