Hi Kamil, Kiran will not be available to handle review comments of these patches. So I will be pushing the updated patchset rebased on media-tree. I hope all patches are good to merge except [media] s5p-mfc: Don't change the image size to smaller than the request. I will drop this one patch and send all others in v3 version. Regards Arun On Wed, Oct 8, 2014 at 3:56 PM, Kamil Debski <k.debski@xxxxxxxxxxx> wrote: > Hi, > > This patch does not apply to the current media tree. > > commit cf3167cf1e969b17671a4d3d956d22718a8ceb85) > Author: Antti Palosaari <crope@xxxxxx> > Date: Fri Sep 26 22:45:36 2014 -0300 > > [media] pt3: fix DTV FE I2C driver load error paths > > Best wishes, > -- > Kamil Debski > Samsung R&D Institute Poland > > >> -----Original Message----- >> From: Kiran AVND [mailto:avnd.kiran@xxxxxxxxxxx] >> Sent: Friday, September 26, 2014 6:52 AM >> To: linux-media@xxxxxxxxxxxxxxx >> Cc: k.debski@xxxxxxxxxxx; wuchengli@xxxxxxxxxxxx; posciak@xxxxxxxxxxxx; >> arun.m@xxxxxxxxxxx; ihf@xxxxxxxxxxxx; prathyush.k@xxxxxxxxxxx; >> arun.kk@xxxxxxxxxxx; kiran@xxxxxxxxxxxx >> Subject: [PATCH v2 07/14] [media] s5p-mfc: Don't crash the kernel if >> the watchdog kicks in. >> >> From: Pawel Osciak <posciak@xxxxxxxxxxxx> >> >> If the software watchdog kicks in, the watchdog worker is not >> synchronized with hardware interrupts and does not block other >> instances. It's possible for it to clear the hw_lock, making other >> instances trigger a BUG() on hw_lock checks. Since it's not fatal to >> clear the hw_lock to zero twice, just WARN in those cases for now. We >> should not explode, as firmware will return errors as needed for other >> instances after it's reloaded, or they will time out. >> >> A clean fix should involve killing other instances when watchdog kicks >> in, but requires a major redesign of locking in the driver. >> >> Signed-off-by: Pawel Osciak <posciak@xxxxxxxxxxxx> >> Signed-off-by: Kiran AVND <avnd.kiran@xxxxxxxxxxx> >> --- >> drivers/media/platform/s5p-mfc/s5p_mfc.c | 25 +++++++--------------- >> --- >> 1 file changed, 7 insertions(+), 18 deletions(-) >> >> diff --git a/drivers/media/platform/s5p-mfc/s5p_mfc.c >> b/drivers/media/platform/s5p-mfc/s5p_mfc.c >> index 3fc2f8a..8d5da0c 100644 >> --- a/drivers/media/platform/s5p-mfc/s5p_mfc.c >> +++ b/drivers/media/platform/s5p-mfc/s5p_mfc.c >> @@ -337,8 +337,7 @@ static void s5p_mfc_handle_frame(struct s5p_mfc_ctx >> *ctx, >> ctx->state = MFCINST_RES_CHANGE_INIT; >> s5p_mfc_hw_call(dev->mfc_ops, clear_int_flags, dev); >> wake_up_ctx(ctx, reason, err); >> - if (test_and_clear_bit(0, &dev->hw_lock) == 0) >> - BUG(); >> + WARN_ON(test_and_clear_bit(0, &dev->hw_lock) == 0); >> s5p_mfc_clock_off(); >> s5p_mfc_hw_call(dev->mfc_ops, try_run, dev); >> return; >> @@ -410,8 +409,7 @@ leave_handle_frame: >> clear_work_bit(ctx); >> s5p_mfc_hw_call(dev->mfc_ops, clear_int_flags, dev); >> wake_up_ctx(ctx, reason, err); >> - if (test_and_clear_bit(0, &dev->hw_lock) == 0) >> - BUG(); >> + WARN_ON(test_and_clear_bit(0, &dev->hw_lock) == 0); >> s5p_mfc_clock_off(); >> /* if suspending, wake up device and do not try_run again*/ >> if (test_bit(0, &dev->enter_suspend)) >> @@ -458,8 +456,7 @@ static void s5p_mfc_handle_error(struct s5p_mfc_dev >> *dev, >> break; >> } >> } >> - if (test_and_clear_bit(0, &dev->hw_lock) == 0) >> - BUG(); >> + WARN_ON(test_and_clear_bit(0, &dev->hw_lock) == 0); >> s5p_mfc_hw_call(dev->mfc_ops, clear_int_flags, dev); >> s5p_mfc_clock_off(); >> wake_up_dev(dev, reason, err); >> @@ -513,8 +510,7 @@ static void s5p_mfc_handle_seq_done(struct >> s5p_mfc_ctx *ctx, >> } >> s5p_mfc_hw_call(dev->mfc_ops, clear_int_flags, dev); >> clear_work_bit(ctx); >> - if (test_and_clear_bit(0, &dev->hw_lock) == 0) >> - BUG(); >> + WARN_ON(test_and_clear_bit(0, &dev->hw_lock) == 0); >> s5p_mfc_clock_off(); >> s5p_mfc_hw_call(dev->mfc_ops, try_run, dev); >> wake_up_ctx(ctx, reason, err); >> @@ -552,19 +548,13 @@ static void s5p_mfc_handle_init_buffers(struct >> s5p_mfc_ctx *ctx, >> } else { >> ctx->dpb_flush_flag = 0; >> } >> - if (test_and_clear_bit(0, &dev->hw_lock) == 0) >> - BUG(); >> - >> + WARN_ON(test_and_clear_bit(0, &dev->hw_lock) == 0); >> s5p_mfc_clock_off(); >> - >> wake_up(&ctx->queue); >> s5p_mfc_hw_call(dev->mfc_ops, try_run, dev); >> } else { >> - if (test_and_clear_bit(0, &dev->hw_lock) == 0) >> - BUG(); >> - >> + WARN_ON(test_and_clear_bit(0, &dev->hw_lock) == 0); >> s5p_mfc_clock_off(); >> - >> wake_up(&ctx->queue); >> } >> } >> @@ -638,8 +628,7 @@ static irqreturn_t s5p_mfc_irq(int irq, void *priv) >> mfc_err("post_frame_start() failed\n"); >> s5p_mfc_hw_call(dev->mfc_ops, clear_int_flags, dev); >> wake_up_ctx(ctx, reason, err); >> - if (test_and_clear_bit(0, &dev->hw_lock) == 0) >> - BUG(); >> + WARN_ON(test_and_clear_bit(0, &dev->hw_lock) == 0); >> s5p_mfc_clock_off(); >> s5p_mfc_hw_call(dev->mfc_ops, try_run, dev); >> } else { >> -- >> 1.7.9.5 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-media" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html