From patchwork Mon Apr 30 06:27:18 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nipun Gupta X-Patchwork-Id: 906473 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-pci-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.b="NwVeAB5T"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 40ZF5858wtz9rvt for ; Mon, 30 Apr 2018 16:29:48 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752269AbeD3G3i (ORCPT ); Mon, 30 Apr 2018 02:29:38 -0400 Received: from mail-he1eur01on0062.outbound.protection.outlook.com ([104.47.0.62]:46976 "EHLO EUR01-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751841AbeD3G2h (ORCPT ); Mon, 30 Apr 2018 02:28:37 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=GT71q3ErxsD1K0lUb/wZp5bm9eIFTYzYsNSawVBmaME=; b=NwVeAB5TLw7ieN0U7YGFTd6yBmejrx0NB/wFvDaj7XQKtMKiAlybTXVXEC9AVcM6UajZNn7Qtb9qKdVUY/gmNV/8oX8MU/8sdsWKqdu4ywDNtJrz16jDVZfntUkQzlJU9DXF1KJPwrjn/yCGYNlQ8GrYyf1mumucSXN9iMHxGf0= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=nipun.gupta@nxp.com; Received: from b27504-OptiPlex-790.ap.freescale.net (14.142.187.166) by AM4PR0401MB2418.eurprd04.prod.outlook.com (2603:10a6:200:51::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.715.18; Mon, 30 Apr 2018 06:28:29 +0000 From: Nipun Gupta To: robin.murphy@arm.com, will.deacon@arm.com, robh+dt@kernel.org, robh@kernel.org, mark.rutland@arm.com, catalin.marinas@arm.com, gregkh@linuxfoundation.org Cc: hch@lst.de, joro@8bytes.org, m.szyprowski@samsung.com, shawnguo@kernel.org, frowand.list@gmail.com, bhelgaas@google.com, iommu@lists.linux-foundation.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org, linux-pci@vger.kernel.org, bharat.bhushan@nxp.com, stuyoder@gmail.com, laurentiu.tudor@nxp.com, leoyang.li@nxp.com, Nipun Gupta Subject: [PATCH v4 3/6] iommu: support iommu configuration for fsl-mc devices Date: Mon, 30 Apr 2018 11:57:18 +0530 Message-Id: <1525069641-8523-4-git-send-email-nipun.gupta@nxp.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1525069641-8523-1-git-send-email-nipun.gupta@nxp.com> References: <1524824826-29473-1-git-send-email-nipun.gupta@nxp.com> <1525069641-8523-1-git-send-email-nipun.gupta@nxp.com> MIME-Version: 1.0 X-Originating-IP: [14.142.187.166] X-ClientProxiedBy: PN1PR0101CA0006.INDPRD01.PROD.OUTLOOK.COM (2603:1096:c00:e::16) To AM4PR0401MB2418.eurprd04.prod.outlook.com (2603:10a6:200:51::23) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(4534165)(7168020)(4627221)(201703031133081)(201702281549075)(5600026)(2017052603328)(7153060)(7193020); SRVR:AM4PR0401MB2418; X-Microsoft-Exchange-Diagnostics: 1; AM4PR0401MB2418; 3:16XVRAHihTRqTWNBTUwP/v9SgIRjA7EghAoNbAsBEznFJxiR9DQgkfjME5dSTVWLyTUS+2DZD3DPVGe+KpkYrqpQ7W0boEMyXctXvpacu3AkmL+hYEQNWeG8rkS6pAYUI64d9/RxU+Kouf1qVuQGzFu67i0nAbbMmcY7AmcAnKKGrteL+iBj+6eK3Ak9L8qatw2vMIYTsmjWoGcmpACHLcrSb5SvU+ApdawFwDsystA7nIUBNz/bP+8WKJhF119k; 25:cHRd/kVgG6fipriTxr31dOYKCWz4BF9YGSChpKR+0NVgCnPeHJlucvWxkNPakJZqqmyGj3EqsB2wPyzFVijGIr/aTaoXUEv44CRNNtl0o/u0OWeP4ibUiewhrGXm9XOv2NFkQ1HDZxxGJTpjMABGTLDsoTZlTnvYcMz2N1J2DW3C83Lx5cRpbO9mdoAUpnTxWB5IevB4FQwn3xuV2h3NNt+6uItxCkKLfWT1FdZDl3cv16u7Uk5JPOIj79e6ShcFA6/DJcM4tNVaHON5JnBW5Z+f28u/yRdV/DKk8W0bPu4Fs9FWPZ/2wcjUFpdayjUr3lgSMCIkGwOS42L3aEYDQA==; 31:N2OMhjAconfgoZ1Q//25zzxIcX+Y/VNwa8l/Da6h6YPL+ZrrsmBz02v/3RtdR5v/eE2GaPJnuVS3wbMHvOCT2amm0n7RZwSo3rqQ7jybkBbFTEL4iP6HQE/AhpddM8qbHEhqXk59u4013XV5GgpFefWaFkj779xi6Vc3QfBE5lqc5l9JnoHM4ulPGxptLR4vnmka76rxzgYQIRafr69aim1I2Fmm/A57/R66ul99BWE= X-MS-TrafficTypeDiagnostic: AM4PR0401MB2418: X-Microsoft-Exchange-Diagnostics: 1; AM4PR0401MB2418; 20:i/A4r5le380KkvLpncF9q+rsjDHk226cwWlZ5pTM29TgbA+X6xe3JNsLJ2bol0g5g7N4bEPJRxvT4A4p6WCy+geK9GAbZ7U/ydGWRgFNpe1gPzzqz0P+wUzJxNQG2Tzsln3rKneRMQS37lg8sb9GkwAJjSExob86+e4nNsBoyAhGvQxEB0k4vdDW3d9TDeI/j8od8wgB3gY1ihBo3gri3R5IHzsyCXmntaoOPMednjiBuhCmWxsZt2oTQfXUu+yuT2Vg+PCIhKhruyj02+JG9Im8NpU3u1Soif4cZM+FqfkMPzOeKGvsRMRg1sKUW4T/c/E9H2maICCoQcbBO4DgflDlNPu98IxYTcpTl8ru+m9UxMKKsmE1wgNAK4eenRpPPUC+FAiu3vkp6Gm/ho2HPBroU0NErZGmZYrs9tM9wo9UWiKEShXOmGuGv0jpke661iVM4DoIH0y6Aj+TCu0ZJP5SwjwoYxkFi8S9kQrTm5mk2rYsL+ESgnrCaCd7CkrW; 4:6V6UvRUex6yWarsvENvXU7gZHYXmj7c3hF91rkiufn3QbePPz+CSPmbyVu3I0MA/4Q9Y3CkVI5CSoW+o9LnQOtmE1AP1XMt6x9rnV6UoOzL1n3umVWVLsMcDhTx0VydB77iayK07FLGa7O2rmkM5kO7dBFgHoz1SHu5sH0pyUcvIgU5uZWKFDGMnyr5+x4rlRsFDqBKRwQMfe41/0nIDI8WWxjE4kE31DP3QekwPS6MEK5Oev9U9oxBjdCGutZq6aOXselodZMvXgmiLzdmF0CJAvUonSjRbOezaQHv5NVYfTUxBP+xFjB011+Qh5wqd X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(3002001)(93006095)(93001095)(3231254)(944501410)(52105095)(10201501046)(6055026)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123562045)(20161123564045)(20161123558120)(6072148)(201708071742011); SRVR:AM4PR0401MB2418; BCL:0; PCL:0; RULEID:; SRVR:AM4PR0401MB2418; X-Forefront-PRVS: 0658BAF71F X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(396003)(39860400002)(39380400002)(376002)(366004)(346002)(189003)(199004)(36756003)(7736002)(52116002)(5660300001)(105586002)(106356001)(486006)(48376002)(50466002)(316002)(2616005)(55236004)(956004)(11346002)(446003)(476003)(51416003)(16526019)(186003)(6486002)(76176011)(44832011)(47776003)(26005)(97736004)(5009440100003)(66066001)(86362001)(68736007)(81156014)(81166006)(53936002)(16586007)(50226002)(2906002)(7416002)(25786009)(6506007)(8676002)(8936002)(478600001)(39060400002)(6666003)(386003)(6116002)(6512007)(3846002)(305945005)(4326008)(110426005); DIR:OUT; SFP:1101; SCL:1; SRVR:AM4PR0401MB2418; H:b27504-OptiPlex-790.ap.freescale.net; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; Received-SPF: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: 1; AM4PR0401MB2418; 23:4QlPQmBWdACHXIcNAZlW1Ex7unW5pEXOApDd5mwxBcs5EnByKlJqQ13Jo5ow0ryoBbzYhGZlfTwvszOXULJfo7qf81uJz+wIjF+OjHE2C2azFPHb7+gTgpGSVceenbX5bnvle8HmwykzwdpDrNAd+ReJVo7tFJ9KZ8Yz2dsdUQ5zLvnSfK0XHcmFu00EKSaHP6HcoMbhswcONW4xzK/Urln2o1fNlcaRGIrE++aycv9rsNKtPFfgEmWlEyyZh29myj+UW+/oZN/Xg9bwlqncRqbbSJPobkKM6W16MJGLNWuTcHwjqmwEjsk3Puvt6ZczciQfnrf0nWeag7yEOF6FU0AZ7XK1xUwoxFAZvqmBH9WPfuqLj2pPzOaoxUWxNdAObd9eGXjQ7Qfa1LN9CLGhMFK8jllLDIFfpMcW+PfODM34mUZCf6tQiXu27b8d67t5d2k28rKgDExBE7fFtOcTAT01PSWAbVdELYqSRRTrIMLcdS6CimhxToQp1PW+VXFiex+UuZ3IoSHUMx1hoHErswwC9y1tSHMv+vSsUwh75shV6HTGEuXTRUfmd7Rhyd87mzDMcSRYbAFoDS40sksiRVZ9tWfIBYHYVlyg1KRRUj7qfxZVr0xEz5rRRanecxhw7L9rJe+h5vt8bGfZxIUuVEfsGfTfDGn3LuGOISneMpF1tfYnsUXRo5vuMo9Lhn37Fd6D0OkI7coLxQCbw4Y76bTKj/VL3KdOyffoKqDUuy9NhJ3J5lnuZ/he3IqQ9otvm4ssEjCp0JH4eVxIc0tlrxqLBWFdp8UdQdf2s3mvwontGzS7sGQ2AWfquXg9QYlmuTKmTvpIUxlDYkD5IwZgKRVAGz3xVoECZZbPhtMgnnEsBLOnNvrTD9BnFov/UNL6jrJx55M/gC2uO2bKvQSVzTxdpiX5PwzNN/AS3uiBrnPH/ZWnM9uyNdawDKOTiVntXG7mjHydJ3TPZ2nyAb7CwxIvUdERGYJjNfao0OlRTwK2bK3qySIRlS6BaecSD4Ou3WY3HoXVuKqImhFoIUtQsRjMQ/cYBgXKkIuUkl7BDJ0jqcFRY8QJKb5rQQx/Bp1Drn8/V2A0tyJA/K2l/t7uEwAgC0kb5BxA7NjZvcDQQ+Eih12tWPy9tZpT+CWjgqSdU7msHKpH+C4oB5EHFeplKNbwPjs596BE7vur/zQw0pnluKsP6skdLcPzBp9siVfZ0YCEtiAOIrO0uK6rpI5eMGPiZG/3ha0F4hiPgl22LDSxWHSd1gZEDIp9X/mn/WFaYKUjJwB77+gDw8YK1ihazyQdfBeSGFxZC3YQ1ms41hk= X-Microsoft-Antispam-Message-Info: lYgkDOMBGyl+1LER52veap/9hgUEHsAgdiinyEyR4SoBFLoLCP4KA0Cvg5TlOiSBFBOA0q7ZBId1eoIyVFmUEgmyeLStG6mhx2bTW+bZkgM9FN8vy16TnPY/ht5x17uYcYeVfXxGb9Rn1DYouessq68EPGYQ2AqAwlJv/U98phjNFdRLHWmMDBzoWrSrmTVl X-Microsoft-Exchange-Diagnostics: 1; AM4PR0401MB2418; 6:NdausAW/l7HtwI7vpL5H/4pP8vf+tJELkOnjA8MGkU7FNAd6eqFfWiPnPTKzxDfa+McUkFuVj3USCYoPGLEsSqk/3wTPuRP341ZlmzqI36NLjupOZQWZOKj2xmx7kUHZ0ejYM1SuaukOw5p4sx7l062Tzd0n1+MrAhtlrUrc+vHdfV3b288TJ5dFDfcawcOPl1JHr3SW9jcvO4WoXTG3uIF/lP1Jmv3I/m5emX3tBXx+jhyIDcvQzJoIJ4HB28COOThHcvD/OcZJv/MSivHRBYudkyVemHbYCGXoiFHDMaee3Q+GagYNDRmThPsY2K4m9n5a8rWJfgrSfoAJCL5R2qCZ9LtrBbkNgqi02fBehv0Zm+IO8koDHiqcXtykH7Ok0y3E05+Ks1ZwxHMCWcDvHkhHr5kflWTg9vIz4u9q5kd+lE3Hx1zz9wr8ZiGxRfNF+A3niGfFAIu55gpLDJSS+w==; 5:bphumfdJIE80Ghre44kSHceR/dPHGb55F4SsTL6RFAyaXf2QwEzjG6yBV7HwWgYYM55XoL7hGwEsRWyG1QSf2/mGLsvqxiRudFkJdYmHfT9oNM6e9uR14tlw7zGRrC/jVoC7mfqhD/jnV2Mw0uKluxZNIX1WS8vvHJMDsCO4N0o=; 24:YZeCz4SNdeY7EJrsXarlvoYAnZaTpeSFzPCmXb324prou26X9AbN6pAPb8qk5CP90ltTohiVsMJ4QB7az8JVlPWZqxGNpl1zDs1n8U6ZP0I= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; AM4PR0401MB2418; 7:yR3XtDFLU+BnvI7ECPS0I2w87KNndsp6Hf4q2qNT6fEaNNXhDn/5eiqm3CIdgyCfj+VpGV7ONLiTcCM/QRe2qQUTcaKoNs6zkebSMFk4GEtUEVSzsQ/Lq1bsaZ0Da6b3GVKuE6u1moD2dMTXHJwdStb2V5zyClMkargN9VOKwS5dMoycA+v/kiicz8o3Q5wSjnD9DOrP0i1fGockO0FZNwI610p1jWEpGIU7B8pmKXshUI3l5M5YNUFOwamz0sKI X-MS-Office365-Filtering-Correlation-Id: 3aea9fa4-f3f2-41e3-5193-08d5ae63992f X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Apr 2018 06:28:29.6339 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 3aea9fa4-f3f2-41e3-5193-08d5ae63992f X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR0401MB2418 Sender: linux-pci-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pci@vger.kernel.org Signed-off-by: Nipun Gupta --- drivers/iommu/of_iommu.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/drivers/iommu/of_iommu.c b/drivers/iommu/of_iommu.c index 811e160..284474d 100644 --- a/drivers/iommu/of_iommu.c +++ b/drivers/iommu/of_iommu.c @@ -24,6 +24,7 @@ #include #include #include +#include #define NO_IOMMU 1 @@ -159,6 +160,23 @@ static int of_pci_iommu_init(struct pci_dev *pdev, u16 alias, void *data) return err; } +static int of_fsl_mc_iommu_init(struct fsl_mc_device *mc_dev, + struct device_node *master_np) +{ + struct of_phandle_args iommu_spec = { .args_count = 1 }; + int err; + + err = of_map_rid(master_np, mc_dev->icid, "iommu-map", + "iommu-map-mask", &iommu_spec.np, + iommu_spec.args); + if (err) + return err == -ENODEV ? NO_IOMMU : err; + + err = of_iommu_xlate(&mc_dev->dev, &iommu_spec); + of_node_put(iommu_spec.np); + return err; +} + const struct iommu_ops *of_iommu_configure(struct device *dev, struct device_node *master_np) { @@ -190,6 +208,8 @@ const struct iommu_ops *of_iommu_configure(struct device *dev, err = pci_for_each_dma_alias(to_pci_dev(dev), of_pci_iommu_init, &info); + } else if (dev_is_fsl_mc(dev)) { + err = of_fsl_mc_iommu_init(to_fsl_mc_device(dev), master_np); } else { struct of_phandle_args iommu_spec; int idx = 0;