Message ID | 1393771721.4044.7.camel@phoenix (mailing list archive) |
---|---|
State | Accepted |
Commit | af348519e4a41eac8eae82cf3dcaeb6c1b008113 |
Headers | show |
On 03/02/2014 03:48 PM, Axel Lin wrote: > 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> > --- > drivers/spi/spi-xcomm.c | 12 ++++-------- > 1 file changed, 4 insertions(+), 8 deletions(-) > > diff --git a/drivers/spi/spi-xcomm.c b/drivers/spi/spi-xcomm.c > index 350a76b..bb478dc 100644 > --- a/drivers/spi/spi-xcomm.c > +++ b/drivers/spi/spi-xcomm.c > @@ -73,15 +73,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) > @@ -89,7 +87,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) > @@ -147,8 +145,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) { > -- To unsubscribe from this list: send the line "unsubscribe linux-spi" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Sun, Mar 02, 2014 at 10:48:41PM +0800, Axel Lin wrote: > 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. Applied, thanks.
diff --git a/drivers/spi/spi-xcomm.c b/drivers/spi/spi-xcomm.c index 350a76b..bb478dc 100644 --- a/drivers/spi/spi-xcomm.c +++ b/drivers/spi/spi-xcomm.c @@ -73,15 +73,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) @@ -89,7 +87,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) @@ -147,8 +145,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) {
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> --- drivers/spi/spi-xcomm.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-)