From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753540AbbD2GXh (ORCPT ); Wed, 29 Apr 2015 02:23:37 -0400 Received: from mailgw02.mediatek.com ([218.249.47.111]:43145 "EHLO mailgw02.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1753495AbbD2GXf (ORCPT ); Wed, 29 Apr 2015 02:23:35 -0400 X-Listener-Flag: 11101 Message-ID: <1430288607.24151.40.camel@mhfsdcap03> Subject: Re: [PATCH 2/5] iommu/mediatek: Add mt8173 IOMMU driver From: Yong Wu To: Tomasz Figa , Mark Rutland CC: Robin Murphy , Mark Rutland , , , Catalin Marinas , Joerg Roedel , Will Deacon , "linux-kernel@vger.kernel.org" , , Rob Herring , "Daniel Kurtz" , Sasha Hauer , "Matthias Brugger" , , "linux-arm-kernel@lists.infradead.org" , Lucas Stach Date: Wed, 29 Apr 2015 14:23:27 +0800 In-Reply-To: References: <1425638900-24989-1-git-send-email-yong.wu@mediatek.com> <1425638900-24989-3-git-send-email-yong.wu@mediatek.com> <1426677749.22581.38.camel@mhfsdcap03> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.2.3-0ubuntu6 Content-Transfer-Encoding: 7bit MIME-Version: 1.0 X-MTK: N Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 = ; 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