From: "Pavel Machek" <pavel@denx.de>
To: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Cc: cip-dev@lists.cip-project.org,
Nobuhiro Iwamatsu <nobuhiro1.iwamatsu@toshiba.co.jp>,
Pavel Machek <pavel@denx.de>,
Biju Das <biju.das.jz@bp.renesas.com>
Subject: Re: [cip-dev] [PATCH v3 4.19.y-cip 13/17] spi: spi-mem: Add a new API to support direct mapping
Date: Tue, 5 Jan 2021 17:57:34 +0100 [thread overview]
Message-ID: <20210105165734.GD361@amd> (raw)
In-Reply-To: <20210105135757.11069-14-prabhakar.mahadev-lad.rj@bp.renesas.com>
[-- Attachment #1.1: Type: text/plain, Size: 1886 bytes --]
Hi!
> From: Boris Brezillon <boris.brezillon@bootlin.com>
>
> commit aa167f3fed0c37e0e4c707d4331d827661f46644 upstream.
>
> Most modern SPI controllers can directly map a SPI memory (or a portion
> of the SPI memory) in the CPU address space. Most of the time this
> brings significant performance improvements as it automates the whole
> process of sending SPI memory operations every time a new region is
> accessed.
>
> This new API allows SPI memory drivers to create direct mappings and
> then use them to access the memory instead of using spi_mem_exec_op().
This can be refactored to remove if/else nesting.
> +ssize_t spi_mem_dirmap_read(struct spi_mem_dirmap_desc *desc,
> + u64 offs, size_t len, void *buf)
> +{
> + struct spi_controller *ctlr = desc->mem->spi->controller;
> + ssize_t ret;
> +
> + if (desc->info.op_tmpl.data.dir != SPI_MEM_DATA_IN)
> + return -EINVAL;
> +
> + if (!len)
> + return 0;
> +
> + if (desc->nodirmap) {
> + ret = spi_mem_no_dirmap_read(desc, offs, len, buf);
> + } else if (ctlr->mem_ops && ctlr->mem_ops->dirmap_read) {
> + ret = spi_mem_access_start(desc->mem);
> + if (ret)
> + return ret;
> +
> + ret = ctlr->mem_ops->dirmap_read(desc, offs, len, buf);
> +
> + spi_mem_access_end(desc->mem);
> + } else {
> + ret = -ENOTSUPP;
> + }
> +
> + return ret;
> +}
This can be
if (desc->nodirmap)
return spi_mem_no_dirmap_read(desc, offs, len, buf);
if (!(ctlr->mem_ops && ctlr->mem_ops->dirmap_read))
return -ENOTSUPP;
... normal case goes here...
Same refactoring can be done for dirmap_write.
Code works either way and is not too bad, so... up to you :-).
Best regards,
Pavel
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
[-- Attachment #1.2: Digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]
[-- Attachment #2: Type: text/plain, Size: 420 bytes --]
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#6034): https://lists.cip-project.org/g/cip-dev/message/6034
Mute This Topic: https://lists.cip-project.org/mt/79450077/4520388
Group Owner: cip-dev+owner@lists.cip-project.org
Unsubscribe: https://lists.cip-project.org/g/cip-dev/leave/8129055/727948398/xyzzy [cip-dev@archiver.kernel.org]
-=-=-=-=-=-=-=-=-=-=-=-
next prev parent reply other threads:[~2021-01-05 16:57 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-01-05 13:57 [cip-dev] [PATCH v3 4.19.y-cip 00/17] Add Renesas RPC-IF driver Lad Prabhakar
2021-01-05 13:57 ` [cip-dev] [PATCH v3 4.19.y-cip 01/17] dt-bindings: memory: document Renesas RPC-IF bindings Lad Prabhakar
2021-01-05 13:57 ` [cip-dev] [PATCH v3 4.19.y-cip 02/17] memory: add Renesas RPC-IF driver Lad Prabhakar
2021-01-05 13:57 ` [cip-dev] [PATCH v3 4.19.y-cip 03/17] memory: renesas-rpc-if: Return correct value to the caller of rpcif_manual_xfer() Lad Prabhakar
2021-01-05 13:57 ` [cip-dev] [PATCH v3 4.19.y-cip 04/17] memory: renesas-rpc-if: Fix unbalanced pm_runtime_enable in rpcif_{enable,disable}_rpm Lad Prabhakar
2021-01-05 13:57 ` [cip-dev] [PATCH v3 4.19.y-cip 05/17] memory: renesas-rpc-if: Fix a node reference leak in rpcif_probe() Lad Prabhakar
2021-01-05 13:57 ` [cip-dev] [PATCH v3 4.19.y-cip 06/17] memory: renesas-rpc-if: Make rpcif_enable/disable_rpm() as static inline Lad Prabhakar
2021-01-05 13:57 ` [cip-dev] [PATCH v3 4.19.y-cip 07/17] spi: spi-mem: Add SPI_MEM_NO_DATA to the spi_mem_data_dir enum Lad Prabhakar
2021-01-05 13:57 ` [cip-dev] [PATCH v3 4.19.y-cip 08/17] spi: spi-mem: export spi_mem_default_supports_op() Lad Prabhakar
2021-01-05 16:51 ` Pavel Machek
2021-01-05 17:07 ` Lad Prabhakar
2021-01-05 17:47 ` Sudip Mukherjee
2021-01-06 13:19 ` Pavel Machek
2021-01-05 13:57 ` [cip-dev] [PATCH v3 4.19.y-cip 09/17] spi: spi-mem: Split spi_mem_exec_op() code Lad Prabhakar
2021-01-05 13:57 ` [cip-dev] [PATCH v3 4.19.y-cip 10/17] spi: spi-mem: fix reference leak in spi_mem_access_start Lad Prabhakar
2021-01-05 13:57 ` [cip-dev] [PATCH v3 4.19.y-cip 11/17] spi: spi-mem: Fix passing zero to 'PTR_ERR' warning Lad Prabhakar
2021-01-05 13:57 ` [cip-dev] [PATCH v3 4.19.y-cip 12/17] spi: spi-mem: Compute length only when needed Lad Prabhakar
2021-01-05 16:53 ` Pavel Machek
2021-01-05 17:10 ` Lad Prabhakar
2021-01-05 17:29 ` Pavel Machek
2021-01-05 13:57 ` [cip-dev] [PATCH v3 4.19.y-cip 13/17] spi: spi-mem: Add a new API to support direct mapping Lad Prabhakar
2021-01-05 16:57 ` Pavel Machek [this message]
2021-01-05 17:12 ` Lad Prabhakar
2021-01-05 13:57 ` [cip-dev] [PATCH v3 4.19.y-cip 14/17] spi: spi-mem: Fix spi_mem_dirmap_destroy() kerneldoc Lad Prabhakar
2021-01-05 13:57 ` [cip-dev] [PATCH v3 4.19.y-cip 15/17] spi: spi-mem: Fix a memory leak in spi_mem_dirmap_destroy() Lad Prabhakar
2021-01-05 13:57 ` [cip-dev] [PATCH v3 4.19.y-cip 16/17] spi: add Renesas RPC-IF driver Lad Prabhakar
2021-01-05 16:58 ` Pavel Machek
2021-01-05 17:14 ` Lad Prabhakar
2021-01-05 13:57 ` [cip-dev] [PATCH v3 4.19.y-cip 17/17] spi: rpc-if: Fix use-after-free on unbind Lad Prabhakar
2021-01-05 17:04 ` [cip-dev] [PATCH v3 4.19.y-cip 00/17] Add Renesas RPC-IF driver Pavel Machek
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=20210105165734.GD361@amd \
--to=pavel@denx.de \
--cc=biju.das.jz@bp.renesas.com \
--cc=cip-dev@lists.cip-project.org \
--cc=nobuhiro1.iwamatsu@toshiba.co.jp \
--cc=prabhakar.mahadev-lad.rj@bp.renesas.com \
/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.