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.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc

Pull MMC fixes from Ulf Hansson:
"MMC host:

- sdhci-of-esdhc: Fix card detection
- dw_mmc: Fix DMA error path"

* tag 'mmc-v4.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc:
mmc: dw_mmc: fix the error handling for dma operation
mmc: sdhci-of-esdhc: fixup PRESENT_STATE read

+16
+1
drivers/mmc/host/dw_mmc.c
··· 1058 1058 spin_unlock_irqrestore(&host->irq_lock, irqflags); 1059 1059 1060 1060 if (host->dma_ops->start(host, sg_len)) { 1061 + host->dma_ops->stop(host); 1061 1062 /* We can't do DMA, try PIO for this one */ 1062 1063 dev_dbg(host->dev, 1063 1064 "%s: fall back to PIO mode for current transfer\n",
+14
drivers/mmc/host/sdhci-of-esdhc.c
··· 66 66 return ret; 67 67 } 68 68 } 69 + /* 70 + * The DAT[3:0] line signal levels and the CMD line signal level are 71 + * not compatible with standard SDHC register. The line signal levels 72 + * DAT[7:0] are at bits 31:24 and the command line signal level is at 73 + * bit 23. All other bits are the same as in the standard SDHC 74 + * register. 75 + */ 76 + if (spec_reg == SDHCI_PRESENT_STATE) { 77 + ret = value & 0x000fffff; 78 + ret |= (value >> 4) & SDHCI_DATA_LVL_MASK; 79 + ret |= (value << 1) & SDHCI_CMD_LVL; 80 + return ret; 81 + } 82 + 69 83 ret = value; 70 84 return ret; 71 85 }
+1
drivers/mmc/host/sdhci.h
··· 73 73 #define SDHCI_DATA_LVL_MASK 0x00F00000 74 74 #define SDHCI_DATA_LVL_SHIFT 20 75 75 #define SDHCI_DATA_0_LVL_MASK 0x00100000 76 + #define SDHCI_CMD_LVL 0x01000000 76 77 77 78 #define SDHCI_HOST_CONTROL 0x28 78 79 #define SDHCI_CTRL_LED 0x01