Make the mmc_hw_reset routine more generic, by putting the (e)MMC- specific stuff in the new bus_ops->reset in mmc.c. Add a bus_ops->reset for SD cards, allowing them to be restarted when errors occur. For MMC cards, always check if the reset was sucessful. This allows us to remove the mmc_hw_reset_check() interface. As I don't have an eMMC device myself, much less one with a reset line, I'd be very happy if someone could help me test the code with an eMMC? v7: - Rename bus_ops->hw_reset to reset - Move the send_status check to mmc.c - Put the changes concerning mmc_hw_reset_check in a separate patch v6: - Always perform the mmc_send_status reset check, which allows us to have only one interface to the card reset functions - Because of this, add the bus_ops->hw_reset to sd.c instead of falling back to a power_cycle v5: - Move the mmc_test-specific code to mmc_test.c - Fall back to a power_cycle if the bus_ops->hw_reset is missing - Because of this, skip the bus_ops->hw_reset in sd.c v4: - Rebase onto next v3: - Keep mmc_can_reset - Always set bus_mode = MMC_BUSMODE_PUSHPULL in mmc_set_initial_state() v2: - Call the new bus_ops member hw_reset instead of power_reset - Create mmc_set_initial_state and call it from mmc_mmc_hw_reset instead of mmc_power_up - Keep "mmc_hw_reset" naming Johan Rudholm (3): mmc: core: always check status after reset mmc: core: refactor the hw_reset routines mmc: sd: add reset bus_ops callback drivers/mmc/card/mmc_test.c | 18 +++++-------- drivers/mmc/core/core.c | 59 +++++++----------------------------------- drivers/mmc/core/core.h | 1 + drivers/mmc/core/mmc.c | 41 +++++++++++++++++++++++++++++ drivers/mmc/core/sd.c | 7 +++++ include/linux/mmc/core.h | 1 - 6 files changed, 66 insertions(+), 61 deletions(-) -- 1.7.2.5 -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html