Linux MultiMedia Card development
 help / color / mirror / Atom feed
From: Shawn Lin <shawn.lin@rock-chips.com>
To: Ulf Hansson <ulf.hansson@linaro.org>
Cc: linux-mmc@vger.kernel.org, Jaehoon Chung <jh80.chung@samsung.com>,
	Shawn Lin <shawn.lin@rock-chips.com>
Subject: [PATCH v2 0/13] dwmmc cleanup
Date: Wed, 26 Nov 2025 08:14:40 +0800	[thread overview]
Message-ID: <1764116093-5430-1-git-send-email-shawn.lin@rock-chips.com> (raw)


Hi Ulf & Jaehoon

As you can see, dw_mmc is likely one of the most complex and difficult-to-read
host driver at present. It maintains various states and bottom-half scheduling,
containing a significant amount of redundant code—including a multi-slot mechanism
that has been unsupported for over a decade.

Jaehoon attempted to remove cur_slot more than ten years ago, but the driver still
retains the slot structure and the associated queue mechanism designed to support
multiple slots. This has made the already complex code even harder to read and maintain.

The first four patches aim to eliminate some of the redundant code, while the remaining
patches are intended to ultimately remove the dw_mci_slot variable. To facilitate review
and minimize the risk of regression, each patch is designed to accomplish a single,
clear objective.

This series have been tested on the RK3588S EVB1 platform.


Changes in v2:
- Fix sparse warning
- Use helpers from regulator.c and remove check for mmc_regulator_set_ocr.
- add commit message
- make commit message clear that we remove two things
- remove a unused code
- Fix dma_set_mask_and_coherent mistake by code rebase
- fix compile warning

Shawn Lin (13):
  mmc: dw_mmc: Remove unused struct dma_pdata
  mmc: dw_mmc: add dw_mci_prepare_desc() for both of 32bit and 64bit DMA
  mmc: dw_mmc: Remove vqmmc_enabled from struct dw_mci and user helpers
    from core
  mmc: dw_mmc: Remove unused header files and keep alphabetical order
  mmc: dw_mmc: Move struct mmc_host from struct dw_mci_slot to struct
    dw_mci
  mmc: dw_mmc: Let glue drivers to use struct dw_mci as possible
  mmc: dw_mmc: Move flags from struct dw_mci_slot to struct dw_mci
  mmc: dw_mmc: Remove id and ctype from dw_mci_slot
  mmc: dw_mmc: Remove sdio_id from struct dw_mci_slot
  mmc: dw_mmc: Move clock rate stuff from struct dw_mci_slot to struct
    dw_mci
  mmc: dw_mmc: Remove mrq from struct dw_mci_slot
  mmc: dw_mmc: Remove queue from dw_mci
  mmc: dw_mmc: Remove struct dw_mci_slot

 drivers/mmc/host/dw_mmc-exynos.c      |   9 +-
 drivers/mmc/host/dw_mmc-hi3798cv200.c |   6 +-
 drivers/mmc/host/dw_mmc-hi3798mv200.c |  17 +-
 drivers/mmc/host/dw_mmc-k3.c          |  21 +-
 drivers/mmc/host/dw_mmc-pltfm.c       |   2 +-
 drivers/mmc/host/dw_mmc-rockchip.c    |   9 +-
 drivers/mmc/host/dw_mmc-starfive.c    |   5 +-
 drivers/mmc/host/dw_mmc.c             | 621 ++++++++++++++--------------------
 drivers/mmc/host/dw_mmc.h             |  83 ++---
 9 files changed, 302 insertions(+), 471 deletions(-)

-- 
2.7.4


             reply	other threads:[~2025-11-26  0:15 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-11-26  0:14 Shawn Lin [this message]
2025-11-26  0:14 ` [PATCH v2 01/13] mmc: dw_mmc: Remove unused struct dma_pdata Shawn Lin
2025-11-26  0:14 ` [PATCH v2 02/13] mmc: dw_mmc: add dw_mci_prepare_desc() for both of 32bit and 64bit DMA Shawn Lin
2025-11-26  0:14 ` [PATCH v2 03/13] mmc: dw_mmc: Remove vqmmc_enabled from struct dw_mci and user helpers from core Shawn Lin
2025-12-15 14:30   ` Ulf Hansson
2025-12-16  1:52     ` Shawn Lin
2025-12-16 10:51       ` Ulf Hansson
2025-11-26  0:14 ` [PATCH v2 04/13] mmc: dw_mmc: Remove unused header files and keep alphabetical order Shawn Lin
2025-11-26  0:14 ` [PATCH v2 05/13] mmc: dw_mmc: Move struct mmc_host from struct dw_mci_slot to struct dw_mci Shawn Lin
2025-11-26  0:14 ` [PATCH v2 06/13] mmc: dw_mmc: Let glue drivers to use struct dw_mci as possible Shawn Lin
2025-11-26  0:14 ` [PATCH v2 07/13] mmc: dw_mmc: Move flags from struct dw_mci_slot to struct dw_mci Shawn Lin
2025-11-26  0:14 ` [PATCH v2 08/13] mmc: dw_mmc: Remove id and ctype from dw_mci_slot Shawn Lin
2025-11-26  0:14 ` [PATCH v2 09/13] mmc: dw_mmc: Remove sdio_id from struct dw_mci_slot Shawn Lin
2025-11-26  0:14 ` [PATCH v2 10/13] mmc: dw_mmc: Move clock rate stuff from struct dw_mci_slot to struct dw_mci Shawn Lin
2025-11-26  0:14 ` [PATCH v2 11/13] mmc: dw_mmc: Remove mrq from struct dw_mci_slot Shawn Lin
2025-11-26  0:14 ` [PATCH v2 12/13] mmc: dw_mmc: Remove queue from dw_mci Shawn Lin
2025-11-26  0:14 ` [PATCH v2 13/13] mmc: dw_mmc: Remove struct dw_mci_slot Shawn Lin
2025-12-15 15:42 ` [PATCH v2 0/13] dwmmc cleanup Ulf Hansson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1764116093-5430-1-git-send-email-shawn.lin@rock-chips.com \
    --to=shawn.lin@rock-chips.com \
    --cc=jh80.chung@samsung.com \
    --cc=linux-mmc@vger.kernel.org \
    --cc=ulf.hansson@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox