[RFC 0/2] dw_mmc: add multislot support

Eugeniy Paltsev Eugeniy.Paltsev at synopsys.com
Tue Apr 17 05:11:28 PDT 2018


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.

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(-)

-- 
2.14.3



More information about the linux-arm-kernel mailing list