aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/cx23885/cx23885-i2c.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/video/cx23885/cx23885-i2c.c')
-rw-r--r--drivers/media/video/cx23885/cx23885-i2c.c67
1 files changed, 4 insertions, 63 deletions
diff --git a/drivers/media/video/cx23885/cx23885-i2c.c b/drivers/media/video/cx23885/cx23885-i2c.c
index 969b7ebbc827..3421bd12056a 100644
--- a/drivers/media/video/cx23885/cx23885-i2c.c
+++ b/drivers/media/video/cx23885/cx23885-i2c.c
@@ -268,65 +268,6 @@ static int i2c_xfer(struct i2c_adapter *i2c_adap,
268 return retval; 268 return retval;
269} 269}
270 270
271static int attach_inform(struct i2c_client *client)
272{
273 struct v4l2_device *v4l2_dev = i2c_get_adapdata(client->adapter);
274 struct cx23885_dev *dev = to_cx23885(v4l2_dev);
275 struct tuner_setup tun_setup;
276
277 dprintk(1, "%s i2c attach [addr=0x%x,client=%s]\n",
278 client->driver->driver.name, client->addr, client->name);
279
280 if (!client->driver->command)
281 return 0;
282
283 if (dev->tuner_type != UNSET) {
284
285 dprintk(1, "%s (tuner) i2c attach [addr=0x%x,client=%s]\n",
286 client->driver->driver.name, client->addr,
287 client->name);
288
289 if ((dev->tuner_addr == ADDR_UNSET) ||
290 (dev->tuner_addr == client->addr)) {
291
292 dprintk(1, "%s (tuner || addr UNSET)\n",
293 client->driver->driver.name);
294
295 dprintk(1, "%s i2c attach [addr=0x%x,client=%s]\n",
296 client->driver->driver.name,
297 client->addr, client->name);
298
299 tun_setup.mode_mask = T_ANALOG_TV;
300 tun_setup.type = dev->tuner_type;
301 tun_setup.addr = dev->tuner_addr;
302
303 client->driver->command(client, TUNER_SET_TYPE_ADDR,
304 &tun_setup);
305 }
306 }
307
308 return 0;
309}
310
311static int detach_inform(struct i2c_client *client)
312{
313 struct v4l2_device *v4l2_dev = i2c_get_adapdata(client->adapter);
314 struct cx23885_dev *dev = to_cx23885(v4l2_dev);
315
316 dprintk(1, "i2c detach [client=%s]\n", client->name);
317
318 return 0;
319}
320
321void cx23885_call_i2c_clients(struct cx23885_i2c *bus,
322 unsigned int cmd, void *arg)
323{
324 if (bus->i2c_rc != 0)
325 return;
326
327 i2c_clients_command(&bus->i2c_adap, cmd, arg);
328}
329
330static u32 cx23885_functionality(struct i2c_adapter *adap) 271static u32 cx23885_functionality(struct i2c_adapter *adap)
331{ 272{
332 return I2C_FUNC_SMBUS_EMUL | I2C_FUNC_I2C; 273 return I2C_FUNC_SMBUS_EMUL | I2C_FUNC_I2C;
@@ -344,9 +285,6 @@ static struct i2c_adapter cx23885_i2c_adap_template = {
344 .owner = THIS_MODULE, 285 .owner = THIS_MODULE,
345 .id = I2C_HW_B_CX23885, 286 .id = I2C_HW_B_CX23885,
346 .algo = &cx23885_i2c_algo_template, 287 .algo = &cx23885_i2c_algo_template,
347 .class = I2C_CLASS_TV_ANALOG,
348 .client_register = attach_inform,
349 .client_unregister = detach_inform,
350}; 288};
351 289
352static struct i2c_client cx23885_i2c_client_template = { 290static struct i2c_client cx23885_i2c_client_template = {
@@ -410,8 +348,11 @@ int cx23885_i2c_register(struct cx23885_i2c *bus)
410 348
411 if (0 == bus->i2c_rc) { 349 if (0 == bus->i2c_rc) {
412 dprintk(1, "%s: i2c bus %d registered\n", dev->name, bus->nr); 350 dprintk(1, "%s: i2c bus %d registered\n", dev->name, bus->nr);
413 if (i2c_scan) 351 if (i2c_scan) {
352 printk(KERN_INFO "%s: scan bus %d:\n",
353 dev->name, bus->nr);
414 do_i2c_scan(dev->name, &bus->i2c_client); 354 do_i2c_scan(dev->name, &bus->i2c_client);
355 }
415 } else 356 } else
416 printk(KERN_WARNING "%s: i2c bus %d register FAILED\n", 357 printk(KERN_WARNING "%s: i2c bus %d register FAILED\n",
417 dev->name, bus->nr); 358 dev->name, bus->nr);