From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757665AbcGKFHS (ORCPT ); Mon, 11 Jul 2016 01:07:18 -0400 Received: from devils.ext.ti.com ([198.47.26.153]:55377 "EHLO devils.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750863AbcGKFHN (ORCPT ); Mon, 11 Jul 2016 01:07:13 -0400 Subject: Re: [PATCH] spi: spi-ti-qspi: clear wlen field while setting word length. To: Prahlad V , "broonie@kernel.org" References: <1468094753-8327-1-git-send-email-prahlad.eee@gmail.com> CC: "linux-spi@vger.kernel.org" , "linux-kernel@vger.kernel.org" From: Vignesh R Message-ID: <5783297C.7080702@ti.com> Date: Mon, 11 Jul 2016 10:37:08 +0530 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.8.0 MIME-Version: 1.0 In-Reply-To: <1468094753-8327-1-git-send-email-prahlad.eee@gmail.com> Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Prahlad, On Sunday 10 July 2016 01:35 AM, Prahlad V wrote: > When a word length of 1 byte is selected and writing data of length > more than QSPI_WLEN_MAX_BYTES, first MAX_BYTES will be transfered > and remaining will be transfered byte by byte. In that case wlen > field should be cleared before setting. > > Signed-off-by: Prahlad V > --- > drivers/spi/spi-ti-qspi.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/spi/spi-ti-qspi.c b/drivers/spi/spi-ti-qspi.c > index 29ea8d2..6c61f54 100644 > --- a/drivers/spi/spi-ti-qspi.c > +++ b/drivers/spi/spi-ti-qspi.c > @@ -276,9 +276,9 @@ static int qspi_write_msg(struct ti_qspi *qspi, struct spi_transfer *t, > cmd |= QSPI_WLEN(QSPI_WLEN_MAX_BITS); > } else { > writeb(*txbuf, qspi->base + QSPI_SPI_DATA_REG); > - cmd = qspi->cmd | QSPI_WR_SNGL; qspi->cmd always has WLEN field cleared and set to WLEN = 1 byte (see ti_qspi_start_transfer_one()). And hence variable 'cmd' will also have WLEN set to 1 byte. > xfer_len = wlen; > - cmd |= QSPI_WLEN(wlen); > + cmd = ((qspi->cmd & ~QSPI_WLEN_MASK) | > + QSPI_WLEN(wlen)); So, this won't be necessary. -- Regards Vignesh