[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20200821071030.GA8585@kozik-lap>
Date: Fri, 21 Aug 2020 09:10:30 +0200
From: Krzysztof Kozlowski <krzk@...nel.org>
To: Lukasz Stelmach <l.stelmach@...sung.com>
Cc: Kukjin Kim <kgene@...nel.org>, Andi Shyti <andi@...zian.org>,
Mark Brown <broonie@...nel.org>, linux-spi@...r.kernel.org,
linux-samsung-soc@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org,
m.szyprowski@...sung.com, b.zolnierkie@...sung.com
Subject: Re: [PATCH 7/8] spi: spi-s3c64xx: Increase transfer timeout
On Wed, Aug 19, 2020 at 03:39:56PM +0200, Lukasz Stelmach wrote:
> It was <2020-08-19 śro 14:49>, when Krzysztof Kozlowski wrote:
> > On Wed, Aug 19, 2020 at 02:32:07PM +0200, Łukasz Stelmach wrote:
> >> Signed-off-by: Łukasz Stelmach <l.stelmach@...sung.com>
> >
> > Why? Everything works fine and suddenly minimum timeout is 100 ms?
>
> Actually I am not 100% sure the max() call is required, maybe +30 is
> enough. Definitely some minimum value is required because for small
> tranfers (100s of bytes) ms is 0 after the first assignment.
Sure, just please describe it all in commit msg. All these questions
"why?" came because of lack of explanation in commit msg.
I guess minimum timeout 100 ms for each transfer is quite high, so maybe
just bump the tolerance to 30 which also would be a minimum timeout.
Best regards,
Krzysztof
>
> >> ---
> >> drivers/spi/spi-s3c64xx.c | 3 ++-
> >> 1 file changed, 2 insertions(+), 1 deletion(-)
> >>
> >> diff --git a/drivers/spi/spi-s3c64xx.c b/drivers/spi/spi-s3c64xx.c
> >> index 27d77600a820..27db1e0f6f32 100644
> >> --- a/drivers/spi/spi-s3c64xx.c
> >> +++ b/drivers/spi/spi-s3c64xx.c
> >> @@ -464,7 +464,8 @@ static int s3c64xx_wait_for_dma(struct s3c64xx_spi_driver_data *sdd,
> >>
> >> /* millisecs to xfer 'len' bytes @ 'cur_speed' */
> >> ms = xfer->len * 8 * 1000 / sdd->cur_speed;
> >> - ms += 10; /* some tolerance */
> >> + ms = (ms * 10) + 30; /* some tolerance */
> >> + ms = max(ms, 100); /* minimum timeout */
> >>
> >> val = msecs_to_jiffies(ms) + 10;
> >> val = wait_for_completion_timeout(&sdd->xfer_completion, val);
> >> --
> >> 2.26.2
> >>
> >
> >
>
> --
> Łukasz Stelmach
> Samsung R&D Institute Poland
> Samsung Electronics
Powered by blists - more mailing lists