diff options
Diffstat (limited to 'drivers/mmc/host/wbsd.c')
| -rw-r--r-- | drivers/mmc/host/wbsd.c | 21 | 
1 files changed, 10 insertions, 11 deletions
diff --git a/drivers/mmc/host/wbsd.c b/drivers/mmc/host/wbsd.c index be624a049c6..c303e7f57ab 100644 --- a/drivers/mmc/host/wbsd.c +++ b/drivers/mmc/host/wbsd.c @@ -1457,17 +1457,7 @@ static int __devinit wbsd_request_irq(struct wbsd_host *host, int irq)  	int ret;  	/* -	 * Allocate interrupt. -	 */ - -	ret = request_irq(irq, wbsd_irq, IRQF_SHARED, DRIVER_NAME, host); -	if (ret) -		return ret; - -	host->irq = irq; - -	/* -	 * Set up tasklets. +	 * Set up tasklets. Must be done before requesting interrupt.  	 */  	tasklet_init(&host->card_tasklet, wbsd_tasklet_card,  			(unsigned long)host); @@ -1480,6 +1470,15 @@ static int __devinit wbsd_request_irq(struct wbsd_host *host, int irq)  	tasklet_init(&host->finish_tasklet, wbsd_tasklet_finish,  			(unsigned long)host); +	/* +	 * Allocate interrupt. +	 */ +	ret = request_irq(irq, wbsd_irq, IRQF_SHARED, DRIVER_NAME, host); +	if (ret) +		return ret; + +	host->irq = irq; +  	return 0;  }  |