2012/11/7 Leela Krishna Amudala <l.kris...@samsung.com> > Hello Rahul, > > On Mon, Nov 5, 2012 at 2:32 PM, Rahul Sharma <rahul.sha...@samsung.com> > wrote: > > 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 named > > "add dt based support for iommu for hdmi" > > > > Signed-off-by: Rahul Sharma <rahul.sha...@samsung.com> > > Signed-off-by: Prathyush K <prathyus...@samsung.com> > > --- > > 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..ee110c9 100644 > > --- a/drivers/gpu/drm/exynos/exynos_hdmi.c > > +++ b/drivers/gpu/drm/exynos/exynos_hdmi.c > > @@ -34,7 +34,9 @@ > > #include <linux/regulator/consumer.h> > > #include <linux/io.h> > > #include <linux/of_gpio.h> > > +#include <linux/of_platform.h> > > #include <plat/gpio-cfg.h> > > +#include <mach/sysmmu.h> > > > > #include <drm/exynos_drm.h> > > > > @@ -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; > > +} > > + > > As a part of adding iommu support to FIMD driver, we have to implement > the same function in FIMD driver also, which makes code replication. > So, it would be better to move this function out of this file and put > it in a common drm file so that FIMD also can use it. > > I tend to agree with you but I think it's better to move it into drivers/iommu/exynos-iommu.c because IOMMU units could be used by device driver based on not only DRM but also V4L2.
Thanks, Inki Dae > Best Wishes, > Leela Krishna Amudala. > > > 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; > > -- > > 1.7.0.4 > > > > _______________________________________________ > > dri-devel mailing list > > dri-devel@lists.freedesktop.org > > http://lists.freedesktop.org/mailman/listinfo/dri-devel > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/dri-devel >
_______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel