crypto: nx - fix GCM for zero length messages
[firefly-linux-kernel-4.4.55.git] / drivers / spi / spi-topcliff-pch.c
index 637d728fbeb5b3d2c573baf5c19c72e6dd542a3d..dd55707a6aa5fdd155ef286b5cfc6267215d531c 100644 (file)
@@ -367,7 +367,7 @@ static irqreturn_t pch_spi_handler(int irq, void *dev_id)
 
        if (reg_spsr_val & SPSR_ORF_BIT) {
                dev_err(&board_dat->pdev->dev, "%s Over run error\n", __func__);
-               if (data->current_msg->complete != 0) {
+               if (data->current_msg->complete) {
                        data->transfer_complete = true;
                        data->current_msg->status = -EIO;
                        data->current_msg->complete(data->current_msg->context);
@@ -472,11 +472,6 @@ static int pch_spi_setup(struct spi_device *pspi)
                dev_dbg(&pspi->dev, "%s 8 bits per word\n", __func__);
        }
 
-       if ((pspi->bits_per_word != 8) && (pspi->bits_per_word != 16)) {
-               dev_err(&pspi->dev, "%s Invalid bits per word\n", __func__);
-               return -EINVAL;
-       }
-
        /* Check baud rate setting */
        /* if baud rate of chip is greater than
           max we can support,return error */
@@ -537,17 +532,6 @@ static int pch_spi_transfer(struct spi_device *pspi, struct spi_message *pmsg)
                /* if baud rate has been specified validate the same */
                if (transfer->speed_hz > PCH_MAX_BAUDRATE)
                        transfer->speed_hz = PCH_MAX_BAUDRATE;
-
-               /* if bits per word has been specified validate the same */
-               if (transfer->bits_per_word) {
-                       if ((transfer->bits_per_word != 8)
-                           && (transfer->bits_per_word != 16)) {
-                               retval = -EINVAL;
-                               dev_err(&pspi->dev,
-                                       "%s Invalid bits per word\n", __func__);
-                               goto err_return_spinlock;
-                       }
-               }
        }
        spin_unlock_irqrestore(&data->lock, flags);
 
@@ -659,7 +643,7 @@ static void pch_spi_set_tx(struct pch_spi_data *data, int *bpw)
                list_for_each_entry_safe(pmsg, tmp, data->queue.next, queue) {
                        pmsg->status = -ENOMEM;
 
-                       if (pmsg->complete != 0)
+                       if (pmsg->complete)
                                pmsg->complete(pmsg->context);
 
                        /* delete from queue */
@@ -709,7 +693,7 @@ static void pch_spi_nomore_transfer(struct pch_spi_data *data)
         * [To the spi core..indicating end of transfer] */
        data->current_msg->status = 0;
 
-       if (data->current_msg->complete != 0) {
+       if (data->current_msg->complete) {
                dev_dbg(&data->master->dev,
                        "%s:Invoking callback of SPI core\n", __func__);
                data->current_msg->complete(data->current_msg->context);
@@ -1202,7 +1186,7 @@ static void pch_spi_process_messages(struct work_struct *pwork)
                list_for_each_entry_safe(pmsg, tmp, data->queue.next, queue) {
                        pmsg->status = -EIO;
 
-                       if (pmsg->complete != 0) {
+                       if (pmsg->complete) {
                                spin_unlock(&data->lock);
                                pmsg->complete(pmsg->context);
                                spin_lock(&data->lock);
@@ -1442,6 +1426,7 @@ static int pch_spi_pd_probe(struct platform_device *plat_dev)
        master->setup = pch_spi_setup;
        master->transfer = pch_spi_transfer;
        master->mode_bits = SPI_CPOL | SPI_CPHA | SPI_LSB_FIRST;
+       master->bits_per_word_mask = SPI_BPW_MASK(8) | SPI_BPW_MASK(16);
 
        data->board_dat = board_dat;
        data->plat_dev = plat_dev;