Dear Tomasz, About a hardcode your comment, please help check below. Dear Mark, I would like to add a item in the dtsi of mtk-iommu. Please also help have a look. > > > +static const struct mtk_iommu_port mtk_iommu_mt8173_port[] = { > > > + /* port name m4uid slaveid larbid portid tfid */ > > > + /* larb0 */ > > > + {"M4U_PORT_DISP_OVL0", 0, 0, 0, 0, MTK_TFID(0, 0)}, > > > + {"M4U_PORT_DISP_RDMA0", 0, 0, 0, 1, MTK_TFID(0, 1)}, > > > + {"M4U_PORT_DISP_WDMA0", 0, 0, 0, 2, MTK_TFID(0, 2)}, > > > + {"M4U_PORT_DISP_OD_R", 0, 0, 0, 3, MTK_TFID(0, 3)}, > > > + {"M4U_PORT_DISP_OD_W", 0, 0, 0, 4, MTK_TFID(0, 4)}, > > > + {"M4U_PORT_MDP_RDMA0", 0, 0, 0, 5, MTK_TFID(0, 5)}, > > > + {"M4U_PORT_MDP_WDMA", 0, 0, 0, 6, MTK_TFID(0, 6)}, > > > + {"M4U_PORT_MDP_WROT0", 0, 0, 0, 7, MTK_TFID(0, 7)}, [...] > > > > +}; > > > + > > > > Anyway, is it really necessary to hardcode the SoC specific topology > > data in this driver? Is there really any use besides of printing port > > name? If not, you could just print the values in a way letting you > > quickly look up in the datasheet, without hardcoding this. Or even > > better, you could print which devices are attached to the port. > > > a) Printing the port name is for debug. We could not request every iommu > user to understand smi&local arbiter. When there is irq, they have to > look up the iommu's datasheet to find out which port error. if we print > it directly, It may be more easily to debug. > > b) In mtk_iommu_config_port, according to this hardcode we can be easily > to get out which local arbiter and which port we prepare to config. > > c) If we support different SOCs, we could change this arrays easily. > > > There is no similar code in the others iommu, so I prepare to delete it, But we really need know which local arbiter and which port we are going to config(which port will enable iommu) so we prepare add a item in the dtsi like this: iommu: mmsys_iommu@10205000 { compatible = "mediatek,mt8173-iommu"; <...> + larb-portes-nr = <M4U_LARB0_PORT_NR + M4U_LARB1_PORT_NR + M4U_LARB2_PORT_NR + M4U_LARB3_PORT_NR + M4U_LARB4_PORT_NR + M4U_LARB5_PORT_NR>; larb = <&larb0 &larb1 &larb2 &larb3 &larb4 &larb5>; #iommu-cells = <1>; }; larb-portes-nr : the number of the portes in each local arbiter. If we have this item, we can get which larb and which port from the portid in the dtsi of the iommu user. And while there is isr, I will print the larb-id and the port-id instead of the string of the port name. The M4U_LARB0_PORT_NR/... will be added in dt-bindings/iommu/mt8173-iommu-port.h[0] Dear Mark, As above, if I add this item in the dtsi of iommu, is it ok? [0]:http://lists.linuxfoundation.org/pipermail/iommu/2015-March/012450.html -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html