Re: [PATCH 06/10] mmc: omap_hsmmc: remove access to SYSCONFIG register

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Aug 21, 2012 at 9:08 PM, Shubhrajyoti Datta
<omaplinuxkernel@xxxxxxxxx> wrote:
> Hi Venkat,
> Some doubts below.
>
> On Sat, Aug 18, 2012 at 12:22 AM, Venkatraman S <svenkatr@xxxxxx> wrote:
>> SYSCONFIG register of HSMMC IP is managed by the omap hwmod
>> abstraction layer.
>
> At init only right?
Yes.
>
>
>> Resetting the IP and configuring the correct
>> SYSCONFIG mode is centrally managed by hwmod.
>>
>> Remove code which manipulates IP reset and SYSCONFIG directly in the
>> driver.
>
> I am not sure if mmc needs a reset.
>
Actually it doesn't, as far as I know. That's why I propose it to be removed.

> However IMHO
> In case it needs a reset
>
> the hwmod way could be to use  omap_hwmod_reset
> However I  fear it may be an issue with dt.
> or
> may be sysc could be restored something like [1]
>
>
>
> if it doesnt need reset even the check for the SYSSTATUS could be
> considered for removal.
>
> [1] http://www.mail-archive.com/linux-mmc@xxxxxxxxxxxxxxx/msg12041.html
>
>
>
>>
>> Signed-off-by: Venkatraman S <svenkatr@xxxxxx>
>> ---
>>  drivers/mmc/host/omap_hsmmc.c | 24 ++----------------------
>>  1 file changed, 2 insertions(+), 22 deletions(-)
>>
>> diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
>> index da4f5a7..4bc55ac 100644
>> --- a/drivers/mmc/host/omap_hsmmc.c
>> +++ b/drivers/mmc/host/omap_hsmmc.c
>> @@ -44,7 +44,6 @@
>>  #include <plat/cpu.h>
>>
>>  /* OMAP HSMMC Host Controller Registers */
>> -#define OMAP_HSMMC_SYSCONFIG   0x0010
>>  #define OMAP_HSMMC_SYSSTATUS   0x0014
>>  #define OMAP_HSMMC_CON         0x002C
>>  #define OMAP_HSMMC_BLK         0x0104
>> @@ -576,21 +575,8 @@ static int omap_hsmmc_context_restore(struct omap_hsmmc_host *host)
>>         if (host->context_loss == context_loss)
>>                 return 1;
>>
>> -       /* Wait for hardware reset */
>> -       timeout = jiffies + msecs_to_jiffies(MMC_TIMEOUT_MS);
>> -       while ((OMAP_HSMMC_READ(host->base, SYSSTATUS) & RESETDONE) != RESETDONE
>> -               && time_before(jiffies, timeout))
>> -               ;
>> -
>> -       /* Do software reset */
>> -       OMAP_HSMMC_WRITE(host->base, SYSCONFIG, SOFTRESET);
>> -       timeout = jiffies + msecs_to_jiffies(MMC_TIMEOUT_MS);
>> -       while ((OMAP_HSMMC_READ(host->base, SYSSTATUS) & RESETDONE) != RESETDONE
>> -               && time_before(jiffies, timeout))
>> -               ;
>> -
>> -       OMAP_HSMMC_WRITE(host->base, SYSCONFIG,
>> -                       OMAP_HSMMC_READ(host->base, SYSCONFIG) | AUTOIDLE);
>> +       if (!OMAP_HSMMC_READ(host->base, SYSSTATUS) & RESETDONE)
>> +               return 1;
> Should this check be removed.
>
No - it's still needed to check that the IP is ready for use.

>>
>>         if (host->pdata->controller_flags & OMAP_HSMMC_SUPPORTS_DUAL_VOLT) {
>>                 if (host->power_mode != MMC_POWER_OFF &&
>> @@ -1593,10 +1579,6 @@ static void omap_hsmmc_conf_bus_power(struct omap_hsmmc_host *host)
>>         value = OMAP_HSMMC_READ(host->base, CAPA);
>>         OMAP_HSMMC_WRITE(host->base, CAPA, value | capa);
>>
>> -       /* Set the controller to AUTO IDLE mode */
>> -       value = OMAP_HSMMC_READ(host->base, SYSCONFIG);
>> -       OMAP_HSMMC_WRITE(host->base, SYSCONFIG, value | AUTOIDLE);
>> -
>>         /* Set SD bus power bit */
>>         set_sd_bus_power(host);
>>  }
>> @@ -1654,8 +1636,6 @@ static int omap_hsmmc_regs_show(struct seq_file *s, void *data)
>>
>>         pm_runtime_get_sync(host->dev);
>>
>> -       seq_printf(s, "SYSCONFIG:\t0x%08x\n",
>> -                       OMAP_HSMMC_READ(host->base, SYSCONFIG));
>>         seq_printf(s, "CON:\t\t0x%08x\n",
>>                         OMAP_HSMMC_READ(host->base, CON));
>>         seq_printf(s, "HCTL:\t\t0x%08x\n",
>> --
>> 1.7.11.1.25.g0e18bef
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
>> the body of a message to majordomo@xxxxxxxxxxxxxxx
>> 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@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux