sd/mmc: enable 4-bit data transfers

It works, but performance is still unexpectedly low (getting about
50kB/s write speed) with almost no CPU load.

Change-Id: I7da3ee70c8b379c4e6c2250d67f880c78635874f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3630
Reviewed-by: Jérôme Duval <[email protected]>
This commit is contained in:
Adrien Destugues
2021-01-20 19:02:38 +00:00
committed by Adrien Destugues
parent d57b8f90e2
commit 34552f8e66
7 changed files with 93 additions and 7 deletions
+4
View File
@@ -81,6 +81,8 @@ typedef struct mmc_bus_interface {
// Execute a command that involves a data transfer.
void (*set_scan_semaphore)(void* controller, sem_id sem);
// Pass the semaphore used for device rescan to the bus controller
void (*set_bus_width)(void* controller, int width);
// Set the data bus width to 1, 4 or 8 bit mode.
} mmc_bus_interface;
@@ -97,6 +99,8 @@ typedef struct mmc_device_interface {
status_t (*do_io)(device_node* controller, uint16_t rca,
uint8_t command, IOOperation* operation, bool offsetAsSectors);
// Execute a command that involves a data transfer.
void (*set_bus_width)(device_node* controller, int width);
// Set the data bus width to 1, 4 or 8 bit mode.
} mmc_device_interface;