From: Simon Horman <horms@kernel.org>
To: "Théo Lebrun" <theo.lebrun@bootlin.com>
Cc: Andrew Lunn <andrew+netdev@lunn.ch>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Nicolas Ferre <nicolas.ferre@microchip.com>,
Claudiu Beznea <claudiu.beznea@tuxon.dev>,
Paul Walmsley <paul.walmsley@sifive.com>,
Palmer Dabbelt <palmer@dabbelt.com>,
Albert Ou <aou@eecs.berkeley.edu>,
Alexandre Ghiti <alex@ghiti.fr>,
Samuel Holland <samuel.holland@sifive.com>,
Richard Cochran <richardcochran@gmail.com>,
Russell King <linux@armlinux.org.uk>,
Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
Vladimir Kondratiev <vladimir.kondratiev@mobileye.com>,
Gregory CLEMENT <gregory.clement@bootlin.com>,
Cyrille Pitchen <cyrille.pitchen@atmel.com>,
Harini Katakam <harini.katakam@xilinx.com>,
Rafal Ozieblo <rafalo@cadence.com>,
Haavard Skinnemoen <hskinnemoen@atmel.com>,
Jeff Garzik <jeff@garzik.org>,
netdev@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org,
linux-mips@vger.kernel.org,
Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
Tawfik Bayouk <tawfik.bayouk@mobileye.com>
Subject: Re: [PATCH net-next v2 16/18] MIPS: mobileye: add EyeQ5 DMA IOCU support
Date: Fri, 27 Jun 2025 20:15:55 +0100 [thread overview]
Message-ID: <20250627191555.GD1776@horms.kernel.org> (raw)
In-Reply-To: <20250627-macb-v2-16-ff8207d0bb77@bootlin.com>
On Fri, Jun 27, 2025 at 11:09:02AM +0200, Théo Lebrun wrote:
> Both Cadence GEM Ethernet controllers on EyeQ5 are hardwired through CM3
> IO Coherency Units (IOCU). For DMA coherent accesses, BIT(36) must be
> set in DMA addresses.
>
> Implement that in platform-specific dma_map_ops which get attached to
> both instances of `cdns,eyeq5-gem` through a notifier block.
>
> Signed-off-by: Théo Lebrun <theo.lebrun@bootlin.com>
...
> diff --git a/arch/mips/mobileye/eyeq5-iocu-dma.c b/arch/mips/mobileye/eyeq5-iocu-dma.c
...
> +const struct dma_map_ops eyeq5_iocu_ops = {
> + .alloc = eyeq5_iocu_alloc,
> + .free = eyeq5_iocu_free,
> + .alloc_pages_op = dma_direct_alloc_pages,
> + .free_pages = dma_direct_free_pages,
> + .mmap = eyeq5_iocu_mmap,
> + .get_sgtable = eyeq5_iocu_get_sgtable,
> + .map_page = eyeq5_iocu_map_page,
> + .unmap_page = eyeq5_iocu_unmap_page,
> + .map_sg = eyeq5_iocu_map_sg,
> + .unmap_sg = eyeq5_iocu_unmap_sg,
> + .get_required_mask = dma_direct_get_required_mask,
> +};
> +EXPORT_SYMBOL(eyeq5_iocu_ops);
Hi Théo,
Does eyeq5_iocu_ops need to be exported?
If so it should probably be declared in a header file somewhere.
But I if not probably the EXPORT_SYMBOL line should be
dropped, and the structure made static.
Flagged by Sparse.
> +
> +static int eyeq5_iocu_notifier(struct notifier_block *nb,
> + unsigned long event,
> + void *data)
> +{
> + struct device *dev = data;
> +
> + /*
> + * IOCU routing is hardwired; we must use our above custom
> + * routines for cache-coherent DMA on ethernet interfaces.
> + */
> + if (event == BUS_NOTIFY_ADD_DEVICE &&
> + device_is_compatible(dev, "mobileye,eyeq5-gem")) {
> + set_dma_ops(dev, &eyeq5_iocu_ops);
> + return NOTIFY_OK;
> + }
> +
> + return NOTIFY_DONE;
> +}
...
WARNING: multiple messages have this Message-ID (diff)
From: Simon Horman <horms@kernel.org>
To: "Théo Lebrun" <theo.lebrun@bootlin.com>
Cc: Andrew Lunn <andrew+netdev@lunn.ch>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Nicolas Ferre <nicolas.ferre@microchip.com>,
Claudiu Beznea <claudiu.beznea@tuxon.dev>,
Paul Walmsley <paul.walmsley@sifive.com>,
Palmer Dabbelt <palmer@dabbelt.com>,
Albert Ou <aou@eecs.berkeley.edu>,
Alexandre Ghiti <alex@ghiti.fr>,
Samuel Holland <samuel.holland@sifive.com>,
Richard Cochran <richardcochran@gmail.com>,
Russell King <linux@armlinux.org.uk>,
Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
Vladimir Kondratiev <vladimir.kondratiev@mobileye.com>,
Gregory CLEMENT <gregory.clement@bootlin.com>,
Cyrille Pitchen <cyrille.pitchen@atmel.com>,
Harini Katakam <harini.katakam@xilinx.com>,
Rafal Ozieblo <rafalo@cadence.com>,
Haavard Skinnemoen <hskinnemoen@atmel.com>,
Jeff Garzik <jeff@garzik.org>,
netdev@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org,
linux-mips@vger.kernel.org,
Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
Tawfik Bayouk <tawfik.bayouk@mobileye.com>
Subject: Re: [PATCH net-next v2 16/18] MIPS: mobileye: add EyeQ5 DMA IOCU support
Date: Fri, 27 Jun 2025 20:15:55 +0100 [thread overview]
Message-ID: <20250627191555.GD1776@horms.kernel.org> (raw)
In-Reply-To: <20250627-macb-v2-16-ff8207d0bb77@bootlin.com>
On Fri, Jun 27, 2025 at 11:09:02AM +0200, Théo Lebrun wrote:
> Both Cadence GEM Ethernet controllers on EyeQ5 are hardwired through CM3
> IO Coherency Units (IOCU). For DMA coherent accesses, BIT(36) must be
> set in DMA addresses.
>
> Implement that in platform-specific dma_map_ops which get attached to
> both instances of `cdns,eyeq5-gem` through a notifier block.
>
> Signed-off-by: Théo Lebrun <theo.lebrun@bootlin.com>
...
> diff --git a/arch/mips/mobileye/eyeq5-iocu-dma.c b/arch/mips/mobileye/eyeq5-iocu-dma.c
...
> +const struct dma_map_ops eyeq5_iocu_ops = {
> + .alloc = eyeq5_iocu_alloc,
> + .free = eyeq5_iocu_free,
> + .alloc_pages_op = dma_direct_alloc_pages,
> + .free_pages = dma_direct_free_pages,
> + .mmap = eyeq5_iocu_mmap,
> + .get_sgtable = eyeq5_iocu_get_sgtable,
> + .map_page = eyeq5_iocu_map_page,
> + .unmap_page = eyeq5_iocu_unmap_page,
> + .map_sg = eyeq5_iocu_map_sg,
> + .unmap_sg = eyeq5_iocu_unmap_sg,
> + .get_required_mask = dma_direct_get_required_mask,
> +};
> +EXPORT_SYMBOL(eyeq5_iocu_ops);
Hi Théo,
Does eyeq5_iocu_ops need to be exported?
If so it should probably be declared in a header file somewhere.
But I if not probably the EXPORT_SYMBOL line should be
dropped, and the structure made static.
Flagged by Sparse.
> +
> +static int eyeq5_iocu_notifier(struct notifier_block *nb,
> + unsigned long event,
> + void *data)
> +{
> + struct device *dev = data;
> +
> + /*
> + * IOCU routing is hardwired; we must use our above custom
> + * routines for cache-coherent DMA on ethernet interfaces.
> + */
> + if (event == BUS_NOTIFY_ADD_DEVICE &&
> + device_is_compatible(dev, "mobileye,eyeq5-gem")) {
> + set_dma_ops(dev, &eyeq5_iocu_ops);
> + return NOTIFY_OK;
> + }
> +
> + return NOTIFY_DONE;
> +}
...
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
next prev parent reply other threads:[~2025-06-27 19:16 UTC|newest]
Thread overview: 84+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-06-27 9:08 [PATCH net-next v2 00/18] Support the Cadence MACB/GEM instances on Mobileye EyeQ5 SoCs Théo Lebrun
2025-06-27 9:08 ` Théo Lebrun
2025-06-27 9:08 ` [PATCH net-next v2 01/18] dt-bindings: net: cdns,macb: sort compatibles Théo Lebrun
2025-06-27 9:08 ` Théo Lebrun
2025-07-01 8:16 ` Krzysztof Kozlowski
2025-07-01 8:16 ` Krzysztof Kozlowski
2025-06-27 9:08 ` [PATCH net-next v2 02/18] dt-bindings: net: cdns,macb: add Mobileye EyeQ5 ethernet interface Théo Lebrun
2025-06-27 9:08 ` Théo Lebrun
2025-07-01 8:18 ` Krzysztof Kozlowski
2025-07-01 8:18 ` Krzysztof Kozlowski
2025-06-27 9:08 ` [PATCH net-next v2 03/18] dt-bindings: net: cdns,macb: allow tsu_clk without tx_clk Théo Lebrun
2025-06-27 9:08 ` Théo Lebrun
2025-07-01 8:19 ` Krzysztof Kozlowski
2025-07-01 8:19 ` Krzysztof Kozlowski
2025-06-27 9:08 ` [PATCH net-next v2 04/18] dt-bindings: net: cdns,macb: allow dma-coherent Théo Lebrun
2025-06-27 9:08 ` Théo Lebrun
2025-06-27 9:08 ` [PATCH net-next v2 05/18] net: macb: use BIT() macro for capability definitions Théo Lebrun
2025-06-27 9:08 ` Théo Lebrun
2025-07-01 15:35 ` Sean Anderson
2025-07-01 15:35 ` Sean Anderson
2025-06-27 9:08 ` [PATCH net-next v2 06/18] net: macb: Remove local variables clk_init and init in macb_probe() Théo Lebrun
2025-06-27 9:08 ` Théo Lebrun
2025-07-01 15:35 ` Sean Anderson
2025-07-01 15:35 ` Sean Anderson
2025-06-27 9:08 ` [PATCH net-next v2 07/18] net: macb: drop macb_config NULL checking Théo Lebrun
2025-06-27 9:08 ` Théo Lebrun
2025-07-01 15:37 ` Sean Anderson
2025-07-01 15:37 ` Sean Anderson
2025-06-27 9:08 ` [PATCH net-next v2 08/18] net: macb: introduce DMA descriptor helpers (is 64bit? is PTP?) Théo Lebrun
2025-06-27 9:08 ` Théo Lebrun
2025-07-01 15:56 ` Sean Anderson
2025-07-01 15:56 ` Sean Anderson
2025-06-27 9:08 ` [PATCH net-next v2 09/18] net: macb: sort #includes Théo Lebrun
2025-06-27 9:08 ` Théo Lebrun
2025-07-01 15:58 ` Sean Anderson
2025-07-01 15:58 ` Sean Anderson
2025-06-27 9:08 ` [PATCH net-next v2 10/18] net: macb: remove illusion about TBQPH/RBQPH being per-queue Théo Lebrun
2025-06-27 9:08 ` Théo Lebrun
2025-07-01 16:15 ` Sean Anderson
2025-07-01 16:15 ` Sean Anderson
2025-07-01 16:20 ` Sean Anderson
2025-07-01 16:20 ` Sean Anderson
2025-06-27 9:08 ` [PATCH net-next v2 11/18] net: macb: single dma_alloc_coherent() for DMA descriptors Théo Lebrun
2025-06-27 9:08 ` Théo Lebrun
2025-07-01 16:32 ` Sean Anderson
2025-07-01 16:32 ` Sean Anderson
2025-08-07 14:48 ` Théo Lebrun
2025-08-07 14:48 ` Théo Lebrun
2025-06-27 9:08 ` [PATCH net-next v2 12/18] net: macb: match skb_reserve(skb, NET_IP_ALIGN) with HW alignment Théo Lebrun
2025-06-27 9:08 ` Théo Lebrun
2025-07-01 16:40 ` Sean Anderson
2025-07-01 16:40 ` Sean Anderson
2025-08-07 15:24 ` Théo Lebrun
2025-08-07 15:24 ` Théo Lebrun
2025-08-11 18:53 ` Sean Anderson
2025-08-11 18:53 ` Sean Anderson
2025-06-27 9:08 ` [PATCH net-next v2 13/18] net: macb: avoid double endianness swap in macb_set_hwaddr() Théo Lebrun
2025-06-27 9:08 ` Théo Lebrun
2025-07-01 16:44 ` Sean Anderson
2025-07-01 16:44 ` Sean Anderson
2025-06-27 9:09 ` [PATCH net-next v2 14/18] net: macb: add no LSO capability (MACB_CAPS_NO_LSO) Théo Lebrun
2025-06-27 9:09 ` Théo Lebrun
2025-07-01 16:51 ` Sean Anderson
2025-07-01 16:51 ` Sean Anderson
2025-06-27 9:09 ` [PATCH net-next v2 15/18] net: macb: Add "mobileye,eyeq5-gem" compatible Théo Lebrun
2025-06-27 9:09 ` Théo Lebrun
2025-07-01 16:51 ` Sean Anderson
2025-07-01 16:51 ` Sean Anderson
2025-06-27 9:09 ` [PATCH net-next v2 16/18] MIPS: mobileye: add EyeQ5 DMA IOCU support Théo Lebrun
2025-06-27 9:09 ` Théo Lebrun
2025-06-27 19:15 ` Simon Horman [this message]
2025-06-27 19:15 ` Simon Horman
2025-06-30 13:35 ` Jiaxun Yang
2025-06-30 13:35 ` Jiaxun Yang
2025-08-07 16:11 ` Théo Lebrun
2025-08-07 16:11 ` Théo Lebrun
2025-06-27 9:09 ` [PATCH net-next v2 17/18] MIPS: mobileye: eyeq5: add two Cadence GEM Ethernet controllers Théo Lebrun
2025-06-27 9:09 ` Théo Lebrun
2025-06-27 9:09 ` [PATCH net-next v2 18/18] MIPS: mobileye: eyeq5-epm: add two Cadence GEM Ethernet PHYs Théo Lebrun
2025-06-27 9:09 ` Théo Lebrun
2025-06-27 9:41 ` [PATCH net-next v2 00/18] Support the Cadence MACB/GEM instances on Mobileye EyeQ5 SoCs Maxime Chevallier
2025-06-27 9:41 ` Maxime Chevallier
2025-07-01 16:53 ` Sean Anderson
2025-07-01 16:53 ` Sean Anderson
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=20250627191555.GD1776@horms.kernel.org \
--to=horms@kernel.org \
--cc=alex@ghiti.fr \
--cc=andrew+netdev@lunn.ch \
--cc=aou@eecs.berkeley.edu \
--cc=claudiu.beznea@tuxon.dev \
--cc=conor+dt@kernel.org \
--cc=cyrille.pitchen@atmel.com \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=edumazet@google.com \
--cc=gregory.clement@bootlin.com \
--cc=harini.katakam@xilinx.com \
--cc=hskinnemoen@atmel.com \
--cc=jeff@garzik.org \
--cc=krzk+dt@kernel.org \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mips@vger.kernel.org \
--cc=linux-riscv@lists.infradead.org \
--cc=linux@armlinux.org.uk \
--cc=netdev@vger.kernel.org \
--cc=nicolas.ferre@microchip.com \
--cc=pabeni@redhat.com \
--cc=palmer@dabbelt.com \
--cc=paul.walmsley@sifive.com \
--cc=rafalo@cadence.com \
--cc=richardcochran@gmail.com \
--cc=robh@kernel.org \
--cc=samuel.holland@sifive.com \
--cc=tawfik.bayouk@mobileye.com \
--cc=theo.lebrun@bootlin.com \
--cc=thomas.petazzoni@bootlin.com \
--cc=tsbogend@alpha.franken.de \
--cc=vladimir.kondratiev@mobileye.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.