media: atomisp: Remove never set file_input flag
After the file-injection support removal the file_input flag is always false. Remove the flag and replace any code checking it with the code-path for when it is false. Reviewed-by: Andy Shevchenko <andriy.shevchenko@intel.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
This commit is contained in:
parent
5e61114e3a
commit
79adb947ef
@ -1308,9 +1308,7 @@ static void __atomisp_css_recover(struct atomisp_device *isp, bool isp_timeout)
|
||||
bool depth_mode = false;
|
||||
int i, ret, depth_cnt = 0;
|
||||
|
||||
if (!isp->sw_contex.file_input)
|
||||
atomisp_css_irq_enable(isp,
|
||||
IA_CSS_IRQ_INFO_CSS_RECEIVER_SOF, false);
|
||||
atomisp_css_irq_enable(isp, IA_CSS_IRQ_INFO_CSS_RECEIVER_SOF, false);
|
||||
|
||||
BUG_ON(isp->num_of_streams > MAX_STREAM_NUM);
|
||||
|
||||
@ -1396,16 +1394,11 @@ static void __atomisp_css_recover(struct atomisp_device *isp, bool isp_timeout)
|
||||
atomisp_csi2_configure(asd);
|
||||
}
|
||||
|
||||
if (!isp->sw_contex.file_input) {
|
||||
atomisp_css_irq_enable(isp, IA_CSS_IRQ_INFO_CSS_RECEIVER_SOF,
|
||||
atomisp_css_valid_sof(isp));
|
||||
atomisp_css_irq_enable(isp, IA_CSS_IRQ_INFO_CSS_RECEIVER_SOF,
|
||||
atomisp_css_valid_sof(isp));
|
||||
|
||||
if (atomisp_freq_scaling(isp, ATOMISP_DFS_MODE_AUTO, true) < 0)
|
||||
dev_dbg(isp->dev, "DFS auto failed while recovering!\n");
|
||||
} else {
|
||||
if (atomisp_freq_scaling(isp, ATOMISP_DFS_MODE_MAX, true) < 0)
|
||||
dev_dbg(isp->dev, "DFS max failed while recovering!\n");
|
||||
}
|
||||
if (atomisp_freq_scaling(isp, ATOMISP_DFS_MODE_AUTO, true) < 0)
|
||||
dev_dbg(isp->dev, "DFS auto failed while recovering!\n");
|
||||
|
||||
for (i = 0; i < isp->num_of_streams; i++) {
|
||||
struct atomisp_sub_device *asd;
|
||||
@ -1610,10 +1603,7 @@ void atomisp_wdt_work(struct work_struct *work)
|
||||
if (asd->streaming != ATOMISP_DEVICE_STREAMING_ENABLED)
|
||||
continue;
|
||||
|
||||
atomisp_wdt_refresh(asd,
|
||||
isp->sw_contex.file_input ?
|
||||
ATOMISP_ISP_FILE_TIMEOUT_DURATION :
|
||||
ATOMISP_ISP_TIMEOUT_DURATION);
|
||||
atomisp_wdt_refresh(asd, ATOMISP_ISP_TIMEOUT_DURATION);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1643,14 +1633,10 @@ void atomisp_css_flush(struct atomisp_device *isp)
|
||||
for (i = 0; i < isp->num_of_streams; i++) {
|
||||
struct atomisp_sub_device *asd = &isp->asd[i];
|
||||
|
||||
if (asd->streaming !=
|
||||
ATOMISP_DEVICE_STREAMING_ENABLED)
|
||||
if (asd->streaming != ATOMISP_DEVICE_STREAMING_ENABLED)
|
||||
continue;
|
||||
|
||||
atomisp_wdt_refresh(asd,
|
||||
isp->sw_contex.file_input ?
|
||||
ATOMISP_ISP_FILE_TIMEOUT_DURATION :
|
||||
ATOMISP_ISP_TIMEOUT_DURATION);
|
||||
atomisp_wdt_refresh(asd, ATOMISP_ISP_TIMEOUT_DURATION);
|
||||
}
|
||||
dev_dbg(isp->dev, "atomisp css flush done\n");
|
||||
}
|
||||
@ -1896,14 +1882,6 @@ irqreturn_t atomisp_isr_thread(int irq, void *isp_ptr)
|
||||
}
|
||||
out:
|
||||
rt_mutex_unlock(&isp->mutex);
|
||||
for (i = 0; i < isp->num_of_streams; i++) {
|
||||
asd = &isp->asd[i];
|
||||
if (asd->streaming == ATOMISP_DEVICE_STREAMING_ENABLED
|
||||
&& css_pipe_done[asd->index]
|
||||
&& isp->sw_contex.file_input)
|
||||
v4l2_subdev_call(isp->inputs[asd->input_curr].camera,
|
||||
video, s_stream, 1);
|
||||
}
|
||||
dev_dbg(isp->dev, "<%s\n", __func__);
|
||||
|
||||
return IRQ_HANDLED;
|
||||
@ -5377,8 +5355,7 @@ static int atomisp_set_fmt_to_isp(struct video_device *vdev,
|
||||
ia_css_frame_free(asd->raw_output_frame);
|
||||
asd->raw_output_frame = NULL;
|
||||
|
||||
if (!asd->continuous_mode->val &&
|
||||
!asd->params.online_process && !isp->sw_contex.file_input &&
|
||||
if (!asd->continuous_mode->val && !asd->params.online_process &&
|
||||
ia_css_frame_allocate_from_info(&asd->raw_output_frame,
|
||||
raw_output_info))
|
||||
return -ENOMEM;
|
||||
|
@ -628,7 +628,6 @@ static void atomisp_dev_init_struct(struct atomisp_device *isp)
|
||||
{
|
||||
unsigned int i;
|
||||
|
||||
isp->sw_contex.file_input = false;
|
||||
isp->need_gfx_throttle = true;
|
||||
isp->isp_fatal_error = false;
|
||||
isp->mipi_frame_size = 0;
|
||||
@ -915,7 +914,7 @@ static int atomisp_release(struct file *file)
|
||||
* The sink pad setting can only be cleared when all device nodes
|
||||
* get released.
|
||||
*/
|
||||
if (!isp->sw_contex.file_input && asd->fmt_auto->val) {
|
||||
if (asd->fmt_auto->val) {
|
||||
struct v4l2_mbus_framefmt isp_sink_fmt = { 0 };
|
||||
|
||||
atomisp_subdev_set_ffmt(&asd->subdev, fh.state,
|
||||
@ -926,15 +925,6 @@ subdev_uninit:
|
||||
if (atomisp_subdev_users(asd))
|
||||
goto done;
|
||||
|
||||
/* clear the sink pad for file input */
|
||||
if (isp->sw_contex.file_input && asd->fmt_auto->val) {
|
||||
struct v4l2_mbus_framefmt isp_sink_fmt = { 0 };
|
||||
|
||||
atomisp_subdev_set_ffmt(&asd->subdev, fh.state,
|
||||
V4L2_SUBDEV_FORMAT_ACTIVE,
|
||||
ATOMISP_SUBDEV_PAD_SINK, &isp_sink_fmt);
|
||||
}
|
||||
|
||||
atomisp_css_free_stat_buffers(asd);
|
||||
atomisp_free_internal_buffers(asd);
|
||||
ret = v4l2_subdev_call(isp->inputs[asd->input_curr].camera,
|
||||
|
@ -91,7 +91,6 @@
|
||||
|
||||
#define ATOMISP_ISP_TIMEOUT_DURATION (2 * HZ)
|
||||
#define ATOMISP_EXT_ISP_TIMEOUT_DURATION (6 * HZ)
|
||||
#define ATOMISP_ISP_FILE_TIMEOUT_DURATION (60 * HZ)
|
||||
#define ATOMISP_WDT_KEEP_CURRENT_DELAY 0
|
||||
#define ATOMISP_ISP_MAX_TIMEOUT_COUNT 2
|
||||
#define ATOMISP_CSS_STOP_TIMEOUT_US 200000
|
||||
@ -202,7 +201,6 @@ struct atomisp_regs {
|
||||
};
|
||||
|
||||
struct atomisp_sw_contex {
|
||||
bool file_input;
|
||||
int power_state;
|
||||
int running_freq;
|
||||
};
|
||||
|
@ -737,7 +737,7 @@ static int atomisp_s_input(struct file *file, void *fh, unsigned int input)
|
||||
ret = v4l2_subdev_call(motor, core, s_power, 1);
|
||||
}
|
||||
|
||||
if (!isp->sw_contex.file_input && motor)
|
||||
if (motor)
|
||||
ret = v4l2_subdev_call(motor, core, init, 1);
|
||||
|
||||
asd->input_curr = input;
|
||||
@ -1841,8 +1841,6 @@ static int atomisp_streamon(struct file *file, void *fh,
|
||||
atomic_set(&asd->sof_count, -1);
|
||||
atomic_set(&asd->sequence, -1);
|
||||
atomic_set(&asd->sequence_temp, -1);
|
||||
if (isp->sw_contex.file_input)
|
||||
wdt_duration = ATOMISP_ISP_FILE_TIMEOUT_DURATION;
|
||||
|
||||
asd->params.dis_proj_data_valid = false;
|
||||
asd->latest_preview_exp_id = 0;
|
||||
@ -1865,26 +1863,21 @@ start_sensor:
|
||||
atomisp_setup_flash(asd);
|
||||
}
|
||||
|
||||
if (!isp->sw_contex.file_input) {
|
||||
atomisp_css_irq_enable(isp, IA_CSS_IRQ_INFO_CSS_RECEIVER_SOF,
|
||||
atomisp_css_valid_sof(isp));
|
||||
atomisp_csi2_configure(asd);
|
||||
/*
|
||||
* set freq to max when streaming count > 1 which indicate
|
||||
* dual camera would run
|
||||
*/
|
||||
if (atomisp_streaming_count(isp) > 1) {
|
||||
if (atomisp_freq_scaling(isp,
|
||||
ATOMISP_DFS_MODE_MAX, false) < 0)
|
||||
dev_dbg(isp->dev, "DFS max mode failed!\n");
|
||||
} else {
|
||||
if (atomisp_freq_scaling(isp,
|
||||
ATOMISP_DFS_MODE_AUTO, false) < 0)
|
||||
dev_dbg(isp->dev, "DFS auto mode failed!\n");
|
||||
}
|
||||
} else {
|
||||
if (atomisp_freq_scaling(isp, ATOMISP_DFS_MODE_MAX, false) < 0)
|
||||
atomisp_css_irq_enable(isp, IA_CSS_IRQ_INFO_CSS_RECEIVER_SOF,
|
||||
atomisp_css_valid_sof(isp));
|
||||
atomisp_csi2_configure(asd);
|
||||
/*
|
||||
* set freq to max when streaming count > 1 which indicate
|
||||
* dual camera would run
|
||||
*/
|
||||
if (atomisp_streaming_count(isp) > 1) {
|
||||
if (atomisp_freq_scaling(isp,
|
||||
ATOMISP_DFS_MODE_MAX, false) < 0)
|
||||
dev_dbg(isp->dev, "DFS max mode failed!\n");
|
||||
} else {
|
||||
if (atomisp_freq_scaling(isp,
|
||||
ATOMISP_DFS_MODE_AUTO, false) < 0)
|
||||
dev_dbg(isp->dev, "DFS auto mode failed!\n");
|
||||
}
|
||||
|
||||
if (asd->depth_mode->val && atomisp_streaming_count(isp) ==
|
||||
@ -2047,15 +2040,6 @@ int __atomisp_streamoff(struct file *file, void *fh, enum v4l2_buf_type type)
|
||||
/* if other streams are running, should not disable watch dog */
|
||||
rt_mutex_unlock(&isp->mutex);
|
||||
atomisp_wdt_stop(asd, true);
|
||||
|
||||
/*
|
||||
* must stop sending pixels into GP_FIFO before stop
|
||||
* the pipeline.
|
||||
*/
|
||||
if (isp->sw_contex.file_input)
|
||||
v4l2_subdev_call(isp->inputs[asd->input_curr].camera,
|
||||
video, s_stream, 0);
|
||||
|
||||
rt_mutex_lock(&isp->mutex);
|
||||
}
|
||||
|
||||
@ -2072,10 +2056,7 @@ int __atomisp_streamoff(struct file *file, void *fh, enum v4l2_buf_type type)
|
||||
}
|
||||
|
||||
atomisp_clear_css_buffer_counters(asd);
|
||||
|
||||
if (!isp->sw_contex.file_input)
|
||||
atomisp_css_irq_enable(isp, IA_CSS_IRQ_INFO_CSS_RECEIVER_SOF,
|
||||
false);
|
||||
atomisp_css_irq_enable(isp, IA_CSS_IRQ_INFO_CSS_RECEIVER_SOF, false);
|
||||
|
||||
if (asd->delayed_init == ATOMISP_DELAYED_INIT_QUEUED) {
|
||||
cancel_work_sync(&asd->delayed_init_work);
|
||||
@ -2128,9 +2109,8 @@ stopsensor:
|
||||
!= atomisp_sensor_start_stream(asd))
|
||||
return 0;
|
||||
|
||||
if (!isp->sw_contex.file_input)
|
||||
ret = v4l2_subdev_call(isp->inputs[asd->input_curr].camera,
|
||||
video, s_stream, 0);
|
||||
ret = v4l2_subdev_call(isp->inputs[asd->input_curr].camera,
|
||||
video, s_stream, 0);
|
||||
|
||||
if (isp->flash) {
|
||||
asd->params.num_flash_frames = 0;
|
||||
|
Loading…
x
Reference in New Issue
Block a user