[media] cx23885: add I2C client for CI into state and handle unregistering

If the CI chip has an I2C driver, we need to store I2C client into state.

Signed-off-by: Olli Salonen <olli.salonen@iki.fi>
Reviewed-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
This commit is contained in:
Olli Salonen 2014-09-29 04:44:19 -03:00 committed by Mauro Carvalho Chehab
parent b1cb7ad2d2
commit e450de45f4
2 changed files with 8 additions and 0 deletions

View File

@ -1914,6 +1914,13 @@ int cx23885_dvb_unregister(struct cx23885_tsport *port)
struct vb2_dvb_frontend *fe0; struct vb2_dvb_frontend *fe0;
struct i2c_client *client; struct i2c_client *client;
/* remove I2C client for CI */
client = port->i2c_client_ci;
if (client) {
module_put(client->dev.driver->owner);
i2c_unregister_device(client);
}
/* remove I2C client for tuner */ /* remove I2C client for tuner */
client = port->i2c_client_tuner; client = port->i2c_client_tuner;
if (client) { if (client) {

View File

@ -297,6 +297,7 @@ struct cx23885_tsport {
struct i2c_client *i2c_client_demod; struct i2c_client *i2c_client_demod;
struct i2c_client *i2c_client_tuner; struct i2c_client *i2c_client_tuner;
struct i2c_client *i2c_client_ci;
int (*set_frontend)(struct dvb_frontend *fe); int (*set_frontend)(struct dvb_frontend *fe);
int (*fe_set_voltage)(struct dvb_frontend *fe, int (*fe_set_voltage)(struct dvb_frontend *fe,