Re: [RFC 0/2] dw_mmc: add multislot support
From: Jaehoon Chung
Date: Thu Apr 26 2018 - 06:30:13 EST
On 04/17/2018 09:11 PM, Eugeniy Paltsev wrote:
> This series consists of two patches:
> 1. revert removal of previously existed "pseudo-multislot" support.
> * Revert "mmc: dw_mmc: remove the deprecated "num-slots""
> * Revert "mmc: dw_mmc: fix the wrong condition check of getting num-slots from DT"
> * Revert "mmc: dw_mmc: remove the unnecessary slot variable"
> * Revert "mmc: dw_mmc: update kernel-doc comments for dw_mci"
> * Revert "mmc: dw_mmc: use the 'slot' instead of 'cur_slot'"
> * Revert "mmc: dw_mmc: remove the 'id' arguments about functions relevant to slot"
> * Revert "mmc: dw_mmc: change the array of slots"
> * Revert "mmc: dw_mmc: remove the loop about finding slots"
> * Revert "mmc: dw_mmc: deprecated the "num-slots" property"
> 2. Add missing stuff to support multislot mode in DesignWare MMC driver.
> * Add missing slot switch to __dw_mci_start_request() function.
> * Refactor set_ios function:
> a) Calculate common clock which is
> suitable for all slots instead of directly use clock value
> provided by mmc core. We calculate common clock as the minimum
> among each used slot clocks. This clock is calculated in
> dw_mci_calc_common_clock() function which is called
> from set_ios()
> b) Disable clock only if no other slots are ON.
> c) Setup clock directly in set_ios() only if no other slots
> are ON. Otherwise adjust clock in __dw_mci_start_request()
> function before slot switch.
> d) Move timings and bus_width setup to separate funcions.
> * Use timing field in each slot structure instead of common field in
> host structure.
> * Add locks to serialize access to registers.
Sorry for late. :(
Well, I will read the other comments..and reply soon.
> NOTE: this patch is based off of v4.17-rc1
> NOTE: as of today I tested this changes (in singleslot and multislot
> modes) only on Synopsys HSDK board. But I will get ODROID-XU4 board
> (with Exynos5422 which has DW MMC controller) the next week
> so I will test it on this board too to catch any regressions.
> Eugeniy Paltsev (2):
> dw_mmc: revert removal multislot support
> dw_mmc: add multislot support
> .../devicetree/bindings/mmc/synopsys-dw-mshc.txt | 5 +
> drivers/mmc/host/dw_mmc-exynos.c | 4 +-
> drivers/mmc/host/dw_mmc-pci.c | 1 +
> drivers/mmc/host/dw_mmc.c | 486 +++++++++++++++------
> drivers/mmc/host/dw_mmc.h | 35 +-
> 5 files changed, 387 insertions(+), 144 deletions(-)