[PATCH dev-5.1 2/4] media: aspeed: use different delays for triggering VE H/W reset
Eddie James
eajames at linux.vnet.ibm.com
Thu May 30 02:09:55 AEST 2019
On 5/23/19 5:33 PM, Jae Hyun Yoo wrote:
> In case of watchdog timeout detected while doing mode detection,
> it's better triggering video engine hardware reset immediately so
> this commit fixes code for the case. Other than the case, it will
> trigger video engine hardware reset after RESOLUTION_CHANGE_DELAY.
Reviewed-by: Eddie James <eajames at linux.ibm.com>
Tested-by: Eddie James <eajames at linux.ibm.com>
>
> Signed-off-by: Jae Hyun Yoo <jae.hyun.yoo at linux.intel.com>
> ---
> drivers/media/platform/aspeed-video.c | 9 +++++----
> 1 file changed, 5 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/media/platform/aspeed-video.c b/drivers/media/platform/aspeed-video.c
> index ee1f87a08c7c..b8540cc7848d 100644
> --- a/drivers/media/platform/aspeed-video.c
> +++ b/drivers/media/platform/aspeed-video.c
> @@ -522,7 +522,7 @@ static void aspeed_video_bufs_done(struct aspeed_video *video,
> spin_unlock_irqrestore(&video->lock, flags);
> }
>
> -static void aspeed_video_irq_res_change(struct aspeed_video *video)
> +static void aspeed_video_irq_res_change(struct aspeed_video *video, ulong delay)
> {
> spin_lock(&video->lock);
> dev_dbg(video->dev, "Resolution changed; resetting\n");
> @@ -534,7 +534,7 @@ static void aspeed_video_irq_res_change(struct aspeed_video *video)
> spin_unlock(&video->lock);
> aspeed_video_bufs_done(video, VB2_BUF_STATE_ERROR);
>
> - schedule_delayed_work(&video->res_work, RESOLUTION_CHANGE_DELAY);
> + schedule_delayed_work(&video->res_work, delay);
> }
>
> static irqreturn_t aspeed_video_irq(int irq, void *arg)
> @@ -547,7 +547,7 @@ static irqreturn_t aspeed_video_irq(int irq, void *arg)
> * re-initialize
> */
> if (sts & VE_INTERRUPT_MODE_DETECT_WD) {
> - aspeed_video_irq_res_change(video);
> + aspeed_video_irq_res_change(video, 0);
> return IRQ_HANDLED;
> }
>
> @@ -565,7 +565,8 @@ static irqreturn_t aspeed_video_irq(int irq, void *arg)
> * Signal acquired while NOT doing resolution
> * detection; reset the engine and re-initialize
> */
> - aspeed_video_irq_res_change(video);
> + aspeed_video_irq_res_change(video,
> + RESOLUTION_CHANGE_DELAY);
> return IRQ_HANDLED;
> }
> }
More information about the openbmc
mailing list