All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vignesh R <vigneshr-l0cyMroinI0@public.gmane.org>
To: prahlad venkata <prahlad.eee-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: "broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org"
	<broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	"linux-spi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<linux-spi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	"linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Subject: Re: [PATCH] spi: spi-ti-qspi: clear wlen field while setting word length.
Date: Mon, 11 Jul 2016 14:45:01 +0530	[thread overview]
Message-ID: <57836395.3030602@ti.com> (raw)
In-Reply-To: <CAFbo-qW1pK5RJOCY0b0Gz7JR+9170sjiZb90UEvqySLheZst3A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>



On Monday 11 July 2016 02:39 PM, prahlad venkata wrote:
> On Mon, Jul 11, 2016 at 2:36 PM, prahlad venkata <prahlad.eee-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
>> On Mon, Jul 11, 2016 at 2:14 PM, Vignesh R <vigneshr-l0cyMroinI0@public.gmane.org> wrote:
>>>
>>>
>>> On Monday 11 July 2016 01:34 PM, prahlad venkata wrote:
>>>> On Mon, Jul 11, 2016 at 10:37 AM, Vignesh R <vigneshr-l0cyMroinI0@public.gmane.org> wrote:
>>>>> 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 <prahlad.eee-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
>>>>>> ---
>>>>>>  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;
>>>
>>> This is wrong. Deleting this line means QSPI_WR_SNGL is not set and no
>>> data is sent out on the wire.
>> QSPI_WR_SNGL is already set as soon as we enter the function.
>>>
>>>>>
>>>>> 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.
>>>> Even though WLEN=1 is set in the ti_qspi_transfer_one, if we ask for a
>>>> transfer of large data,
>>>> say 300 bytes in length, for attaining faster data rate WLEN 128 is
>>>> selected for the first two
>>>> transactions and remaining 44 bytes will be transmitted with WLEN 1.
>>>> During that case,
>>>> WLEN will be changed inside qspi_write_msg function itself and the
>>>> field should be cleared
>>>> first while doing that.
>>>
>>> In qspi_write_msg(), qspi->cmd will always have WLEN set to
>>> QSPI_WLEN(t->bits_per_word) and qspi->cmd is never changed within this
>>> function.
>>> It is the value of local variable 'cmd' that is changed to appropriate
>>> WLEN (128bit or 8bit) as necessary.

> 'cmd' is written back to qspi->cmd for every transaction.

You mean qspi->cmd = cmd ?
I don't see this happening anywhere in the driver. Can you point me to
that line of code?

-- 
Regards
Vignesh
--
To unsubscribe from this list: send the line "unsubscribe linux-spi" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

WARNING: multiple messages have this Message-ID (diff)
From: Vignesh R <vigneshr@ti.com>
To: prahlad venkata <prahlad.eee@gmail.com>
Cc: "broonie@kernel.org" <broonie@kernel.org>,
	"linux-spi@vger.kernel.org" <linux-spi@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] spi: spi-ti-qspi: clear wlen field while setting word length.
Date: Mon, 11 Jul 2016 14:45:01 +0530	[thread overview]
Message-ID: <57836395.3030602@ti.com> (raw)
In-Reply-To: <CAFbo-qW1pK5RJOCY0b0Gz7JR+9170sjiZb90UEvqySLheZst3A@mail.gmail.com>



On Monday 11 July 2016 02:39 PM, prahlad venkata wrote:
> On Mon, Jul 11, 2016 at 2:36 PM, prahlad venkata <prahlad.eee@gmail.com> wrote:
>> On Mon, Jul 11, 2016 at 2:14 PM, Vignesh R <vigneshr@ti.com> wrote:
>>>
>>>
>>> On Monday 11 July 2016 01:34 PM, prahlad venkata wrote:
>>>> On Mon, Jul 11, 2016 at 10:37 AM, Vignesh R <vigneshr@ti.com> wrote:
>>>>> 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 <prahlad.eee@gmail.com>
>>>>>> ---
>>>>>>  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;
>>>
>>> This is wrong. Deleting this line means QSPI_WR_SNGL is not set and no
>>> data is sent out on the wire.
>> QSPI_WR_SNGL is already set as soon as we enter the function.
>>>
>>>>>
>>>>> 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.
>>>> Even though WLEN=1 is set in the ti_qspi_transfer_one, if we ask for a
>>>> transfer of large data,
>>>> say 300 bytes in length, for attaining faster data rate WLEN 128 is
>>>> selected for the first two
>>>> transactions and remaining 44 bytes will be transmitted with WLEN 1.
>>>> During that case,
>>>> WLEN will be changed inside qspi_write_msg function itself and the
>>>> field should be cleared
>>>> first while doing that.
>>>
>>> In qspi_write_msg(), qspi->cmd will always have WLEN set to
>>> QSPI_WLEN(t->bits_per_word) and qspi->cmd is never changed within this
>>> function.
>>> It is the value of local variable 'cmd' that is changed to appropriate
>>> WLEN (128bit or 8bit) as necessary.

> 'cmd' is written back to qspi->cmd for every transaction.

You mean qspi->cmd = cmd ?
I don't see this happening anywhere in the driver. Can you point me to
that line of code?

-- 
Regards
Vignesh

  parent reply	other threads:[~2016-07-11  9:15 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-09 20:05 [PATCH] spi: spi-ti-qspi: clear wlen field while setting word length Prahlad V
2016-07-09 20:05 ` Prahlad V
     [not found] ` <1468094753-8327-1-git-send-email-prahlad.eee-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-07-11  5:07   ` Vignesh R
2016-07-11  5:07     ` Vignesh R
2016-07-11  8:04     ` prahlad venkata
2016-07-11  8:44       ` Vignesh R
     [not found]         ` <57835C62.7030704-l0cyMroinI0@public.gmane.org>
2016-07-11  9:06           ` prahlad venkata
2016-07-11  9:06             ` prahlad venkata
2016-07-11  9:09             ` prahlad venkata
     [not found]               ` <CAFbo-qW1pK5RJOCY0b0Gz7JR+9170sjiZb90UEvqySLheZst3A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-07-11  9:15                 ` Vignesh R [this message]
2016-07-11  9:15                   ` Vignesh R
2016-07-11  9:19                   ` prahlad venkata
2016-07-11 10:23                     ` Vignesh R
2016-07-11 17:08                       ` prahlad venkata

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=57836395.3030602@ti.com \
    --to=vigneshr-l0cymroini0@public.gmane.org \
    --cc=broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-spi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=prahlad.eee-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.