From: Heiner Kallweit <hkallweit1@gmail.com>
To: Brian Norris <computersforpeace@gmail.com>
Cc: Mark Brown <broonie@kernel.org>,
linux-mtd@lists.infradead.org,
"linux-spi@vger.kernel.org" <linux-spi@vger.kernel.org>,
Michal Suchanek <hramrach@gmail.com>,
martin@sperl.org
Subject: Re: RfC: Handle SPI controller limitations like maximum message length
Date: Fri, 20 Nov 2015 19:59:37 +0100 [thread overview]
Message-ID: <564F6D99.8090203@gmail.com> (raw)
In-Reply-To: <20151120123540.GC1929@sirena.org.uk>
Am 20.11.2015 um 13:35 schrieb Mark Brown:
> On Fri, Nov 20, 2015 at 11:06:47AM +0100, Heiner Kallweit wrote:
>> On Fri, Nov 20, 2015 at 7:59 AM, Heiner Kallweit <hkallweit1@gmail.com> wrote:
>
>>> It would be sufficient if it's a valid case that spi_master returns 0
>>> and an actual_length < requested_length as this is some kind of error
>>> situation.
>
>> I had one more look at the SPI core and e.g. spi_write_then_read
>> calls spi_sync w/o checking actual_length afterwards.
>> This can mean the discussed case is not valid, however it also could be
>> simply a bug.
>
> We can't assume that users of spi_write_then_read() will cope with a
> restarted transfer - the usual use case is things like register I/O
> where restarting a partial transfer wouldn't produce the desired result
> so it's just a plain error for users of that interface. Anything that
> is able to cope needs to be using the core API directly.
>
>> If the discussed case is valid a clear hint to all users of spi_sync and
>> friends should be added that the caller can not rely on status code 0
>> only but must check actual_length to verify that the complete message
>> was transferred.
>
> You'll get an error on truncation. It may be possible to recover.
>
OK, I interpret this as:
Controller drivers shall return 0 only if the complete message was
transferred successfully.
If a controller driver returns an error it has the option to set
actual_length to what was transferred successfully.
This means we can't use patch 4 from Michal because it bails out as soon
as the underlying SPI transfer returns an error.
Instead something like the spi-nor patch I sent on Oct 6th would be needed:
[PATCH] mtd: spi-nor: handle controller driver limitations in spi_nor_read
It loops over nor->read and ignores errors as long as at least something
was read.
WARNING: multiple messages have this Message-ID (diff)
From: Heiner Kallweit <hkallweit1-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
To: Brian Norris <computersforpeace-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: Mark Brown <broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
linux-mtd-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
"linux-spi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<linux-spi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
Michal Suchanek
<hramrach-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
martin-d5rIkyn9cnPYtjvyW6yDsg@public.gmane.org
Subject: Re: RfC: Handle SPI controller limitations like maximum message length
Date: Fri, 20 Nov 2015 19:59:37 +0100 [thread overview]
Message-ID: <564F6D99.8090203@gmail.com> (raw)
In-Reply-To: <20151120123540.GC1929-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
Am 20.11.2015 um 13:35 schrieb Mark Brown:
> On Fri, Nov 20, 2015 at 11:06:47AM +0100, Heiner Kallweit wrote:
>> On Fri, Nov 20, 2015 at 7:59 AM, Heiner Kallweit <hkallweit1-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
>
>>> It would be sufficient if it's a valid case that spi_master returns 0
>>> and an actual_length < requested_length as this is some kind of error
>>> situation.
>
>> I had one more look at the SPI core and e.g. spi_write_then_read
>> calls spi_sync w/o checking actual_length afterwards.
>> This can mean the discussed case is not valid, however it also could be
>> simply a bug.
>
> We can't assume that users of spi_write_then_read() will cope with a
> restarted transfer - the usual use case is things like register I/O
> where restarting a partial transfer wouldn't produce the desired result
> so it's just a plain error for users of that interface. Anything that
> is able to cope needs to be using the core API directly.
>
>> If the discussed case is valid a clear hint to all users of spi_sync and
>> friends should be added that the caller can not rely on status code 0
>> only but must check actual_length to verify that the complete message
>> was transferred.
>
> You'll get an error on truncation. It may be possible to recover.
>
OK, I interpret this as:
Controller drivers shall return 0 only if the complete message was
transferred successfully.
If a controller driver returns an error it has the option to set
actual_length to what was transferred successfully.
This means we can't use patch 4 from Michal because it bails out as soon
as the underlying SPI transfer returns an error.
Instead something like the spi-nor patch I sent on Oct 6th would be needed:
[PATCH] mtd: spi-nor: handle controller driver limitations in spi_nor_read
It loops over nor->read and ignores errors as long as at least something
was read.
--
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
next prev parent reply other threads:[~2015-11-20 19:00 UTC|newest]
Thread overview: 92+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-18 21:19 RfC: Handle SPI controller limitations like maximum message length Heiner Kallweit
2015-11-18 21:19 ` Heiner Kallweit
2015-11-18 21:57 ` Mark Brown
2015-11-18 21:57 ` Mark Brown
2015-11-18 22:50 ` Heiner Kallweit
2015-11-18 22:50 ` Heiner Kallweit
2015-11-19 11:40 ` Mark Brown
2015-11-19 11:40 ` Mark Brown
2015-11-19 15:00 ` Martin Sperl
2015-11-19 15:00 ` Martin Sperl
2015-11-19 17:15 ` Mark Brown
2015-11-19 17:15 ` Mark Brown
2015-11-20 0:07 ` Brian Norris
2015-11-20 0:07 ` Brian Norris
2015-11-20 11:06 ` Mark Brown
2015-11-20 11:06 ` Mark Brown
2015-11-20 11:16 ` Martin Sperl
2015-11-20 11:16 ` Martin Sperl
2015-11-20 10:18 ` Martin Sperl
2015-11-20 10:18 ` Martin Sperl
2015-11-20 12:05 ` Mark Brown
2015-11-20 12:05 ` Mark Brown
2015-11-20 12:56 ` Martin Sperl
2015-11-20 12:56 ` Martin Sperl
2015-11-21 13:49 ` Mark Brown
2015-11-21 13:49 ` Mark Brown
2015-11-21 14:10 ` Heiner Kallweit
2015-11-21 14:10 ` Heiner Kallweit
2015-11-21 15:57 ` Michal Suchanek
2015-11-21 15:57 ` Michal Suchanek
2015-11-21 22:59 ` [PATCH 0/3] spi: mtd: Handle HW message length restrictions Heiner Kallweit
2015-11-21 22:59 ` Heiner Kallweit
2015-11-21 23:01 ` [PATCH 1/3] spi: core: add max_msg_size to spi_master Heiner Kallweit
2015-11-21 23:01 ` Heiner Kallweit
2015-11-22 13:16 ` Mark Brown
2015-11-22 13:16 ` Mark Brown
2015-11-22 16:15 ` Heiner Kallweit
2015-11-22 16:15 ` Heiner Kallweit
2015-11-23 11:38 ` Mark Brown
2015-11-23 11:38 ` Mark Brown
2015-11-27 19:26 ` Heiner Kallweit
2015-11-27 19:26 ` Heiner Kallweit
2015-11-30 16:42 ` Mark Brown
2015-11-30 16:42 ` Mark Brown
2015-11-30 20:15 ` Heiner Kallweit
2015-11-30 20:15 ` Heiner Kallweit
2015-11-21 23:08 ` [PATCH 2/3] mtd: m25p80: handle HW message size restrictions Heiner Kallweit
2015-11-21 23:08 ` Heiner Kallweit
2015-11-22 12:51 ` Michal Suchanek
2015-11-22 12:51 ` Michal Suchanek
2015-11-21 23:11 ` [PATCH 3/3] spi: fsl-espi: make use of max_msg_size in spi_master to handle HW restrictions Heiner Kallweit
2015-11-21 23:11 ` Heiner Kallweit
2015-11-30 20:24 ` [PATCH v2 1/2] spi: core: add max_msg_size to spi_master Heiner Kallweit
2015-11-30 20:24 ` Heiner Kallweit
2015-11-30 20:25 ` [PATCH resubmit 2/2] spi: fsl-espi: make use of max_msg_size in spi_master to handle HW restrictions Heiner Kallweit
2015-11-30 20:25 ` Heiner Kallweit
2015-12-01 14:19 ` Mark Brown
2015-12-01 14:19 ` Mark Brown
2015-12-01 18:53 ` Heiner Kallweit
2015-12-01 18:53 ` Heiner Kallweit
2015-11-22 13:19 ` RfC: Handle SPI controller limitations like maximum message length Mark Brown
2015-11-22 13:19 ` Mark Brown
2015-11-20 0:02 ` Brian Norris
2015-11-20 0:02 ` Brian Norris
2015-11-20 6:59 ` Heiner Kallweit
2015-11-20 6:59 ` Heiner Kallweit
2015-11-20 10:06 ` Heiner Kallweit
2015-11-20 10:06 ` Heiner Kallweit
2015-11-20 12:35 ` Mark Brown
2015-11-20 12:35 ` Mark Brown
2015-11-20 18:59 ` Heiner Kallweit [this message]
2015-11-20 18:59 ` Heiner Kallweit
2015-11-20 19:05 ` Michal Suchanek
2015-11-20 19:05 ` Michal Suchanek
2015-11-20 19:21 ` Mark Brown
2015-11-20 19:21 ` Mark Brown
2015-11-20 19:44 ` Michal Suchanek
2015-11-20 19:44 ` Michal Suchanek
2015-11-20 23:22 ` Brian Norris
2015-11-20 23:22 ` Brian Norris
2015-11-21 22:53 ` Heiner Kallweit
2015-11-21 22:53 ` Heiner Kallweit
2015-11-20 19:18 ` Mark Brown
2015-11-20 19:18 ` Mark Brown
2015-11-20 19:37 ` Heiner Kallweit
2015-11-20 19:37 ` Heiner Kallweit
2015-11-20 12:31 ` Mark Brown
2015-11-20 12:31 ` Mark Brown
2015-11-20 12:56 ` Michal Suchanek
2015-11-20 12:56 ` Michal Suchanek
2015-11-20 23:07 ` Brian Norris
2015-11-20 23:07 ` Brian Norris
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=564F6D99.8090203@gmail.com \
--to=hkallweit1@gmail.com \
--cc=broonie@kernel.org \
--cc=computersforpeace@gmail.com \
--cc=hramrach@gmail.com \
--cc=linux-mtd@lists.infradead.org \
--cc=linux-spi@vger.kernel.org \
--cc=martin@sperl.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.