if (!demux->dmx.frontend)
return -EINVAL;
- if (dvb) {
+ if (dvb->frontend) {
mutex_lock(&dvb->lock);
dvb->start_count++;
dprintk(1, "%s(), start_count: %d, stop_count: %d\n", __func__,
dprintk(1, "%s()\n", __func__);
- if (dvb) {
+ if (dvb->frontend) {
cancel_work_sync(&dev->restart_streaming);
mutex_lock(&dvb->lock);
for (i = 0; i < URB_COUNT; i++)
kfree(dev->dig_transfer_buffer[i]);
}
-
-
+ dvb->frontend = NULL;
}
/* All the DVB attach calls go here, this function get's modified
if (ret < 0) {
if (dvb->frontend->ops.release)
dvb->frontend->ops.release(dvb->frontend);
+ dvb->frontend = NULL;
return ret;
}
{
struct au0828_dvb *dvb = &dev->dvb;
- if (dvb && dev->urb_streaming) {
+ if (dvb->frontend && dev->urb_streaming) {
pr_info("stopping DVB\n");
cancel_work_sync(&dev->restart_streaming);
{
struct au0828_dvb *dvb = &dev->dvb;
- if (dvb && dev->urb_streaming) {
+ if (dvb->frontend && dev->urb_streaming) {
pr_info("resuming DVB\n");
au0828_set_frontend(dvb->frontend);