瀏覽代碼

[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>
Olli Salonen 11 年之前
父節點
當前提交
e450de45f4
共有 2 個文件被更改,包括 8 次插入0 次删除
  1. 7 0
      drivers/media/pci/cx23885/cx23885-dvb.c
  2. 1 0
      drivers/media/pci/cx23885/cx23885.h

+ 7 - 0
drivers/media/pci/cx23885/cx23885-dvb.c

@@ -1914,6 +1914,13 @@ int cx23885_dvb_unregister(struct cx23885_tsport *port)
 	struct vb2_dvb_frontend *fe0;
 	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 */
 	client = port->i2c_client_tuner;
 	if (client) {

+ 1 - 0
drivers/media/pci/cx23885/cx23885.h

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