Message ID | 20120925102839.2a90ab26@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi Mauro, Sachin, On 09/25/2012 03:28 PM, Mauro Carvalho Chehab wrote: > Hi Sylwester, > > Please review. I checked it with Kamil and it seems the code being removed is required for proper driver operation. Thus please hold on with this patch. We will prepare a different fix after testing. Sachin, thanks for reporting that issue. The code below is needed to make sure the MFC is fully suspended after s5p_mfc_suspend() returns. The "return s5p_mfc_sleep(m_dev);" probably just needs to be moved after the while loop. > Thanks! > Mauro > > Forwarded message: > > Date: Fri, 14 Sep 2012 14:50:17 +0530 > From: Sachin Kamat <sachin.kamat@linaro.org> > To: linux-media@vger.kernel.org > Cc: mchehab@infradead.org, s.nawrocki@samsung.com, k.debski@samsung.com, sachin.kamat@linaro.org, patches@linaro.org > Subject: [PATCH] [media] s5p-mfc: Remove unreachable code > > > Code after return statement never gets executed. > Hence can be deleted. > > Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> > --- > drivers/media/platform/s5p-mfc/s5p_mfc.c | 21 +-------------------- > 1 files changed, 1 insertions(+), 20 deletions(-) > > diff --git a/drivers/media/platform/s5p-mfc/s5p_mfc.c b/drivers/media/platform/s5p-mfc/s5p_mfc.c > index e3e616d..56876be 100644 > --- a/drivers/media/platform/s5p-mfc/s5p_mfc.c > +++ b/drivers/media/platform/s5p-mfc/s5p_mfc.c > @@ -1144,30 +1144,11 @@ static int s5p_mfc_suspend(struct device *dev) > { > struct platform_device *pdev = to_platform_device(dev); > struct s5p_mfc_dev *m_dev = platform_get_drvdata(pdev); > - int ret; > > if (m_dev->num_inst == 0) > return 0; > - return s5p_mfc_sleep(m_dev); > - if (test_and_set_bit(0, &m_dev->enter_suspend) != 0) { > - mfc_err("Error: going to suspend for a second time\n"); > - return -EIO; > - } > > - /* Check if we're processing then wait if it necessary. */ > - while (test_and_set_bit(0, &m_dev->hw_lock) != 0) { > - /* Try and lock the HW */ > - /* Wait on the interrupt waitqueue */ > - ret = wait_event_interruptible_timeout(m_dev->queue, > - m_dev->int_cond || m_dev->ctx[m_dev->curr_ctx]->int_cond, > - msecs_to_jiffies(MFC_INT_TIMEOUT)); > - > - if (ret == 0) { > - mfc_err("Waiting for hardware to finish timed out\n"); > - return -EIO; > - } > - } > - return 0; > + return s5p_mfc_sleep(m_dev); > } > > static int s5p_mfc_resume(struct device *dev) -- Thanks, Sylwester -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Hi Sylwester, On 25 September 2012 19:37, Sylwester Nawrocki <s.nawrocki@samsung.com> wrote: > Hi Mauro, Sachin, > > On 09/25/2012 03:28 PM, Mauro Carvalho Chehab wrote: >> Hi Sylwester, >> >> Please review. > > I checked it with Kamil and it seems the code being removed > is required for proper driver operation. Thus please hold on > with this patch. We will prepare a different fix after testing. > > Sachin, thanks for reporting that issue. The code below is needed > to make sure the MFC is fully suspended after s5p_mfc_suspend() > returns. OK. The "return s5p_mfc_sleep(m_dev);" probably just needs > to be moved after the while loop. Do you want me to make this change and re-send the patch? > >> Thanks! >> Mauro >> >> Forwarded message: >> >> Date: Fri, 14 Sep 2012 14:50:17 +0530 >> From: Sachin Kamat <sachin.kamat@linaro.org> >> To: linux-media@vger.kernel.org >> Cc: mchehab@infradead.org, s.nawrocki@samsung.com, k.debski@samsung.com, sachin.kamat@linaro.org, patches@linaro.org >> Subject: [PATCH] [media] s5p-mfc: Remove unreachable code >> >> >> Code after return statement never gets executed. >> Hence can be deleted. >> >> Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> >> --- >> drivers/media/platform/s5p-mfc/s5p_mfc.c | 21 +-------------------- >> 1 files changed, 1 insertions(+), 20 deletions(-) >> >> diff --git a/drivers/media/platform/s5p-mfc/s5p_mfc.c b/drivers/media/platform/s5p-mfc/s5p_mfc.c >> index e3e616d..56876be 100644 >> --- a/drivers/media/platform/s5p-mfc/s5p_mfc.c >> +++ b/drivers/media/platform/s5p-mfc/s5p_mfc.c >> @@ -1144,30 +1144,11 @@ static int s5p_mfc_suspend(struct device *dev) >> { >> struct platform_device *pdev = to_platform_device(dev); >> struct s5p_mfc_dev *m_dev = platform_get_drvdata(pdev); >> - int ret; >> >> if (m_dev->num_inst == 0) >> return 0; >> - return s5p_mfc_sleep(m_dev); >> - if (test_and_set_bit(0, &m_dev->enter_suspend) != 0) { >> - mfc_err("Error: going to suspend for a second time\n"); >> - return -EIO; >> - } >> >> - /* Check if we're processing then wait if it necessary. */ >> - while (test_and_set_bit(0, &m_dev->hw_lock) != 0) { >> - /* Try and lock the HW */ >> - /* Wait on the interrupt waitqueue */ >> - ret = wait_event_interruptible_timeout(m_dev->queue, >> - m_dev->int_cond || m_dev->ctx[m_dev->curr_ctx]->int_cond, >> - msecs_to_jiffies(MFC_INT_TIMEOUT)); >> - >> - if (ret == 0) { >> - mfc_err("Waiting for hardware to finish timed out\n"); >> - return -EIO; >> - } >> - } >> - return 0; >> + return s5p_mfc_sleep(m_dev); >> } >> >> static int s5p_mfc_resume(struct device *dev) > > -- > > Thanks, > Sylwester
Hi Sachin,
On 09/25/2012 05:25 PM, Sachin Kamat wrote:
> Do you want me to make this change and re-send the patch?
No, there is no need. Kamil is investigating it and will prepare
required patch. Right now I'm not sure if the change suggested
is correct or not.
Thanks,
Sylwester
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/media/platform/s5p-mfc/s5p_mfc.c b/drivers/media/platform/s5p-mfc/s5p_mfc.c index e3e616d..56876be 100644 --- a/drivers/media/platform/s5p-mfc/s5p_mfc.c +++ b/drivers/media/platform/s5p-mfc/s5p_mfc.c @@ -1144,30 +1144,11 @@ static int s5p_mfc_suspend(struct device *dev) { struct platform_device *pdev = to_platform_device(dev); struct s5p_mfc_dev *m_dev = platform_get_drvdata(pdev); - int ret; if (m_dev->num_inst == 0) return 0; - return s5p_mfc_sleep(m_dev); - if (test_and_set_bit(0, &m_dev->enter_suspend) != 0) { - mfc_err("Error: going to suspend for a second time\n"); - return -EIO; - } - /* Check if we're processing then wait if it necessary. */ - while (test_and_set_bit(0, &m_dev->hw_lock) != 0) { - /* Try and lock the HW */ - /* Wait on the interrupt waitqueue */ - ret = wait_event_interruptible_timeout(m_dev->queue, - m_dev->int_cond || m_dev->ctx[m_dev->curr_ctx]->int_cond, - msecs_to_jiffies(MFC_INT_TIMEOUT)); - - if (ret == 0) { - mfc_err("Waiting for hardware to finish timed out\n"); - return -EIO; - } - } - return 0; + return s5p_mfc_sleep(m_dev); } static int s5p_mfc_resume(struct device *dev)