mmc: bcm2835_sdhci: Speed up mmc writes.
The linux kernel driver for this module does not use a delay when writing to the SDHCI_BUFFER register. This patch mimics that behavior in order to speed up the mmc writes on the Raspberry Pi. Signed-off-by: Alex Deymo <deymo@google.com> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
c86c0155dc
commit
4db2b61fcf
@ -44,6 +44,7 @@
|
||||
|
||||
/* 400KHz is max freq for card ID etc. Use that as min */
|
||||
#define MIN_FREQ 400000
|
||||
#define SDHCI_BUFFER 0x20
|
||||
|
||||
struct bcm2835_sdhci_host {
|
||||
struct sdhci_host host;
|
||||
@ -69,8 +70,11 @@ static inline void bcm2835_sdhci_raw_writel(struct sdhci_host *host, u32 val,
|
||||
* (Which is just as well - otherwise we'd have to nobble the DMA engine
|
||||
* too)
|
||||
*/
|
||||
while (timer_get_us() - bcm_host->last_write < bcm_host->twoticks_delay)
|
||||
;
|
||||
if (reg != SDHCI_BUFFER) {
|
||||
while (timer_get_us() - bcm_host->last_write <
|
||||
bcm_host->twoticks_delay)
|
||||
;
|
||||
}
|
||||
|
||||
writel(val, host->ioaddr + reg);
|
||||
bcm_host->last_write = timer_get_us();
|
||||
|
Loading…
Reference in New Issue
Block a user