fimc-is: Fix all possible casting issues and function signature incompatibilities
authorMarek Szyprowski <m.szyprowski@samsung.com>
Thu, 6 Aug 2015 10:59:20 +0000 (12:59 +0200)
committerJunghoon Kim <jhoon20.kim@samsung.com>
Thu, 14 Feb 2019 05:57:04 +0000 (14:57 +0900)
Change-Id: Idd9371751954bb7b44d4c0a52f6e361e264e4b55
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
34 files changed:
drivers/media/platform/exynos/fimc-is/fimc-is-core.c
drivers/media/platform/exynos/fimc-is/fimc-is-device-af.c
drivers/media/platform/exynos/fimc-is/fimc-is-device-companion.c
drivers/media/platform/exynos/fimc-is/fimc-is-device-csi.c
drivers/media/platform/exynos/fimc-is/fimc-is-device-flite.c
drivers/media/platform/exynos/fimc-is/fimc-is-device-ischain.c
drivers/media/platform/exynos/fimc-is/fimc-is-device-ischain.h
drivers/media/platform/exynos/fimc-is/fimc-is-device-ois.c
drivers/media/platform/exynos/fimc-is/fimc-is-device-sensor.c
drivers/media/platform/exynos/fimc-is/fimc-is-dt.c
drivers/media/platform/exynos/fimc-is/fimc-is-framemgr.h
drivers/media/platform/exynos/fimc-is/fimc-is-groupmgr.c
drivers/media/platform/exynos/fimc-is/fimc-is-interface.c
drivers/media/platform/exynos/fimc-is/fimc-is-interface.h
drivers/media/platform/exynos/fimc-is/fimc-is-mem.c
drivers/media/platform/exynos/fimc-is/fimc-is-mem.h
drivers/media/platform/exynos/fimc-is/fimc-is-metadata.h
drivers/media/platform/exynos/fimc-is/fimc-is-resourcemgr.c
drivers/media/platform/exynos/fimc-is/fimc-is-resourcemgr.h
drivers/media/platform/exynos/fimc-is/fimc-is-subdev-ctrl.c
drivers/media/platform/exynos/fimc-is/fimc-is-video-3aa.c
drivers/media/platform/exynos/fimc-is/fimc-is-video-3aac.c
drivers/media/platform/exynos/fimc-is/fimc-is-video-companion.c
drivers/media/platform/exynos/fimc-is/fimc-is-video-isp.c
drivers/media/platform/exynos/fimc-is/fimc-is-video-scc.c
drivers/media/platform/exynos/fimc-is/fimc-is-video-scp.c
drivers/media/platform/exynos/fimc-is/fimc-is-video-sensor.c
drivers/media/platform/exynos/fimc-is/fimc-is-video-vdisc.c
drivers/media/platform/exynos/fimc-is/fimc-is-video-vdiso.c
drivers/media/platform/exynos/fimc-is/fimc-is-video.c
drivers/media/platform/exynos/fimc-is/fimc-is-video.h
drivers/media/platform/exynos/fimc-is/sensor/fimc-is-device-6d1.c
drivers/media/platform/exynos/fimc-is/sensor/fimc-is-device-imx240.c
drivers/media/platform/exynos/fimc-is/smc.h

index d986745..b5ddf9e 100644 (file)
@@ -90,8 +90,9 @@ struct fimc_is_sysfs_debug sysfs_debug;
 
 static int fimc_is_ischain_allocmem(struct fimc_is_core *this)
 {
-       int ret = 0;
-       void *fw_cookie;
+       struct device *dev = &this->pdev->dev;
+       /* int ret = 0; */
+       /* void *fw_cookie; */
        size_t fw_size =
 #ifdef ENABLE_ODC
                                SIZE_ODC_INTERNAL_BUF * NUM_ODC_INTERNAL_BUF +
@@ -105,9 +106,9 @@ static int fimc_is_ischain_allocmem(struct fimc_is_core *this)
                        FIMC_IS_A5_MEM_SIZE;
 
        fw_size = PAGE_ALIGN(fw_size);
+
        dbg_core("Allocating memory for FIMC-IS firmware.\n");
 
-#warning NOT IMPLEMENTED
 #if 0
        fw_cookie = vb2_ion_private_alloc(this->mem.alloc_ctx, fw_size, 1, 0);
 
@@ -130,8 +131,8 @@ static int fimc_is_ischain_allocmem(struct fimc_is_core *this)
        dbg_core("Device vaddr = %08x , size = %08x\n",
                this->minfo.dvaddr, FIMC_IS_A5_MEM_SIZE);
 
-       this->minfo.kvaddr = (u32)vb2_ion_private_vaddr(fw_cookie);
-       if (IS_ERR((void *)this->minfo.kvaddr)) {
+       this->minfo.kvaddr = vb2_ion_private_vaddr(fw_cookie);
+       if (IS_ERR(this->minfo.kvaddr)) {
                err("Bitprocessor memory remap failed");
                vb2_ion_private_free(fw_cookie);
                this->minfo.kvaddr = 0;
@@ -140,16 +141,31 @@ static int fimc_is_ischain_allocmem(struct fimc_is_core *this)
                goto exit;
        }
 
-#warning NOT IMPLEMENTED
-#if 0
        vb2_ion_sync_for_device(fw_cookie, 0, fw_size, DMA_BIDIRECTIONAL);
-#endif
-#endif
+
 exit:
        info("[COR] Device virtual for internal: %08x\n", this->minfo.kvaddr);
        this->minfo.fw_cookie = fw_cookie;
+#endif
+       this->minfo.kvaddr = dma_alloc_coherent(dev, fw_size,
+                                               &this->minfo.dvaddr,
+                                               GFP_KERNEL);
+       if (this->minfo.kvaddr == NULL)
+               return -ENOMEM;
 
-       return ret;
+       /* memset((void *)this->minfo.kvaddr, 0, fw_size); */
+
+       dev_info(dev, "FIMC-IS CPU memory base: %pad\n", &this->minfo.dvaddr);
+
+       if (((u32)this->minfo.dvaddr) & FIMC_IS_FW_BASE_MASK) {
+               dev_err(dev, "invalid firmware memory alignment: %pad\n",
+                       &this->minfo.dvaddr);
+               dma_free_coherent(dev, fw_size, this->minfo.kvaddr,
+                                 this->minfo.dvaddr);
+               return -EIO;
+       }
+
+       return 0;
 }
 
 static int fimc_is_ishcain_initmem(struct fimc_is_core *this)
@@ -258,7 +274,7 @@ int fimc_is_get_sensor_data(struct device *dev, char *maker, char *name, int pos
                return -ENODEV;
        }
 
-       core = (struct fimc_is_core *)dev_get_drvdata(fimc_is_dev);
+       core = dev_get_drvdata(fimc_is_dev);
        if (!core) {
                dev_err(dev, "%s: core is NULL", __func__);
                return -EINVAL;
@@ -905,7 +921,7 @@ static int fimc_is_probe(struct platform_device *pdev)
        }
 
        fimc_is_interface_probe(&core->interface,
-               (u32)core->regs,
+               core->regs,
                core->irq,
                core);
 
@@ -938,7 +954,7 @@ static int fimc_is_probe(struct platform_device *pdev)
                &core->mem,
                core->pdev,
                0,
-               (u32)core->regs);
+               core->regs);
 
        /* device entity - ischain1 */
        fimc_is_ischain_probe(&core->ischain[1],
@@ -948,7 +964,7 @@ static int fimc_is_probe(struct platform_device *pdev)
                &core->mem,
                core->pdev,
                1,
-               (u32)core->regs);
+               core->regs);
 
        /* device entity - ischain2 */
        fimc_is_ischain_probe(&core->ischain[2],
@@ -958,7 +974,7 @@ static int fimc_is_probe(struct platform_device *pdev)
                &core->mem,
                core->pdev,
                2,
-               (u32)core->regs);
+               core->regs);
 
        ret = v4l2_device_register(&pdev->dev, &core->v4l2_dev);
        if (ret) {
@@ -1259,7 +1275,7 @@ static int fimc_is_i2c0_probe(struct i2c_client *client,
        if (!fimc_is_dev)
                goto probe_defer;
 
-       core = (struct fimc_is_core *)dev_get_drvdata(fimc_is_dev);
+       core = dev_get_drvdata(fimc_is_dev);
        if (!core)
                goto probe_defer;
 
@@ -1359,7 +1375,7 @@ static int fimc_is_spi_probe(struct spi_device *spi)
 
        dbg_core("%s\n", __func__);
 
-       core = (struct fimc_is_core *)dev_get_drvdata(fimc_is_dev);
+       core = dev_get_drvdata(fimc_is_dev);
        if (!core) {
                err("core device is not yet probed");
                return -EPROBE_DEFER;
@@ -1406,7 +1422,7 @@ static int fimc_is_fan53555_probe(struct i2c_client *client,
 
        pr_info("%s start\n",__func__);
 
-       core = (struct fimc_is_core *)dev_get_drvdata(fimc_is_dev);
+       core = dev_get_drvdata(fimc_is_dev);
        if (!core) {
                err("core device is not yet probed");
                return -EPROBE_DEFER;
index 97e20c3..761f084 100644 (file)
 #include "fimc-is-device-af.h"
 
 #define FIMC_IS_AF_DEV_NAME "exynos-fimc-is-af"
-static int af_noise_count;
-
-static struct remove_af_noise af_sensor_interface = {
-       .af_pdata = NULL,
-       .af_func = NULL,
-};
 
 static void fimc_is_af_i2c_config(struct i2c_client *client, bool onoff)
 {
@@ -123,7 +117,7 @@ int fimc_is_af_i2c_write(struct i2c_client *client ,u16 addr, u16 data)
 
 int fimc_is_af_ldo_enable(char *name, bool on)
 {
-       struct fimc_is_core *core = (struct fimc_is_core *)dev_get_drvdata(fimc_is_dev);
+       struct fimc_is_core *core = dev_get_drvdata(fimc_is_dev);
        struct regulator *regulator = NULL;
        struct platform_device *pdev = NULL;
        int ret = 0;
@@ -210,7 +204,7 @@ int fimc_is_af_power(struct fimc_is_device_af *af_device, bool onoff)
 
 bool fimc_is_check_regulator_status(char *name)
 {
-       struct fimc_is_core *core = (struct fimc_is_core *)dev_get_drvdata(fimc_is_dev);
+       struct fimc_is_core *core = dev_get_drvdata(fimc_is_dev);
        struct regulator *regulator = NULL;
        struct platform_device *pdev = NULL;
        int ret = 0;
@@ -238,11 +232,11 @@ bool fimc_is_check_regulator_status(char *name)
 int16_t fimc_is_af_enable(void *device, bool onoff)
 {
        int ret = 0;
-       struct fimc_is_device_af *af_device = (struct fimc_is_device_af *)device;
+       struct fimc_is_device_af *af_device = device;
        struct fimc_is_core *core;
        bool af_regulator = false, io_regulator = false;
 
-       core = (struct fimc_is_core *)dev_get_drvdata(fimc_is_dev);
+       core = dev_get_drvdata(fimc_is_dev);
        if (!core) {
                err("core is NULL");
                return -ENODEV;
@@ -273,8 +267,6 @@ int16_t fimc_is_af_enable(void *device, bool onoff)
                                err("i2c write fail\n");
                                goto power_off;
                        }
-                       af_noise_count++;
-                       pr_info("af_noise : count = %d\n", af_noise_count);
                } else {
                        /* Check the Power Pins */
                        af_regulator = fimc_is_check_regulator_status("CAM_AF_2.8V_AP");
@@ -348,7 +340,6 @@ static int fimc_is_af_probe(struct i2c_client *client,
 {
        struct fimc_is_device_af *device;
        struct fimc_is_core *core;
-       int ret;
 
        if (fimc_is_dev == NULL) {
                warn("fimc_is_dev is not yet probed");
@@ -356,7 +347,7 @@ static int fimc_is_af_probe(struct i2c_client *client,
                return -EPROBE_DEFER;
        }
 
-       core = (struct fimc_is_core *)dev_get_drvdata(fimc_is_dev);
+       core = dev_get_drvdata(fimc_is_dev);
        if (!core)
                return -EINVAL;
 
@@ -375,15 +366,6 @@ static int fimc_is_af_probe(struct i2c_client *client,
        device->client = client;
        device->core = core;
 
-#if 0
-       af_noise_count = 0;
-
-       af_sensor_interface.af_pdata = device;
-       af_sensor_interface.af_func = &fimc_is_af_enable;
-       ret = remove_af_noise_register(&af_sensor_interface);
-       if (ret)
-               err("reduce_af_noise_register failed: %d\n", ret);
-#endif
        i2c_set_clientdata(client, device);
 
        return 0;
@@ -391,9 +373,6 @@ static int fimc_is_af_probe(struct i2c_client *client,
 
 static int fimc_is_af_remove(struct i2c_client *client)
 {
-#if 0
-       remove_af_noise_unregister(&af_sensor_interface);
-#endif
        return 0;
 }
 
index 9d2a21d..18a3854 100644 (file)
@@ -231,7 +231,7 @@ static int fimc_is_companion_gpio_on(struct fimc_is_device_companion *device)
 
        pdata = device->pdata;
        pin_ctrls = pdata->pin_ctrls;
-       core = (struct fimc_is_core *)dev_get_drvdata(fimc_is_dev);
+       core = dev_get_drvdata(fimc_is_dev);
 
        if (test_bit(FIMC_IS_COMPANION_GPIO_ON, &device->state)) {
                err("%s : already gpio on", __func__);
@@ -285,7 +285,7 @@ static int fimc_is_companion_gpio_off(struct fimc_is_device_companion *device)
 {
        int ret = 0;
        struct exynos_platform_fimc_is_sensor *pdata;
-       struct fimc_is_core *core = (struct fimc_is_core *)dev_get_drvdata(fimc_is_dev);
+       struct fimc_is_core *core = dev_get_drvdata(fimc_is_dev);
 
        BUG_ON(!device);
        BUG_ON(!device->pdev);
@@ -333,7 +333,7 @@ int fimc_is_companion_open(struct fimc_is_device_companion *device)
 
        BUG_ON(!device);
 
-       core = (struct fimc_is_core *)dev_get_drvdata(fimc_is_dev);
+       core = dev_get_drvdata(fimc_is_dev);
        spi_gpio = &core->spi_gpio;
 
        if (test_bit(FIMC_IS_COMPANION_OPEN, &device->state)) {
@@ -403,7 +403,7 @@ p_err:
 int fimc_is_companion_close(struct fimc_is_device_companion *device)
 {
        int ret = 0;
-       struct fimc_is_core *core = (struct fimc_is_core *)dev_get_drvdata(fimc_is_dev);
+       struct fimc_is_core *core = dev_get_drvdata(fimc_is_dev);
        if (!core) {
                err("core is NULL");
                return -EINVAL;
@@ -459,7 +459,7 @@ static int fimc_is_companion_probe(struct platform_device *pdev)
                return -EPROBE_DEFER;
        }
 
-       core = (struct fimc_is_core *)dev_get_drvdata(fimc_is_dev);
+       core = dev_get_drvdata(fimc_is_dev);
        if (!core) {
                err("core is NULL");
                return -EINVAL;
@@ -563,12 +563,12 @@ int fimc_is_companion_runtime_suspend(struct device *dev)
 
        info("%s\n", __func__);
 
-       core = (struct fimc_is_core *)dev_get_drvdata(fimc_is_dev);
+       core = dev_get_drvdata(fimc_is_dev);
        if (!core) {
                err("core is NULL");
                return -EINVAL;
        }
-       device = (struct fimc_is_device_companion *)platform_get_drvdata(pdev);
+       device = platform_get_drvdata(pdev);
        if (!device) {
                err("device is NULL");
                ret = -EINVAL;
@@ -609,12 +609,12 @@ int fimc_is_companion_runtime_resume(struct device *dev)
        struct fimc_is_device_companion *device;
        struct fimc_is_core *core;
 
-       core = (struct fimc_is_core *)dev_get_drvdata(fimc_is_dev);
+       core = dev_get_drvdata(fimc_is_dev);
        if (!core) {
                err("core is NULL");
                return -EINVAL;
        }
-       device = (struct fimc_is_device_companion *)platform_get_drvdata(pdev);
+       device = platform_get_drvdata(pdev);
        if (!device) {
                err("device is NULL");
                return -EINVAL;
index 38e5dba..ca4a8bf 100644 (file)
@@ -108,7 +108,7 @@ int fimc_is_csi_close(struct v4l2_subdev *subdev)
 }
 
 /* value : module enum */
-static int csi_init(struct v4l2_subdev *subdev, u32 value)
+static int csi_init(struct v4l2_subdev *subdev, void *value)
 {
        int ret = 0;
        struct fimc_is_device_csi *csi;
@@ -124,7 +124,7 @@ static int csi_init(struct v4l2_subdev *subdev, u32 value)
                goto p_err;
        }
 
-       module = (struct fimc_is_module_enum *)value;
+       module = value;
        csi->sensor_cfgs = module->cfgs;
        csi->sensor_cfg = module->cfg;
        csi->vcis = module->vcis;
@@ -145,7 +145,7 @@ static int csi_s_power(struct v4l2_subdev *subdev,
 
        BUG_ON(!subdev);
 
-       csi = (struct fimc_is_device_csi *)v4l2_get_subdevdata(subdev);
+       csi = v4l2_get_subdevdata(subdev);
        if (!csi) {
                err("csi is NULL");
                return -EINVAL;
@@ -231,7 +231,7 @@ static int csi_s_stream(struct v4l2_subdev *subdev, int enable)
 
        BUG_ON(!subdev);
 
-       csi = (struct fimc_is_device_csi *)v4l2_get_subdevdata(subdev);
+       csi = v4l2_get_subdevdata(subdev);
        if (!csi) {
                err("csi is NULL");
                return -EINVAL;
@@ -268,7 +268,7 @@ static int csi_s_param(struct v4l2_subdev *subdev, struct v4l2_streamparm *param
        cp = &param->parm.capture;
        tpf = &cp->timeperframe;
 
-       csi = (struct fimc_is_device_csi *)v4l2_get_subdevdata(subdev);
+       csi = v4l2_get_subdevdata(subdev);
        if (!csi) {
                err("csi is NULL");
                return -EINVAL;
@@ -288,7 +288,7 @@ static int csi_s_format(struct v4l2_subdev *subdev, struct v4l2_mbus_framefmt *f
        BUG_ON(!subdev);
        BUG_ON(!fmt);
 
-       csi = (struct fimc_is_device_csi *)v4l2_get_subdevdata(subdev);
+       csi = v4l2_get_subdevdata(subdev);
        if (!csi) {
                err("csi is NULL");
                return -EINVAL;
index 9c290c7..d1cfc52 100644 (file)
@@ -1434,7 +1434,7 @@ int fimc_is_flite_open(struct v4l2_subdev *subdev,
        struct fimc_is_device_flite *flite;
        struct fimc_is_core *core;
 
-       core = (struct fimc_is_core *)dev_get_drvdata(fimc_is_dev);
+       core = dev_get_drvdata(fimc_is_dev);
 
        BUG_ON(!core);
        BUG_ON(!subdev);
@@ -1476,7 +1476,7 @@ int fimc_is_flite_close(struct v4l2_subdev *subdev)
        struct fimc_is_device_flite *flite;
        struct fimc_is_core *core;
 
-       core = (struct fimc_is_core *)dev_get_drvdata(fimc_is_dev);
+       core = dev_get_drvdata(fimc_is_dev);
 
        BUG_ON(!core);
        BUG_ON(!subdev);
@@ -1495,7 +1495,7 @@ p_err:
 }
 
 /* value : csi ch */
-static int flite_init(struct v4l2_subdev *subdev, u32 value)
+static int flite_init(struct v4l2_subdev *subdev, void *value)
 {
        int ret = 0;
        struct fimc_is_device_flite *flite;
@@ -1509,7 +1509,7 @@ static int flite_init(struct v4l2_subdev *subdev, u32 value)
                goto p_err;
        }
 
-       flite->csi = value;
+       flite->csi = (long)value;
 
 p_err:
        return ret;
@@ -1747,7 +1747,7 @@ static int flite_s_stream(struct v4l2_subdev *subdev, int enable)
        nowait = (enable & FLITE_NOWAIT_MASK) >> FLITE_NOWAIT_SHIFT;
        enable = enable & FLITE_ENABLE_MASK;
 
-       flite = (struct fimc_is_device_flite *)v4l2_get_subdevdata(subdev);
+       flite = v4l2_get_subdevdata(subdev);
        if (!flite) {
                err("flite is NULL");
                ret = -EINVAL;
@@ -1781,7 +1781,7 @@ static int flite_s_format(struct v4l2_subdev *subdev, struct v4l2_mbus_framefmt
        BUG_ON(!subdev);
        BUG_ON(!fmt);
 
-       flite = (struct fimc_is_device_flite *)v4l2_get_subdevdata(subdev);
+       flite = v4l2_get_subdevdata(subdev);
        if (!flite) {
                err("flite is NULL");
                ret = -EINVAL;
@@ -1809,7 +1809,7 @@ static int flite_s_ctrl(struct v4l2_subdev *subdev, struct v4l2_control *ctrl)
        BUG_ON(!subdev);
        BUG_ON(!ctrl);
 
-       flite = (struct fimc_is_device_flite *)v4l2_get_subdevdata(subdev);
+       flite = v4l2_get_subdevdata(subdev);
        if (!flite) {
                err("flite is NULL");
                ret = -EINVAL;
index cc77bd5..de61d72 100644 (file)
@@ -99,7 +99,7 @@ static int isfw_debug_open(struct inode *inode, struct file *file)
        return 0;
 }
 
-static int isfw_debug_read(struct file *file, char __user *user_buf,
+static ssize_t isfw_debug_read(struct file *file, char __user *user_buf,
        size_t buf_len, loff_t *ppos)
 {
        char *debug;
@@ -117,14 +117,13 @@ static int isfw_debug_read(struct file *file, char __user *user_buf,
        count2 = 0;
        debug_cnt = 0;
        imemory = &device->imemory;
-       core = (struct fimc_is_core *)device->interface->core;
+       core = device->interface->core;
 
        if (atomic_read(&core->video_isp.refcount) <= 0) {
                err("isp video node is not open");
                goto exit;
        }
 
-#warning NOT IMPLEMENTED
 #if 0
        vb2_ion_sync_for_device(imemory->fw_cookie, DEBUG_OFFSET,
                DEBUG_CNT, DMA_FROM_DEVICE);
@@ -167,7 +166,7 @@ static int isfw_debug_read(struct file *file, char __user *user_buf,
                core->debug_cnt = count2;
        }
 
-       info("FW_READ : Origin(%d), New(%d) - Length(%d)\n",
+       info("FW_READ : Origin(%zd), New(%d) - Length(%zd)\n",
                backup_cnt,
                core->debug_cnt,
                (buf_len - buf_count));
@@ -683,7 +682,6 @@ static int fimc_is_ishcain_deinitmem(struct fimc_is_device_ischain *device)
 static void fimc_is_ischain_cache_flush(struct fimc_is_device_ischain *this,
        u32 offset, u32 size)
 {
-#warning NOT IMPLEMENTED
 #if 0
        vb2_ion_sync_for_device(this->imemory.fw_cookie,
                offset,
@@ -694,7 +692,6 @@ static void fimc_is_ischain_cache_flush(struct fimc_is_device_ischain *this,
 
 static void fimc_is_ischain_region_invalid(struct fimc_is_device_ischain *device)
 {
-#warning NOT IMPLEMENTED
 #if 0
        vb2_ion_sync_for_device(
                device->imemory.fw_cookie,
@@ -706,7 +703,6 @@ static void fimc_is_ischain_region_invalid(struct fimc_is_device_ischain *device
 
 static void fimc_is_ischain_region_flush(struct fimc_is_device_ischain *device)
 {
-#warning NOT IMPLEMENTED
 #if 0
        vb2_ion_sync_for_device(
                device->imemory.fw_cookie,
@@ -718,7 +714,6 @@ static void fimc_is_ischain_region_flush(struct fimc_is_device_ischain *device)
 
 void fimc_is_ischain_meta_flush(struct fimc_is_frame *frame)
 {
-#warning NOT IMPLEMENTED
 #if 0
 #ifdef ENABLE_CACHE
        vb2_ion_sync_for_device(
@@ -732,7 +727,6 @@ void fimc_is_ischain_meta_flush(struct fimc_is_frame *frame)
 
 void fimc_is_ischain_meta_invalid(struct fimc_is_frame *frame)
 {
-#warning NOT IMPLEMENTED
 #if 0
 #ifdef ENABLE_CACHE
        vb2_ion_sync_for_device(
@@ -778,7 +772,7 @@ static int fimc_is_ischain_loadfirm(struct fimc_is_device_ischain *device)
        u8 *buf = NULL;
 #ifdef USE_ION_ALLOC
        struct ion_handle *handle = NULL;
-       struct fimc_is_core *core = (struct fimc_is_core *)platform_get_drvdata(device->pdev);
+       struct fimc_is_core *core = platform_get_drvdata(device->pdev);
 #endif
 #ifdef SDCARD_FW
        struct file *fp = NULL;
@@ -1003,7 +997,7 @@ static int fimc_is_ischain_loadsetf(struct fimc_is_device_ischain *device,
        u8 *buf = NULL;
 #ifdef USE_ION_ALLOC
        struct ion_handle *handle = NULL;
-       struct fimc_is_core *core = (struct fimc_is_core *)platform_get_drvdata(device->pdev);
+       struct fimc_is_core *core = platform_get_drvdata(device->pdev);
 #endif
 
 #ifdef SDCARD_FW
@@ -1081,8 +1075,8 @@ static int fimc_is_ischain_loadsetf(struct fimc_is_device_ischain *device,
                goto out;
        }
 
-       address = (void *)(device->imemory.kvaddr + load_addr);
-       memcpy((void *)address, (void *)buf, fsize);
+       address = (device->imemory.kvaddr + load_addr);
+       memcpy(address, buf, fsize);
        fimc_is_ischain_cache_flush(device, load_addr, fsize + 1);
        fimc_is_ischain_version(device, setfile_name, buf, fsize);
 
@@ -1118,7 +1112,7 @@ request_fw:
                        goto out;
                }
 
-               address = (void *)(device->imemory.kvaddr + load_addr);
+               address = (device->imemory.kvaddr + load_addr);
                memcpy(address, fw_blob->data, fw_blob->size);
                fimc_is_ischain_cache_flush(device, load_addr, fw_blob->size + 1);
                fimc_is_ischain_version(device, setfile_name, fw_blob->data,
@@ -1177,7 +1171,7 @@ static int fimc_is_ischain_loadcalb(struct fimc_is_device_ischain *device,
        struct fimc_is_from_info *sysfs_finfo;
        char *cal_buf;
 
-       struct fimc_is_core *core = (struct fimc_is_core *)platform_get_drvdata(device->pdev);
+       struct fimc_is_core *core = platform_get_drvdata(device->pdev);
        mdbgd_ischain("%s\n", device, __func__);
 
        cal_ptr = (char *)(device->imemory.kvaddr + FIMC_IS_CAL_START_ADDR);
@@ -1245,7 +1239,7 @@ static void fimc_is_a5_power(struct device *dev, int power_flags)
                BUG();
        }
 
-       core = (struct fimc_is_core *)dev_get_drvdata(fimc_is_dev);
+       core = dev_get_drvdata(fimc_is_dev);
        if (!core) {
                err("core is NULL");
                BUG();
@@ -1285,7 +1279,7 @@ int fimc_is_ischain_power(struct fimc_is_device_ischain *device, int on)
        char setf_name[100];
 
        struct device *dev = &device->pdev->dev;
-       struct fimc_is_core *core = (struct fimc_is_core *)platform_get_drvdata(device->pdev);
+       struct fimc_is_core *core = platform_get_drvdata(device->pdev);
        struct fimc_is_from_info *sysfs_finfo;
 
        if (on) {
@@ -1342,7 +1336,7 @@ int fimc_is_ischain_power(struct fimc_is_device_ischain *device, int on)
                writel(device->imemory.dvaddr, device->regs + BBOAR);
                val = __raw_readl(device->regs + BBOAR);
                if(device->imemory.dvaddr != val)
-                       err("dvaddr : %x , BBOAR : %x", device->imemory.dvaddr,val);
+                       err("dvaddr : %pad , BBOAR : %x", &(device->imemory.dvaddr), val);
 
                exynos_smc(SMC_CMD_REG, SMC_REG_ID_SFR_W(PA_FIMC_IS_GIC_C + 0x4), 0x000000FF, 0);
                for (i = 0; i < 3; i++)
@@ -1407,7 +1401,7 @@ static int fimc_is_itf_s_param(struct fimc_is_device_ischain *device,
 {
        int ret = 0;
        u32 flag, index;
-       u32 dst_base, src_base;
+       void *dst_base, *src_base;
 
        BUG_ON(!device);
 
@@ -1417,14 +1411,14 @@ static int fimc_is_itf_s_param(struct fimc_is_device_ischain *device,
                        BUG();
                }
 
-               dst_base = (u32)&device->is_region->parameter;
-               src_base = (u32)frame->shot->ctl.entry.parameter;
+               dst_base = &device->is_region->parameter;
+               src_base = frame->shot->ctl.entry.parameter;
 
                for (index = 0; lindex && (index < 32); index++) {
                        flag = 1 << index;
                        if (lindex & flag) {
-                               memcpy((u32 *)(dst_base + (index * PARAMETER_MAX_SIZE)),
-                                       (u32 *)(src_base + (index * PARAMETER_MAX_SIZE)),
+                               memcpy((dst_base + (index * PARAMETER_MAX_SIZE)),
+                                       (src_base + (index * PARAMETER_MAX_SIZE)),
                                        PARAMETER_MAX_SIZE);
                                lindex &= ~flag;
                        }
@@ -1433,8 +1427,8 @@ static int fimc_is_itf_s_param(struct fimc_is_device_ischain *device,
                for (index = 0; hindex && (index < 32); index++) {
                        flag = 1 << index;
                        if (hindex & flag) {
-                               memcpy((u32 *)(dst_base + ((32 + index) * PARAMETER_MAX_SIZE)),
-                                       (u32 *)(src_base + ((32 + index) * PARAMETER_MAX_SIZE)),
+                               memcpy((dst_base + ((32 + index) * PARAMETER_MAX_SIZE)),
+                                       (src_base + ((32 + index) * PARAMETER_MAX_SIZE)),
                                        PARAMETER_MAX_SIZE);
                                hindex &= ~flag;
                        }
@@ -1469,7 +1463,7 @@ static void * fimc_is_itf_g_param(struct fimc_is_device_ischain *device,
        struct fimc_is_frame *frame,
        u32 index)
 {
-       u32 dst_base, src_base, dst_param, src_param;
+       void *dst_base, *src_base, *dst_param, *src_param;
 
        BUG_ON(!device);
 
@@ -1479,13 +1473,13 @@ static void * fimc_is_itf_g_param(struct fimc_is_device_ischain *device,
                        BUG();
                }
 
-               dst_base = (u32)&frame->shot->ctl.entry.parameter[0];
+               dst_base = &frame->shot->ctl.entry.parameter[0];
                dst_param = (dst_base + (index * PARAMETER_MAX_SIZE));
-               src_base = (u32)&device->is_region->parameter;
+               src_base = &device->is_region->parameter;
                src_param = (src_base + (index * PARAMETER_MAX_SIZE));
-               memcpy((u32 *)dst_param, (u32 *)src_param, PARAMETER_MAX_SIZE);
+               memcpy(dst_param, src_param, PARAMETER_MAX_SIZE);
        } else {
-               dst_base = (u32)&device->is_region->parameter;
+               dst_base = &device->is_region->parameter;
                dst_param = (dst_base + (index * PARAMETER_MAX_SIZE));
        }
 
@@ -2284,7 +2278,7 @@ static int fimc_is_itf_grp_shot(struct fimc_is_device_ischain *device,
 
        if (frame->shot->magicNumber != SHOT_MAGIC_NUMBER) {
                merr("shot magic number error(0x%08X)\n", device, frame->shot->magicNumber);
-               merr("shot_ext size : %d", device, sizeof(struct camera2_shot_ext));
+               merr("shot_ext size : %ld", device, sizeof(struct camera2_shot_ext));
                ret = -EINVAL;
                goto p_err;
        }
@@ -2338,7 +2332,7 @@ int fimc_is_ischain_probe(struct fimc_is_device_ischain *device,
        struct fimc_is_mem *mem,
        struct platform_device *pdev,
        u32 instance,
-       u32 regs)
+       void * regs)
 {
        int ret = 0;
        struct fimc_is_subdev *scc, *dis, *scp;
@@ -2534,8 +2528,6 @@ int fimc_is_ischain_open(struct fimc_is_device_ischain *device,
        imemory                 = &device->imemory;
        imemory->base           = minfo->base;
        imemory->size           = minfo->size;
-       imemory->vaddr_base     = minfo->vaddr_base;
-       imemory->vaddr_curr     = minfo->vaddr_curr;
        imemory->fw_cookie      = minfo->fw_cookie;
        imemory->dvaddr         = minfo->dvaddr;
        imemory->kvaddr         = minfo->kvaddr;
@@ -2550,8 +2542,7 @@ int fimc_is_ischain_open(struct fimc_is_device_ischain *device,
        imemory->dvaddr_region  = imemory->dvaddr + imemory->offset_region;
        imemory->kvaddr_region  = imemory->kvaddr + imemory->offset_region;
        imemory->is_region      = (struct is_region *)imemory->kvaddr_region;
-       imemory->offset_shared  = (u32)&imemory->is_region->shared[0] -
-               imemory->kvaddr;
+       imemory->offset_shared  = (void *)(&imemory->is_region->shared[0]) - imemory->kvaddr;
        imemory->dvaddr_shared  = imemory->dvaddr + imemory->offset_shared;
        imemory->kvaddr_shared  = imemory->kvaddr + imemory->offset_shared;
        device->is_region = imemory->is_region;
@@ -2597,7 +2588,7 @@ int fimc_is_ischain_close(struct fimc_is_device_ischain *device,
        group = &device->group_isp;
        leader = &group->leader;
        queue = GET_SRC_QUEUE(vctx);
-       core = (struct fimc_is_core *)device->interface->core;
+       core = device->interface->core;
        refcount = atomic_read(&vctx->video->refcount);
        spi_gpio = &core->spi_gpio;
        if (refcount < 0) {
@@ -2792,7 +2783,7 @@ int fimc_is_ischain_init_wrap(struct fimc_is_device_ischain *device,
 
        mdbgd_ischain("%s(input : %08X)\n", device, __func__, input);
 
-       core = (struct fimc_is_core *)platform_get_drvdata(device->pdev);
+       core = platform_get_drvdata(device->pdev);
 
        module = input & MODULE_MASK;
        ssx_vindex = (input & SSX_VINDEX_MASK) >> SSX_VINDEX_SHIFT;
@@ -2991,13 +2982,13 @@ static int fimc_is_ischain_s_3aa_size(struct fimc_is_device_ischain *device,
        /* check crop size */
        if (test_bit(FIMC_IS_GROUP_OTF_INPUT, &device->group_3aa.state)) {
                if (bns_width <= total_width) {
-                       merr("crop width(%d) is bigger than input width(%d)\n",
+                       merr("crop width(%zd) is bigger than input width(%zd)\n",
                                device, total_width, bns_width);
                        goto p_err;
                }
 
                if (bns_height <= total_height) {
-                       merr("crop height(%d) is bigger than input height(%d)\n",
+                       merr("crop height(%zd) is bigger than input height(%zd)\n",
                                device, total_height, bns_height);
                        goto p_err;
                }
@@ -3009,13 +3000,13 @@ static int fimc_is_ischain_s_3aa_size(struct fimc_is_device_ischain *device,
                taa_dma_input->cmd = DMA_INPUT_COMMAND_DISABLE;
        } else {
                if (sensor_width <= total_width) {
-                       merr("crop width(%d) is bigger than input width(%d)\n",
+                       merr("crop width(%zd) is bigger than input width(%zd)\n",
                                device, total_width, sensor_width);
                        goto p_err;
                }
 
                if (sensor_height <= total_height) {
-                       merr("crop height(%d) is bigger than input height(%d)\n",
+                       merr("crop height(%zd) is bigger than input height(%zd)\n",
                                device, total_height, sensor_height);
                        goto p_err;
                }
@@ -6585,11 +6576,11 @@ const struct fimc_is_queue_ops fimc_is_ischain_vdo_ops = {
 };
 
 int fimc_is_ischain_g_capability(struct fimc_is_device_ischain *this,
-       u32 user_ptr)
+       void *user_ptr)
 {
        int ret = 0;
 
-       ret = copy_to_user((void *)user_ptr, &this->capability,
+       ret = copy_to_user(user_ptr, &this->capability,
                sizeof(struct camera2_sm));
 
        return ret;
@@ -6632,8 +6623,8 @@ int fimc_is_ischain_3aa_callback(struct fimc_is_device_ischain *device,
        }
 
        if (unlikely(frame != check_frame)) {
-               merr("frame checking is fail(%X != %X)", device,
-                       (u32)frame, (u32)check_frame);
+               merr("frame checking is fail(%p != %p)", device,
+                       frame, check_frame);
                ret = -EINVAL;
                goto p_err;
        }
@@ -6826,8 +6817,8 @@ int fimc_is_ischain_isp_callback(struct fimc_is_device_ischain *device,
        }
 
        if (unlikely(frame != check_frame)) {
-               merr("frame checking is fail(%X != %X)", device,
-                       (u32)frame, (u32)check_frame);
+               merr("frame checking is fail(%p != %p)", device,
+                       frame, check_frame);
                ret = -EINVAL;
                goto p_err;
        }
@@ -7026,8 +7017,8 @@ int fimc_is_ischain_isp_callback(struct fimc_is_device_ischain *device,
 #ifdef PRINT_PARAM
        if (frame->fcount == 1) {
                fimc_is_hw_memdump(device->interface,
-                       (u32) &device->is_region->parameter,
-                       (u32) &device->is_region->parameter + sizeof(device->is_region->parameter));
+                       &device->is_region->parameter,
+                       ((void *)&device->is_region->parameter) + sizeof(device->is_region->parameter));
        }
 #endif
 
@@ -7078,8 +7069,8 @@ int fimc_is_ischain_dis_callback(struct fimc_is_device_ischain *device,
        fimc_is_frame_request_head(framemgr, &frame);
 
        if (frame != check_frame) {
-               merr("grp_frame is invalid(%X != %X)", device,
-                       (u32)frame, (u32)check_frame);
+               merr("grp_frame is invalid(%p != %p)", device,
+                       frame, check_frame);
                return -EINVAL;
        }
 
index 0af407b..a84b070 100644 (file)
@@ -149,35 +149,31 @@ struct fimc_is_ishcain_mem {
        dma_addr_t              base;
        /* total length */
        size_t                  size;
-       /* buffer base */
-       dma_addr_t              vaddr_base;
-       /* current addr */
-       dma_addr_t              vaddr_curr;
        void                    *fw_cookie;
 
        /* fw memory base */
-       u32                     dvaddr;
-       u32                     kvaddr;
+       dma_addr_t              dvaddr;
+       void *                  kvaddr;
        /* debug part of fw memory */
-       u32                     dvaddr_debug;
-       u32                     kvaddr_debug;
+       dma_addr_t              dvaddr_debug;
+       void *                  kvaddr_debug;
        /* is region part of fw memory */
        u32                     offset_region;
-       u32                     dvaddr_region;
-       u32                     kvaddr_region;
+       dma_addr_t              dvaddr_region;
+       void *                  kvaddr_region;
        /* shared part of is region */
        u32                     offset_shared;
-       u32                     dvaddr_shared;
-       u32                     kvaddr_shared;
+       dma_addr_t              dvaddr_shared;
+       void *                  kvaddr_shared;
        /* internal memory for ODC */
-       u32                     dvaddr_odc;
-       u32                     kvaddr_odc;
+       dma_addr_t              dvaddr_odc;
+       void *                  kvaddr_odc;
        /* internal memory for DIS */
-       u32                     dvaddr_dis;
-       u32                     kvaddr_dis;
+       dma_addr_t              dvaddr_dis;
+       void *                  kvaddr_dis;
        /* internal memory for 3DNR */
-       u32                     dvaddr_3dnr;
-       u32                     kvaddr_3dnr;
+       dma_addr_t              dvaddr_3dnr;
+       void *                  kvaddr_3dnr;
 
        struct is_region        *is_region;
 };
@@ -262,7 +258,7 @@ struct fimc_is_device_ischain {
        u32                                     chain3_height;
        struct fimc_is_subdev                   fd;
 
-       u32                                     private_data;
+       void *                                  private_data;
        struct fimc_is_device_sensor            *sensor;
 };
 
@@ -274,7 +270,7 @@ int fimc_is_ischain_probe(struct fimc_is_device_ischain *device,
        struct fimc_is_mem *mem,
        struct platform_device *pdev,
        u32 instance,
-       u32 regs);
+       void * regs);
 int fimc_is_ischain_open(struct fimc_is_device_ischain *device,
        struct fimc_is_video_ctx *vctx,
        struct fimc_is_minfo *minfo);
@@ -283,7 +279,7 @@ int fimc_is_ischain_close(struct fimc_is_device_ischain *device,
 int fimc_is_ischain_init_wrap(struct fimc_is_device_ischain *device,
        u32 input);
 int fimc_is_ischain_g_capability(struct fimc_is_device_ischain *this,
-       u32 user_ptr);
+       void *user_ptr);
 void fimc_is_ischain_meta_invalid(struct fimc_is_frame *frame);
 
 /* 3AA subdev */
index 2a14f9e..1cf4f45 100644 (file)
@@ -1369,7 +1369,7 @@ static int fimc_is_ois_probe(struct i2c_client *client,
                return -EPROBE_DEFER;
        }
 
-       core = (struct fimc_is_core *)dev_get_drvdata(fimc_is_dev);
+       core = dev_get_drvdata(fimc_is_dev);
        if (!core)
                return -EINVAL;
 
index 34f0af2..ec869fe 100644 (file)
@@ -319,7 +319,7 @@ static int fimc_is_sensor_gpio_on(struct fimc_is_device_sensor *device)
 {
        int ret = 0;
        struct exynos_platform_fimc_is_sensor *pdata;
-       struct fimc_is_core *core = (struct fimc_is_core *)dev_get_drvdata(fimc_is_dev);
+       struct fimc_is_core *core = dev_get_drvdata(fimc_is_dev);
 
        BUG_ON(!device);
        BUG_ON(!device->pdev);
@@ -360,7 +360,7 @@ static int fimc_is_sensor_gpio_off(struct fimc_is_device_sensor *device)
 {
        int ret = 0;
        struct exynos_platform_fimc_is_sensor *pdata;
-       struct fimc_is_core *core = (struct fimc_is_core *)dev_get_drvdata(fimc_is_dev);
+       struct fimc_is_core *core = dev_get_drvdata(fimc_is_dev);
 
        BUG_ON(!device);
        BUG_ON(!device->pdev);
@@ -636,7 +636,7 @@ static int fimc_is_sensor_notify_by_fend(struct fimc_is_device_sensor *device, v
                fimc_is_sensor_dtp((unsigned long)device);
 #endif
 
-       frame = (struct fimc_is_frame *)arg;
+       frame = arg;
        if (frame) {
                frame->has_fcount = false;
                buffer_done(device->vctx, frame->index);
@@ -747,7 +747,7 @@ static int fimc_is_sensor_probe(struct platform_device *pdev)
                return -EPROBE_DEFER;
        }
 
-       core = (struct fimc_is_core *)dev_get_drvdata(fimc_is_dev);
+       core = dev_get_drvdata(fimc_is_dev);
        if (!core) {
                err("core is NULL");
                return -EINVAL;
@@ -860,7 +860,7 @@ int fimc_is_sensor_open(struct fimc_is_device_sensor *device,
        struct fimc_is_video_ctx *vctx)
 {
        int ret = 0;
-       struct fimc_is_core *core = (struct fimc_is_core *)dev_get_drvdata(fimc_is_dev);
+       struct fimc_is_core *core = dev_get_drvdata(fimc_is_dev);
        struct exynos_platform_fimc_is_sensor *pdata;
 
        BUG_ON(!device);
@@ -942,7 +942,7 @@ int fimc_is_sensor_close(struct fimc_is_device_sensor *device)
        int ret = 0;
        struct fimc_is_device_ischain *ischain;
        struct fimc_is_group *group_3aa;
-       struct fimc_is_core *core = (struct fimc_is_core *)dev_get_drvdata(fimc_is_dev);
+       struct fimc_is_core *core = dev_get_drvdata(fimc_is_dev);
        struct exynos_platform_fimc_is_sensor *pdata;
 
        BUG_ON(!device);
@@ -1147,13 +1147,13 @@ int fimc_is_sensor_s_input(struct fimc_is_device_sensor *device,
                goto p_err;
        }
 
-       ret = v4l2_subdev_call(subdev_flite, core, init, device->pdata->csi_ch);
+       ret = v4l2_subdev_call(subdev_flite, core, init, (void *)(long)device->pdata->csi_ch);
        if (ret) {
                merr("v4l2_flite_call(init) is fail(%d)", device, ret);
                goto p_err;
        }
 
-       ret = v4l2_subdev_call(subdev_csi, core, init, (u32)module);
+       ret = v4l2_subdev_call(subdev_csi, core, init, module);
        if (ret) {
                merr("v4l2_csi_call(init) is fail(%d)", device, ret);
                goto p_err;
@@ -1196,7 +1196,7 @@ int fimc_is_sensor_s_format(struct fimc_is_device_sensor *device,
        subdev_csi = device->subdev_csi;
        subdev_flite = device->subdev_flite;
 
-       module = (struct fimc_is_module_enum *)v4l2_get_subdevdata(subdev_module);
+       module = v4l2_get_subdevdata(subdev_module);
        if (!module) {
                merr("module is NULL", device);
                goto p_err;
@@ -1292,7 +1292,7 @@ int fimc_is_sensor_s_framerate(struct fimc_is_device_sensor *device,
                goto p_err;
        }
 
-       module = (struct fimc_is_module_enum *)v4l2_get_subdevdata(subdev_module);
+       module = v4l2_get_subdevdata(subdev_module);
        if (!module) {
                merr("module is NULL", device);
                ret = -EINVAL;
@@ -1574,7 +1574,7 @@ int fimc_is_sensor_g_bratio(struct fimc_is_device_sensor *device)
        BUG_ON(!device);
        BUG_ON(!device->subdev_module);
 
-       module = (struct fimc_is_module_enum *)v4l2_get_subdevdata(device->subdev_module);
+       module = v4l2_get_subdevdata(device->subdev_module);
        if (!module) {
                merr("module is NULL", device);
                goto p_err;
@@ -1595,7 +1595,7 @@ int fimc_is_sensor_g_module(struct fimc_is_device_sensor *device,
        BUG_ON(!device);
        BUG_ON(!device->subdev_module);
 
-       *module = (struct fimc_is_module_enum *)v4l2_get_subdevdata(device->subdev_module);
+       *module = v4l2_get_subdevdata(device->subdev_module);
        if (!*module) {
                merr("module is NULL", device);
                ret = -EINVAL;
@@ -1714,7 +1714,7 @@ int fimc_is_sensor_back_start(struct fimc_is_device_sensor *device)
                goto p_err;
        }
 
-       flite = (struct fimc_is_device_flite *)v4l2_get_subdevdata(subdev_flite);
+       flite = v4l2_get_subdevdata(subdev_flite);
        if (!flite) {
                merr("flite is NULL", device);
                ret = -EINVAL;
@@ -1804,7 +1804,7 @@ int fimc_is_sensor_front_start(struct fimc_is_device_sensor *device,
                goto p_err;
        }
 
-       module = (struct fimc_is_module_enum *)v4l2_get_subdevdata(subdev_module);
+       module = v4l2_get_subdevdata(subdev_module);
        if (!module) {
                merr("module is NULL", device);
                ret = -EINVAL;
@@ -1932,7 +1932,7 @@ int fimc_is_sensor_runtime_suspend(struct device *dev)
 
        BUG_ON(!pdev);
 
-       device = (struct fimc_is_device_sensor *)platform_get_drvdata(pdev);
+       device = platform_get_drvdata(pdev);
        if (!device) {
                err("device is NULL");
                return -EINVAL;
@@ -1977,7 +1977,7 @@ int fimc_is_sensor_runtime_resume(struct device *dev)
        struct fimc_is_device_sensor *device;
        struct v4l2_subdev *subdev_csi;
 
-       device = (struct fimc_is_device_sensor *)platform_get_drvdata(pdev);
+       device = platform_get_drvdata(pdev);
        if (!device) {
                err("device is NULL");
                return -EINVAL;
index 76746cc..dee1522 100644 (file)
@@ -152,7 +152,7 @@ int fimc_is_power_setpin(struct device *dev, int position, int sensor_id)
                return -ENODEV;
        }
 
-       core = (struct fimc_is_core *)dev_get_drvdata(fimc_is_dev);
+       core = dev_get_drvdata(fimc_is_dev);
        if (!core) {
                err("core is NULL");
                return -EINVAL;
index d04c241..19a5fe9 100644 (file)
@@ -124,9 +124,9 @@ struct fimc_is_frame {
        /* group leader use */
        struct camera2_shot     *shot;
        struct camera2_shot_ext *shot_ext;
-       u32                     kvaddr_shot;
-       u32                     dvaddr_shot;
-       u32                     cookie_shot;
+       void *                  kvaddr_shot;
+       dma_addr_t              dvaddr_shot;
+       void *                  cookie_shot;
        u32                     shot_size;
 
        /* stream use */
@@ -135,8 +135,8 @@ struct fimc_is_frame {
 
        /* common use */
        u32                     planes;
-       u32                     kvaddr_buffer[FIMC_IS_MAX_PLANES];
-       u32                     dvaddr_buffer[FIMC_IS_MAX_PLANES];
+       void *                  kvaddr_buffer[FIMC_IS_MAX_PLANES];
+       dma_addr_t              dvaddr_buffer[FIMC_IS_MAX_PLANES];
 
        /* internal use */
        unsigned long           memory;
index f931a15..b06920b 100644 (file)
@@ -614,7 +614,7 @@ int fimc_is_group_open(struct fimc_is_groupmgr *groupmgr,
 
        leader = &group->leader;
        framemgr = GET_SRC_FRAMEMGR(vctx);
-       core = (struct fimc_is_core *)device->interface->core;
+       core = device->interface->core;
 
        mdbgd_ischain("%s(id %d)\n", device, __func__, id);
 
@@ -1330,8 +1330,8 @@ int fimc_is_group_buffer_queue(struct fimc_is_groupmgr *groupmgr,
 
        if (frame->state == FIMC_IS_FRAME_STATE_FREE) {
                if (frame->req_flag) {
-                       merr("req_flag of buffer%d is not clear(%08X)",
-                               group, frame->index, (u32)frame->req_flag);
+                       merr("req_flag of buffer%d is not clear(%08lX)",
+                               group, frame->index, frame->req_flag);
                        frame->req_flag = 0;
                }
 
index 26c1417..e4d776b 100644 (file)
@@ -1878,7 +1878,7 @@ static void wq_func_shot(struct work_struct *data)
 
        get_req_work(work_list, &work);
        while (work) {
-               core = (struct fimc_is_core *)itf->core;
+               core = itf->core;
                instance = work->msg.instance;
                group_id = work->msg.group;
                device = &((struct fimc_is_core *)itf->core)->ischain[instance];
@@ -1953,8 +1953,8 @@ static void wq_func_shot(struct work_struct *data)
 
                        clear_bit(req_flag, &frame->req_flag);
                        if (frame->req_flag)
-                               merr("group(%d) req flag is not clear all(%X)",
-                                       device, group->id, (u32)frame->req_flag);
+                               merr("group(%d) req flag is not clear all(%lX)",
+                                       device, group->id, frame->req_flag);
 
                        wq_func_group(groupmgr, group, grp_framemgr, frame,
                                vctx, status1, status2, fcount);
@@ -2158,7 +2158,7 @@ static irqreturn_t interface_isr(int irq, void *data)
        struct fimc_is_work *work;
        u32 status;
 
-       itf = (struct fimc_is_interface *)data;
+       itf = data;
        status = fimc_is_get_intr(itf);
 
        if (status & (1<<INTR_SHOT_DONE)) {
@@ -2298,12 +2298,12 @@ static irqreturn_t interface_isr(int irq, void *data)
 
 #define VERSION_OF_NO_NEED_IFLAG 221
 int fimc_is_interface_probe(struct fimc_is_interface *this,
-       u32 regs,
+       void *regs,
        u32 irq,
        void *core_data)
 {
        int ret = 0;
-       struct fimc_is_core *core = (struct fimc_is_core *)core_data;
+       struct fimc_is_core *core = core_data;
 
        dbg_interface("%s\n", __func__);
 
@@ -2326,8 +2326,8 @@ int fimc_is_interface_probe(struct fimc_is_interface *this,
        INIT_WORK(&this->work_wq[INTR_SCP_FDONE], wq_func_scp);
        INIT_WORK(&this->work_wq[INTR_SHOT_DONE], wq_func_shot);
 
-       this->regs = (void *)regs;
-       this->com_regs = (struct is_common_reg *)(regs + ISSR0);
+       this->regs = regs;
+       this->com_regs = (regs + ISSR0);
 
        if (GET_FIMC_IS_VER_OF_SUBIP(core, mcuctl) < VERSION_OF_NO_NEED_IFLAG)
                this->need_iflag = true;
@@ -2490,10 +2490,9 @@ int fimc_is_hw_logdump(struct fimc_is_interface *this)
 
        pr_err("\n### firmware messsage dump ###\n");
 
-       core = (struct fimc_is_core *)this->core;
+       core = this->core;
        sentence_i = 0;
 
-#warning NOT IMPLEMENTED
 #if 0
        vb2_ion_sync_for_device(core->minfo.fw_cookie,
                DEBUG_OFFSET, DEBUG_CNT, DMA_FROM_DEVICE);
@@ -2566,8 +2565,8 @@ p_err:
 }
 
 int fimc_is_hw_memdump(struct fimc_is_interface *this,
-       u32 start,
-       u32 end)
+       void *start,
+       void *end)
 {
        int ret = 0;
        u32 *cur;
@@ -2580,14 +2579,14 @@ int fimc_is_hw_memdump(struct fimc_is_interface *this,
                goto p_err;
        }
 
-       cur = (u32 *)start;
+       cur = start;
        items = 0;
        offset = 0;
 
        memset(sentence, 0, sizeof(sentence));
-       printk(KERN_ERR "Memory Dump(0x%08X ~ 0x%08X)\n", start, end);
+       printk(KERN_ERR "Memory Dump(%p ~ %p)\n", start, end);
 
-       while ((u32)cur <= end) {
+       while ((void *)cur <= end) {
                if (!(items % 8)) {
                        printk(KERN_ERR "%s", sentence);
                        offset = 0;
@@ -2603,7 +2602,7 @@ int fimc_is_hw_memdump(struct fimc_is_interface *this,
                items++;
        }
 
-       ret = (u32)cur - end;
+       ret = (void *)cur - end;
 
 p_err:
        return ret;
index e3cc4be..d4ea64e 100644 (file)
@@ -161,7 +161,7 @@ struct fimc_is_interface {
 };
 
 int fimc_is_interface_probe(struct fimc_is_interface *this,
-       u32 regs,
+       void *regs,
        u32 irq,
        void *core_data);
 int fimc_is_interface_open(struct fimc_is_interface *this);
@@ -178,8 +178,8 @@ int fimc_is_hw_msg_test(struct fimc_is_interface *this, u32 sync_id, u32 msg_tes
 int fimc_is_hw_logdump(struct fimc_is_interface *this);
 int fimc_is_hw_regdump(struct fimc_is_interface *this);
 int fimc_is_hw_memdump(struct fimc_is_interface *this,
-       u32 start,
-       u32 end);
+       void *start,
+       void *end);
 int fimc_is_hw_enum(struct fimc_is_interface *this);
 int fimc_is_hw_open(struct fimc_is_interface *this,
        u32 instance, u32 module, u32 info, u32 group, u32 flag,
index d128c35..0186ba0 100644 (file)
 #include "fimc-is-regs.h"
 #include "fimc-is-err.h"
 
-#ifdef IOC_ALLOC
-static void *fimc_is_ion_init(struct platform_device *pdev)
+static dma_addr_t plane_addr(struct vb2_buffer *vb, u32 plane_no)
 {
-       return vb2_ion_create_context(&pdev->dev, SZ_4K,
-                                       VB2ION_CTX_IOMMU |
-                                       VB2ION_CTX_VMCONTIG |
-                                       VB2ION_CTX_KVA_ONDEMAND);
-}
-#endif
-
-static unsigned long plane_addr(struct vb2_buffer *vb, u32 plane_no)
-{
-#ifdef IOC_ALLOC
-       void *cookie = vb2_plane_cookie(vb, plane_no);
-       dma_addr_t dva = 0;
-
-       WARN_ON(vb2_ion_dma_address(cookie, &dva) != 0);
-#else
        return vb2_dma_contig_plane_dma_addr(vb, plane_no);
-#endif
 }
 
-static unsigned long plane_kvaddr(struct vb2_buffer *vb, u32 plane_no)
+static void * plane_kvaddr(struct vb2_buffer *vb, u32 plane_no)
 {
        void *kvaddr = vb2_plane_vaddr(vb, plane_no);
 
-       return (unsigned long)kvaddr;
+       return kvaddr;
 }
 
 
@@ -90,19 +73,6 @@ void vb2_null_destroy_context(void *ctx)
 
 }
 
-#ifdef IOC_ALLOC
-const struct fimc_is_vb2 fimc_is_vb2_ion = {
-       .ops            = &vb2_ion_memops,
-       .init           = fimc_is_ion_init,
-       .cleanup        = vb2_ion_destroy_context,
-       .plane_addr     = plane_addr,
-       .plane_kvaddr   = plane_kvaddr,
-       .resume         = vb2_ion_attach_iommu,
-       .suspend        = vb2_ion_detach_iommu,
-       .set_cacheable  = vb2_ion_set_cached,
-};
-#define fimc_is_vb2_allocator (&fimc_is_vb2_ion)
-#else
 const struct fimc_is_vb2 fimc_is_vb2_dc = {
        .ops            = &vb2_dma_contig_memops,
        .init           = fimc_is_dma_contig_init,
@@ -114,7 +84,6 @@ const struct fimc_is_vb2 fimc_is_vb2_dc = {
        .set_cacheable  = vb2_null_set_cached,
 };
 #define fimc_is_vb2_allocator (&fimc_is_vb2_dc)
-#endif
 
 int fimc_is_mem_probe(struct fimc_is_mem *this,
        struct platform_device *pdev)
@@ -129,10 +98,6 @@ int fimc_is_mem_probe(struct fimc_is_mem *this,
                goto p_err;
        }
 
-#ifdef IOC_ALLOC
-       /* FIXME: should be different by device type */
-       exynos_create_iovmm(&pdev->dev, 1, 4);
-#endif
 p_err:
        return ret;
 }
index 4000162..3da243f 100644 (file)
 
 #include <linux/platform_device.h>
 #include <media/videobuf2-core.h>
-#if defined(CONFIG_VIDEOBUF2_CMA_PHYS)
-#include <media/videobuf2-cma-phys.h>
-#elif defined(CONFIG_VIDEOBUF2_ION)
-#include <media/videobuf2-ion.h>
-#endif
 
 struct fimc_is_minfo {
        dma_addr_t      base;           /* buffer base */
        size_t          size;           /* total length */
-       dma_addr_t      vaddr_base;     /* buffer base */
-       dma_addr_t      vaddr_curr;     /* current addr */
        void            *bitproc_buf;
        void            *fw_cookie;
 
-       u32             dvaddr;
-       u32             kvaddr;
-       u32             dvaddr_debug;
-       u32             kvaddr_debug;
-       u32             dvaddr_fshared;
-       u32             kvaddr_fshared;
-       u32             dvaddr_region;
-       u32             kvaddr_region;
-       u32             dvaddr_shared; /*shared region of is region*/
-       u32             kvaddr_shared;
-       u32             dvaddr_odc;
-       u32             kvaddr_odc;
-       u32             dvaddr_dis;
-       u32             kvaddr_dis;
-       u32             dvaddr_3dnr;
-       u32             kvaddr_3dnr;
+       dma_addr_t      dvaddr;
+       void *          kvaddr;
+       dma_addr_t      dvaddr_debug;
+       void *          kvaddr_debug;
+       dma_addr_t      dvaddr_fshared;
+       void *          kvaddr_fshared;
+       dma_addr_t      dvaddr_region;
+       void *          kvaddr_region;
+       dma_addr_t      dvaddr_shared; /*shared region of is region*/
+       void *          kvaddr_shared;
+       dma_addr_t      dvaddr_odc;
+       void *          kvaddr_odc;
+       dma_addr_t      dvaddr_dis;
+       void *          kvaddr_dis;
+       dma_addr_t      dvaddr_3dnr;
+       void *          kvaddr_3dnr;
 };
 
 struct fimc_is_vb2 {
@@ -51,8 +44,8 @@ struct fimc_is_vb2 {
        void *(*init)(struct platform_device *pdev);
        void (*cleanup)(void *alloc_ctx);
 
-       unsigned long (*plane_addr)(struct vb2_buffer *vb, u32 plane_no);
-       unsigned long (*plane_kvaddr)(struct vb2_buffer *vb, u32 plane_no);
+       dma_addr_t (*plane_addr)(struct vb2_buffer *vb, u32 plane_no);
+       void * (*plane_kvaddr)(struct vb2_buffer *vb, u32 plane_no);
 
        int (*resume)(void *alloc_ctx);
        void (*suspend)(void *alloc_ctx);
index f2f27c7..fd44dd2 100644 (file)
@@ -1325,7 +1325,7 @@ struct camera2_stream {
                \remarks
                [X] kernel virtual address for this buffer
        */
-       uint32_t                address;
+       void *          address;
 
        /**     \brief
                this frame count is from FLITE through dm.request.fcount,
index 788590b..2b226ef 100644 (file)
@@ -52,7 +52,7 @@ int fimc_is_resource_get(struct fimc_is_resourcemgr *resourcemgr, u32 rsc_type)
        BUG_ON(rsc_type >= RESOURCE_TYPE_MAX);
 
        resource = GET_RESOURCE(resourcemgr, rsc_type);
-       core = (struct fimc_is_core *)resourcemgr->private_data;
+       core = resourcemgr->private_data;
        rsccount = atomic_read(&core->rsccount);
 
        if (rsccount >= 5) {
@@ -116,7 +116,7 @@ int fimc_is_resource_put(struct fimc_is_resourcemgr *resourcemgr, u32 rsc_type)
        BUG_ON(rsc_type >= RESOURCE_TYPE_MAX);
 
        resource = GET_RESOURCE(resourcemgr, rsc_type);
-       core = (struct fimc_is_core *)resourcemgr->private_data;
+       core = resourcemgr->private_data;
        rsccount = atomic_read(&core->rsccount);
 
        if (rsccount == 0) {
index 7dbf63f..77ea7ad 100644 (file)
@@ -38,7 +38,7 @@ struct fimc_is_resource {
         struct platform_device                  *pdev;
         void __iomem                            *regs;
         atomic_t                                rsccount;
-        u32                                     private_data;
+        void *                                  private_data;
 };
 
 struct fimc_is_resourcemgr {
index 8f0d966..7563dbf 100644 (file)
@@ -167,8 +167,8 @@ int fimc_is_subdev_buffer_queue(struct fimc_is_subdev *subdev,
 
        if (frame->state == FIMC_IS_FRAME_STATE_FREE) {
                if (frame->req_flag) {
-                       warn("%d request flag is not clear(%08X)\n",
-                               frame->index, (u32)frame->req_flag);
+                       warn("%d request flag is not clear(%08lX)\n",
+                               frame->index, frame->req_flag);
                        frame->req_flag = 0;
                }
 
index d34fdfa..c06b3f0 100644 (file)
@@ -54,7 +54,7 @@ int fimc_is_3a0_video_probe(void *data)
 
        BUG_ON(!data);
 
-       core = (struct fimc_is_core *)data;
+       core = data;
        video = &core->video_3a0;
 
        if (!core->pdev) {
@@ -87,7 +87,7 @@ int fimc_is_3a1_video_probe(void *data)
 
        BUG_ON(!data);
 
-       core = (struct fimc_is_core *)data;
+       core = data;
        video = &core->video_3a1;
 
        if (!core->pdev) {
@@ -339,7 +339,7 @@ static int fimc_is_3aa_video_get_crop(struct file *file, void *fh,
 }
 
 static int fimc_is_3aa_video_set_crop(struct file *file, void *fh,
-       struct v4l2_crop *crop)
+       const struct v4l2_crop *crop)
 {
        struct fimc_is_video_ctx *vctx = file->private_data;
        struct fimc_is_device_ischain *ischain;
@@ -838,7 +838,7 @@ static int fimc_is_3aa_start_streaming(struct vb2_queue *vbq,
        return ret;
 }
 
-static int fimc_is_3aa_stop_streaming(struct vb2_queue *vbq)
+static void fimc_is_3aa_stop_streaming(struct vb2_queue *vbq)
 {
        int ret = 0;
        struct fimc_is_video_ctx *vctx = vbq->drv_priv;
@@ -864,8 +864,6 @@ static int fimc_is_3aa_stop_streaming(struct vb2_queue *vbq)
        ret = fimc_is_queue_stop_streaming(queue, device, subdev, vctx);
        if (ret)
                merr("fimc_is_queue_stop_streaming is fail(%d)", vctx, ret);
-
-       return ret;
 }
 
 static void fimc_is_3aa_buffer_queue(struct vb2_buffer *vb)
@@ -918,9 +916,8 @@ static void fimc_is_3aa_buffer_queue(struct vb2_buffer *vb)
        }
 }
 
-static int fimc_is_3aa_buffer_finish(struct vb2_buffer *vb)
+static void fimc_is_3aa_buffer_finish(struct vb2_buffer *vb)
 {
-       int ret = 0;
        u32 index = vb->v4l2_buf.index;
        struct fimc_is_video_ctx *vctx = vb->vb2_queue->drv_priv;
        struct fimc_is_device_ischain *device = vctx->device;
@@ -942,8 +939,6 @@ static int fimc_is_3aa_buffer_finish(struct vb2_buffer *vb)
                queue = vctx->q_dst;
                fimc_is_subdev_buffer_finish(subdev, index);
        }
-
-       return ret;
 }
 
 const struct vb2_ops fimc_is_3aa_qops = {
index a7a1066..28387c6 100644 (file)
@@ -47,7 +47,7 @@ int fimc_is_3a0c_video_probe(void *data)
 
        BUG_ON(!data);
 
-       core = (struct fimc_is_core *)data;
+       core = data;
        video = &core->video_3a0c;
 
        if (!core->pdev) {
@@ -80,7 +80,7 @@ int fimc_is_3a1c_video_probe(void *data)
 
        BUG_ON(!data);
 
-       core = (struct fimc_is_core *)data;
+       core = data;
        video = &core->video_3a1c;
 
        if (!core->pdev) {
@@ -334,7 +334,7 @@ static int fimc_is_3aac_video_get_crop(struct file *file, void *fh,
 }
 
 static int fimc_is_3aac_video_set_crop(struct file *file, void *fh,
-       struct v4l2_crop *crop)
+       const struct v4l2_crop *crop)
 {
        dbg("%s\n", __func__);
        return 0;
@@ -624,7 +624,7 @@ static int fimc_is_3aac_start_streaming(struct vb2_queue *vbq,
        return ret;
 }
 
-static int fimc_is_3aac_stop_streaming(struct vb2_queue *vbq)
+static void fimc_is_3aac_stop_streaming(struct vb2_queue *vbq)
 {
        int ret = 0;
        struct fimc_is_video_ctx *vctx = vbq->drv_priv;
@@ -644,8 +644,6 @@ static int fimc_is_3aac_stop_streaming(struct vb2_queue *vbq)
        ret = fimc_is_queue_stop_streaming(queue, device, subdev, vctx);
        if (ret)
                merr("fimc_is_queue_stop_streaming is fail(%d)", vctx, ret);
-
-       return ret;
 }
 
 static void fimc_is_3aac_buffer_queue(struct vb2_buffer *vb)
@@ -681,9 +679,8 @@ static void fimc_is_3aac_buffer_queue(struct vb2_buffer *vb)
        }
 }
 
-static int fimc_is_3aac_buffer_finish(struct vb2_buffer *vb)
+static void fimc_is_3aac_buffer_finish(struct vb2_buffer *vb)
 {
-       int ret = 0;
        struct fimc_is_video_ctx *vctx = vb->vb2_queue->drv_priv;
        struct fimc_is_device_ischain *ischain = vctx->device;
        struct fimc_is_subdev *subdev = &ischain->taac;
@@ -692,9 +689,7 @@ static int fimc_is_3aac_buffer_finish(struct vb2_buffer *vb)
        mdbgv_3aac("%s(%d)\n", vctx, __func__, vb->v4l2_buf.index);
 #endif
 
-       ret = fimc_is_subdev_buffer_finish(subdev, vb->v4l2_buf.index);
-
-       return ret;
+       fimc_is_subdev_buffer_finish(subdev, vb->v4l2_buf.index);
 }
 
 const struct vb2_ops fimc_is_3aac_qops = {
index 125fbd1..a1ed1e6 100644 (file)
@@ -45,7 +45,7 @@ int fimc_is_comp_video_probe(void *data)
 
        BUG_ON(!data);
 
-       device = (struct fimc_is_device_companion *)data;
+       device = data;
        video = &device->video;
        snprintf(name, sizeof(name), "%s%d", FIMC_IS_VIDEO_SENSOR_NAME, 9);
        number = FIMC_IS_VIDEO_SS0_NUM + 9;
index b55917e..4645a92 100644 (file)
@@ -52,7 +52,7 @@ int fimc_is_isp_video_probe(void *data)
 
        BUG_ON(!data);
 
-       core = (struct fimc_is_core *)data;
+       core = data;
        video = &core->video_isp;
 
        if (!core->pdev) {
@@ -287,7 +287,7 @@ static int fimc_is_isp_video_get_crop(struct file *file, void *fh,
 }
 
 static int fimc_is_isp_video_set_crop(struct file *file, void *fh,
-       struct v4l2_crop *crop)
+       const struct v4l2_crop *crop)
 {
        struct fimc_is_video_ctx *vctx = file->private_data;
        struct fimc_is_device_ischain *ischain;
@@ -516,7 +516,9 @@ static int fimc_is_isp_video_s_ctrl(struct file *file, void *priv,
                fimc_is_logsync(device->interface, ctrl->value, IS_MSG_TEST_SYNC_LOG);
                break;
        case V4L2_CID_IS_G_CAPABILITY:
-               ret = fimc_is_ischain_g_capability(device, ctrl->value);
+               BUG();
+               ret = fimc_is_ischain_g_capability(device, NULL);
+//             ret = fimc_is_ischain_g_capability(device, ctrl->value);
                dbg_isp("V4L2_CID_IS_G_CAPABILITY : %X\n", ctrl->value);
                break;
        case V4L2_CID_IS_FORCE_DONE:
@@ -869,7 +871,7 @@ static int fimc_is_isp_start_streaming(struct vb2_queue *vbq,
        return ret;
 }
 
-static int fimc_is_isp_stop_streaming(struct vb2_queue *q)
+static void fimc_is_isp_stop_streaming(struct vb2_queue *q)
 {
        int ret = 0;
        struct fimc_is_video_ctx *vctx = q->drv_priv;
@@ -885,17 +887,13 @@ static int fimc_is_isp_stop_streaming(struct vb2_queue *q)
        device = vctx->device;
        if (!device) {
                err("device is NULL");
-               ret = -EINVAL;
-               goto p_err;
+               return;
        }
        leader = &device->group_isp.leader;
 
        ret = fimc_is_queue_stop_streaming(queue, device, leader, vctx);
        if (ret)
                merr("fimc_is_queue_stop_streaming is fail(%d)", vctx, ret);
-
-p_err:
-       return ret;
 }
 
 static void fimc_is_isp_buffer_queue(struct vb2_buffer *vb)
@@ -931,9 +929,8 @@ static void fimc_is_isp_buffer_queue(struct vb2_buffer *vb)
        }
 }
 
-static int fimc_is_isp_buffer_finish(struct vb2_buffer *vb)
+static void fimc_is_isp_buffer_finish(struct vb2_buffer *vb)
 {
-       int ret = 0;
        struct fimc_is_video_ctx *vctx = vb->vb2_queue->drv_priv;
        struct fimc_is_device_ischain *device = vctx->device;
 
@@ -941,9 +938,7 @@ static int fimc_is_isp_buffer_finish(struct vb2_buffer *vb)
        mdbgv_isp("%s(%d)\n", vctx, __func__, vb->v4l2_buf.index);
 #endif
 
-       ret = fimc_is_ischain_isp_buffer_finish(device, vb->v4l2_buf.index);
-
-       return ret;
+       fimc_is_ischain_isp_buffer_finish(device, vb->v4l2_buf.index);
 }
 
 const struct vb2_ops fimc_is_isp_qops = {
index 0f29cf4..a14132d 100644 (file)
@@ -47,7 +47,7 @@ int fimc_is_scc_video_probe(void *data)
 
        BUG_ON(!data);
 
-       core = (struct fimc_is_core *)data;
+       core = data;
        video = &core->video_scc;
 
        if (!core->pdev) {
@@ -285,7 +285,7 @@ static int fimc_is_scc_video_get_crop(struct file *file, void *fh,
 }
 
 static int fimc_is_scc_video_set_crop(struct file *file, void *fh,
-                                               struct v4l2_crop *crop)
+                                               const struct v4l2_crop *crop)
 {
        dbg("%s\n", __func__);
        return 0;
@@ -612,7 +612,7 @@ static int fimc_is_scc_start_streaming(struct vb2_queue *q,
        return ret;
 }
 
-static int fimc_is_scc_stop_streaming(struct vb2_queue *q)
+static void fimc_is_scc_stop_streaming(struct vb2_queue *q)
 {
        int ret = 0;
        struct fimc_is_video_ctx *vctx = q->drv_priv;
@@ -626,17 +626,13 @@ static int fimc_is_scc_stop_streaming(struct vb2_queue *q)
        device = vctx->device;
        if (!device) {
                err("device is NULL");
-               ret = -EINVAL;
-               goto p_err;
+               return;
        }
        subdev = &device->scc;
 
        ret = fimc_is_queue_stop_streaming(queue, device, subdev, vctx);
        if (ret)
                merr("fimc_is_queue_stop_streaming is fail(%d)", vctx, ret);
-
-p_err:
-       return ret;
 }
 
 static void fimc_is_scc_buffer_queue(struct vb2_buffer *vb)
@@ -665,9 +661,8 @@ static void fimc_is_scc_buffer_queue(struct vb2_buffer *vb)
        }
 }
 
-static int fimc_is_scc_buffer_finish(struct vb2_buffer *vb)
+static void fimc_is_scc_buffer_finish(struct vb2_buffer *vb)
 {
-       int ret = 0;
        struct fimc_is_video_ctx *vctx = vb->vb2_queue->drv_priv;
        struct fimc_is_device_ischain *device;
        struct fimc_is_subdev *subdev;
@@ -681,9 +676,7 @@ static int fimc_is_scc_buffer_finish(struct vb2_buffer *vb)
        device = vctx->device;
        subdev = &device->scc;
 
-       ret = fimc_is_subdev_buffer_finish(subdev, vb->v4l2_buf.index);
-
-       return ret;
+       fimc_is_subdev_buffer_finish(subdev, vb->v4l2_buf.index);
 }
 
 const struct vb2_ops fimc_is_scc_qops = {
index 28728ef..3b7e7c4 100644 (file)
@@ -47,7 +47,7 @@ int fimc_is_scp_video_probe(void *data)
 
        BUG_ON(!data);
 
-       core = (struct fimc_is_core *)data;
+       core = data;
        video = &core->video_scp;
 
        if (!core->pdev) {
@@ -304,7 +304,7 @@ static int fimc_is_scp_video_get_crop(struct file *file, void *fh,
 }
 
 static int fimc_is_scp_video_set_crop(struct file *file, void *fh,
-       struct v4l2_crop *crop)
+       const struct v4l2_crop *crop)
 {
        int ret = 0;
        struct fimc_is_video_ctx *vctx = file->private_data;
@@ -669,7 +669,7 @@ static int fimc_is_scp_start_streaming(struct vb2_queue *q,
        return ret;
 }
 
-static int fimc_is_scp_stop_streaming(struct vb2_queue *q)
+static void fimc_is_scp_stop_streaming(struct vb2_queue *q)
 {
        int ret = 0;
        struct fimc_is_video_ctx *vctx = q->drv_priv;
@@ -685,17 +685,13 @@ static int fimc_is_scp_stop_streaming(struct vb2_queue *q)
        device = vctx->device;
        if (!device) {
                err("device is NULL");
-               ret = -EINVAL;
-               goto p_err;
+               return;
        }
        subdev = &device->scp;
 
        ret = fimc_is_queue_stop_streaming(queue, device, subdev, vctx);
        if (ret)
                merr("fimc_is_queue_stop_streaming is fail(%d)", vctx, ret);
-
-p_err:
-       return ret;
 }
 
 static void fimc_is_scp_buffer_queue(struct vb2_buffer *vb)
@@ -731,9 +727,8 @@ static void fimc_is_scp_buffer_queue(struct vb2_buffer *vb)
        }
 }
 
-static int fimc_is_scp_buffer_finish(struct vb2_buffer *vb)
+static void fimc_is_scp_buffer_finish(struct vb2_buffer *vb)
 {
-       int ret = 0;
        struct fimc_is_video_ctx *vctx = vb->vb2_queue->drv_priv;
        struct fimc_is_device_ischain *ischain = vctx->device;
        struct fimc_is_subdev *scp = &ischain->scp;
@@ -742,9 +737,7 @@ static int fimc_is_scp_buffer_finish(struct vb2_buffer *vb)
        dbg_scp("%s(%d)\n", __func__, vb->v4l2_buf.index);
 #endif
 
-       ret = fimc_is_subdev_buffer_finish(scp, vb->v4l2_buf.index);
-
-       return ret;
+       fimc_is_subdev_buffer_finish(scp, vb->v4l2_buf.index);
 }
 
 const struct vb2_ops fimc_is_scp_qops = {
index e58d832..7fa3956 100644 (file)
@@ -50,7 +50,7 @@ int fimc_is_sen_video_probe(void *data)
 
        BUG_ON(!data);
 
-       device = (struct fimc_is_device_sensor *)data;
+       device = data;
        video = &device->video;
        snprintf(name, sizeof(name), "%s%d", FIMC_IS_VIDEO_SENSOR_NAME, device->instance);
        number = FIMC_IS_VIDEO_SS0_NUM + device->instance;
@@ -284,7 +284,7 @@ static int fimc_is_sen_video_get_crop(struct file *file, void *fh,
 }
 
 static int fimc_is_sen_video_set_crop(struct file *file, void *fh,
-       struct v4l2_crop *crop)
+       const struct v4l2_crop *crop)
 {
        struct fimc_is_video_ctx *vctx = file->private_data;
        struct fimc_is_device_sensor *sensor;
@@ -774,7 +774,7 @@ static int fimc_is_sen_start_streaming(struct vb2_queue *q,
        return 0;
 }
 
-static int fimc_is_sen_stop_streaming(struct vb2_queue *q)
+static void fimc_is_sen_stop_streaming(struct vb2_queue *q)
 {
        int ret = 0;
        struct fimc_is_video_ctx *vctx = q->drv_priv;
@@ -795,10 +795,7 @@ static int fimc_is_sen_stop_streaming(struct vb2_queue *q)
                ret = fimc_is_sensor_back_stop(device);
        } else {
                err("already stream off");
-               ret = -EINVAL;
        }
-
-       return ret;
 }
 
 static void fimc_is_sen_buffer_queue(struct vb2_buffer *vb)
@@ -834,9 +831,9 @@ static void fimc_is_sen_buffer_queue(struct vb2_buffer *vb)
        }
 }
 
-static int fimc_is_sen_buffer_finish(struct vb2_buffer *vb)
+static void fimc_is_sen_buffer_finish(struct vb2_buffer *vb)
 {
-       int ret = 0;
+       int ret;
        struct fimc_is_video_ctx *vctx = vb->vb2_queue->drv_priv;
        struct fimc_is_device_sensor *device;
 
@@ -848,13 +845,8 @@ static int fimc_is_sen_buffer_finish(struct vb2_buffer *vb)
        ret = fimc_is_sensor_buffer_finish(
                device,
                vb->v4l2_buf.index);
-       if (ret) {
+       if (ret)
                merr("fimc_is_sensor_buffer_finish is fail(%d)", device, ret);
-               goto p_err;
-       }
-
-p_err:
-       return ret;
 }
 
 const struct vb2_ops fimc_is_sen_qops = {
index 6c5cfb1..8e9df9f 100644 (file)
@@ -47,7 +47,7 @@ int fimc_is_vdc_video_probe(void *data)
 
        BUG_ON(!data);
 
-       core = (struct fimc_is_core *)data;
+       core = data;
        video = &core->video_vdc;
 
        if (!core->pdev) {
@@ -255,7 +255,7 @@ static int fimc_is_vdc_video_set_format_mplane(struct file *file, void *fh,
 }
 
 static int fimc_is_vdc_video_set_crop(struct file *file, void *fh,
-       struct v4l2_crop *crop)
+       const struct v4l2_crop *crop)
 {
        struct fimc_is_video_ctx *vctx = file->private_data;
        struct fimc_is_device_ischain *ischain;
@@ -589,7 +589,7 @@ static int fimc_is_vdc_start_streaming(struct vb2_queue *q,
        return ret;
 }
 
-static int fimc_is_vdc_stop_streaming(struct vb2_queue *q)
+static void fimc_is_vdc_stop_streaming(struct vb2_queue *q)
 {
        int ret = 0;
        struct fimc_is_video_ctx *vctx = q->drv_priv;
@@ -605,17 +605,13 @@ static int fimc_is_vdc_stop_streaming(struct vb2_queue *q)
        device = vctx->device;
        if (!device) {
                err("device is NULL");
-               ret = -EINVAL;
-               goto p_err;
+               return;
        }
        subdev = &device->dis;
 
        ret = fimc_is_queue_stop_streaming(queue, device, subdev, vctx);
        if (ret)
                merr("fimc_is_queue_stop_streaming is fail(%d)", vctx, ret);
-
-p_err:
-       return ret;
 }
 
 static void fimc_is_vdc_buffer_queue(struct vb2_buffer *vb)
@@ -644,9 +640,8 @@ static void fimc_is_vdc_buffer_queue(struct vb2_buffer *vb)
        }
 }
 
-static int fimc_is_vdc_buffer_finish(struct vb2_buffer *vb)
+static void fimc_is_vdc_buffer_finish(struct vb2_buffer *vb)
 {
-       int ret = 0;
        struct fimc_is_video_ctx *vctx = vb->vb2_queue->drv_priv;
        struct fimc_is_device_ischain *ischain = vctx->device;
        struct fimc_is_subdev *dis = &ischain->dis;
@@ -655,9 +650,7 @@ static int fimc_is_vdc_buffer_finish(struct vb2_buffer *vb)
        dbg_vdisc("%s(%d)\n", __func__, vb->v4l2_buf.index);
 #endif
 
-       ret = fimc_is_subdev_buffer_finish(dis, vb->v4l2_buf.index);
-
-       return ret;
+       fimc_is_subdev_buffer_finish(dis, vb->v4l2_buf.index);
 }
 
 const struct vb2_ops fimc_is_vdc_qops = {
index c56611a..c219bc5 100644 (file)
@@ -48,7 +48,7 @@ int fimc_is_vdo_video_probe(void *data)
 
        BUG_ON(!data);
 
-       core = (struct fimc_is_core *)data;
+       core = data;
        video = &core->video_vdo;
 
        if (!core->pdev) {
@@ -493,7 +493,7 @@ static int fimc_is_vdo_start_streaming(struct vb2_queue *q,
        return ret;
 }
 
-static int fimc_is_vdo_stop_streaming(struct vb2_queue *q)
+static void fimc_is_vdo_stop_streaming(struct vb2_queue *q)
 {
        int ret = 0;
        struct fimc_is_video_ctx *vctx = q->drv_priv;
@@ -509,17 +509,13 @@ static int fimc_is_vdo_stop_streaming(struct vb2_queue *q)
        device = vctx->device;
        if (!device) {
                err("device is NULL");
-               ret = -EINVAL;
-               goto p_err;
+               return;
        }
        leader = &device->group_dis.leader;
 
        ret = fimc_is_queue_stop_streaming(queue, device, leader, vctx);
        if (ret)
                merr("fimc_is_queue_stop_streaming is fail(%d)", vctx, ret);
-
-p_err:
-       return ret;
 }
 
 static void fimc_is_vdo_buffer_queue(struct vb2_buffer *vb)
@@ -555,9 +551,8 @@ static void fimc_is_vdo_buffer_queue(struct vb2_buffer *vb)
        }
 }
 
-static int fimc_is_vdo_buffer_finish(struct vb2_buffer *vb)
+static void fimc_is_vdo_buffer_finish(struct vb2_buffer *vb)
 {
-       int ret = 0;
        struct fimc_is_video_ctx *vctx = vb->vb2_queue->drv_priv;
        struct fimc_is_device_ischain *device = vctx->device;
 
@@ -565,9 +560,7 @@ static int fimc_is_vdo_buffer_finish(struct vb2_buffer *vb)
        mdbgv_vdo("%s(%d)\n", vctx, __func__, vb->v4l2_buf.index);
 #endif
 
-       ret = fimc_is_ischain_vdo_buffer_finish(device, vb->v4l2_buf.index);
-
-       return ret;
+       fimc_is_ischain_vdo_buffer_finish(device, vb->v4l2_buf.index);
 }
 
 const struct vb2_ops fimc_is_vdo_qops = {
index 26aab5c..3eacb07 100644 (file)
@@ -526,7 +526,7 @@ int fimc_is_queue_setup(struct fimc_is_queue *queue,
        BUG_ON(!sizes);
        BUG_ON(!allocators);
 
-       *num_planes = (unsigned int)(queue->framecfg.format.num_planes);
+       *num_planes = (queue->framecfg.format.num_planes);
        fimc_is_set_plane_size(&queue->framecfg, sizes);
 
        for (plane = 0; plane < *num_planes; plane++) {
@@ -574,10 +574,10 @@ int fimc_is_queue_buffer_queue(struct fimc_is_queue *queue,
        /* plane address check */
        for (i = 0; i < frame->planes; i++) {
                if (frame->dvaddr_buffer[i] != queue->buf_dva[index][i]) {
-                       err("buffer %d plane %d is changed(%08X != %08X)",
+                       err("buffer %d plane %d is changed(%pad != %pad)",
                                index, i,
-                               frame->dvaddr_buffer[i],
-                               queue->buf_dva[index][i]);
+                               &frame->dvaddr_buffer[i],
+                               &queue->buf_dva[index][i]);
                        ret = -EINVAL;
                        goto exit;
                }
@@ -616,11 +616,12 @@ set_info:
 
                frame->dvaddr_shot = queue->buf_dva[index][spare] + ext_size;
                frame->kvaddr_shot = queue->buf_kva[index][spare] + ext_size;
-               frame->cookie_shot = (u32)vb2_plane_cookie(vb, spare);
-               frame->shot = (struct camera2_shot *)frame->kvaddr_shot;
-               frame->shot_ext = (struct camera2_shot_ext *)queue->buf_kva[index][spare];
+               frame->cookie_shot = vb2_plane_cookie(vb, spare);
+               frame->shot = frame->kvaddr_shot;
+               frame->shot_ext = queue->buf_kva[index][spare];
                frame->shot_size = queue->framecfg.size[spare] - ext_size;
 #ifdef MEASURE_TIME
+# warning POSSIBLE WARNING
                frame->tzone = (struct timeval *)frame->shot_ext->timeZone;
 #endif
        } else {
@@ -632,7 +633,7 @@ set_info:
                        goto exit;
                }
 
-               frame->stream = (struct camera2_stream *)queue->buf_kva[index][spare];
+               frame->stream = queue->buf_kva[index][spare];
                frame->stream->address = queue->buf_kva[index][spare];
                frame->stream_size = queue->framecfg.size[spare];
        }
index 817bf4c..95c3ffa 100644 (file)
@@ -103,8 +103,8 @@ struct fimc_is_queue {
        u32                             buf_maxcount;
        u32                             buf_rdycount;
        u32                             buf_refcount;
-       u32                             buf_dva[FIMC_IS_MAX_BUFS][FIMC_IS_MAX_PLANES];
-       u32                             buf_kva[FIMC_IS_MAX_BUFS][FIMC_IS_MAX_PLANES];
+       dma_addr_t                      buf_dva[FIMC_IS_MAX_BUFS][FIMC_IS_MAX_PLANES];
+       void *                          buf_kva[FIMC_IS_MAX_BUFS][FIMC_IS_MAX_PLANES];
 
        u32                             id;
        unsigned long                   state;
index e2205ad..c6d2af2 100644 (file)
@@ -238,7 +238,7 @@ static const struct v4l2_subdev_internal_ops internal_ops = {
        .unregistered = sensor_6d1_unregistered,
 };
 
-static int sensor_6d1_init(struct v4l2_subdev *subdev, u32 val)
+static int sensor_6d1_init(struct v4l2_subdev *subdev, void *val)
 {
        int i, ret = 0;
        struct fimc_is_module_enum *module;
@@ -247,7 +247,7 @@ static int sensor_6d1_init(struct v4l2_subdev *subdev, u32 val)
 
        BUG_ON(!subdev);
 
-       module = (struct fimc_is_module_enum *)v4l2_get_subdevdata(subdev);
+       module = v4l2_get_subdevdata(subdev);
        module_6d1 = module->private_data;
        client = module->client;
 
@@ -262,7 +262,7 @@ static int sensor_6d1_init(struct v4l2_subdev *subdev, u32 val)
                                (u8)setfile_vision_6d1[i][1]);
        }
 
-       pr_info("[MOD:D:%d] %s(%d)\n", module->id, __func__, val);
+       pr_info("[MOD:D:%d] %s(%ld)\n", module->id, __func__, (long)val);
 
        return ret;
 }
@@ -278,7 +278,7 @@ static int sensor_6d1_s_stream(struct v4l2_subdev *subdev, int enable)
 
        pr_info("%s\n", __func__);
 
-       sensor = (struct fimc_is_module_enum *)v4l2_get_subdevdata(subdev);
+       sensor = v4l2_get_subdevdata(subdev);
        if (!sensor) {
                err("sensor is NULL");
                ret = -EINVAL;
@@ -334,7 +334,7 @@ static int sensor_6d1_s_param(struct v4l2_subdev *subdev, struct v4l2_streamparm
        duration = (u64)(tpf->numerator * 1000 * 1000 * 1000) /
                                        (u64)(tpf->denominator);
 
-       sensor = (struct fimc_is_module_enum *)v4l2_get_subdevdata(subdev);
+       sensor = v4l2_get_subdevdata(subdev);
        if (!sensor) {
                err("sensor is NULL");
                ret = -EINVAL;
@@ -376,7 +376,7 @@ int sensor_6d1_stream_on(struct v4l2_subdev *subdev)
 
        BUG_ON(!subdev);
 
-       sensor = (struct fimc_is_module_enum *)v4l2_get_subdevdata(subdev);
+       sensor = v4l2_get_subdevdata(subdev);
        if (unlikely(!sensor)) {
                err("sensor is NULL");
                ret = -EINVAL;
@@ -408,7 +408,7 @@ int sensor_6d1_stream_off(struct v4l2_subdev *subdev)
 
        BUG_ON(!subdev);
 
-       sensor = (struct fimc_is_module_enum *)v4l2_get_subdevdata(subdev);
+       sensor = v4l2_get_subdevdata(subdev);
        if (unlikely(!sensor)) {
                err("sensor is NULL");
                ret = -EINVAL;
@@ -450,7 +450,7 @@ int sensor_6d1_s_duration(struct v4l2_subdev *subdev, u64 duration)
 
        pr_info("%s\n", __func__);
 
-       sensor = (struct fimc_is_module_enum *)v4l2_get_subdevdata(subdev);
+       sensor = v4l2_get_subdevdata(subdev);
        if (unlikely(!sensor)) {
                err("sensor is NULL");
                ret = -EINVAL;
@@ -498,9 +498,9 @@ int sensor_6d1_s_exposure(struct v4l2_subdev *subdev, u64 exposure)
 
        BUG_ON(!subdev);
 
-       pr_info("%s(%d)\n", __func__, (u32)exposure);
+       pr_info("%s(%lld)\n", __func__, exposure);
 
-       sensor = (struct fimc_is_module_enum *)v4l2_get_subdevdata(subdev);
+       sensor = v4l2_get_subdevdata(subdev);
        if (unlikely(!sensor)) {
                err("sensor is NULL");
                ret = -EINVAL;
@@ -681,7 +681,7 @@ int sensor_6d1_probe(struct i2c_client *client,
        if (!fimc_is_dev)
                goto probe_defer;
 
-       core = (struct fimc_is_core *)dev_get_drvdata(fimc_is_dev);
+       core = dev_get_drvdata(fimc_is_dev);
        if (!core) {
                err("core device is not yet probed");
                return -EPROBE_DEFER;
index c1d9a21..4067119 100644 (file)
@@ -59,16 +59,16 @@ static struct fimc_is_sensor_cfg config_imx240[] = {
        //FIMC_IS_SENSOR_CFG(824, 496, 300, 13, 8),
 };
 
-static int sensor_imx240_init(struct v4l2_subdev *subdev, u32 val)
+static int sensor_imx240_init(struct v4l2_subdev *subdev, void *val)
 {
        int ret = 0;
        struct fimc_is_module_enum *module;
 
        BUG_ON(!subdev);
 
-       module = (struct fimc_is_module_enum *)v4l2_get_subdevdata(subdev);
+       module = v4l2_get_subdevdata(subdev);
 
-       pr_info("[MOD:D:%d] %s(%d)\n", module->id, __func__, val);
+       pr_info("[MOD:D:%d] %s(%ld)\n", module->id, __func__, (long)val);
 
        return ret;
 }
@@ -213,7 +213,7 @@ int sensor_imx240_probe(struct i2c_client *client,
 
        BUG_ON(!fimc_is_dev);
 
-       core = (struct fimc_is_core *)dev_get_drvdata(fimc_is_dev);
+       core = dev_get_drvdata(fimc_is_dev);
        if (!core) {
                err("core device is not yet probed");
                return -EPROBE_DEFER;
@@ -288,7 +288,7 @@ int sensor_imx240_probe(struct i2c_client *client,
        ext->companion_con.product_name = COMPANION_NAME_73C1;
        ext->companion_con.peri_info0.valid = true;
        ext->companion_con.peri_info0.peri_type = SE_SPI;
-       ext->companion_con.peri_info0.peri_setting.spi.channel = (int) core->companion_spi_channel;
+       ext->companion_con.peri_info0.peri_setting.spi.channel = core->companion_spi_channel;
        ext->companion_con.peri_info1.valid = true;
        ext->companion_con.peri_info1.peri_type = SE_I2C;
        ext->companion_con.peri_info1.peri_setting.i2c.channel = 0;
index 063d17c..2264459 100644 (file)
@@ -86,7 +86,7 @@
 #ifndef __ASSEMBLY__
 extern int exynos_smc(unsigned long cmd, unsigned long arg1, unsigned long arg2,
                      unsigned long arg3);
-extern int exynos_smc_readsfr(unsigned long addr, unsigned long* val);
+extern int exynos_smc_readsfr(unsigned long addr, u32 * val);
 #endif
 
 #endif