From: Boris Brezillon <boris.brezillon@collabora.com>
To: masonccyang@mxic.com.tw
Cc: "Marek Vasut" <marek.vasut@gmail.com>,
bbrezillon@kernel.org, broonie@kernel.org,
devicetree@vger.kernel.org,
"Geert Uytterhoeven" <geert+renesas@glider.be>,
"Simon Horman" <horms@verge.net.au>,
juliensu@mxic.com.tw, lee.jones@linaro.org,
linux-kernel@vger.kernel.org, linux-renesas-soc@vger.kernel.org,
linux-spi@vger.kernel.org, mark.rutland@arm.com,
robh+dt@kernel.org,
"Sergei Shtylyov" <sergei.shtylyov@cogentembedded.com>,
zhengxunli@mxic.com.tw
Subject: Re: [PATCH v9 2/3] spi: Add Renesas R-Car Gen3 RPC-IF SPI controller driver
Date: Wed, 10 Apr 2019 10:11:10 +0200 [thread overview]
Message-ID: <20190410101110.2224eb91@collabora.com> (raw)
In-Reply-To: <OF75EDBF48.5C308F1B-ON482583D8.0027A537-482583D8.002C0A64@mxic.com.tw>
On Wed, 10 Apr 2019 16:01:02 +0800
masonccyang@mxic.com.tw wrote:
> Hi,
>
> > Re: [PATCH v9 2/3] spi: Add Renesas R-Car Gen3 RPC-IF SPI controller
> driver
> >
> > On 4/10/19 3:33 AM, masonccyang@mxic.com.tw wrote:
> > > Hi Sergei,
> > >
> > >> > +static ssize_t rpc_spi_mem_dirmap_write(struct spi_mem_dirmap_desc
> > > *desc,
> > >> > + u64 offs, size_t len, const void *buf)
> > >> > +{
> > >> > + struct rpc_spi *rpc =
> > >> > + spi_controller_get_devdata(desc->mem->spi->controller);
> > >> > + int ret;
> > >> > +
> > >> > + if (offs + desc->info.offset + len > U32_MAX)
> > >> > + return -EINVAL;
> > >> > +
> > >> > + if (len > RPC_WBUF_SIZE)
> > >> > + len = RPC_WBUF_SIZE;
> > >> > +
> > >> > + ret = rpc_spi_set_freq(rpc, desc->mem->spi->max_speed_hz);
> > >> > + if (ret)
> > >> > + return ret;
> > >> > +
> > >> > + rpc_spi_mem_set_prep_op_cfg(desc->mem->spi,
> > >> > + &desc->info.op_tmpl, &offs, &len);
> > >> > +
> > >> > + regmap_update_bits(rpc->regmap, RPC_CMNCR, RPC_CMNCR_MD,
> > > RPC_CMNCR_MD);
> > >> > +
> > >> > + regmap_write(rpc->regmap, RPC_SMDRENR, 0);
> > >> > +
> > >> > + regmap_update_bits(rpc->regmap, RPC_PHYCNT,
> RPC_PHYCNT_STRTIM(7) |
> > >> > + RPC_PHYCNT_WBUF2 | RPC_PHYCNT_WBUF,
> > >> > + RPC_PHYCNT_WBUF2 | RPC_PHYCNT_WBUF);
> > >> > +
> > >> > + memcpy_toio(rpc->wbuf, buf, len);
> > >>
> > >> Wait, doesn't the manual say that the whole 256-byte buffer should
> be
> > >> filled?
>
> it could be less than 256 bytes, i.e., 128 bytes to rpc->wbuf !
>
> I think that short chunks have to be written w/o WBUF (done,
> > > in fact,
> > >> by the HF driver).
> > >>
> > >
> > > From spi-nor.c layer always transfer 256 bytes data with page program
> > > command.
> >
> > Does that apply even for flashes with not-256-byte pages ?
> >
>
> I think it needs to patch in case of nor->page_size = 512 bytes.
I think the main problem here is that you assume the memory is a
NOR :-). Just do what the spi-mem user asks: if he asks you to write
X bytes, then write no more than X bytes. Use whatever trick you have
to make sure this is always true, and if this requires using a slow
path for non-aligned accesses, then do it, because it's better to have
a slow+working memory than a fast+non-working one :P.
next prev parent reply other threads:[~2019-04-10 8:11 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-03-29 8:20 [PATCH v9 0/3] mfd: Add Renesas R-Car Gen3 RPC-IF MFD driver Mason Yang
2019-03-29 8:20 ` [PATCH v9 1/3] mfd: Add Renesas R-Car Gen3 RPC-IF MFD controller driver Mason Yang
2019-03-29 10:43 ` Marek Vasut
2019-03-29 15:12 ` Sergei Shtylyov
2019-03-29 8:20 ` [PATCH v9 2/3] spi: Add Renesas R-Car Gen3 RPC-IF SPI " Mason Yang
2019-03-29 10:44 ` Marek Vasut
2019-03-29 15:52 ` Sergei Shtylyov
2019-04-02 5:48 ` masonccyang
2019-04-02 20:10 ` Sergei Shtylyov
2019-04-03 9:20 ` masonccyang
2019-04-04 18:56 ` Sergei Shtylyov
2019-04-04 19:12 ` Boris Brezillon
2019-04-06 19:59 ` Sergei Shtylyov
2019-04-08 2:19 ` masonccyang
[not found] ` <OF2404F267.07FEB6C8-ON482583D6.000A8180-482583D6.000CC92F@LocalDomain>
2019-04-09 5:49 ` masonccyang
2019-04-09 11:20 ` Sergei Shtylyov
2019-04-10 19:47 ` Sergei Shtylyov
2019-04-09 20:07 ` Sergei Shtylyov
2019-04-10 1:33 ` masonccyang
2019-04-10 6:27 ` Marek Vasut
2019-04-10 8:01 ` masonccyang
2019-04-10 8:03 ` Marek Vasut
2019-04-10 8:11 ` Boris Brezillon [this message]
2019-04-10 17:53 ` Sergei Shtylyov
2019-04-12 6:34 ` masonccyang
2019-04-13 16:38 ` Sergei Shtylyov
2019-04-13 16:39 ` Sergei Shtylyov
2019-04-15 2:36 ` masonccyang
2019-04-17 18:44 ` Sergei Shtylyov
2019-04-18 2:51 ` masonccyang
2019-04-18 19:43 ` Sergei Shtylyov
2019-04-19 5:38 ` masonccyang
2019-04-23 7:29 ` Geert Uytterhoeven
2019-04-23 9:33 ` masonccyang
2019-05-14 19:06 ` Sergei Shtylyov
2019-05-14 19:13 ` Sergei Shtylyov
[not found] ` <OF58AAFF49.C4593DEB-ON482583E1.001D551E-482583E1.001F089D@LocalDomain>
2019-04-19 9:31 ` masonccyang
2019-04-22 16:44 ` Sergei Shtylyov
2019-03-29 8:20 ` [PATCH v9 3/3] dt-bindings: mfd: Document Renesas R-Car Gen3 RPC-IF controller bindings Mason Yang
2019-03-29 10:45 ` Marek Vasut
2019-04-02 5:23 ` masonccyang
2019-03-29 10:49 ` Sergei Shtylyov
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=20190410101110.2224eb91@collabora.com \
--to=boris.brezillon@collabora.com \
--cc=bbrezillon@kernel.org \
--cc=broonie@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=geert+renesas@glider.be \
--cc=horms@verge.net.au \
--cc=juliensu@mxic.com.tw \
--cc=lee.jones@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-renesas-soc@vger.kernel.org \
--cc=linux-spi@vger.kernel.org \
--cc=marek.vasut@gmail.com \
--cc=mark.rutland@arm.com \
--cc=masonccyang@mxic.com.tw \
--cc=robh+dt@kernel.org \
--cc=sergei.shtylyov@cogentembedded.com \
--cc=zhengxunli@mxic.com.tw \
/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.