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.6-rc3' of git://git.linaro.org/people/ulf.hansson/mmc

Pull MMC fixes from Ulf Hansson:
"Here are a couple of mmc fixes intended for v4.6 rc4.

Regarding the fix for the regression about mmcblk device indexes. The
approach taken to solve the problem seems to be good enough. There
were some discussions around the solution, but it seems like people
were happy about it in the end.

MMC core:
- Restore similar old behaviour when assigning mmcblk device indexes

MMC host:
- tegra: Disable UHS-I modes for Tegra124 to fix regression"

* tag 'mmc-v4.6-rc3' of git://git.linaro.org/people/ulf.hansson/mmc:
mmc: tegra: Disable UHS-I modes for Tegra124
mmc: block: Use the mmc host device index as the mmcblk device index

+2 -26
+1 -17
drivers/mmc/card/block.c
··· 86 86 87 87 /* TODO: Replace these with struct ida */ 88 88 static DECLARE_BITMAP(dev_use, MAX_DEVICES); 89 - static DECLARE_BITMAP(name_use, MAX_DEVICES); 90 89 91 90 /* 92 91 * There is one mmc_blk_data per slot. ··· 104 105 unsigned int usage; 105 106 unsigned int read_only; 106 107 unsigned int part_type; 107 - unsigned int name_idx; 108 108 unsigned int reset_done; 109 109 #define MMC_BLK_READ BIT(0) 110 110 #define MMC_BLK_WRITE BIT(1) ··· 2200 2202 goto out; 2201 2203 } 2202 2204 2203 - /* 2204 - * !subname implies we are creating main mmc_blk_data that will be 2205 - * associated with mmc_card with dev_set_drvdata. Due to device 2206 - * partitions, devidx will not coincide with a per-physical card 2207 - * index anymore so we keep track of a name index. 2208 - */ 2209 - if (!subname) { 2210 - md->name_idx = find_first_zero_bit(name_use, max_devices); 2211 - __set_bit(md->name_idx, name_use); 2212 - } else 2213 - md->name_idx = ((struct mmc_blk_data *) 2214 - dev_to_disk(parent)->private_data)->name_idx; 2215 - 2216 2205 md->area_type = area_type; 2217 2206 2218 2207 /* ··· 2249 2264 */ 2250 2265 2251 2266 snprintf(md->disk->disk_name, sizeof(md->disk->disk_name), 2252 - "mmcblk%u%s", md->name_idx, subname ? subname : ""); 2267 + "mmcblk%u%s", card->host->index, subname ? subname : ""); 2253 2268 2254 2269 if (mmc_card_mmc(card)) 2255 2270 blk_queue_logical_block_size(md->queue.queue, ··· 2403 2418 struct list_head *pos, *q; 2404 2419 struct mmc_blk_data *part_md; 2405 2420 2406 - __clear_bit(md->name_idx, name_use); 2407 2421 list_for_each_safe(pos, q, &md->part) { 2408 2422 part_md = list_entry(pos, struct mmc_blk_data, part); 2409 2423 list_del(pos);
+1 -9
drivers/mmc/host/sdhci-tegra.c
··· 382 382 .pdata = &sdhci_tegra114_pdata, 383 383 }; 384 384 385 - static const struct sdhci_tegra_soc_data soc_data_tegra124 = { 386 - .pdata = &sdhci_tegra114_pdata, 387 - .nvquirks = NVQUIRK_ENABLE_SDR50 | 388 - NVQUIRK_ENABLE_DDR50 | 389 - NVQUIRK_ENABLE_SDR104 | 390 - NVQUIRK_HAS_PADCALIB, 391 - }; 392 - 393 385 static const struct sdhci_pltfm_data sdhci_tegra210_pdata = { 394 386 .quirks = SDHCI_QUIRK_BROKEN_TIMEOUT_VAL | 395 387 SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK | ··· 399 407 400 408 static const struct of_device_id sdhci_tegra_dt_match[] = { 401 409 { .compatible = "nvidia,tegra210-sdhci", .data = &soc_data_tegra210 }, 402 - { .compatible = "nvidia,tegra124-sdhci", .data = &soc_data_tegra124 }, 410 + { .compatible = "nvidia,tegra124-sdhci", .data = &soc_data_tegra114 }, 403 411 { .compatible = "nvidia,tegra114-sdhci", .data = &soc_data_tegra114 }, 404 412 { .compatible = "nvidia,tegra30-sdhci", .data = &soc_data_tegra30 }, 405 413 { .compatible = "nvidia,tegra20-sdhci", .data = &soc_data_tegra20 },