diff options
author | Antti Palosaari | 2012-06-07 20:40:25 +0200 |
---|---|---|
committer | Mauro Carvalho Chehab | 2012-08-04 12:56:27 +0200 |
commit | a177c72bf57f70585f08231145b2431b4182b2b4 (patch) | |
tree | 86150038c700f5614008d7d2c06592cb9ee88e18 /drivers/media/dvb/dvb-usb/dvb_usb_init.c | |
parent | [media] dvb_usb_v2: use Kernel logging (pr_debug/pr_err/pr_info) (diff) | |
download | kernel-qcow2-linux-a177c72bf57f70585f08231145b2431b4182b2b4.tar.gz kernel-qcow2-linux-a177c72bf57f70585f08231145b2431b4182b2b4.tar.xz kernel-qcow2-linux-a177c72bf57f70585f08231145b2431b4182b2b4.zip |
[media] dvb_usb_v2: move I2C adapter code to different file
No worth to keep it on own file as it is only 30 LOC.
Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/dvb/dvb-usb/dvb_usb_init.c')
-rw-r--r-- | drivers/media/dvb/dvb-usb/dvb_usb_init.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/drivers/media/dvb/dvb-usb/dvb_usb_init.c b/drivers/media/dvb/dvb-usb/dvb_usb_init.c index 9dcf4e525795..aa7caa5c4684 100644 --- a/drivers/media/dvb/dvb-usb/dvb_usb_init.c +++ b/drivers/media/dvb/dvb-usb/dvb_usb_init.c @@ -68,6 +68,37 @@ err: return ret; } +int dvb_usb_i2c_init(struct dvb_usb_device *d) +{ + int ret = 0; + + if (!d->props.i2c_algo) + return 0; + + strlcpy(d->i2c_adap.name, d->name, sizeof(d->i2c_adap.name)); + d->i2c_adap.algo = d->props.i2c_algo; + d->i2c_adap.algo_data = NULL; + d->i2c_adap.dev.parent = &d->udev->dev; + + i2c_set_adapdata(&d->i2c_adap, d); + + ret = i2c_add_adapter(&d->i2c_adap); + if (ret < 0) + pr_err("%s: could not add i2c adapter", KBUILD_MODNAME); + + d->state |= DVB_USB_STATE_I2C; + + return ret; +} + +int dvb_usb_i2c_exit(struct dvb_usb_device *d) +{ + if (d->state & DVB_USB_STATE_I2C) + i2c_del_adapter(&d->i2c_adap); + d->state &= ~DVB_USB_STATE_I2C; + return 0; +} + static int dvb_usb_adapter_init(struct dvb_usb_device *d) { struct dvb_usb_adapter *adap; |