Hi Rob, > On Mar 24, 2015, at 00:56 , Rob Herring <r...@kernel.org> wrote: > > High capacity support is not a host capability, but a device capability > that is queried via the OCR. The flag in the operating conditions > request argument can just be set unconditionally. This matches the Linux > implementation. > > Signed-off-by: Rob Herring <r...@kernel.org> > Cc: Pantelis Antoniou <pa...@antoniou-consulting.com> > --- > drivers/mmc/dw_mmc.c | 2 +- > drivers/mmc/fsl_esdhc.c | 2 +- > drivers/mmc/kona_sdhci.c | 1 - > drivers/mmc/mmc.c | 7 ++----- > drivers/mmc/mvebu_mmc.c | 2 +- > drivers/mmc/mxsmmc.c | 3 +-- > drivers/mmc/omap_hsmmc.c | 3 +-- > drivers/mmc/s3c_sdi.c | 2 +- > drivers/mmc/s5p_sdhci.c | 1 - > drivers/mmc/sh_mmcif.c | 2 +- > drivers/mmc/sunxi_mmc.c | 2 +- > drivers/mmc/tegra_mmc.c | 2 +- > drivers/mmc/zynq_sdhci.c | 2 -- > include/mmc.h | 1 - > 14 files changed, 11 insertions(+), 21 deletions(-) > > diff --git a/drivers/mmc/dw_mmc.c b/drivers/mmc/dw_mmc.c > index 76fa0b0..53a8aca 100644 > --- a/drivers/mmc/dw_mmc.c > +++ b/drivers/mmc/dw_mmc.c > @@ -388,7 +388,7 @@ int add_dwmci(struct dwmci_host *host, u32 max_clk, u32 > min_clk) > host->cfg.host_caps |= MMC_MODE_4BIT; > host->cfg.host_caps &= ~MMC_MODE_8BIT; > } > - host->cfg.host_caps |= MMC_MODE_HS | MMC_MODE_HS_52MHz | MMC_MODE_HC; > + host->cfg.host_caps |= MMC_MODE_HS | MMC_MODE_HS_52MHz; > > host->cfg.b_max = CONFIG_SYS_MMC_MAX_BLK_COUNT; > > diff --git a/drivers/mmc/fsl_esdhc.c b/drivers/mmc/fsl_esdhc.c > index db4d251..f99ad47 100644 > --- a/drivers/mmc/fsl_esdhc.c > +++ b/drivers/mmc/fsl_esdhc.c > @@ -620,7 +620,7 @@ int fsl_esdhc_initialize(bd_t *bis, struct fsl_esdhc_cfg > *cfg) > return -1; > } > > - cfg->cfg.host_caps = MMC_MODE_4BIT | MMC_MODE_8BIT | MMC_MODE_HC; > + cfg->cfg.host_caps = MMC_MODE_4BIT | MMC_MODE_8BIT; > #ifdef CONFIG_SYS_FSL_ESDHC_HAS_DDR_MODE > cfg->cfg.host_caps |= MMC_MODE_DDR_52MHz; > #endif > diff --git a/drivers/mmc/kona_sdhci.c b/drivers/mmc/kona_sdhci.c > index f804f4c..3653d00 100644 > --- a/drivers/mmc/kona_sdhci.c > +++ b/drivers/mmc/kona_sdhci.c > @@ -121,7 +121,6 @@ int kona_sdhci_init(int dev_index, u32 min_clk, u32 > quirks) > host->name = "kona-sdhci"; > host->ioaddr = reg_base; > host->quirks = quirks; > - host->host_caps = MMC_MODE_HC; > > if (init_kona_mmc_core(host)) { > free(host); > diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c > index a13769e..ea00753 100644 > --- a/drivers/mmc/mmc.c > +++ b/drivers/mmc/mmc.c > @@ -359,15 +359,12 @@ static int mmc_send_op_cond_iter(struct mmc *mmc, > struct mmc_cmd *cmd, > cmd->cmdidx = MMC_CMD_SEND_OP_COND; > cmd->resp_type = MMC_RSP_R3; > cmd->cmdarg = 0; > - if (use_arg && !mmc_host_is_spi(mmc)) { > - cmd->cmdarg = > + if (use_arg && !mmc_host_is_spi(mmc)) > + cmd->cmdarg = OCR_HCS | > (mmc->cfg->voltages & > (mmc->op_cond_response & OCR_VOLTAGE_MASK)) | > (mmc->op_cond_response & OCR_ACCESS_MODE); > > - if (mmc->cfg->host_caps & MMC_MODE_HC) > - cmd->cmdarg |= OCR_HCS; > - } > err = mmc_send_cmd(mmc, cmd, NULL); > if (err) > return err; > diff --git a/drivers/mmc/mvebu_mmc.c b/drivers/mmc/mvebu_mmc.c > index 8ca0904..056aef5 100644 > --- a/drivers/mmc/mvebu_mmc.c > +++ b/drivers/mmc/mvebu_mmc.c > @@ -418,7 +418,7 @@ static struct mmc_config mvebu_mmc_cfg = { > .f_min = MVEBU_MMC_BASE_FAST_CLOCK / MVEBU_MMC_BASE_DIV_MAX, > .f_max = MVEBU_MMC_CLOCKRATE_MAX, > .voltages = MMC_VDD_32_33 | MMC_VDD_33_34, > - .host_caps = MMC_MODE_4BIT | MMC_MODE_HS | MMC_MODE_HC | > + .host_caps = MMC_MODE_4BIT | MMC_MODE_HS | > MMC_MODE_HS_52MHz, > .part_type = PART_TYPE_DOS, > .b_max = CONFIG_SYS_MMC_MAX_BLK_COUNT, > diff --git a/drivers/mmc/mxsmmc.c b/drivers/mmc/mxsmmc.c > index 2fa4eee..31fb3ab 100644 > --- a/drivers/mmc/mxsmmc.c > +++ b/drivers/mmc/mxsmmc.c > @@ -405,8 +405,7 @@ int mxsmmc_initialize(bd_t *bis, int id, int (*wp)(int), > int (*cd)(int)) > priv->cfg.voltages = MMC_VDD_32_33 | MMC_VDD_33_34; > > priv->cfg.host_caps = MMC_MODE_4BIT | MMC_MODE_8BIT | > - MMC_MODE_HS_52MHz | MMC_MODE_HS | > - MMC_MODE_HC; > + MMC_MODE_HS_52MHz | MMC_MODE_HS; > > /* > * SSPCLK = 480 * 18 / 29 / 1 = 297.731 MHz > diff --git a/drivers/mmc/omap_hsmmc.c b/drivers/mmc/omap_hsmmc.c > index dc725cb..8238a7e 100644 > --- a/drivers/mmc/omap_hsmmc.c > +++ b/drivers/mmc/omap_hsmmc.c > @@ -651,8 +651,7 @@ int omap_mmc_init(int dev_index, uint host_caps_mask, > uint f_max, int cd_gpio, > if (priv_data == NULL) > return -1; > > - host_caps_val = MMC_MODE_4BIT | MMC_MODE_HS_52MHz | MMC_MODE_HS | > - MMC_MODE_HC; > + host_caps_val = MMC_MODE_4BIT | MMC_MODE_HS_52MHz | MMC_MODE_HS; > > switch (dev_index) { > case 0: > diff --git a/drivers/mmc/s3c_sdi.c b/drivers/mmc/s3c_sdi.c > index 1b5b705..02d1138 100644 > --- a/drivers/mmc/s3c_sdi.c > +++ b/drivers/mmc/s3c_sdi.c > @@ -298,7 +298,7 @@ int s3cmmc_initialize(bd_t *bis, int (*getcd)(struct mmc > *), > cfg->name = "S3C MMC"; > cfg->ops = &s3cmmc_ops; > cfg->voltages = MMC_VDD_32_33 | MMC_VDD_33_34; > - cfg->host_caps = MMC_MODE_4BIT | MMC_MODE_HC | MMC_MODE_HS; > + cfg->host_caps = MMC_MODE_4BIT | MMC_MODE_HS; > cfg->f_min = 400000; > cfg->f_max = get_PCLK() / 2; > cfg->b_max = 0x80; > diff --git a/drivers/mmc/s5p_sdhci.c b/drivers/mmc/s5p_sdhci.c > index 0eec731..8e1968a 100644 > --- a/drivers/mmc/s5p_sdhci.c > +++ b/drivers/mmc/s5p_sdhci.c > @@ -76,7 +76,6 @@ static int s5p_sdhci_core_init(struct sdhci_host *host) > host->set_control_reg = &s5p_sdhci_set_control_reg; > host->set_clock = set_mmc_clk; > > - host->host_caps = MMC_MODE_HC; > if (host->bus_width == 8) > host->host_caps |= MMC_MODE_8BIT; > > diff --git a/drivers/mmc/sh_mmcif.c b/drivers/mmc/sh_mmcif.c > index 76ba93b..f92cf00 100644 > --- a/drivers/mmc/sh_mmcif.c > +++ b/drivers/mmc/sh_mmcif.c > @@ -577,7 +577,7 @@ static struct mmc_config sh_mmcif_cfg = { > .name = DRIVER_NAME, > .ops = &sh_mmcif_ops, > .host_caps = MMC_MODE_HS | MMC_MODE_HS_52MHz | MMC_MODE_4BIT | > - MMC_MODE_8BIT | MMC_MODE_HC, > + MMC_MODE_8BIT, > .voltages = MMC_VDD_32_33 | MMC_VDD_33_34, > .b_max = CONFIG_SYS_MMC_MAX_BLK_COUNT, > }; > diff --git a/drivers/mmc/sunxi_mmc.c b/drivers/mmc/sunxi_mmc.c > index 2233545..0b7eb12 100644 > --- a/drivers/mmc/sunxi_mmc.c > +++ b/drivers/mmc/sunxi_mmc.c > @@ -449,7 +449,7 @@ struct mmc *sunxi_mmc_init(int sdc_no) > > cfg->voltages = MMC_VDD_32_33 | MMC_VDD_33_34; > cfg->host_caps = MMC_MODE_4BIT; > - cfg->host_caps |= MMC_MODE_HS_52MHz | MMC_MODE_HS | MMC_MODE_HC; > + cfg->host_caps |= MMC_MODE_HS_52MHz | MMC_MODE_HS; > cfg->b_max = CONFIG_SYS_MMC_MAX_BLK_COUNT; > > cfg->f_min = 400000; > diff --git a/drivers/mmc/tegra_mmc.c b/drivers/mmc/tegra_mmc.c > index 2cd8cf1..ca41b4d 100644 > --- a/drivers/mmc/tegra_mmc.c > +++ b/drivers/mmc/tegra_mmc.c > @@ -559,7 +559,7 @@ static int do_mmc_init(int dev_index) > host->cfg.host_caps |= MMC_MODE_8BIT; > if (host->width >= 4) > host->cfg.host_caps |= MMC_MODE_4BIT; > - host->cfg.host_caps |= MMC_MODE_HS_52MHz | MMC_MODE_HS | MMC_MODE_HC; > + host->cfg.host_caps |= MMC_MODE_HS_52MHz | MMC_MODE_HS; > > /* > * min freq is for card identification, and is the highest > diff --git a/drivers/mmc/zynq_sdhci.c b/drivers/mmc/zynq_sdhci.c > index 7887f11..a92f12d 100644 > --- a/drivers/mmc/zynq_sdhci.c > +++ b/drivers/mmc/zynq_sdhci.c > @@ -29,8 +29,6 @@ int zynq_sdhci_init(phys_addr_t regbase) > SDHCI_QUIRK_BROKEN_R1B; > host->version = sdhci_readw(host, SDHCI_HOST_VERSION); > > - host->host_caps = MMC_MODE_HC; > - > add_sdhci(host, 52000000, 52000000 >> 9); > return 0; > } > diff --git a/include/mmc.h b/include/mmc.h > index 2ad0f19..bdb003c 100644 > --- a/include/mmc.h > +++ b/include/mmc.h > @@ -55,7 +55,6 @@ > #define MMC_MODE_4BIT (1 << 2) > #define MMC_MODE_8BIT (1 << 3) > #define MMC_MODE_SPI (1 << 4) > -#define MMC_MODE_HC (1 << 5) > #define MMC_MODE_DDR_52MHz (1 << 6) > > #define SD_DATA_4BIT 0x00040000 > -- > 2.1.0 >
Hand merged and applied. Thanks. — Pantelis _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot