]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - drivers/spi/spi_imx.c
drm/radeon/kms/atom: Fix DVO support
[mv-sheeva.git] / drivers / spi / spi_imx.c
index 0671aeef579221bf17c21b522a7905be253ca8a6..c195e45f7f35752680d4acc3d1fe52e9c95b6b4f 100644 (file)
@@ -1171,9 +1171,6 @@ msg_rejected:
        return -EINVAL;
 }
 
-/* the spi->mode bits understood by this driver: */
-#define MODEBITS (SPI_CPOL | SPI_CPHA | SPI_CS_HIGH)
-
 /* On first setup bad values must free chip_data memory since will cause
    spi_new_device to fail. Bad value setup from protocol driver are simply not
    applied and notified to the calling driver. */
@@ -1186,12 +1183,6 @@ static int setup(struct spi_device *spi)
        u32 tmp;
        int status = 0;
 
-       if (spi->mode & ~MODEBITS) {
-               dev_dbg(&spi->dev, "setup: unsupported mode bits %x\n",
-                       spi->mode & ~MODEBITS);
-               return -EINVAL;
-       }
-
        /* Get controller data */
        chip_info = spi->controller_data;
 
@@ -1286,10 +1277,7 @@ static int setup(struct spi_device *spi)
 
        /* SPI word width */
        tmp = spi->bits_per_word;
-       if (tmp == 0) {
-               tmp = 8;
-               spi->bits_per_word = 8;
-       } else if (tmp > 16) {
+       if (tmp > 16) {
                status = -EINVAL;
                dev_err(&spi->dev,
                        "setup - "
@@ -1481,6 +1469,9 @@ static int __init spi_imx_probe(struct platform_device *pdev)
        drv_data->master_info = platform_info;
        drv_data->pdev = pdev;
 
+       /* the spi->mode bits understood by this driver: */
+       master->mode_bits = SPI_CPOL | SPI_CPHA | SPI_CS_HIGH;
+
        master->bus_num = pdev->id;
        master->num_chipselect = platform_info->num_chipselect;
        master->dma_alignment = DMA_ALIGNMENT;