aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
authorShawn Lin <shawn.lin@rock-chips.com>2026-05-29 09:17:39 +0800
committerUlf Hansson <ulfh@kernel.org>2026-05-29 15:12:51 +0200
commitb99062da21a3988c6b8f1ed0730bf3587cdc7844 (patch)
treee4b8e6d1f5bcb94ac328dab02b7ec5e289b8f627 /drivers
parent94044acc20cdb99a0429723bcca5e1d828dbf47f (diff)
downloadlinux-next-history-b99062da21a3988c6b8f1ed0730bf3587cdc7844.tar.gz
mmc: dw_mmc: Add desc_num field for clarity
The ring_size field in struct dw_mci is misleadingly named. Despite its name, it does not represent the size of the descriptor ring buffer in bytes, but rather the number of descriptors allocated within the fixed-size ring buffer. The actual ring buffer size is fixed at PAGE_SIZE (or DESC_RING_BUF_SZ, which equals PAGE_SIZE). Within this buffer, we allocate either struct idmac_desc or struct idmac_desc_64addr descriptors, and ring_size stores the count of these descriptors. This naming has caused confusion, as it's also used to set mmc->max_segs (the maximum number of scatter-gather segments), which logically corresponds to the number of descriptors, not a size in bytes. No functional change is introduced by this naming-only patch. Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com> Signed-off-by: Ulf Hansson <ulfh@kernel.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/mmc/host/dw_mmc.c16
-rw-r--r--drivers/mmc/host/dw_mmc.h4
2 files changed, 10 insertions, 10 deletions
diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
index 3b4157f34d11f..d734d010444dd 100644
--- a/drivers/mmc/host/dw_mmc.c
+++ b/drivers/mmc/host/dw_mmc.c
@@ -490,12 +490,12 @@ static int dw_mci_idmac_init(struct dw_mci *host)
if (host->dma_64bit_address == 1) {
struct idmac_desc_64addr *p;
- /* Number of descriptors in the ring buffer */
- host->ring_size =
+
+ host->desc_num =
DESC_RING_BUF_SZ / sizeof(struct idmac_desc_64addr);
/* Forward link the descriptor list */
- for (i = 0, p = host->sg_cpu; i < host->ring_size - 1;
+ for (i = 0, p = host->sg_cpu; i < host->desc_num - 1;
i++, p++) {
p->des6 = (host->sg_dma +
(sizeof(struct idmac_desc_64addr) *
@@ -518,13 +518,13 @@ static int dw_mci_idmac_init(struct dw_mci *host)
} else {
struct idmac_desc *p;
- /* Number of descriptors in the ring buffer */
- host->ring_size =
+
+ host->desc_num =
DESC_RING_BUF_SZ / sizeof(struct idmac_desc);
/* Forward link the descriptor list */
for (i = 0, p = host->sg_cpu;
- i < host->ring_size - 1;
+ i < host->desc_num - 1;
i++, p++) {
p->des3 = cpu_to_le32(host->sg_dma +
(sizeof(struct idmac_desc) * (i + 1)));
@@ -2857,10 +2857,10 @@ static int dw_mci_init_host(struct dw_mci *host)
/* Useful defaults if platform data is unset. */
if (host->use_dma == TRANS_MODE_IDMAC) {
- mmc->max_segs = host->ring_size;
+ mmc->max_segs = host->desc_num;
mmc->max_blk_size = 65535;
mmc->max_seg_size = 0x1000;
- mmc->max_req_size = mmc->max_seg_size * host->ring_size;
+ mmc->max_req_size = mmc->max_seg_size * host->desc_num;
mmc->max_blk_count = mmc->max_req_size / 512;
} else if (host->use_dma == TRANS_MODE_EDMAC) {
mmc->max_segs = 64;
diff --git a/drivers/mmc/host/dw_mmc.h b/drivers/mmc/host/dw_mmc.h
index 2ce8585e2c1e5..9ffcd3946cffb 100644
--- a/drivers/mmc/host/dw_mmc.h
+++ b/drivers/mmc/host/dw_mmc.h
@@ -79,7 +79,7 @@ struct dw_mci_dma_slave {
* @dma_ops: Pointer to DMA callbacks.
* @cmd_status: Snapshot of SR taken upon completion of the current
* command. Only valid when EVENT_CMD_COMPLETE is pending.
- * @ring_size: Buffer size for idma descriptors.
+ * @desc_num: Number of idmac descriptors available.
* @dms: structure of slave-dma private data.
* @phy_regs: physical address of controller's register map
* @data_status: Snapshot of SR taken upon completion of the current
@@ -186,7 +186,7 @@ struct dw_mci {
void *sg_cpu;
const struct dw_mci_dma_ops *dma_ops;
/* For idmac */
- unsigned int ring_size;
+ unsigned short desc_num;
/* For edmac */
struct dw_mci_dma_slave *dms;