Merge branch 'for-viro' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi...
[cascardo/linux.git] / drivers / spi / spi-xilinx.c
index 3009121..bc7100b 100644 (file)
@@ -341,9 +341,10 @@ static irqreturn_t xilinx_spi_irq(int irq, void *dev_id)
 
        if (ipif_isr & XSPI_INTR_TX_EMPTY) {    /* Transmission completed */
                complete(&xspi->done);
+               return IRQ_HANDLED;
        }
 
-       return IRQ_HANDLED;
+       return IRQ_NONE;
 }
 
 static int xilinx_spi_find_buffer_size(struct xilinx_spi *xspi)
@@ -455,7 +456,10 @@ static int xilinx_spi_probe(struct platform_device *pdev)
        xspi->buffer_size = xilinx_spi_find_buffer_size(xspi);
 
        xspi->irq = platform_get_irq(pdev, 0);
-       if (xspi->irq >= 0) {
+       if (xspi->irq < 0 && xspi->irq != -ENXIO) {
+               ret = xspi->irq;
+               goto put_master;
+       } else if (xspi->irq >= 0) {
                /* Register for SPI Interrupt */
                ret = devm_request_irq(&pdev->dev, xspi->irq, xilinx_spi_irq, 0,
                                dev_name(&pdev->dev), xspi);