On Fri, 24 Sep 2010 09:42:15 -0700
Philip Rakity <prak...@marvell.com> wrote:

> >From 9d64df0fa6874371446147f67c071e78c587c0d6 Mon Sep 17 00:00:00 2001
> From: Philip Rakity <prak...@marvell.com>
> Date: Fri, 24 Sep 2010 05:27:11 -0700
> Subject: [PATCH] sdhci: allow controller private registers to be changaed on 
> reset
> 
> allow controllers that have private registers that are reset when
> the controller is reset. They need to be reprogrammed back to their
> values when the reset happens.  Provide a hook to allow this to happen.
> 
> Signed-off-by: Philip Rakity <prak...@marvell.com>
> ---
>  drivers/mmc/host/sdhci.c |    3 +++
>  drivers/mmc/host/sdhci.h |    1 +
>  2 files changed, 4 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
> index 401527d..0774dad 100644
> --- a/drivers/mmc/host/sdhci.c
> +++ b/drivers/mmc/host/sdhci.c
> @@ -174,6 +174,9 @@ static void sdhci_reset(struct sdhci_host *host, u8 mask)
>  
>       if (host->quirks & SDHCI_QUIRK_RESTORE_IRQS_AFTER_RESET)
>               sdhci_clear_set_irqs(host, SDHCI_INT_ALL_MASK, ier);
> +
> +     if (host->ops->platform_specific_reset)
> +             host->ops->platform_specific_reset(host, mask);
>  }
>  
>  static void sdhci_set_ios(struct mmc_host *mmc, struct mmc_ios *ios);
> diff --git a/drivers/mmc/host/sdhci.h b/drivers/mmc/host/sdhci.h
> index d316bc7..f68af47 100644
> --- a/drivers/mmc/host/sdhci.h
> +++ b/drivers/mmc/host/sdhci.h
> @@ -323,6 +323,7 @@ struct sdhci_ops {
>       unsigned int    (*get_max_clock)(struct sdhci_host *host);
>       unsigned int    (*get_min_clock)(struct sdhci_host *host);
>       unsigned int    (*get_timeout_clock)(struct sdhci_host *host);
> +     void    (*platform_specific_reset)(struct sdhci_host *host, u8 mask);

See the patches I posted earlier about reset. All of sdhci_reset could be
cleaned up further by replacing sdhci_reset as a whole with a hookable
interface, and the hook you propose isn't sufficient for the Intel
devices, nor can it eliminate some of the other quirk flags.

Alan
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to