Commit 70bfae5a authored by Michel Ludwig's avatar Michel Ludwig Committed by Mauro Carvalho Chehab
Browse files

V4L/DVB (12818): tm6000: Use dvb_frontend_detach instead of single symbol_put commands



Thanks to Mike Krufky for pointed that one out. Also include some minor
cleanups.

Signed-off-by: default avatarMichel Ludwig <michel.ludwig@gmail.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent e762d420
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -237,8 +237,9 @@ struct dvb_frontend* pseudo_zl10353_attach(struct tm6000_core *dev,
{
	struct tm6000_dvb *dvb = dev->dvb;

	dvb->frontend = zl10353_attach(config, i2c);
	dvb->frontend = dvb_attach(zl10353_attach, config, i2c);
	if(!dvb->frontend) {
		printk(KERN_ERR "Error during zl10353_attach!\n");
		return NULL;
	}

+5 −14
Original line number Diff line number Diff line
@@ -205,12 +205,7 @@ int tm6000_dvb_attach_frontend(struct tm6000_core *dev)
		return -1;
	}

	if(dvb->frontend) {
		return 0;
	}
	else {
		return -1;
	}
	return (!dvb->frontend) ? -1 : 0;
}

int tm6000_dvb_register(struct tm6000_core *dev)
@@ -226,7 +221,7 @@ int tm6000_dvb_register(struct tm6000_core *dev)
	ret = tm6000_dvb_attach_frontend(dev);
	if(ret < 0) {
		printk(KERN_ERR "tm6000: couldn't attach the frontend!\n");
//		goto err;
		goto err;
	}

	ret = dvb_register_adapter(&dvb->adapter, "Trident TVMaster 6000 DVB-T",
@@ -250,7 +245,7 @@ int tm6000_dvb_register(struct tm6000_core *dev)
			printk(KERN_ERR "tm6000: couldn't register "
					"frontend (xc3028)\n");
			ret = -EINVAL;
			goto adapter_err;
			goto frontend_err;
		}
		printk(KERN_INFO "tm6000: XC2028/3028 asked to be "
				 "attached to frontend!\n");
@@ -288,10 +283,8 @@ int tm6000_dvb_register(struct tm6000_core *dev)
	dvb_dmx_release(&dvb->demux);
frontend_err:
	if(dvb->frontend) {
		dvb_frontend_detach(dvb->frontend);
		dvb_unregister_frontend(dvb->frontend);
#ifdef CONFIG_DVB_CORE_ATTACH
		symbol_put(xc3028_attach);
#endif
	}
adapter_err:
	dvb_unregister_adapter(&dvb->adapter);
@@ -314,10 +307,8 @@ void tm6000_dvb_unregister(struct tm6000_core *dev)

// 	mutex_lock(&tm6000_driver.open_close_mutex);
	if(dvb->frontend) {
		dvb_frontend_detach(dvb->frontend);
		dvb_unregister_frontend(dvb->frontend);
#ifdef CONFIG_DVB_CORE_ATTACH
		symbol_put(xc3028_attach);
#endif
	}

	dvb_dmxdev_release(&dvb->dmxdev);