spi: xcomm: Remove duplicate code to set default bits_per_word and max speed
authorAxel Lin <axel.lin@ingics.com>
Sun, 2 Mar 2014 14:48:41 +0000 (22:48 +0800)
committerMark Brown <broonie@linaro.org>
Tue, 4 Mar 2014 03:19:14 +0000 (11:19 +0800)
In the implementation of __spi_validate(), spi core will set transfer
bits_per_word and max speed as spi device default if it is not set for
this transfer. So we can remove the same logic in spi_xcomm_setup_transfer().
Also remove a redundant code to initialize is_first variable.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Acked-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@linaro.org>
drivers/spi/spi-xcomm.c

index 24c40b1..2505b7e 100644 (file)
@@ -74,15 +74,13 @@ static void spi_xcomm_chipselect(struct spi_xcomm *spi_xcomm,
 static int spi_xcomm_setup_transfer(struct spi_xcomm *spi_xcomm,
        struct spi_device *spi, struct spi_transfer *t, unsigned int *settings)
 {
-       unsigned int speed;
-
        if (t->len > 62)
                return -EINVAL;
 
-       speed = t->speed_hz ? t->speed_hz : spi->max_speed_hz;
+       if (t->speed_hz != spi_xcomm->current_speed) {
+               unsigned int divider;
 
-       if (speed != spi_xcomm->current_speed) {
-               unsigned int divider = DIV_ROUND_UP(SPI_XCOMM_CLOCK, speed);
+               divider = DIV_ROUND_UP(SPI_XCOMM_CLOCK, t->speed_hz);
                if (divider >= 64)
                        *settings |= SPI_XCOMM_SETTINGS_CLOCK_DIV_64;
                else if (divider >= 16)
@@ -90,7 +88,7 @@ static int spi_xcomm_setup_transfer(struct spi_xcomm *spi_xcomm,
                else
                        *settings |= SPI_XCOMM_SETTINGS_CLOCK_DIV_4;
 
-               spi_xcomm->current_speed = speed;
+               spi_xcomm->current_speed = t->speed_hz;
        }
 
        if (spi->mode & SPI_CPOL)
@@ -148,8 +146,6 @@ static int spi_xcomm_transfer_one(struct spi_master *master,
        int status = 0;
        bool is_last;
 
-       is_first = true;
-
        spi_xcomm_chipselect(spi_xcomm, spi, true);
 
        list_for_each_entry(t, &msg->transfers, transfer_list) {