Commit 820a1338 authored by Hans de Goede's avatar Hans de Goede Committed by Mauro Carvalho Chehab

media: atomisp: Remove isp_timeout flag

isp_timeout only ever gets set in __atomisp_css_recover() and then
immediately gets cleared again after calling atomisp_reset().

All this happens with isp->mutex held.

The only consumer of isp->isp_timeout is atomisp_stop_streaming(), which
also holds isp->mutex and which is *not* called by atomisp_reset().

Since both hold isp->mutex and since __atomisp_css_recover() clears
isp_timeout before releasing the mutex, atomisp_stop_streaming() can
never see isp_timeout being true, so just remove the flag.
Reviewed-by: default avatarAndy Shevchenko <andy.shevchenko@gmail.com>
Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@kernel.org>
parent fb86cf8b
......@@ -935,7 +935,7 @@ void atomisp_buf_done(struct atomisp_sub_device *asd, int error,
atomisp_qbuffers_to_css(asd);
}
static void __atomisp_css_recover(struct atomisp_device *isp, bool isp_timeout)
static void __atomisp_css_recover(struct atomisp_device *isp)
{
struct pci_dev *pdev = to_pci_dev(isp->dev);
enum ia_css_pipe_id css_pipe_id;
......@@ -992,9 +992,7 @@ static void __atomisp_css_recover(struct atomisp_device *isp, bool isp_timeout)
isp->saved_regs.i_control | MRFLD_PCI_I_CONTROL_SRSE_RESET_MASK);
/* reset ISP and restore its state */
isp->isp_timeout = true;
atomisp_reset(isp);
isp->isp_timeout = false;
if (stream_restart) {
atomisp_css_input_set_mode(&isp->asd, IA_CSS_INPUT_MODE_BUFFERED_SENSOR);
......@@ -1043,14 +1041,14 @@ void atomisp_assert_recovery_work(struct work_struct *work)
assert_recovery_work);
mutex_lock(&isp->mutex);
__atomisp_css_recover(isp, true);
__atomisp_css_recover(isp);
mutex_unlock(&isp->mutex);
}
void atomisp_css_flush(struct atomisp_device *isp)
{
/* Start recover */
__atomisp_css_recover(isp, false);
__atomisp_css_recover(isp);
dev_dbg(isp->dev, "atomisp css flush done\n");
}
......
......@@ -204,8 +204,6 @@ struct atomisp_device {
struct atomisp_regs saved_regs;
struct atomisp_css_env css_env;
/* isp timeout status flag */
bool isp_timeout;
bool isp_fatal_error;
struct work_struct assert_recovery_work;
......
......@@ -1369,11 +1369,7 @@ void atomisp_stop_streaming(struct vb2_queue *vq)
/*
* ISP work around, need to reset isp
* Is it correct time to reset ISP when first node does streamoff?
*/
if (isp->isp_timeout)
dev_err(isp->dev, "%s: Resetting with WA activated",
__func__);
/*
*
* It is possible that the other asd stream is in the stage
* that v4l2_setfmt is just get called on it, which will
* create css stream on that stream. But at this point, there
......@@ -1403,7 +1399,6 @@ void atomisp_stop_streaming(struct vb2_queue *vq)
}
}
isp->isp_timeout = false;
out_unlock:
mutex_unlock(&isp->mutex);
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment