From patchwork Mon Nov 5 15:18:19 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rahul Sharma X-Patchwork-Id: 1698491 Return-Path: X-Original-To: patchwork-dri-devel@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork2.kernel.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by patchwork2.kernel.org (Postfix) with ESMTP id AEF76DF2AB for ; Mon, 5 Nov 2012 15:22:23 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id BAD429F799 for ; Mon, 5 Nov 2012 07:22:23 -0800 (PST) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mailout2.samsung.com (mailout2.samsung.com [203.254.224.25]) by gabe.freedesktop.org (Postfix) with ESMTP id D44009E75F for ; Mon, 5 Nov 2012 06:58:53 -0800 (PST) Received: from epcpsbgm1.samsung.com (epcpsbgm1 [203.254.230.26]) by mailout2.samsung.com (Oracle Communications Messaging Server 7u4-24.01(7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0MD000FCRS9XR2C0@mailout2.samsung.com> for dri-devel@lists.freedesktop.org; Mon, 05 Nov 2012 23:58:52 +0900 (KST) Received: from epcpsbgm1.samsung.com ( [172.20.52.124]) by epcpsbgm1.samsung.com (EPCPMTA) with SMTP id D0.C2.01231.C24D7905; Mon, 05 Nov 2012 23:58:52 +0900 (KST) X-AuditID: cbfee61a-b7fa66d0000004cf-8a-5097d42c8f61 Received: from epmmp2 ( [203.254.227.17]) by epcpsbgm1.samsung.com (EPCPMTA) with SMTP id DF.B2.01231.C24D7905; Mon, 05 Nov 2012 23:58:52 +0900 (KST) Received: from localhost.localdomain ([107.108.73.106]) by mmp2.samsung.com (Oracle Communications Messaging Server 7u4-24.01 (7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTPA id <0MD000MPJS8G0YA0@mmp2.samsung.com> for dri-devel@lists.freedesktop.org; Mon, 05 Nov 2012 23:58:52 +0900 (KST) From: Rahul Sharma To: dri-devel@lists.freedesktop.org Subject: [PATCH] drm: exynos: add iommu support in hdmi driver with dt enabled Date: Mon, 05 Nov 2012 20:48:19 +0530 Message-id: <1352128699-3343-1-git-send-email-rahul.sharma@samsung.com> X-Mailer: git-send-email 1.7.0.4 DLP-Filter: Pass X-MTR: 20000000000000000@CPGS X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrCLMWRmVeSWpSXmKPExsWyRsSkRlfnyvQAg/8nlC2ufH3P5sDocb/7 OFMAYxSXTUpqTmZZapG+XQJXRu/vx0wFN4Uq5s1dztrAeIa/i5GDQ0LAROLlUv0uRk4gU0zi wr31bF2MXBxCAksZJbZs+sECkTCRWDLpLxNEYjqjxP47X1ggnNVMErfbvrODVLEJ6ErMPviM EcQWEVCW+DtxFZjNLPAVaNSCBBBbWMBPonXmTTYQm0VAVWJp33xWEJtXwF3i2+d9zBDbFCRa lx1ih6gRkPg2+RALxKWyEpsOMIPslRDYwSZx/8k2Roh6SYmDK26wTGAUXMDIsIpRNLUguaA4 KT3XUK84Mbe4NC9dLzk/dxMjMKhO/3smtYNxZYPFIUYBDkYlHt6ZYtMDhFgTy4orcw8xSnAw K4nwcjAAhXhTEiurUovy44tKc1KLDzH6AF0ykVlKNDkfGPB5JfGGxibmpsamlkZGZqamOISV xHmbPVIChATSE0tSs1NTC1KLYMYxcXBKNTAembXF4N6pv9Kvl3yy9/n8K3THJOav/zoV1t6d 8PjZrnLltE0TchbcKorenHhvWYGN6uq5jg1aB9LsF/guFLn7+Gaf9rFaphalTbpu3buYK3x2 9Bgw7er3vSgfNW0Ws/OVl3UV1xTSvRYqmNesLjjQ6Hn6Epd834oiK76nRn9OeRs5vLslG6ah xFKckWioxVxUnAgA/VAQBlcCAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrCLMWRmVeSWpSXmKPExsVy+t9jQV2dK9MDDFrnClpc+fqezYHR4373 caYAxqgGRpuM1MSU1CKF1Lzk/JTMvHRbJe/geOd4UzMDQ11DSwtzJYW8xNxUWyUXnwBdt8wc oLFKCmWJOaVAoYDE4mIlfTtME0JD3HQtYBojdH1DguB6jAzQQMIaxoze34+ZCm4KVcybu5y1 gfEMfxcjJ4eEgInEkkl/mSBsMYkL99azdTFycQgJTGeU2H/nCwuEs5pJ4nbbd3aQKjYBXYnZ B58xgtgiAsoSfyeuArOZBb4ySmxZkABiCwv4SbTOvMkGYrMIqEos7ZvPCmLzCrhLfPu8jxli m4JE67JD7BMYuRcwMqxiFE0tSC4oTkrPNdQrTswtLs1L10vOz93ECA7aZ1I7GFc2WBxiFOBg VOLhnSk2PUCINbGsuDL3EKMEB7OSCC8HA1CINyWxsiq1KD++qDQntfgQow/Q9onMUqLJ+cCI yiuJNzQ2MTc1NrU0sTAxs8QhrCTO2+yREiAkkJ5YkpqdmlqQWgQzjomDU6qBUT9Ye2lu1Snn i31n2H58F7wufmS/hUfq9rDVyr5VT65MubFAJHFe1xShqqynfJZPlUpTBb4uXP5G4W/uqYy4 tdLrLni/+bV4f8qCotJl8TenlM0LjPW6MPlPltldmTVyQdsFApe+OFXEPs8vZMESlmO7eyse 2eWYGDFlTwv9ULVJ/PcWk4YoeSWW4oxEQy3mouJEAOaCMVWHAgAA X-CFilter-Loop: Reflected X-Mailman-Approved-At: Mon, 05 Nov 2012 07:21:13 -0800 Cc: prathyush.k@samsung.com, sw0312.kim@samsung.com, joshi@samsung.com, kyungmin.park@samsung.com, rahul.sharma@samsung.com, prashanth.g@samsung.com, s.shirish@samsung.com X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: dri-devel-bounces+patchwork-dri-devel=patchwork.kernel.org@lists.freedesktop.org Errors-To: dri-devel-bounces+patchwork-dri-devel=patchwork.kernel.org@lists.freedesktop.org This patch adds iommu support for hdmi driver with device tree based search. It searches for sysmmu property in hdmi dt node to get tv iommu device pointer which will be used to configure iommu hw interface. This patch is based on "exynos-drm-next-iommu" branch at http://git.kernel.org/?p=linux/kernel/git/daeinki/drm-exynos.git This patch is having dependency on linux-samsung-soc patchset posted at http://permalink.gmane.org/gmane.linux.kernel.samsung-soc/13556 Signed-off-by: Rahul Sharma Signed-off-by: Prathyush K --- drivers/gpu/drm/exynos/exynos_hdmi.c | 35 ++++++++++++++++++++++++++++++++++ 1 files changed, 35 insertions(+), 0 deletions(-) diff --git a/drivers/gpu/drm/exynos/exynos_hdmi.c b/drivers/gpu/drm/exynos/exynos_hdmi.c index d1a1d71..a04452c 100644 --- a/drivers/gpu/drm/exynos/exynos_hdmi.c +++ b/drivers/gpu/drm/exynos/exynos_hdmi.c @@ -34,7 +34,9 @@ #include #include #include +#include #include +#include #include @@ -2275,6 +2277,34 @@ void hdmi_attach_hdmiphy_client(struct i2c_client *hdmiphy) } #ifdef CONFIG_OF + +static int drm_hdmi_dt_init_iommu(struct device *dev) +{ + struct platform_device *pds; + struct device_node *dn, *dns; + const __be32 *parp; + + dn = dev->of_node; + parp = of_get_property(dn, "sysmmu", NULL); + if (parp == NULL) { + dev_err(dev, "failed to find sysmmu property\n"); + return -EINVAL; + } + dns = of_find_node_by_phandle(be32_to_cpup(parp)); + if (dns == NULL) { + dev_err(dev, "failed to find sysmmu node\n"); + return -EINVAL; + } + pds = of_find_device_by_node(dns); + if (pds == NULL) { + dev_err(dev, "failed to find sysmmu platform device\n"); + return -EINVAL; + } + + platform_set_sysmmu(&pds->dev, dev); + return 0; +} + static struct s5p_hdmi_platform_data *drm_hdmi_dt_parse_pdata (struct device *dev) { @@ -2294,6 +2324,11 @@ static struct s5p_hdmi_platform_data *drm_hdmi_dt_parse_pdata goto err_data; } + if (drm_hdmi_dt_init_iommu(dev)) { + DRM_ERROR("no sysmmu property found\n"); + goto err_data; + } + pd->hpd_gpio = of_get_named_gpio_flags(np, "hpd-gpio", 0, &flags); return pd;