diff --git a/drivers/media/platform/msm/camera_v2/isp/msm_isp40.c b/drivers/media/platform/msm/camera_v2/isp/msm_isp40.c index 10cddddc54cd..41a3fbbd9176 100644 --- a/drivers/media/platform/msm/camera_v2/isp/msm_isp40.c +++ b/drivers/media/platform/msm/camera_v2/isp/msm_isp40.c @@ -1140,7 +1140,6 @@ static int msm_vfe40_start_fetch_engine(struct vfe_device *vfe_dev, pr_err("%s: fetch engine busy\n", __func__); return -EINVAL; } - memset(&mapped_info, 0, sizeof(struct msm_isp_buffer_mapped_info)); /* There is other option of passing buffer address from user, in such case, driver needs to map the buffer and use it*/ @@ -1176,6 +1175,7 @@ static int msm_vfe40_start_fetch_engine(struct vfe_device *vfe_dev, vfe_dev->fetch_engine_info.is_busy = 1; msm_camera_io_w(mapped_info.paddr, vfe_dev->vfe_base + 0x228); + msm_camera_io_w_mb(0x1, vfe_dev->vfe_base + 0x378); msm_camera_io_w_mb(0x10000, vfe_dev->vfe_base + 0x4C); msm_camera_io_w_mb(0x20000, vfe_dev->vfe_base + 0x4C); @@ -1226,7 +1226,7 @@ static void msm_vfe40_cfg_fetch_engine(struct vfe_device *vfe_dev, msm_camera_io_w((x_size_word - 1) << 16, vfe_dev->vfe_base + 0x23C); temp = msm_camera_io_r(vfe_dev->vfe_base + 0x1C); - temp |= 2 << 16; + temp |= 2 << 16 | pix_cfg->pixel_pattern; msm_camera_io_w(temp, vfe_dev->vfe_base + 0x1C); msm_camera_io_w(x_size_word << 16 |