Skip to contentSkip to conversation

5/7 AU1100 MMC support

PATCH New Rodolfo Giometti 1 participant 1 message Aug 9, 2006

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 5/7 AU1100 MMC support

Interrupt management fix up.

Signature · 4 lines
GNU/Linux Solutions                  e-mail:    [email protected]
Linux Device Driver                             [email protected]
Embedded Systems                     		[email protected]
UNIX programming                     phone:     +39 349 2432127
drivers/mmc/au1xmmc.c +2 -12
index 10e8e06..f2d44cd 100644
@@ -772,11 +772,7 @@ static irqreturn_t au1xmmc_irq(int irq, 
 {
 	struct au1xmmc_host *host = dev_id;
 	u32 status;
-	int i, ret = 0;
-
-	disable_irq(AU1100_SD_IRQ);
-
-	u32 handled = 1;
+	int ret = IRQ_HANDLED;
 
 	status = au_readl(HOST_STATUS(host));
 
@@ -821,15 +817,12 @@ #endif
 	}
 	else if (status & 0x203FBC70) {
 		dbg("Unhandled status %8.8x\n", host->id, status);
-		handled = 0;
+		ret = IRQ_NONE;
 	}
 
 	au_writel(status, HOST_STATUS(host));
 	au_sync();
 
-	ret |= handled;
-
-	enable_irq(AU1100_SD_IRQ);
 	return ret;
 }
 
@@ -987,7 +980,6 @@ static int __devinit au1xmmc_probe(struc
 	info("MMC controller set up at %x irq %d (mode=%s)\n",
 		host->id, base_addr_phys, host->irq, dma ? "dma" : "pio");
 
-	enable_irq(AU1100_SD_IRQ);
 	platform_set_drvdata(pdev, host);
 
 	return 0;
@@ -1021,8 +1013,6 @@ static int __devexit au1xmmc_remove(stru
 	if (!host)
 		return 0;
 
-	disable_irq(AU1100_SD_IRQ);
-
 	tasklet_kill(&host->data_task);
 	tasklet_kill(&host->finish_task);