The IPU client devices have been moved to the device tree, so
remove platform registration of those devices. As a result,
platform data (struct ipu_client_platformdata) is no longer
needed, the client data is retrieved from the device nodes.

Signed-off-by: Steve Longerbeam <steve_longerbeam at mentor.com>
---
 drivers/gpu/ipu-v3/ipu-common.c |  114 ---------------------------------------
 include/video/imx-ipu-v3.h      |    9 ----
 2 files changed, 123 deletions(-)

diff --git a/drivers/gpu/ipu-v3/ipu-common.c b/drivers/gpu/ipu-v3/ipu-common.c
index 5004f71..ebafcf2 100644
--- a/drivers/gpu/ipu-v3/ipu-common.c
+++ b/drivers/gpu/ipu-v3/ipu-common.c
@@ -990,110 +990,6 @@ static void ipu_submodules_exit(struct ipu_soc *ipu)
        ipu_cpmem_exit(ipu);
 }

-static int platform_remove_devices_fn(struct device *dev, void *unused)
-{
-       struct platform_device *pdev = to_platform_device(dev);
-
-       platform_device_unregister(pdev);
-
-       return 0;
-}
-
-static void platform_device_unregister_children(struct platform_device *pdev)
-{
-       device_for_each_child(&pdev->dev, NULL, platform_remove_devices_fn);
-}
-
-struct ipu_platform_reg {
-       struct ipu_client_platformdata pdata;
-       const char *name;
-       int reg_offset;
-};
-
-static const struct ipu_platform_reg client_reg[] = {
-       {
-               .pdata = {
-                       .di = 0,
-                       .dc = 5,
-                       .dp = IPU_DP_FLOW_SYNC_BG,
-                       .dma[0] = IPUV3_CHANNEL_MEM_BG_SYNC,
-                       .dma[1] = IPUV3_CHANNEL_MEM_FG_SYNC,
-               },
-               .name = "imx-ipuv3-crtc",
-       }, {
-               .pdata = {
-                       .di = 1,
-                       .dc = 1,
-                       .dp = -EINVAL,
-                       .dma[0] = IPUV3_CHANNEL_MEM_DC_SYNC,
-                       .dma[1] = -EINVAL,
-               },
-               .name = "imx-ipuv3-crtc",
-       }, {
-               .pdata = {
-                       .csi = 0,
-                       .dma[0] = IPUV3_CHANNEL_CSI0,
-                       .dma[1] = -EINVAL,
-               },
-               .reg_offset = IPU_CM_CSI0_REG_OFS,
-               .name = "imx-ipuv3-camera",
-       }, {
-               .pdata = {
-                       .csi = 1,
-                       .dma[0] = IPUV3_CHANNEL_CSI1,
-                       .dma[1] = -EINVAL,
-               },
-               .reg_offset = IPU_CM_CSI1_REG_OFS,
-               .name = "imx-ipuv3-camera",
-       },
-};
-
-static DEFINE_MUTEX(ipu_client_id_mutex);
-static int ipu_client_id;
-
-static int ipu_add_client_devices(struct ipu_soc *ipu, unsigned long ipu_base)
-{
-       struct device *dev = ipu->dev;
-       unsigned i;
-       int id, ret;
-
-       mutex_lock(&ipu_client_id_mutex);
-       id = ipu_client_id;
-       ipu_client_id += ARRAY_SIZE(client_reg);
-       mutex_unlock(&ipu_client_id_mutex);
-
-       for (i = 0; i < ARRAY_SIZE(client_reg); i++) {
-               const struct ipu_platform_reg *reg = &client_reg[i];
-               struct platform_device *pdev;
-               struct resource res;
-
-               if (reg->reg_offset) {
-                       memset(&res, 0, sizeof(res));
-                       res.flags = IORESOURCE_MEM;
-                       res.start = ipu_base + ipu->devtype->cm_ofs + 
reg->reg_offset;
-                       res.end = res.start + PAGE_SIZE - 1;
-                       pdev = platform_device_register_resndata(dev, reg->name,
-                               id++, &res, 1, &reg->pdata, sizeof(reg->pdata));
-               } else {
-                       pdev = platform_device_register_data(dev, reg->name,
-                               id++, &reg->pdata, sizeof(reg->pdata));
-               }
-
-               if (IS_ERR(pdev)) {
-                       ret = PTR_ERR(pdev);
-                       goto err_register;
-               }
-       }
-
-       return 0;
-
-err_register:
-       platform_device_unregister_children(to_platform_device(dev));
-
-       return ret;
-}
-
-
 static int ipu_irq_init(struct ipu_soc *ipu)
 {
        struct irq_chip_generic *gc;
@@ -1318,19 +1214,10 @@ static int ipu_probe(struct platform_device *pdev)
        if (ret)
                goto failed_submodules_init;

-       ret = ipu_add_client_devices(ipu, ipu_base);
-       if (ret) {
-               dev_err(&pdev->dev, "adding client devices failed with %d\n",
-                               ret);
-               goto failed_add_clients;
-       }
-
        dev_info(&pdev->dev, "%s probed\n", devtype->name);

        return 0;

-failed_add_clients:
-       ipu_submodules_exit(ipu);
 failed_submodules_init:
 out_failed_reset:
        ipu_irq_exit(ipu);
@@ -1343,7 +1230,6 @@ static int ipu_remove(struct platform_device *pdev)
 {
        struct ipu_soc *ipu = platform_get_drvdata(pdev);

-       platform_device_unregister_children(pdev);
        ipu_submodules_exit(ipu);
        ipu_irq_exit(ipu);

diff --git a/include/video/imx-ipu-v3.h b/include/video/imx-ipu-v3.h
index 7e1bc61..7ff0d99 100644
--- a/include/video/imx-ipu-v3.h
+++ b/include/video/imx-ipu-v3.h
@@ -385,13 +385,4 @@ int ipu_degrees_to_rot_mode(enum ipu_rotate_mode *mode, 
int degrees,
 int ipu_rot_mode_to_degrees(int *degrees, enum ipu_rotate_mode mode,
                            bool hflip, bool vflip);

-struct ipu_client_platformdata {
-       int csi;
-       int di;
-       int dc;
-       int dp;
-       int dmfc;
-       int dma[2];
-};
-
 #endif /* __DRM_IPU_H__ */
-- 
1.7.9.5

Reply via email to