Loading drivers/media/platform/msm/camera_v2/isp/msm_isp.h +1 −0 Original line number Diff line number Diff line Loading @@ -370,6 +370,7 @@ struct msm_vfe_src_info { long pixel_clock; uint32_t input_format;/*V4L2 pix format with bayer pattern*/ uint32_t last_updt_frm_id; uint32_t sof_counter_step; }; struct msm_vfe_fetch_engine_info { Loading drivers/media/platform/msm/camera_v2/isp/msm_isp40.c +15 −3 Original line number Diff line number Diff line Loading @@ -1150,7 +1150,7 @@ static void msm_vfe40_cfg_camif(struct vfe_device *vfe_dev, { uint16_t first_pixel, last_pixel, first_line, last_line; struct msm_vfe_camif_cfg *camif_cfg = &pix_cfg->camif_cfg; uint32_t val; uint32_t val, subsample_period, subsample_pattern; msm_camera_io_w(pix_cfg->input_mux << 16 | pix_cfg->pixel_pattern, vfe_dev->vfe_base + 0x1C); Loading @@ -1159,6 +1159,8 @@ static void msm_vfe40_cfg_camif(struct vfe_device *vfe_dev, last_pixel = camif_cfg->last_pixel; first_line = camif_cfg->first_line; last_line = camif_cfg->last_line; subsample_period = camif_cfg->subsample_cfg.irq_subsample_period; subsample_pattern = camif_cfg->subsample_cfg.irq_subsample_pattern; msm_camera_io_w(camif_cfg->lines_per_frame << 16 | camif_cfg->pixels_per_line, vfe_dev->vfe_base + 0x300); Loading @@ -1168,9 +1170,19 @@ static void msm_vfe40_cfg_camif(struct vfe_device *vfe_dev, msm_camera_io_w(first_line << 16 | last_line, vfe_dev->vfe_base + 0x308); if (subsample_period && subsample_pattern) { val = msm_camera_io_r(vfe_dev->vfe_base + 0x2F8); val &= 0xFFE0FFFF; val = (subsample_period - 1) << 16; msm_camera_io_w(val, vfe_dev->vfe_base + 0x2F8); ISP_DBG("%s:camif PERIOD %x PATTERN %x\n", __func__, subsample_period, subsample_pattern); val = subsample_pattern; msm_camera_io_w(val, vfe_dev->vfe_base + 0x314); } else { msm_camera_io_w(0xFFFFFFFF, vfe_dev->vfe_base + 0x314); } val = msm_camera_io_r(vfe_dev->vfe_base + 0x2E8); val |= camif_cfg->camif_input; msm_camera_io_w(val, vfe_dev->vfe_base + 0x2E8); Loading drivers/media/platform/msm/camera_v2/isp/msm_isp44.c +15 −3 Original line number Diff line number Diff line Loading @@ -962,7 +962,7 @@ static void msm_vfe44_cfg_camif(struct vfe_device *vfe_dev, { uint16_t first_pixel, last_pixel, first_line, last_line; struct msm_vfe_camif_cfg *camif_cfg = &pix_cfg->camif_cfg; uint32_t val; uint32_t val, subsample_period, subsample_pattern; msm_camera_io_w(pix_cfg->input_mux << 16 | pix_cfg->pixel_pattern, vfe_dev->vfe_base + 0x1C); Loading @@ -988,6 +988,8 @@ static void msm_vfe44_cfg_camif(struct vfe_device *vfe_dev, last_pixel = camif_cfg->last_pixel; first_line = camif_cfg->first_line; last_line = camif_cfg->last_line; subsample_period = camif_cfg->subsample_cfg.irq_subsample_period; subsample_pattern = camif_cfg->subsample_cfg.irq_subsample_pattern; msm_camera_io_w(camif_cfg->lines_per_frame << 16 | camif_cfg->pixels_per_line, vfe_dev->vfe_base + 0x300); Loading @@ -997,9 +999,19 @@ static void msm_vfe44_cfg_camif(struct vfe_device *vfe_dev, msm_camera_io_w(first_line << 16 | last_line, vfe_dev->vfe_base + 0x308); if (subsample_period && subsample_pattern) { val = msm_camera_io_r(vfe_dev->vfe_base + 0x2F8); val &= 0xFFE0FFFF; val = (subsample_period - 1) << 16; msm_camera_io_w(val, vfe_dev->vfe_base + 0x2F8); ISP_DBG("%s:camif PERIOD %x PATTERN %x\n", __func__, subsample_period, subsample_pattern); val = subsample_pattern; msm_camera_io_w(val, vfe_dev->vfe_base + 0x314); } else { msm_camera_io_w(0xFFFFFFFF, vfe_dev->vfe_base + 0x314); } val = msm_camera_io_r(vfe_dev->vfe_base + 0x2E8); val |= camif_cfg->camif_input; msm_camera_io_w(val, vfe_dev->vfe_base + 0x2E8); Loading drivers/media/platform/msm/camera_v2/isp/msm_isp46.c +16 −2 Original line number Diff line number Diff line Loading @@ -1009,7 +1009,7 @@ static void msm_vfe46_cfg_camif(struct vfe_device *vfe_dev, { uint16_t first_pixel, last_pixel, first_line, last_line; struct msm_vfe_camif_cfg *camif_cfg = &pix_cfg->camif_cfg; uint32_t val; uint32_t val, subsample_period, subsample_pattern; msm_camera_io_w(pix_cfg->input_mux << 5 | pix_cfg->pixel_pattern, vfe_dev->vfe_base + 0x50); Loading @@ -1018,6 +1018,8 @@ static void msm_vfe46_cfg_camif(struct vfe_device *vfe_dev, last_pixel = camif_cfg->last_pixel; first_line = camif_cfg->first_line; last_line = camif_cfg->last_line; subsample_period = camif_cfg->subsample_cfg.irq_subsample_period; subsample_pattern = camif_cfg->subsample_cfg.irq_subsample_pattern; msm_camera_io_w(camif_cfg->lines_per_frame << 16 | camif_cfg->pixels_per_line, vfe_dev->vfe_base + 0x3B4); Loading @@ -1028,7 +1030,19 @@ static void msm_vfe46_cfg_camif(struct vfe_device *vfe_dev, msm_camera_io_w(first_line << 16 | last_line, vfe_dev->vfe_base + 0x3BC); if (subsample_period && subsample_pattern) { val = msm_camera_io_r(vfe_dev->vfe_base + 0x3AC); val &= 0xFFE0FFFF; val = (subsample_period - 1) << 16; msm_camera_io_w(val, vfe_dev->vfe_base + 0x3AC); ISP_DBG("%s:camif PERIOD %x PATTERN %x\n", __func__, subsample_period, subsample_pattern); val = subsample_pattern; msm_camera_io_w(val, vfe_dev->vfe_base + 0x3C8); } else { msm_camera_io_w(0xFFFFFFFF, vfe_dev->vfe_base + 0x3C8); } val = msm_camera_io_r(vfe_dev->vfe_base + 0x39C); val |= camif_cfg->camif_input; Loading drivers/media/platform/msm/camera_v2/isp/msm_isp47.c +16 −1 Original line number Diff line number Diff line Loading @@ -929,7 +929,7 @@ static void msm_vfe47_cfg_camif(struct vfe_device *vfe_dev, { uint16_t first_pixel, last_pixel, first_line, last_line; struct msm_vfe_camif_cfg *camif_cfg = &pix_cfg->camif_cfg; uint32_t val; uint32_t val, subsample_period, subsample_pattern; uint32_t irq_sub_period = 32; uint32_t frame_sub_period = 32; Loading @@ -940,6 +940,8 @@ static void msm_vfe47_cfg_camif(struct vfe_device *vfe_dev, last_pixel = camif_cfg->last_pixel; first_line = camif_cfg->first_line; last_line = camif_cfg->last_line; subsample_period = camif_cfg->subsample_cfg.irq_subsample_period; subsample_pattern = camif_cfg->subsample_cfg.irq_subsample_pattern; msm_camera_io_w(camif_cfg->lines_per_frame << 16 | camif_cfg->pixels_per_line, vfe_dev->vfe_base + 0x484); Loading @@ -954,6 +956,19 @@ static void msm_vfe47_cfg_camif(struct vfe_device *vfe_dev, (frame_sub_period - 1), vfe_dev->vfe_base + 0x494); msm_camera_io_w(0xFFFFFFFF, vfe_dev->vfe_base + 0x498); msm_camera_io_w(0xFFFFFFFF, vfe_dev->vfe_base + 0x49C); if (subsample_period && subsample_pattern) { val = msm_camera_io_r(vfe_dev->vfe_base + 0x494); val &= 0xFFE0FFFF; val = (subsample_period - 1) << 16; msm_camera_io_w(val, vfe_dev->vfe_base + 0x494); ISP_DBG("%s:camif PERIOD %x PATTERN %x\n", __func__, subsample_period, subsample_pattern); val = subsample_pattern; msm_camera_io_w(val, vfe_dev->vfe_base + 0x49C); } else { msm_camera_io_w(0xFFFFFFFF, vfe_dev->vfe_base + 0x49C); } val = msm_camera_io_r(vfe_dev->vfe_base + 0x46C); val |= camif_cfg->camif_input; Loading Loading
drivers/media/platform/msm/camera_v2/isp/msm_isp.h +1 −0 Original line number Diff line number Diff line Loading @@ -370,6 +370,7 @@ struct msm_vfe_src_info { long pixel_clock; uint32_t input_format;/*V4L2 pix format with bayer pattern*/ uint32_t last_updt_frm_id; uint32_t sof_counter_step; }; struct msm_vfe_fetch_engine_info { Loading
drivers/media/platform/msm/camera_v2/isp/msm_isp40.c +15 −3 Original line number Diff line number Diff line Loading @@ -1150,7 +1150,7 @@ static void msm_vfe40_cfg_camif(struct vfe_device *vfe_dev, { uint16_t first_pixel, last_pixel, first_line, last_line; struct msm_vfe_camif_cfg *camif_cfg = &pix_cfg->camif_cfg; uint32_t val; uint32_t val, subsample_period, subsample_pattern; msm_camera_io_w(pix_cfg->input_mux << 16 | pix_cfg->pixel_pattern, vfe_dev->vfe_base + 0x1C); Loading @@ -1159,6 +1159,8 @@ static void msm_vfe40_cfg_camif(struct vfe_device *vfe_dev, last_pixel = camif_cfg->last_pixel; first_line = camif_cfg->first_line; last_line = camif_cfg->last_line; subsample_period = camif_cfg->subsample_cfg.irq_subsample_period; subsample_pattern = camif_cfg->subsample_cfg.irq_subsample_pattern; msm_camera_io_w(camif_cfg->lines_per_frame << 16 | camif_cfg->pixels_per_line, vfe_dev->vfe_base + 0x300); Loading @@ -1168,9 +1170,19 @@ static void msm_vfe40_cfg_camif(struct vfe_device *vfe_dev, msm_camera_io_w(first_line << 16 | last_line, vfe_dev->vfe_base + 0x308); if (subsample_period && subsample_pattern) { val = msm_camera_io_r(vfe_dev->vfe_base + 0x2F8); val &= 0xFFE0FFFF; val = (subsample_period - 1) << 16; msm_camera_io_w(val, vfe_dev->vfe_base + 0x2F8); ISP_DBG("%s:camif PERIOD %x PATTERN %x\n", __func__, subsample_period, subsample_pattern); val = subsample_pattern; msm_camera_io_w(val, vfe_dev->vfe_base + 0x314); } else { msm_camera_io_w(0xFFFFFFFF, vfe_dev->vfe_base + 0x314); } val = msm_camera_io_r(vfe_dev->vfe_base + 0x2E8); val |= camif_cfg->camif_input; msm_camera_io_w(val, vfe_dev->vfe_base + 0x2E8); Loading
drivers/media/platform/msm/camera_v2/isp/msm_isp44.c +15 −3 Original line number Diff line number Diff line Loading @@ -962,7 +962,7 @@ static void msm_vfe44_cfg_camif(struct vfe_device *vfe_dev, { uint16_t first_pixel, last_pixel, first_line, last_line; struct msm_vfe_camif_cfg *camif_cfg = &pix_cfg->camif_cfg; uint32_t val; uint32_t val, subsample_period, subsample_pattern; msm_camera_io_w(pix_cfg->input_mux << 16 | pix_cfg->pixel_pattern, vfe_dev->vfe_base + 0x1C); Loading @@ -988,6 +988,8 @@ static void msm_vfe44_cfg_camif(struct vfe_device *vfe_dev, last_pixel = camif_cfg->last_pixel; first_line = camif_cfg->first_line; last_line = camif_cfg->last_line; subsample_period = camif_cfg->subsample_cfg.irq_subsample_period; subsample_pattern = camif_cfg->subsample_cfg.irq_subsample_pattern; msm_camera_io_w(camif_cfg->lines_per_frame << 16 | camif_cfg->pixels_per_line, vfe_dev->vfe_base + 0x300); Loading @@ -997,9 +999,19 @@ static void msm_vfe44_cfg_camif(struct vfe_device *vfe_dev, msm_camera_io_w(first_line << 16 | last_line, vfe_dev->vfe_base + 0x308); if (subsample_period && subsample_pattern) { val = msm_camera_io_r(vfe_dev->vfe_base + 0x2F8); val &= 0xFFE0FFFF; val = (subsample_period - 1) << 16; msm_camera_io_w(val, vfe_dev->vfe_base + 0x2F8); ISP_DBG("%s:camif PERIOD %x PATTERN %x\n", __func__, subsample_period, subsample_pattern); val = subsample_pattern; msm_camera_io_w(val, vfe_dev->vfe_base + 0x314); } else { msm_camera_io_w(0xFFFFFFFF, vfe_dev->vfe_base + 0x314); } val = msm_camera_io_r(vfe_dev->vfe_base + 0x2E8); val |= camif_cfg->camif_input; msm_camera_io_w(val, vfe_dev->vfe_base + 0x2E8); Loading
drivers/media/platform/msm/camera_v2/isp/msm_isp46.c +16 −2 Original line number Diff line number Diff line Loading @@ -1009,7 +1009,7 @@ static void msm_vfe46_cfg_camif(struct vfe_device *vfe_dev, { uint16_t first_pixel, last_pixel, first_line, last_line; struct msm_vfe_camif_cfg *camif_cfg = &pix_cfg->camif_cfg; uint32_t val; uint32_t val, subsample_period, subsample_pattern; msm_camera_io_w(pix_cfg->input_mux << 5 | pix_cfg->pixel_pattern, vfe_dev->vfe_base + 0x50); Loading @@ -1018,6 +1018,8 @@ static void msm_vfe46_cfg_camif(struct vfe_device *vfe_dev, last_pixel = camif_cfg->last_pixel; first_line = camif_cfg->first_line; last_line = camif_cfg->last_line; subsample_period = camif_cfg->subsample_cfg.irq_subsample_period; subsample_pattern = camif_cfg->subsample_cfg.irq_subsample_pattern; msm_camera_io_w(camif_cfg->lines_per_frame << 16 | camif_cfg->pixels_per_line, vfe_dev->vfe_base + 0x3B4); Loading @@ -1028,7 +1030,19 @@ static void msm_vfe46_cfg_camif(struct vfe_device *vfe_dev, msm_camera_io_w(first_line << 16 | last_line, vfe_dev->vfe_base + 0x3BC); if (subsample_period && subsample_pattern) { val = msm_camera_io_r(vfe_dev->vfe_base + 0x3AC); val &= 0xFFE0FFFF; val = (subsample_period - 1) << 16; msm_camera_io_w(val, vfe_dev->vfe_base + 0x3AC); ISP_DBG("%s:camif PERIOD %x PATTERN %x\n", __func__, subsample_period, subsample_pattern); val = subsample_pattern; msm_camera_io_w(val, vfe_dev->vfe_base + 0x3C8); } else { msm_camera_io_w(0xFFFFFFFF, vfe_dev->vfe_base + 0x3C8); } val = msm_camera_io_r(vfe_dev->vfe_base + 0x39C); val |= camif_cfg->camif_input; Loading
drivers/media/platform/msm/camera_v2/isp/msm_isp47.c +16 −1 Original line number Diff line number Diff line Loading @@ -929,7 +929,7 @@ static void msm_vfe47_cfg_camif(struct vfe_device *vfe_dev, { uint16_t first_pixel, last_pixel, first_line, last_line; struct msm_vfe_camif_cfg *camif_cfg = &pix_cfg->camif_cfg; uint32_t val; uint32_t val, subsample_period, subsample_pattern; uint32_t irq_sub_period = 32; uint32_t frame_sub_period = 32; Loading @@ -940,6 +940,8 @@ static void msm_vfe47_cfg_camif(struct vfe_device *vfe_dev, last_pixel = camif_cfg->last_pixel; first_line = camif_cfg->first_line; last_line = camif_cfg->last_line; subsample_period = camif_cfg->subsample_cfg.irq_subsample_period; subsample_pattern = camif_cfg->subsample_cfg.irq_subsample_pattern; msm_camera_io_w(camif_cfg->lines_per_frame << 16 | camif_cfg->pixels_per_line, vfe_dev->vfe_base + 0x484); Loading @@ -954,6 +956,19 @@ static void msm_vfe47_cfg_camif(struct vfe_device *vfe_dev, (frame_sub_period - 1), vfe_dev->vfe_base + 0x494); msm_camera_io_w(0xFFFFFFFF, vfe_dev->vfe_base + 0x498); msm_camera_io_w(0xFFFFFFFF, vfe_dev->vfe_base + 0x49C); if (subsample_period && subsample_pattern) { val = msm_camera_io_r(vfe_dev->vfe_base + 0x494); val &= 0xFFE0FFFF; val = (subsample_period - 1) << 16; msm_camera_io_w(val, vfe_dev->vfe_base + 0x494); ISP_DBG("%s:camif PERIOD %x PATTERN %x\n", __func__, subsample_period, subsample_pattern); val = subsample_pattern; msm_camera_io_w(val, vfe_dev->vfe_base + 0x49C); } else { msm_camera_io_w(0xFFFFFFFF, vfe_dev->vfe_base + 0x49C); } val = msm_camera_io_r(vfe_dev->vfe_base + 0x46C); val |= camif_cfg->camif_input; Loading