diff mbox

[v2,1/8] mmc: sdhci: add a callback of signal voltage switching

Message ID 1442469054-23644-1-git-send-email-yangbo.lu@freescale.com (mailing list archive)
State Superseded, archived
Headers show

Commit Message

yangbo lu Sept. 17, 2015, 5:50 a.m. UTC
Add a signal voltage switching callback to let host use its own
switching process.

Signed-off-by: Yangbo Lu <yangbo.lu@freescale.com>
---
Changes for v2:
	- Modified commit message
	- Added SDR50 support patches
---
 drivers/mmc/host/sdhci.c | 5 +++++
 drivers/mmc/host/sdhci.h | 2 ++
 2 files changed, 7 insertions(+)

Comments

Ulf Hansson Oct. 16, 2015, 1:18 p.m. UTC | #1
On 17 September 2015 at 07:50, Yangbo Lu <yangbo.lu@freescale.com> wrote:
> Add a signal voltage switching callback to let host use its own
> switching process.
>
> Signed-off-by: Yangbo Lu <yangbo.lu@freescale.com>

Sorry for the delay!

Unless you haven't noticed my recent statement around sdhci's
callbacks and quirks, please read these.
https://lkml.org/lkml/2015/10/8/734
https://lkml.org/lkml/2015/10/6/158

That said, I won't pick any of the patches from these patchset.

I would also encourage you and other people to help turning shdci into
a bunch of library functions.

Kind regards
Uffe

> ---
> Changes for v2:
>         - Modified commit message
>         - Added SDR50 support patches
> ---
>  drivers/mmc/host/sdhci.c | 5 +++++
>  drivers/mmc/host/sdhci.h | 2 ++
>  2 files changed, 7 insertions(+)
>
> diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
> index 64b7fdb..9b3d4c2 100644
> --- a/drivers/mmc/host/sdhci.c
> +++ b/drivers/mmc/host/sdhci.c
> @@ -1757,6 +1757,11 @@ static int sdhci_do_start_signal_voltage_switch(struct sdhci_host *host,
>         if (host->version < SDHCI_SPEC_300)
>                 return 0;
>
> +       if (host->ops->signal_voltage_switch) {
> +               host->ops->signal_voltage_switch(host, ios->signal_voltage);
> +               return 0;
> +       }
> +
>         ctrl = sdhci_readw(host, SDHCI_HOST_CONTROL2);
>
>         switch (ios->signal_voltage) {
> diff --git a/drivers/mmc/host/sdhci.h b/drivers/mmc/host/sdhci.h
> index 7c02ff4..723f034 100644
> --- a/drivers/mmc/host/sdhci.h
> +++ b/drivers/mmc/host/sdhci.h
> @@ -544,6 +544,8 @@ struct sdhci_ops {
>                                          struct mmc_card *card,
>                                          unsigned int max_dtr, int host_drv,
>                                          int card_drv, int *drv_type);
> +       void    (*signal_voltage_switch)(struct sdhci_host *host,
> +                                        unsigned char signal_voltage);
>  };
>
>  #ifdef CONFIG_MMC_SDHCI_IO_ACCESSORS
> --
> 2.1.0.27.g96db324
>
--
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 64b7fdb..9b3d4c2 100644
--- a/drivers/mmc/host/sdhci.c
+++ b/drivers/mmc/host/sdhci.c
@@ -1757,6 +1757,11 @@  static int sdhci_do_start_signal_voltage_switch(struct sdhci_host *host,
 	if (host->version < SDHCI_SPEC_300)
 		return 0;
 
+	if (host->ops->signal_voltage_switch) {
+		host->ops->signal_voltage_switch(host, ios->signal_voltage);
+		return 0;
+	}
+
 	ctrl = sdhci_readw(host, SDHCI_HOST_CONTROL2);
 
 	switch (ios->signal_voltage) {
diff --git a/drivers/mmc/host/sdhci.h b/drivers/mmc/host/sdhci.h
index 7c02ff4..723f034 100644
--- a/drivers/mmc/host/sdhci.h
+++ b/drivers/mmc/host/sdhci.h
@@ -544,6 +544,8 @@  struct sdhci_ops {
 					 struct mmc_card *card,
 					 unsigned int max_dtr, int host_drv,
 					 int card_drv, int *drv_type);
+	void	(*signal_voltage_switch)(struct sdhci_host *host,
+					 unsigned char signal_voltage);
 };
 
 #ifdef CONFIG_MMC_SDHCI_IO_ACCESSORS