rapidio: use kobj_to_dev()
[cascardo/linux.git] / drivers / spi / spi-davinci.c
index 7d3af3e..fddb7a3 100644 (file)
@@ -477,33 +477,33 @@ static int davinci_spi_check_error(struct davinci_spi *dspi, int int_status)
        struct device *sdev = dspi->bitbang.master->dev.parent;
 
        if (int_status & SPIFLG_TIMEOUT_MASK) {
-               dev_dbg(sdev, "SPI Time-out Error\n");
+               dev_err(sdev, "SPI Time-out Error\n");
                return -ETIMEDOUT;
        }
        if (int_status & SPIFLG_DESYNC_MASK) {
-               dev_dbg(sdev, "SPI Desynchronization Error\n");
+               dev_err(sdev, "SPI Desynchronization Error\n");
                return -EIO;
        }
        if (int_status & SPIFLG_BITERR_MASK) {
-               dev_dbg(sdev, "SPI Bit error\n");
+               dev_err(sdev, "SPI Bit error\n");
                return -EIO;
        }
 
        if (dspi->version == SPI_VERSION_2) {
                if (int_status & SPIFLG_DLEN_ERR_MASK) {
-                       dev_dbg(sdev, "SPI Data Length Error\n");
+                       dev_err(sdev, "SPI Data Length Error\n");
                        return -EIO;
                }
                if (int_status & SPIFLG_PARERR_MASK) {
-                       dev_dbg(sdev, "SPI Parity Error\n");
+                       dev_err(sdev, "SPI Parity Error\n");
                        return -EIO;
                }
                if (int_status & SPIFLG_OVRRUN_MASK) {
-                       dev_dbg(sdev, "SPI Data Overrun error\n");
+                       dev_err(sdev, "SPI Data Overrun error\n");
                        return -EIO;
                }
                if (int_status & SPIFLG_BUF_INIT_ACTIVE_MASK) {
-                       dev_dbg(sdev, "SPI Buffer Init Active\n");
+                       dev_err(sdev, "SPI Buffer Init Active\n");
                        return -EBUSY;
                }
        }
@@ -703,7 +703,8 @@ static int davinci_spi_bufs(struct spi_device *spi, struct spi_transfer *t)
 
        /* Wait for the transfer to complete */
        if (spicfg->io_type != SPI_IO_TYPE_POLL) {
-               wait_for_completion_interruptible(&(dspi->done));
+               if (wait_for_completion_timeout(&dspi->done, HZ) == 0)
+                       errors = SPIFLG_TIMEOUT_MASK;
        } else {
                while (dspi->rcount > 0 || dspi->wcount > 0) {
                        errors = davinci_spi_process_events(dspi);