aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/mach-omap2/mcbsp.c12
-rw-r--r--arch/arm/plat-omap/mcbsp.c20
2 files changed, 16 insertions, 16 deletions
diff --git a/arch/arm/mach-omap2/mcbsp.c b/arch/arm/mach-omap2/mcbsp.c
index be8fce395a58..016fe60c71ad 100644
--- a/arch/arm/mach-omap2/mcbsp.c
+++ b/arch/arm/mach-omap2/mcbsp.c
@@ -186,32 +186,28 @@ static struct omap_mcbsp_platform_data omap44xx_mcbsp_pdata[] = {
186 .phys_base = OMAP44XX_MCBSP1_BASE, 186 .phys_base = OMAP44XX_MCBSP1_BASE,
187 .dma_rx_sync = OMAP44XX_DMA_MCBSP1_RX, 187 .dma_rx_sync = OMAP44XX_DMA_MCBSP1_RX,
188 .dma_tx_sync = OMAP44XX_DMA_MCBSP1_TX, 188 .dma_tx_sync = OMAP44XX_DMA_MCBSP1_TX,
189 .rx_irq = INT_24XX_MCBSP1_IRQ_RX, 189 .tx_irq = OMAP44XX_IRQ_MCBSP1,
190 .tx_irq = INT_24XX_MCBSP1_IRQ_TX,
191 .ops = &omap2_mcbsp_ops, 190 .ops = &omap2_mcbsp_ops,
192 }, 191 },
193 { 192 {
194 .phys_base = OMAP44XX_MCBSP2_BASE, 193 .phys_base = OMAP44XX_MCBSP2_BASE,
195 .dma_rx_sync = OMAP44XX_DMA_MCBSP2_RX, 194 .dma_rx_sync = OMAP44XX_DMA_MCBSP2_RX,
196 .dma_tx_sync = OMAP44XX_DMA_MCBSP2_TX, 195 .dma_tx_sync = OMAP44XX_DMA_MCBSP2_TX,
197 .rx_irq = INT_24XX_MCBSP2_IRQ_RX, 196 .tx_irq = OMAP44XX_IRQ_MCBSP2,
198 .tx_irq = INT_24XX_MCBSP2_IRQ_TX,
199 .ops = &omap2_mcbsp_ops, 197 .ops = &omap2_mcbsp_ops,
200 }, 198 },
201 { 199 {
202 .phys_base = OMAP44XX_MCBSP3_BASE, 200 .phys_base = OMAP44XX_MCBSP3_BASE,
203 .dma_rx_sync = OMAP44XX_DMA_MCBSP3_RX, 201 .dma_rx_sync = OMAP44XX_DMA_MCBSP3_RX,
204 .dma_tx_sync = OMAP44XX_DMA_MCBSP3_TX, 202 .dma_tx_sync = OMAP44XX_DMA_MCBSP3_TX,
205 .rx_irq = INT_24XX_MCBSP3_IRQ_RX, 203 .tx_irq = OMAP44XX_IRQ_MCBSP3,
206 .tx_irq = INT_24XX_MCBSP3_IRQ_TX,
207 .ops = &omap2_mcbsp_ops, 204 .ops = &omap2_mcbsp_ops,
208 }, 205 },
209 { 206 {
210 .phys_base = OMAP44XX_MCBSP4_BASE, 207 .phys_base = OMAP44XX_MCBSP4_BASE,
211 .dma_rx_sync = OMAP44XX_DMA_MCBSP4_RX, 208 .dma_rx_sync = OMAP44XX_DMA_MCBSP4_RX,
212 .dma_tx_sync = OMAP44XX_DMA_MCBSP4_TX, 209 .dma_tx_sync = OMAP44XX_DMA_MCBSP4_TX,
213 .rx_irq = INT_24XX_MCBSP4_IRQ_RX, 210 .tx_irq = OMAP44XX_IRQ_MCBSP4,
214 .tx_irq = INT_24XX_MCBSP4_IRQ_TX,
215 .ops = &omap2_mcbsp_ops, 211 .ops = &omap2_mcbsp_ops,
216 }, 212 },
217}; 213};
diff --git a/arch/arm/plat-omap/mcbsp.c b/arch/arm/plat-omap/mcbsp.c
index 4ff7a11b1838..8bbbb93e2128 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)
778 goto err_clk_disable; 778 goto err_clk_disable;
779 } 779 }
780 780
781 init_completion(&mcbsp->rx_irq_completion); 781 if (mcbsp->rx_irq) {
782 err = request_irq(mcbsp->rx_irq, omap_mcbsp_rx_irq_handler, 782 init_completion(&mcbsp->rx_irq_completion);
783 err = request_irq(mcbsp->rx_irq,
784 omap_mcbsp_rx_irq_handler,
783 0, "McBSP", (void *)mcbsp); 785 0, "McBSP", (void *)mcbsp);
784 if (err != 0) { 786 if (err != 0) {
785 dev_err(mcbsp->dev, "Unable to request RX IRQ %d " 787 dev_err(mcbsp->dev, "Unable to request RX IRQ %d "
786 "for McBSP%d\n", mcbsp->rx_irq, 788 "for McBSP%d\n", mcbsp->rx_irq,
787 mcbsp->id); 789 mcbsp->id);
788 goto err_free_irq; 790 goto err_free_irq;
791 }
789 } 792 }
790 } 793 }
791 794
@@ -835,7 +838,8 @@ void omap_mcbsp_free(unsigned int id)
835 838
836 if (mcbsp->io_type == OMAP_MCBSP_IRQ_IO) { 839 if (mcbsp->io_type == OMAP_MCBSP_IRQ_IO) {
837 /* Free IRQs */ 840 /* Free IRQs */
838 free_irq(mcbsp->rx_irq, (void *)mcbsp); 841 if (mcbsp->rx_irq)
842 free_irq(mcbsp->rx_irq, (void *)mcbsp);
839 free_irq(mcbsp->tx_irq, (void *)mcbsp); 843 free_irq(mcbsp->tx_irq, (void *)mcbsp);
840 } 844 }
841 845