Currently, the only way to have an unmanaged domain for a device
is having a dedicated iova region or bank.
This adds a new bit to MTK_M4U_ID that allows defining devices
that needs unmanaged iommu domain.
Signed-off-by: Alexandre Bailon <abailon@baylibre.com>
---
include/dt-bindings/memory/mtk-memory-port.h | 3 +++
1 file changed, 3 insertions(+)
diff --git a/include/dt-bindings/memory/mtk-memory-port.h b/include/dt-bindings/memory/mtk-memory-port.h
index 2f68a0511a257..86896c776691a 100644
--- a/include/dt-bindings/memory/mtk-memory-port.h
+++ b/include/dt-bindings/memory/mtk-memory-port.h
@@ -7,11 +7,14 @@
#define __DT_BINDINGS_MEMORY_MTK_MEMORY_PORT_H_
#define MTK_LARB_NR_MAX 32
+#define MTK_UNMANAGED_DEVICE (1 << 31)
#define MTK_M4U_ID(larb, port) (((larb) << 5) | (port))
#define MTK_M4U_TO_LARB(id) (((id) >> 5) & 0x1f)
#define MTK_M4U_TO_PORT(id) ((id) & 0x1f)
+#define MTK_M4U_UNMANAGED(id) ((id) & MTK_UNMANAGED_DEVICE)
#define MTK_IFAIOMMU_PERI_ID(port) MTK_M4U_ID(0, port)
+#define MTK_M4U_UNMANAGED_ID(larb, port) (MTK_M4U_ID(larb, port) | MTK_UNMANAGED_DEVICE)
#endif
--
2.38.2
On 2023-01-30 10:27, Alexandre Bailon wrote: > Currently, the only way to have an unmanaged domain for a device > is having a dedicated iova region or bank. > This adds a new bit to MTK_M4U_ID that allows defining devices > that needs unmanaged iommu domain. These are details of Linux-specific usage policy, so don't belong in DT bindings. I believe the driver already has some internal data to make its own assignment of particular devices into particular groups, so please just add to that. Thanks, Robin. > Signed-off-by: Alexandre Bailon <abailon@baylibre.com> > --- > include/dt-bindings/memory/mtk-memory-port.h | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/include/dt-bindings/memory/mtk-memory-port.h b/include/dt-bindings/memory/mtk-memory-port.h > index 2f68a0511a257..86896c776691a 100644 > --- a/include/dt-bindings/memory/mtk-memory-port.h > +++ b/include/dt-bindings/memory/mtk-memory-port.h > @@ -7,11 +7,14 @@ > #define __DT_BINDINGS_MEMORY_MTK_MEMORY_PORT_H_ > > #define MTK_LARB_NR_MAX 32 > +#define MTK_UNMANAGED_DEVICE (1 << 31) > > #define MTK_M4U_ID(larb, port) (((larb) << 5) | (port)) > #define MTK_M4U_TO_LARB(id) (((id) >> 5) & 0x1f) > #define MTK_M4U_TO_PORT(id) ((id) & 0x1f) > +#define MTK_M4U_UNMANAGED(id) ((id) & MTK_UNMANAGED_DEVICE) > > #define MTK_IFAIOMMU_PERI_ID(port) MTK_M4U_ID(0, port) > +#define MTK_M4U_UNMANAGED_ID(larb, port) (MTK_M4U_ID(larb, port) | MTK_UNMANAGED_DEVICE) > > #endif
On 30/01/2023 11:27, Alexandre Bailon wrote: > Currently, the only way to have an unmanaged domain for a device > is having a dedicated iova region or bank. > This adds a new bit to MTK_M4U_ID that allows defining devices > that needs unmanaged iommu domain. > > Signed-off-by: Alexandre Bailon <abailon@baylibre.com> > --- > include/dt-bindings/memory/mtk-memory-port.h | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/include/dt-bindings/memory/mtk-memory-port.h b/include/dt-bindings/memory/mtk-memory-port.h > index 2f68a0511a257..86896c776691a 100644 > --- a/include/dt-bindings/memory/mtk-memory-port.h > +++ b/include/dt-bindings/memory/mtk-memory-port.h > @@ -7,11 +7,14 @@ > #define __DT_BINDINGS_MEMORY_MTK_MEMORY_PORT_H_ > > #define MTK_LARB_NR_MAX 32 > +#define MTK_UNMANAGED_DEVICE (1 << 31) > > #define MTK_M4U_ID(larb, port) (((larb) << 5) | (port)) > #define MTK_M4U_TO_LARB(id) (((id) >> 5) & 0x1f) > #define MTK_M4U_TO_PORT(id) ((id) & 0x1f) > +#define MTK_M4U_UNMANAGED(id) ((id) & MTK_UNMANAGED_DEVICE) > > #define MTK_IFAIOMMU_PERI_ID(port) MTK_M4U_ID(0, port) > +#define MTK_M4U_UNMANAGED_ID(larb, port) (MTK_M4U_ID(larb, port) | MTK_UNMANAGED_DEVICE) > > #endif Reviewed-by: Alexandre Mergnat <amergnat@baylibre.com>
© 2016 - 2024 Red Hat, Inc.