diff mbox

[U-Boot,2/2] mmc: sdhci: remove the unnecessary argumetns for sdhci_setup_cfg

Message ID 1469527584-15123-2-git-send-email-jh80.chung@samsung.com
State Accepted
Delegated to: Jaehoon Chung
Headers show

Commit Message

Jaehoon Chung July 26, 2016, 10:06 a.m. UTC
Some arguments don't need to pass to sdhci_setup_cfg.
Generic variable can be used in sdhci_setup_cfg, and some arguments are
already included in sdhci_host struct.

It's enough that just pass the board specific things to sdhci_setup_cfg().
After removing the unnecessary arguments, it's more simpler than before.
It doesn't consider "Version" and "Capabilities" anymore in each SoC
driver.

Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
---
 drivers/mmc/msm_sdhci.c  |  4 +---
 drivers/mmc/sdhci.c      | 28 +++++++++++++++-------------
 drivers/mmc/zynq_sdhci.c |  9 ++-------
 include/sdhci.h          | 12 +++---------
 4 files changed, 21 insertions(+), 32 deletions(-)

Comments

Simon Glass Aug. 1, 2016, 2:20 a.m. UTC | #1
On 26 July 2016 at 04:06, Jaehoon Chung <jh80.chung@samsung.com> wrote:
> Some arguments don't need to pass to sdhci_setup_cfg.
> Generic variable can be used in sdhci_setup_cfg, and some arguments are
> already included in sdhci_host struct.
>
> It's enough that just pass the board specific things to sdhci_setup_cfg().
> After removing the unnecessary arguments, it's more simpler than before.
> It doesn't consider "Version" and "Capabilities" anymore in each SoC
> driver.
>
> Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
> ---
>  drivers/mmc/msm_sdhci.c  |  4 +---
>  drivers/mmc/sdhci.c      | 28 +++++++++++++++-------------
>  drivers/mmc/zynq_sdhci.c |  9 ++-------
>  include/sdhci.h          | 12 +++---------
>  4 files changed, 21 insertions(+), 32 deletions(-)

Reviewed-by: Simon Glass <sjg@chromium.org>
Simon Glass Aug. 4, 2016, 2:36 a.m. UTC | #2
On 31 July 2016 at 20:20, Simon Glass <sjg@chromium.org> wrote:
> On 26 July 2016 at 04:06, Jaehoon Chung <jh80.chung@samsung.com> wrote:
>> Some arguments don't need to pass to sdhci_setup_cfg.
>> Generic variable can be used in sdhci_setup_cfg, and some arguments are
>> already included in sdhci_host struct.
>>
>> It's enough that just pass the board specific things to sdhci_setup_cfg().
>> After removing the unnecessary arguments, it's more simpler than before.
>> It doesn't consider "Version" and "Capabilities" anymore in each SoC
>> driver.
>>
>> Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
>> ---
>>  drivers/mmc/msm_sdhci.c  |  4 +---
>>  drivers/mmc/sdhci.c      | 28 +++++++++++++++-------------
>>  drivers/mmc/zynq_sdhci.c |  9 ++-------
>>  include/sdhci.h          | 12 +++---------
>>  4 files changed, 21 insertions(+), 32 deletions(-)
>
> Reviewed-by: Simon Glass <sjg@chromium.org>

If you are applying this, can you please fix the typo in the subject?

- Simon
Jaehoon Chung Aug. 4, 2016, 2:39 a.m. UTC | #3
Hi Simon,

On 08/04/2016 11:36 AM, Simon Glass wrote:
> On 31 July 2016 at 20:20, Simon Glass <sjg@chromium.org> wrote:
>> On 26 July 2016 at 04:06, Jaehoon Chung <jh80.chung@samsung.com> wrote:
>>> Some arguments don't need to pass to sdhci_setup_cfg.
>>> Generic variable can be used in sdhci_setup_cfg, and some arguments are
>>> already included in sdhci_host struct.
>>>
>>> It's enough that just pass the board specific things to sdhci_setup_cfg().
>>> After removing the unnecessary arguments, it's more simpler than before.
>>> It doesn't consider "Version" and "Capabilities" anymore in each SoC
>>> driver.
>>>
>>> Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
>>> ---
>>>  drivers/mmc/msm_sdhci.c  |  4 +---
>>>  drivers/mmc/sdhci.c      | 28 +++++++++++++++-------------
>>>  drivers/mmc/zynq_sdhci.c |  9 ++-------
>>>  include/sdhci.h          | 12 +++---------
>>>  4 files changed, 21 insertions(+), 32 deletions(-)
>>
>> Reviewed-by: Simon Glass <sjg@chromium.org>
> 
> If you are applying this, can you please fix the typo in the subject?

Sure! Also i'm preparing other mmc patches..Thanks for reminding.

Best Regards,
Jaehoon Chung

> 
> - Simon
> 
> 
>
diff mbox

Patch

diff --git a/drivers/mmc/msm_sdhci.c b/drivers/mmc/msm_sdhci.c
index e90a044..a8cb9e2 100644
--- a/drivers/mmc/msm_sdhci.c
+++ b/drivers/mmc/msm_sdhci.c
@@ -143,9 +143,7 @@  static int msm_sdc_probe(struct udevice *dev)
 	/* Set host controller version */
 	host->version = sdhci_readw(host, SDHCI_HOST_VERSION);
 
-	caps = sdhci_readl(host, SDHCI_CAPABILITIES);
-	ret = sdhci_setup_cfg(&plat->cfg, dev->name, caps,
-			0, 0, host->version, host->quirks, 0);
+	ret = sdhci_setup_cfg(&plat->cfg, host, 0, 0);
 	host->mmc = &plat->mmc;
 	if (ret)
 		return ret;
diff --git a/drivers/mmc/sdhci.c b/drivers/mmc/sdhci.c
index d8cd75f..86ddab4 100644
--- a/drivers/mmc/sdhci.c
+++ b/drivers/mmc/sdhci.c
@@ -510,18 +510,22 @@  static const struct mmc_ops sdhci_ops = {
 };
 #endif
 
-int sdhci_setup_cfg(struct mmc_config *cfg, const char *name,
-		    uint caps, u32 max_clk, u32 min_clk, uint version,
-		    uint quirks, uint host_caps)
+int sdhci_setup_cfg(struct mmc_config *cfg, struct sdhci_host *host,
+		u32 max_clk, u32 min_clk)
 {
-	cfg->name = name;
+	u32 caps;
+
+	caps = sdhci_readl(host, SDHCI_CAPABILITIES);
+	host->version = sdhci_readw(host, SDHCI_HOST_VERSION);
+
+	cfg->name = host->name;
 #ifndef CONFIG_DM_MMC_OPS
 	cfg->ops = &sdhci_ops;
 #endif
 	if (max_clk)
 		cfg->f_max = max_clk;
 	else {
-		if (version >= SDHCI_SPEC_300)
+		if (SDHCI_GET_VERSION(host) >= SDHCI_SPEC_300)
 			cfg->f_max = (caps & SDHCI_CLOCK_V3_BASE_MASK) >>
 				SDHCI_CLOCK_BASE_SHIFT;
 		else
@@ -534,7 +538,7 @@  int sdhci_setup_cfg(struct mmc_config *cfg, const char *name,
 	if (min_clk)
 		cfg->f_min = min_clk;
 	else {
-		if (version >= SDHCI_SPEC_300)
+		if (SDHCI_GET_VERSION(host) >= SDHCI_SPEC_300)
 			cfg->f_min = cfg->f_max / SDHCI_MAX_DIV_SPEC_300;
 		else
 			cfg->f_min = cfg->f_max / SDHCI_MAX_DIV_SPEC_200;
@@ -548,16 +552,16 @@  int sdhci_setup_cfg(struct mmc_config *cfg, const char *name,
 		cfg->voltages |= MMC_VDD_165_195;
 
 	cfg->host_caps = MMC_MODE_HS | MMC_MODE_HS_52MHz | MMC_MODE_4BIT;
-	if (version >= SDHCI_SPEC_300) {
+	if (SDHCI_GET_VERSION(host) >= SDHCI_SPEC_300) {
 		if (caps & SDHCI_CAN_DO_8BIT)
 			cfg->host_caps |= MMC_MODE_8BIT;
 	}
 
-	if (quirks & SDHCI_QUIRK_NO_HISPD_BIT)
+	if (host->quirks & SDHCI_QUIRK_NO_HISPD_BIT)
 		cfg->host_caps &= ~(MMC_MODE_HS | MMC_MODE_HS_52MHz);
 
-	if (host_caps)
-		cfg->host_caps |= host_caps;
+	if (host->host_caps)
+		cfg->host_caps |= host->host_caps;
 
 
 	cfg->b_max = CONFIG_SYS_MMC_MAX_BLK_COUNT;
@@ -584,9 +588,7 @@  int add_sdhci(struct sdhci_host *host, u32 max_clk, u32 min_clk)
 	}
 #endif
 
-	if (sdhci_setup_cfg(&host->cfg, host->name, caps,
-			    max_clk, min_clk, SDHCI_GET_VERSION(host),
-			    host->quirks, host->host_caps)) {
+	if (sdhci_setup_cfg(&host->cfg, host, max_clk, min_clk)) {
 		printf("%s: Hardware doesn't specify base clock frequency\n",
 		       __func__);
 		return -EINVAL;
diff --git a/drivers/mmc/zynq_sdhci.c b/drivers/mmc/zynq_sdhci.c
index 69d6151..b7d1f94 100644
--- a/drivers/mmc/zynq_sdhci.c
+++ b/drivers/mmc/zynq_sdhci.c
@@ -37,13 +37,8 @@  static int arasan_sdhci_probe(struct udevice *dev)
 	host->quirks |= SDHCI_QUIRK_NO_HISPD_BIT;
 #endif
 
-	host->version = sdhci_readw(host, SDHCI_HOST_VERSION);
-
-	caps = sdhci_readl(host, SDHCI_CAPABILITIES);
-	ret = sdhci_setup_cfg(&plat->cfg, dev->name,
-			      caps, CONFIG_ZYNQ_SDHCI_MAX_FREQ,
-			      CONFIG_ZYNQ_SDHCI_MIN_FREQ, host->version,
-			      host->quirks, 0);
+	ret = sdhci_setup_cfg(&plat->cfg, host, CONFIG_ZYNQ_SDHCI_MAX_FREQ,
+			      CONFIG_ZYNQ_SDHCI_MIN_FREQ);
 	host->mmc = &plat->mmc;
 	if (ret)
 		return ret;
diff --git a/include/sdhci.h b/include/sdhci.h
index 693ecc1..fcef4dc 100644
--- a/include/sdhci.h
+++ b/include/sdhci.h
@@ -367,18 +367,12 @@  static inline u8 sdhci_readb(struct sdhci_host *host, int reg)
  * See msm_sdhci.c for an example.
  *
  * @cfg:	Configuration structure to fill in (generally &plat->mmc)
- * @name:	Device name (normally dev->name)
- * @caps:	Host capabilities (MMC_MODE_...)
+ * @host:	SDHCI host structure
  * @max_clk:	Maximum supported clock speed in HZ (0 for default)
  * @min_clk:	Minimum supported clock speed in HZ (0 for default)
- * @version:	Host controller version (generally read from the
- *		SDHCI_HOST_VERSION register)
- * @quirks:	Quick flags (SDHCI_QUIRK_...)
- * @host_caps:	Additional host capabilities (0 if none)
  */
-int sdhci_setup_cfg(struct mmc_config *cfg, const char *name,
-		    uint caps, u32 max_clk, u32 min_clk, uint version,
-		    uint quirks, uint host_caps);
+int sdhci_setup_cfg(struct mmc_config *cfg, struct sdhci_host *host,
+		    u32 max_clk, u32 min_clk);
 
 /**
  * sdhci_bind() - Set up a new MMC block device