Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 95840126 authored by Wolfram Sang's avatar Wolfram Sang Committed by Ulf Hansson
Browse files

mmc: tmio: simplify irq handler



Having just one irq handler again, let's include the 'card_status'
function in the main handler which is way more readable. Drop a useless
debug output while here. It should be a dev_dbg in case we ever need it
again.

Signed-off-by: default avatarWolfram Sang <wsa+renesas@sang-engineering.com>
Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
parent 4da98670
Loading
Loading
Loading
Loading
+8 −15
Original line number Diff line number Diff line
@@ -626,19 +626,6 @@ static void tmio_mmc_cmd_irq(struct tmio_mmc_host *host,
	spin_unlock(&host->lock);
}

static void tmio_mmc_card_irq_status(struct tmio_mmc_host *host,
				       int *ireg, int *status)
{
	*status = sd_ctrl_read32(host, CTL_STATUS);
	*ireg = *status & TMIO_MASK_IRQ & ~host->sdcard_irq_mask;

	pr_debug_status(*status);
	pr_debug_status(*ireg);

	/* Clear the status except the interrupt status */
	sd_ctrl_write32(host, CTL_STATUS, TMIO_MASK_IRQ);
}

static bool __tmio_mmc_card_detect_irq(struct tmio_mmc_host *host,
				      int ireg, int status)
{
@@ -716,9 +703,15 @@ irqreturn_t tmio_mmc_irq(int irq, void *devid)
	struct tmio_mmc_host *host = devid;
	unsigned int ireg, status;

	pr_debug("MMC IRQ begin\n");
	status = sd_ctrl_read32(host, CTL_STATUS);
	ireg = status & TMIO_MASK_IRQ & ~host->sdcard_irq_mask;

	pr_debug_status(status);
	pr_debug_status(ireg);

	/* Clear the status except the interrupt status */
	sd_ctrl_write32(host, CTL_STATUS, TMIO_MASK_IRQ);

	tmio_mmc_card_irq_status(host, &ireg, &status);
	if (__tmio_mmc_card_detect_irq(host, ireg, status))
		return IRQ_HANDLED;
	if (__tmio_mmc_sdcard_irq(host, ireg, status))