Thread (34 messages) 34 messages, 8 authors, 2020-09-19

RE: [PATCH 2/9] iommu/ipmmu-vmsa: Hook up R8A774E1 DT matching code

From: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Date: 2020-07-14 11:42:21
Also in: dmaengine, linux-gpio, linux-iommu, linux-renesas-soc, lkml, netdev

Hi Geert-san,
From: Geert Uytterhoeven, Sent: Tuesday, July 14, 2020 5:42 PM

Hi Prabhakar,

On Tue, Jul 14, 2020 at 10:30 AM Lad, Prabhakar
[off-list ref] wrote:
quoted
On Tue, Jul 14, 2020 at 9:09 AM Geert Uytterhoeven [off-list ref] wrote:
quoted
On Mon, Jul 13, 2020 at 11:35 PM Lad Prabhakar
[off-list ref] wrote:
quoted
From: Marian-Cristian Rotariu <redacted>

Add support for RZ/G2H (R8A774E1) SoC IPMMUs.

Signed-off-by: Marian-Cristian Rotariu <redacted>
Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Thanks for your patch!
quoted
--- a/drivers/iommu/ipmmu-vmsa.c
+++ b/drivers/iommu/ipmmu-vmsa.c
@@ -751,6 +751,7 @@ static const struct soc_device_attribute soc_rcar_gen3[] = {
 static const struct soc_device_attribute soc_rcar_gen3_whitelist[] = {
        { .soc_id = "r8a774b1", },
        { .soc_id = "r8a774c0", },
+       { .soc_id = "r8a774e1", },
Adding an entry to soc_rcar_gen3_whitelist[] doesn't do anything, unless
you also add the same entry to soc_rcar_gen3[].
I think the comment "For R-Car Gen3 use a white list to opt-in slave
devices." is misleading.  Booting through the kernel I do see iommu
groups (attached is the logs).
Indeed. Without an entry in soc_rcar_gen3[], the IPMMU is enabled
unconditionally, and soc_rcar_gen3_whitelist[] is ignored.
That's why you want an entry in both, unless you have an R-Car Gen3
SoC where the IPMMU works correctly with all slave devices present.
Perhaps soc_rcar_gen3[] should be renamed to soc_rcar_gen3_greylist[]
(or soc_rcar_gen3_maybelist[]) to make this clear?
I think so (we should rename it).
quoted
Also the recent patch to add
"r8a77961" just adds to soc_rcar_gen3_whitelist.
Oops, commit 17fe16181639801b ("iommu/renesas: Add support for r8a77961")
did it wrong, too.
Thank you for the point it out. We should add r8a77961 to the soc_rcar_gen3[].
However, I don't know why I could not realize this issue...
So, I investigated this a little and then, IIUC, glob_match() which
soc_device_match() uses seems to return true, if *pat = "r8a7796" and *str = "r8a77961".

Best regards,
Yoshihiro Shimoda
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help