diff options
Diffstat (limited to 'arch/arm/plat-omap/mcbsp.c')
| -rw-r--r-- | arch/arm/plat-omap/mcbsp.c | 20 | 
1 files changed, 12 insertions, 8 deletions
diff --git a/arch/arm/plat-omap/mcbsp.c b/arch/arm/plat-omap/mcbsp.c index 4ff7a11b183..8bbbb93e212 100644 --- a/arch/arm/plat-omap/mcbsp.c +++ b/arch/arm/plat-omap/mcbsp.c @@ -778,14 +778,17 @@ int omap_mcbsp_request(unsigned int id)  			goto err_clk_disable;  		} -		init_completion(&mcbsp->rx_irq_completion); -		err = request_irq(mcbsp->rx_irq, omap_mcbsp_rx_irq_handler, +		if (mcbsp->rx_irq) { +			init_completion(&mcbsp->rx_irq_completion); +			err = request_irq(mcbsp->rx_irq, +					omap_mcbsp_rx_irq_handler,  					0, "McBSP", (void *)mcbsp); -		if (err != 0) { -			dev_err(mcbsp->dev, "Unable to request RX IRQ %d " -					"for McBSP%d\n", mcbsp->rx_irq, -					mcbsp->id); -			goto err_free_irq; +			if (err != 0) { +				dev_err(mcbsp->dev, "Unable to request RX IRQ %d " +						"for McBSP%d\n", mcbsp->rx_irq, +						mcbsp->id); +				goto err_free_irq; +			}  		}  	} @@ -835,7 +838,8 @@ void omap_mcbsp_free(unsigned int id)  	if (mcbsp->io_type == OMAP_MCBSP_IRQ_IO) {  		/* Free IRQs */ -		free_irq(mcbsp->rx_irq, (void *)mcbsp); +		if (mcbsp->rx_irq) +			free_irq(mcbsp->rx_irq, (void *)mcbsp);  		free_irq(mcbsp->tx_irq, (void *)mcbsp);  	}  |