diff options
| -rw-r--r-- | drivers/mfd/max8925-core.c | 13 | ||||
| -rw-r--r-- | drivers/mfd/wm831x-irq.c | 9 | ||||
| -rw-r--r-- | drivers/mtd/nand/omap2.c | 2 | 
3 files changed, 15 insertions, 9 deletions
diff --git a/drivers/mfd/max8925-core.c b/drivers/mfd/max8925-core.c index 04028a9ee08..428377a5a6f 100644 --- a/drivers/mfd/max8925-core.c +++ b/drivers/mfd/max8925-core.c @@ -429,24 +429,25 @@ static void max8925_irq_sync_unlock(unsigned int irq)  	irq_tsc = cache_tsc;  	for (i = 0; i < ARRAY_SIZE(max8925_irqs); i++) {  		irq_data = &max8925_irqs[i]; +		/* 1 -- disable, 0 -- enable */  		switch (irq_data->mask_reg) {  		case MAX8925_CHG_IRQ1_MASK: -			irq_chg[0] &= irq_data->enable; +			irq_chg[0] &= ~irq_data->enable;  			break;  		case MAX8925_CHG_IRQ2_MASK: -			irq_chg[1] &= irq_data->enable; +			irq_chg[1] &= ~irq_data->enable;  			break;  		case MAX8925_ON_OFF_IRQ1_MASK: -			irq_on[0] &= irq_data->enable; +			irq_on[0] &= ~irq_data->enable;  			break;  		case MAX8925_ON_OFF_IRQ2_MASK: -			irq_on[1] &= irq_data->enable; +			irq_on[1] &= ~irq_data->enable;  			break;  		case MAX8925_RTC_IRQ_MASK: -			irq_rtc &= irq_data->enable; +			irq_rtc &= ~irq_data->enable;  			break;  		case MAX8925_TSC_IRQ_MASK: -			irq_tsc &= irq_data->enable; +			irq_tsc &= ~irq_data->enable;  			break;  		default:  			dev_err(chip->dev, "wrong IRQ\n"); diff --git a/drivers/mfd/wm831x-irq.c b/drivers/mfd/wm831x-irq.c index 7dabe4dbd37..294183b6260 100644 --- a/drivers/mfd/wm831x-irq.c +++ b/drivers/mfd/wm831x-irq.c @@ -394,8 +394,13 @@ static int wm831x_irq_set_type(unsigned int irq, unsigned int type)  	irq = irq - wm831x->irq_base; -	if (irq < WM831X_IRQ_GPIO_1 || irq > WM831X_IRQ_GPIO_11) -		return -EINVAL; +	if (irq < WM831X_IRQ_GPIO_1 || irq > WM831X_IRQ_GPIO_11) { +		/* Ignore internal-only IRQs */ +		if (irq >= 0 && irq < WM831X_NUM_IRQS) +			return 0; +		else +			return -EINVAL; +	}  	switch (type) {  	case IRQ_TYPE_EDGE_BOTH: diff --git a/drivers/mtd/nand/omap2.c b/drivers/mtd/nand/omap2.c index 133d51528f8..513e0a76a4a 100644 --- a/drivers/mtd/nand/omap2.c +++ b/drivers/mtd/nand/omap2.c @@ -413,7 +413,7 @@ static inline int omap_nand_dma_transfer(struct mtd_info *mtd, void *addr,  		prefetch_status = gpmc_read_status(GPMC_PREFETCH_COUNT);  	} while (prefetch_status);  	/* disable and stop the PFPW engine */ -	gpmc_prefetch_reset(); +	gpmc_prefetch_reset(info->gpmc_cs);  	dma_unmap_single(&info->pdev->dev, dma_addr, len, dir);  	return 0;  |