From: Mark Brown <broonie@kernel.org>
To: Marek Vasut <marex@denx.de>
Cc: Lukasz Czerwinski <l.czerwinski@samsung.com>,
linux-spi@vger.kernel.org, linaro-kernel@lists.linaro.org,
linux-samsung-soc@vger.kernel.org
Subject: Re: [PATCH] spi: Make core DMA mapping functions generate scatterlists
Date: Wed, 5 Feb 2014 12:00:02 +0000 [thread overview]
Message-ID: <20140205120002.GH22609@sirena.org.uk> (raw)
In-Reply-To: <201402050730.57398.marex@denx.de>
[-- Attachment #1: Type: text/plain, Size: 2162 bytes --]
On Wed, Feb 05, 2014 at 07:30:57AM +0100, Marek Vasut wrote:
> On Sunday, February 02, 2014 at 02:52:52 PM, Mark Brown wrote:
> > +static int spi_map_buf(struct spi_master *master, struct device *dev,
> > + struct sg_table *sgt, void *buf, size_t len,
> > + enum dma_data_direction dir)
> > +{
> > + const bool vmalloced_buf = is_vmalloc_addr(buf);
> > + const int desc_len = vmalloced_buf ? PAGE_SIZE : master->max_dma_len;
> You might want to rename this to "sg_chunk_max_size" or something, "desc_len"
> doesn't make much sense here. The variable describes the maximum size of one
> single scatterlist element.
A scatterlist entry is pretty much an abstract descriptor though. I
seem to remember looking at the name and thinking it was good that it
was something less easily applicable to the length of the table but it
doesn't make much odds.
> > + const int sgs = DIV_ROUND_UP(len, desc_len);
> Looking at this, the variables could generally use a more meaningful name. I
> think it'd be clearer to call this "num_sg_chunks" or so ?
You do know where I lifted most of these variable names from, right? :P
Looking at the code again everything seems idiomatic with the naming of
the fields inside the sg_table - I probably would apply a patch to
rename but I wouldn't write one.
> > + min = min_t(size_t, len, desc_len);
> > +
> > + if (vmalloced_buf) {
> > + vm_page = vmalloc_to_page(buf);
> Just curious, but shouldn't we check if buf != NULL right at the begining of
> this function?
No need, the check is outside the function along with the check that the
controller is OK with DMAing on this transfer and so on.
> > +static void spi_unmap_buf(struct spi_master *master, struct device *dev,
> > + struct sg_table *sgt, enum dma_data_direction dir)
> > +{
> > + if (sgt->orig_nents) {
> I don't want to nag, but why not use if (!sgt->...) return; ? This would cut
> down one level of indent.
I was looking at some stuff which might add a bit more in here if it's
not just the core doing mappings. Not sure that's sensible though so it
might never materialise.
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
next prev parent reply other threads:[~2014-02-05 12:00 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-02-02 13:52 [PATCH] spi: Make core DMA mapping functions generate scatterlists Mark Brown
[not found] ` <1391349172-27668-1-git-send-email-broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2014-02-05 6:30 ` Marek Vasut
2014-02-05 12:00 ` Mark Brown [this message]
[not found] ` <20140205120002.GH22609-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2014-02-05 18:13 ` Marek Vasut
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=20140205120002.GH22609@sirena.org.uk \
--to=broonie@kernel.org \
--cc=l.czerwinski@samsung.com \
--cc=linaro-kernel@lists.linaro.org \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=linux-spi@vger.kernel.org \
--cc=marex@denx.de \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).