On Wed, Nov 7, 2012 at 3:11 PM, Inki Dae <inki.dae@xxxxxxxxxxx> wrote: > > > 2012/11/7 Leela Krishna Amudala <l.krishna@xxxxxxxxxxx> >> >> Hello Rahul, >> >> On Mon, Nov 5, 2012 at 2:32 PM, Rahul Sharma <rahul.sharma@xxxxxxxxxxx> >> 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.sharma@xxxxxxxxxxx> >> > Signed-off-by: Prathyush K <prathyush.k@xxxxxxxxxxx> >> > --- >> > 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 > Mr Dae, Do you mean, we should export this function from drivers/iommu/exynos-iommu.c? How can I add it there ? To me it looks very much iommu client specific code as it is tryng to parse its DT node for "sysmmu" property. I was thinking of putting it into exynos_drm_iommu.c which is visible to hdmi and fimd both. regards, Rahul Sharma >> >> 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@xxxxxxxxxxxxxxxxxxxxx >> > http://lists.freedesktop.org/mailman/listinfo/dri-devel >> _______________________________________________ >> dri-devel mailing list >> dri-devel@xxxxxxxxxxxxxxxxxxxxx >> http://lists.freedesktop.org/mailman/listinfo/dri-devel > > > > _______________________________________________ > dri-devel mailing list > dri-devel@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/dri-devel > _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel