Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'mmc-v4.7-rc1-2' of git://git.linaro.org/people/ulf.hansson/mmc

Pull MMC fixes from Ulf Hansson:
"MMC core:
- Fix/restore behaviour when selecting bus width for (e)MMC

MMC host:
- sunxi: Fix eMMC HS-DDR modes on Allwinner A80"

* tag 'mmc-v4.7-rc1-2' of git://git.linaro.org/people/ulf.hansson/mmc:
mmc: sunxi: Re-enable eMMC HS-DDR modes on Allwinner A80
mmc: sunxi: Fix DDR MMC timings for A80
mmc: fix mmc mode selection for HS-DDR and higher

+4 -9
+2 -2
drivers/mmc/core/mmc.c
··· 1276 1276 * switch to HS200 mode if bus width is set successfully. 1277 1277 */ 1278 1278 err = mmc_select_bus_width(card); 1279 - if (!err) { 1279 + if (err >= 0) { 1280 1280 val = EXT_CSD_TIMING_HS200 | 1281 1281 card->drive_strength << EXT_CSD_DRV_STR_SHIFT; 1282 1282 err = __mmc_switch(card, EXT_CSD_CMD_SET_NORMAL, ··· 1583 1583 } else if (mmc_card_hs(card)) { 1584 1584 /* Select the desired bus width optionally */ 1585 1585 err = mmc_select_bus_width(card); 1586 - if (!err) { 1586 + if (err >= 0) { 1587 1587 err = mmc_select_hs_ddr(card); 1588 1588 if (err) 1589 1589 goto free_card;
+2 -7
drivers/mmc/host/sunxi-mmc.c
··· 970 970 [SDXC_CLK_400K] = { .output = 180, .sample = 180 }, 971 971 [SDXC_CLK_25M] = { .output = 180, .sample = 75 }, 972 972 [SDXC_CLK_50M] = { .output = 150, .sample = 120 }, 973 - [SDXC_CLK_50M_DDR] = { .output = 90, .sample = 120 }, 974 - [SDXC_CLK_50M_DDR_8BIT] = { .output = 90, .sample = 120 }, 973 + [SDXC_CLK_50M_DDR] = { .output = 54, .sample = 36 }, 974 + [SDXC_CLK_50M_DDR_8BIT] = { .output = 72, .sample = 72 }, 975 975 }; 976 976 977 977 static int sunxi_mmc_resource_request(struct sunxi_mmc_host *host, ··· 1128 1128 mmc->caps |= MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED | 1129 1129 MMC_CAP_1_8V_DDR | 1130 1130 MMC_CAP_ERASE | MMC_CAP_SDIO_IRQ; 1131 - 1132 - /* TODO MMC DDR is not working on A80 */ 1133 - if (of_device_is_compatible(pdev->dev.of_node, 1134 - "allwinner,sun9i-a80-mmc")) 1135 - mmc->caps &= ~MMC_CAP_1_8V_DDR; 1136 1131 1137 1132 ret = mmc_of_parse(mmc); 1138 1133 if (ret)