mmc: dw_mmc: Remove sdio_id from struct dw_mci_slot

There is only one slot support, the sdio_id is used to indicate the SDIO
slot and where is the irq located. So it's pointless now, remove it. Given
sdio_id0 is only used by Rockchip to inform dwc core the irq is located
with a offset, rename sdio_id0 to sdio_irq to reflect the fact.

Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
This commit is contained in:
Shawn Lin 2025-12-16 19:50:03 +08:00 committed by Ulf Hansson
parent b8cc1e8066
commit a151329009
3 changed files with 8 additions and 12 deletions

View File

@ -475,8 +475,8 @@ static int dw_mci_rockchip_init(struct dw_mci *host)
struct dw_mci_rockchip_priv_data *priv = host->priv;
int ret, i;
/* It is slot 8 on Rockchip SoCs */
host->sdio_id0 = 8;
/* SDIO irq is the 8th on Rockchip SoCs */
host->sdio_irq = 8;
if (of_device_is_compatible(host->dev->of_node, "rockchip,rk3288-dw-mshc")) {
host->bus_hz /= RK3288_CLKGEN_DIV;

View File

@ -1603,9 +1603,9 @@ static void __dw_mci_enable_sdio_irq(struct dw_mci_slot *slot, int enb)
/* Enable/disable Slot Specific SDIO interrupt */
int_mask = mci_readl(host, INTMASK);
if (enb)
int_mask |= SDMMC_INT_SDIO(slot->sdio_id);
int_mask |= SDMMC_INT_SDIO(host->sdio_irq);
else
int_mask &= ~SDMMC_INT_SDIO(slot->sdio_id);
int_mask &= ~SDMMC_INT_SDIO(host->sdio_irq);
mci_writel(host, INTMASK, int_mask);
spin_unlock_irqrestore(&host->irq_lock, irqflags);
@ -2828,9 +2828,9 @@ static irqreturn_t dw_mci_interrupt(int irq, void *dev_id)
dw_mci_handle_cd(host);
}
if (pending & SDMMC_INT_SDIO(slot->sdio_id)) {
if (pending & SDMMC_INT_SDIO(host->sdio_irq)) {
mci_writel(host, RINTSTS,
SDMMC_INT_SDIO(slot->sdio_id));
SDMMC_INT_SDIO(host->sdio_irq));
__dw_mci_enable_sdio_irq(slot, 0);
sdio_signal_irq(host->mmc);
}
@ -2927,7 +2927,6 @@ static int dw_mci_init_slot(struct dw_mci *host)
return -ENOMEM;
slot = mmc_priv(mmc);
slot->sdio_id = host->sdio_id0;
host->mmc = mmc;
slot->host = host;
host->slot = slot;

View File

@ -123,7 +123,7 @@ struct dw_mci_dma_slave {
* @quirks: Set of quirks that apply to specific versions of the IP.
* @irq_flags: The flags to be passed to request_irq.
* @irq: The irq value to be passed to request_irq.
* @sdio_id0: Number of slot0 in the SDIO interrupt registers.
* @sdio_irq: SDIO interrupt bit in interrupt registers.
* @cmd11_timer: Timer for SD3.0 voltage switch over scheme.
* @cto_timer: Timer for broken command transfer over scheme.
* @dto_timer: Timer for broken data transfer over scheme.
@ -233,7 +233,7 @@ struct dw_mci {
unsigned long irq_flags; /* IRQ flags */
int irq;
int sdio_id0;
int sdio_irq;
struct timer_list cmd11_timer;
struct timer_list cto_timer;
@ -562,7 +562,6 @@ static inline int dw_mci_runtime_resume(struct device *device) { return -EOPNOTS
* @clock: Clock rate configured by set_ios(). Protected by host->lock.
* @__clk_old: The last clock value that was requested from core.
* Keeping track of this helps us to avoid spamming the console.
* @sdio_id: Number of this slot in the SDIO interrupt registers.
*/
struct dw_mci_slot {
struct dw_mci *host;
@ -572,8 +571,6 @@ struct dw_mci_slot {
unsigned int clock;
unsigned int __clk_old;
int sdio_id;
};
/**