Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1330606 > unrolled thread
| Started by | Mark Brown <broonie@kernel.org> |
|---|---|
| First post | 2016-02-09 20:40 +0100 |
| Last post | 2016-02-17 17:20 +0100 |
| Articles | 6 — 3 participants |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
Re: [PATCH v5 3/5] mtd: devices: m25p80: add support for mmap read request Mark Brown <broonie@kernel.org> - 2016-02-09 20:40 +0100
Re: [PATCH v5 3/5] mtd: devices: m25p80: add support for mmap read request Vignesh R <vigneshr@ti.com> - 2016-02-11 06:40 +0100
Re: [PATCH v5 3/5] mtd: devices: m25p80: add support for mmap read request Mark Brown <broonie@kernel.org> - 2016-02-12 23:40 +0100
Re: [PATCH v5 3/5] mtd: devices: m25p80: add support for mmap read request Vignesh R <vigneshr@ti.com> - 2016-02-16 09:10 +0100
Re: [PATCH v5 3/5] mtd: devices: m25p80: add support for mmap read request Mark Brown <broonie@kernel.org> - 2016-02-16 13:40 +0100
Re: [PATCH v5 3/5] mtd: devices: m25p80: add support for mmap read request "R, Vignesh" <vigneshr@ti.com> - 2016-02-17 17:20 +0100
| From | Mark Brown <broonie@kernel.org> |
|---|---|
| Date | 2016-02-09 20:40 +0100 |
| Subject | Re: [PATCH v5 3/5] mtd: devices: m25p80: add support for mmap read request |
| Message-ID | <r0miK-8tA-13@gated-at.bofh.it> |
[Multipart message — attachments visible in raw view] — view raw
On Fri, Dec 11, 2015 at 09:39:58AM +0530, Vignesh R wrote:
> + if (spi_flash_read_supported(spi)) {
> + struct spi_flash_read_message msg;
> + int ret;
> +
> + msg.buf = buf;
> + msg.from = from;
> + msg.len = len;
> + msg.read_opcode = nor->read_opcode;
> + msg.addr_width = nor->addr_width;
> + msg.dummy_bytes = dummy;
> + /* TODO: Support other combinations */
> + msg.opcode_nbits = SPI_NBITS_SINGLE;
> + msg.addr_nbits = SPI_NBITS_SINGLE;
> + msg.data_nbits = m25p80_rx_nbits(nor);
> +
> + ret = spi_flash_read(spi, &msg);
> + *retlen = msg.retlen;
> + return ret;
Looking at this I can't help but think that spi_flash_read() ought to
have the stub in rather than the caller. But given that we're pretty
much only ever expecting one user I'm not 100% sure it actually matters.
Anyway, I applied the first two patches.
[toc] | [next] | [standalone]
| From | Vignesh R <vigneshr@ti.com> |
|---|---|
| Date | 2016-02-11 06:40 +0100 |
| Message-ID | <r0S8V-4pf-1@gated-at.bofh.it> |
| In reply to | #1330606 |
On 02/10/2016 01:06 AM, Mark Brown wrote:
> On Fri, Dec 11, 2015 at 09:39:58AM +0530, Vignesh R wrote:
>
>> + if (spi_flash_read_supported(spi)) {
>> + struct spi_flash_read_message msg;
>> + int ret;
>> +
>> + msg.buf = buf;
>> + msg.from = from;
>> + msg.len = len;
>> + msg.read_opcode = nor->read_opcode;
>> + msg.addr_width = nor->addr_width;
>> + msg.dummy_bytes = dummy;
>> + /* TODO: Support other combinations */
>> + msg.opcode_nbits = SPI_NBITS_SINGLE;
>> + msg.addr_nbits = SPI_NBITS_SINGLE;
>> + msg.data_nbits = m25p80_rx_nbits(nor);
>> +
>> + ret = spi_flash_read(spi, &msg);
>> + *retlen = msg.retlen;
>> + return ret;
>
> Looking at this I can't help but think that spi_flash_read() ought to
> have the stub in rather than the caller. But given that we're pretty
> much only ever expecting one user I'm not 100% sure it actually matters.
Well, my initial patch set passed long list of arguments to
spi_flash_read(), but Brian suggested to use struct[1] in order to avoid
unnecessary churn when things need changed in the API.
[1] https://lkml.org/lkml/2015/11/11/454
--
Regards
Vignesh
[toc] | [prev] | [next] | [standalone]
| From | Mark Brown <broonie@kernel.org> |
|---|---|
| Date | 2016-02-12 23:40 +0100 |
| Message-ID | <r1uxz-4IF-5@gated-at.bofh.it> |
| In reply to | #1331698 |
[Multipart message — attachments visible in raw view] — view raw
On Thu, Feb 11, 2016 at 11:03:50AM +0530, Vignesh R wrote:
> On 02/10/2016 01:06 AM, Mark Brown wrote:
> > On Fri, Dec 11, 2015 at 09:39:58AM +0530, Vignesh R wrote:
> >> + if (spi_flash_read_supported(spi)) {
> >> + struct spi_flash_read_message msg;
> >> + int ret;
> > Looking at this I can't help but think that spi_flash_read() ought to
> > have the stub in rather than the caller. But given that we're pretty
> > much only ever expecting one user I'm not 100% sure it actually matters.
> Well, my initial patch set passed long list of arguments to
> spi_flash_read(), but Brian suggested to use struct[1] in order to avoid
> unnecessary churn when things need changed in the API.
I don't see what that has to do with my point?
[toc] | [prev] | [next] | [standalone]
| From | Vignesh R <vigneshr@ti.com> |
|---|---|
| Date | 2016-02-16 09:10 +0100 |
| Message-ID | <r2IRQ-5aD-17@gated-at.bofh.it> |
| In reply to | #1333183 |
On 02/13/2016 04:07 AM, Mark Brown wrote:
> On Thu, Feb 11, 2016 at 11:03:50AM +0530, Vignesh R wrote:
>> On 02/10/2016 01:06 AM, Mark Brown wrote:
>>> On Fri, Dec 11, 2015 at 09:39:58AM +0530, Vignesh R wrote:
>
>>>> + if (spi_flash_read_supported(spi)) {
>>>> + struct spi_flash_read_message msg;
>>>> + int ret;
>
>>> Looking at this I can't help but think that spi_flash_read() ought to
>>> have the stub in rather than the caller. But given that we're pretty
>>> much only ever expecting one user I'm not 100% sure it actually matters.
>
>> Well, my initial patch set passed long list of arguments to
>> spi_flash_read(), but Brian suggested to use struct[1] in order to avoid
>> unnecessary churn when things need changed in the API.
>
> I don't see what that has to do with my point?
>
AFAIU, your previous comment was to move initialization of
spi_flash_read_message struct to spi_flash_read(). This would mean
sending long list of arguments to spi_flash_read() which needs to be
updated whenever an argument needs to be added/deleted (in future).
Instead passing around a struct would be much easier in case of
adding/removing parameters.
Please correct me if I misunderstood your comment?
--
Regards
Vignesh
[toc] | [prev] | [next] | [standalone]
| From | Mark Brown <broonie@kernel.org> |
|---|---|
| Date | 2016-02-16 13:40 +0100 |
| Message-ID | <r2N58-7PC-19@gated-at.bofh.it> |
| In reply to | #1335125 |
[Multipart message — attachments visible in raw view] — view raw
On Tue, Feb 16, 2016 at 01:30:49PM +0530, Vignesh R wrote: > On 02/13/2016 04:07 AM, Mark Brown wrote: > > On Thu, Feb 11, 2016 at 11:03:50AM +0530, Vignesh R wrote: > >> On 02/10/2016 01:06 AM, Mark Brown wrote: > >>> Looking at this I can't help but think that spi_flash_read() ought to > >>> have the stub in rather than the caller. But given that we're pretty > >>> much only ever expecting one user I'm not 100% sure it actually matters. > >> Well, my initial patch set passed long list of arguments to > >> spi_flash_read(), but Brian suggested to use struct[1] in order to avoid > >> unnecessary churn when things need changed in the API. > > I don't see what that has to do with my point? > AFAIU, your previous comment was to move initialization of > spi_flash_read_message struct to spi_flash_read(). This would mean No, not at all. I'm talking about how we handle the case where we don't have hardware support for this and need to implement it in software - currently that's in a separate place to the place where we call the driver.
[toc] | [prev] | [next] | [standalone]
| From | "R, Vignesh" <vigneshr@ti.com> |
|---|---|
| Date | 2016-02-17 17:20 +0100 |
| Message-ID | <r3cZA-oW-7@gated-at.bofh.it> |
| In reply to | #1335330 |
On 02/16/2016 06:08 PM, Mark Brown wrote: > On Tue, Feb 16, 2016 at 01:30:49PM +0530, Vignesh R wrote: >> On 02/13/2016 04:07 AM, Mark Brown wrote: >>> On Thu, Feb 11, 2016 at 11:03:50AM +0530, Vignesh R wrote: >>>> On 02/10/2016 01:06 AM, Mark Brown wrote: > >>>>> Looking at this I can't help but think that spi_flash_read() ought to >>>>> have the stub in rather than the caller. But given that we're pretty >>>>> much only ever expecting one user I'm not 100% sure it actually matters. > >>>> Well, my initial patch set passed long list of arguments to >>>> spi_flash_read(), but Brian suggested to use struct[1] in order to avoid >>>> unnecessary churn when things need changed in the API. > >>> I don't see what that has to do with my point? > >> AFAIU, your previous comment was to move initialization of >> spi_flash_read_message struct to spi_flash_read(). This would mean > > No, not at all. I'm talking about how we handle the case where we don't > have hardware support for this and need to implement it in software - > currently that's in a separate place to the place where we call the > driver. > Yeah, but AFAIK, hardware accelerated read support is applicable for m25p80 flashes only, I doubt whether spi_flash_read() will be used by other types. I felt keeping the software implementation in m25p80_read() will be consistent with m25p80_write(). -- Regards Vignesh
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web