aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/mfd/glamo/glamo-mci.c20
1 files changed, 12 insertions, 8 deletions
diff --git a/drivers/mfd/glamo/glamo-mci.c b/drivers/mfd/glamo/glamo-mci.c
index 778e47c7427..e836913ea23 100644
--- a/drivers/mfd/glamo/glamo-mci.c
+++ b/drivers/mfd/glamo/glamo-mci.c
@@ -331,17 +331,12 @@ static int __glamo_mci_set_card_clock(struct glamo_mci_host *host, int freq,
return real_rate;
}
-static void glamo_mci_irq(unsigned int irq, struct irq_desc *desc)
+static void glamo_mci_irq_host(struct glamo_mci_host *host)
{
- struct glamo_mci_host *host = (struct glamo_mci_host *)
- desc->handler_data;
u16 status;
struct mmc_command *cmd;
unsigned long iflags;
- if (!host)
- return;
-
if (host->suspending) { /* bad news, dangerous time */
dev_err(&host->pdev->dev, "****glamo_mci_irq before resumed\n");
return;
@@ -405,6 +400,16 @@ done:
spin_unlock_irqrestore(&host->complete_lock, iflags);
}
+static void glamo_mci_irq(unsigned int irq, struct irq_desc *desc)
+{
+ struct glamo_mci_host *host = (struct glamo_mci_host *)
+ desc->handler_data;
+
+ if (host)
+ glamo_mci_irq_host(host);
+
+}
+
static int glamo_mci_send_command(struct glamo_mci_host *host,
struct mmc_command *cmd)
{
@@ -718,8 +723,7 @@ static void glamo_mci_send_request(struct mmc_host *mmc)
/* yay we are an interrupt controller! -- call the ISR
* it will stop clock to card
*/
- glamo_mci_irq(IRQ_GLAMO(GLAMO_IRQIDX_MMC),
- irq_desc + IRQ_GLAMO(GLAMO_IRQIDX_MMC));
+ glamo_mci_irq_host(host);
}
return;