Re: [PATCH V4 3/4] video: exynos_dp: remove non-DT support for Exynos Display Port

2013-07-05 Thread Tomasz Figa
Hi Jingoo,

On Tuesday 02 of July 2013 17:41:52 Jingoo Han wrote:
> Exynos Display Port can be used only for Exynos SoCs. In addition,
> non-DT for EXYNOS SoCs is be supported from v3.11; thus, there is
> no need to support non-DT for Exynos Display Port.
> 
> The 'include/video/exynos_dp.h' file has been used for non-DT
> support and the content of file include/video/exynos_dp.h is moved
> to drivers/video/exynos/exynos_dp_core.h. Thus, the 'exynos_dp.h'
> file is removed. Also, 'struct exynos_dp_platdata' is removed,
> because it is not used any more.
> 
> Signed-off-by: Jingoo Han 
> ---
>  drivers/video/exynos/Kconfig  |2 +-
>  drivers/video/exynos/exynos_dp_core.c |  116
> +++-- drivers/video/exynos/exynos_dp_core.h | 
> 109 +++ drivers/video/exynos/exynos_dp_reg.c  |
>2 -
>  include/video/exynos_dp.h |  131
> - 5 files changed, 135 insertions(+),
> 225 deletions(-)
>  delete mode 100644 include/video/exynos_dp.h

Reviewed-by: Tomasz Figa 

Best regards,
Tomasz

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH V4 3/4] video: exynos_dp: remove non-DT support for Exynos Display Port

2013-07-02 Thread Jingoo Han
Exynos Display Port can be used only for Exynos SoCs. In addition,
non-DT for EXYNOS SoCs is be supported from v3.11; thus, there is
no need to support non-DT for Exynos Display Port.

The 'include/video/exynos_dp.h' file has been used for non-DT
support and the content of file include/video/exynos_dp.h is moved
to drivers/video/exynos/exynos_dp_core.h. Thus, the 'exynos_dp.h'
file is removed. Also, 'struct exynos_dp_platdata' is removed,
because it is not used any more.

Signed-off-by: Jingoo Han 
---
 drivers/video/exynos/Kconfig  |2 +-
 drivers/video/exynos/exynos_dp_core.c |  116 +++--
 drivers/video/exynos/exynos_dp_core.h |  109 +++
 drivers/video/exynos/exynos_dp_reg.c  |2 -
 include/video/exynos_dp.h |  131 -
 5 files changed, 135 insertions(+), 225 deletions(-)
 delete mode 100644 include/video/exynos_dp.h

diff --git a/drivers/video/exynos/Kconfig b/drivers/video/exynos/Kconfig
index 1b035b2..fab9019 100644
--- a/drivers/video/exynos/Kconfig
+++ b/drivers/video/exynos/Kconfig
@@ -29,7 +29,7 @@ config EXYNOS_LCD_S6E8AX0
 
 config EXYNOS_DP
bool "EXYNOS DP driver support"
-   depends on ARCH_EXYNOS
+   depends on OF && ARCH_EXYNOS
default n
help
  This enables support for DP device.
diff --git a/drivers/video/exynos/exynos_dp_core.c 
b/drivers/video/exynos/exynos_dp_core.c
index 12bbede..05fed7d 100644
--- a/drivers/video/exynos/exynos_dp_core.c
+++ b/drivers/video/exynos/exynos_dp_core.c
@@ -20,8 +20,6 @@
 #include 
 #include 
 
-#include 
-
 #include "exynos_dp_core.h"
 
 static int exynos_dp_init_dp(struct exynos_dp_device *dp)
@@ -894,26 +892,17 @@ static void exynos_dp_hotplug(struct work_struct *work)
dev_err(dp->dev, "unable to config video\n");
 }
 
-#ifdef CONFIG_OF
-static struct exynos_dp_platdata *exynos_dp_dt_parse_pdata(struct device *dev)
+static struct video_info *exynos_dp_dt_parse_pdata(struct device *dev)
 {
struct device_node *dp_node = dev->of_node;
-   struct exynos_dp_platdata *pd;
struct video_info *dp_video_config;
 
-   pd = devm_kzalloc(dev, sizeof(*pd), GFP_KERNEL);
-   if (!pd) {
-   dev_err(dev, "memory allocation for pdata failed\n");
-   return ERR_PTR(-ENOMEM);
-   }
dp_video_config = devm_kzalloc(dev,
sizeof(*dp_video_config), GFP_KERNEL);
-
if (!dp_video_config) {
dev_err(dev, "memory allocation for video config failed\n");
return ERR_PTR(-ENOMEM);
}
-   pd->video_info = dp_video_config;
 
dp_video_config->h_sync_polarity =
of_property_read_bool(dp_node, "hsync-active-high");
@@ -960,7 +949,7 @@ static struct exynos_dp_platdata 
*exynos_dp_dt_parse_pdata(struct device *dev)
return ERR_PTR(-EINVAL);
}
 
-   return pd;
+   return dp_video_config;
 }
 
 static int exynos_dp_dt_parse_phydata(struct exynos_dp_device *dp)
@@ -1003,48 +992,30 @@ err:
 
 static void exynos_dp_phy_init(struct exynos_dp_device *dp)
 {
-   u32 reg;
+   if (dp->phy_addr) {
+   u32 reg;
 
-   reg = __raw_readl(dp->phy_addr);
-   reg |= dp->enable_mask;
-   __raw_writel(reg, dp->phy_addr);
+   reg = __raw_readl(dp->phy_addr);
+   reg |= dp->enable_mask;
+   __raw_writel(reg, dp->phy_addr);
+   }
 }
 
 static void exynos_dp_phy_exit(struct exynos_dp_device *dp)
 {
-   u32 reg;
-
-   reg = __raw_readl(dp->phy_addr);
-   reg &= ~(dp->enable_mask);
-   __raw_writel(reg, dp->phy_addr);
-}
-#else
-static struct exynos_dp_platdata *exynos_dp_dt_parse_pdata(struct device *dev)
-{
-   return NULL;
-}
-
-static int exynos_dp_dt_parse_phydata(struct exynos_dp_device *dp)
-{
-   return -EINVAL;
-}
-
-static void exynos_dp_phy_init(struct exynos_dp_device *dp)
-{
-   return;
-}
+   if (dp->phy_addr) {
+   u32 reg;
 
-static void exynos_dp_phy_exit(struct exynos_dp_device *dp)
-{
-   return;
+   reg = __raw_readl(dp->phy_addr);
+   reg &= ~(dp->enable_mask);
+   __raw_writel(reg, dp->phy_addr);
+   }
 }
-#endif /* CONFIG_OF */
 
 static int exynos_dp_probe(struct platform_device *pdev)
 {
struct resource *res;
struct exynos_dp_device *dp;
-   struct exynos_dp_platdata *pdata;
 
int ret = 0;
 
@@ -1057,21 +1028,13 @@ static int exynos_dp_probe(struct platform_device *pdev)
 
dp->dev = &pdev->dev;
 
-   if (pdev->dev.of_node) {
-   pdata = exynos_dp_dt_parse_pdata(&pdev->dev);
-   if (IS_ERR(pdata))
-   return PTR_ERR(pdata);
+   dp->video_info = exynos_dp_dt_parse_pdata(&pdev->dev);
+   if (IS_ERR(dp->video_info))
+   return PTR_ERR(dp->video_info);
 
-   ret = exynos_dp_dt_par