diff mbox

[2/2] au0828: Cancel stream-restart operation if frontend is disconnected

Message ID 1399530503-6820-1-git-send-email-cb.xiong@samsung.com (mailing list archive)
State New, archived
Headers show

Commit Message

cb.xiong@samsung.com May 8, 2014, 6:28 a.m. UTC
If the tuner is already disconnected, It is meaningless to go on doing the
stream-restart operation, It is better to cancel this operation.

Signed-off-by: Changbing Xiong <cb.xiong@samsung.com>
---
 drivers/media/usb/au0828/au0828-dvb.c |    2 ++
 1 file changed, 2 insertions(+)

--
1.7.9.5

--
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

Comments

Mauro Carvalho Chehab May 8, 2014, 8:11 a.m. UTC | #1
Hi Changbing,

Em Thu, 08 May 2014 14:28:23 +0800
Changbing Xiong <cb.xiong@samsung.com> escreveu:

> If the tuner is already disconnected, It is meaningless to go on doing the
> stream-restart operation, It is better to cancel this operation.
> 
> Signed-off-by: Changbing Xiong <cb.xiong@samsung.com>
> ---
>  drivers/media/usb/au0828/au0828-dvb.c |    2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/media/usb/au0828/au0828-dvb.c b/drivers/media/usb/au0828/au0828-dvb.c
> index 878f66f..6995309 100755
> --- a/drivers/media/usb/au0828/au0828-dvb.c
> +++ b/drivers/media/usb/au0828/au0828-dvb.c
> @@ -422,6 +422,8 @@ void au0828_dvb_unregister(struct au0828_dev *dev)
>  	dvb_unregister_frontend(dvb->frontend);
>  	dvb_frontend_detach(dvb->frontend);
>  	dvb_unregister_adapter(&dvb->adapter);
> +
> +	cancel_work_sync(&dev->restart_streaming);

I'm wandering that, if you move the cancel_work_sync() to be called 
earlier in this function (before the dvb_unregister calls),
then maybe we can avoid the first patch.

>  }
> 
>  /* All the DVB attach calls go here, this function get's modified
> --
> 1.7.9.5
>
diff mbox

Patch

diff --git a/drivers/media/usb/au0828/au0828-dvb.c b/drivers/media/usb/au0828/au0828-dvb.c
index 878f66f..6995309 100755
--- a/drivers/media/usb/au0828/au0828-dvb.c
+++ b/drivers/media/usb/au0828/au0828-dvb.c
@@ -422,6 +422,8 @@  void au0828_dvb_unregister(struct au0828_dev *dev)
 	dvb_unregister_frontend(dvb->frontend);
 	dvb_frontend_detach(dvb->frontend);
 	dvb_unregister_adapter(&dvb->adapter);
+
+	cancel_work_sync(&dev->restart_streaming);
 }

 /* All the DVB attach calls go here, this function get's modified