Message ID | 20230130102722.133271-2-abailon@baylibre.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Add support of unmanaged domain to mediatek IOMMU | expand |
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>
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
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
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(+)