diff options
author | Devin Heitmueller <devin.heitmueller@gmail.com> | 2008-09-06 12:45:27 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2008-10-12 07:37:08 -0400 |
commit | bdc203e156ce938e12d957912bd29ca53d160540 (patch) | |
tree | 8fc2b01bc6f584dc71f506e0c6a25f96c515e184 /drivers/media/dvb/dvb-usb/dib0700_devices.c | |
parent | 17a370bcca661a849c9af07feae86f42d0c6dfd1 (diff) |
V4L/DVB (9039): Add support for new i2c API provided in firmware version 1.20
The Pinnacle PCTV HD Pro has an xc5000, which exposed a bug in the dib0700's
i2c implementation where it did not properly support a single i2c read request
(sending it as an i2c write request instead). Version 1.20 of the firmware
added support for a new i2c API which supported such requests.
This change defaults to fw 1.20 for all devices, but does not default to using
the new i2c API (since initial testing suggests problems interacting with the
mt2060). Maintainers can enable the use of the new i2c API by putting
the following into their frontend initialization:
struct dib0700_state *st = adap->dev->priv;
st->fw_use_new_i2c_api = 1;
Also note that the code expects i2c repeated start to be supported. If the
i2c slave does not support repeated start, i2c messsages should have the
I2C_M_NOSTART flag set.
Thanks to Patrick Boettcher <patrick.boettcher@desy.de> for providing new
firmware fixing the issue as well as example i2c code utilizing the interface.
Signed-off-by: Devin Heitmueller <devin.heitmueller@gmail.com>
Signed-off-by: Patrick Boettcher <pb@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/dvb/dvb-usb/dib0700_devices.c')
-rw-r--r-- | drivers/media/dvb/dvb-usb/dib0700_devices.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/media/dvb/dvb-usb/dib0700_devices.c b/drivers/media/dvb/dvb-usb/dib0700_devices.c index 110d9344bc9..2555e53b31d 100644 --- a/drivers/media/dvb/dvb-usb/dib0700_devices.c +++ b/drivers/media/dvb/dvb-usb/dib0700_devices.c | |||
@@ -1127,7 +1127,7 @@ MODULE_DEVICE_TABLE(usb, dib0700_usb_id_table); | |||
1127 | #define DIB0700_DEFAULT_DEVICE_PROPERTIES \ | 1127 | #define DIB0700_DEFAULT_DEVICE_PROPERTIES \ |
1128 | .caps = DVB_USB_IS_AN_I2C_ADAPTER, \ | 1128 | .caps = DVB_USB_IS_AN_I2C_ADAPTER, \ |
1129 | .usb_ctrl = DEVICE_SPECIFIC, \ | 1129 | .usb_ctrl = DEVICE_SPECIFIC, \ |
1130 | .firmware = "dvb-usb-dib0700-1.10.fw", \ | 1130 | .firmware = "dvb-usb-dib0700-1.20.fw", \ |
1131 | .download_firmware = dib0700_download_firmware, \ | 1131 | .download_firmware = dib0700_download_firmware, \ |
1132 | .no_reconnect = 1, \ | 1132 | .no_reconnect = 1, \ |
1133 | .size_of_priv = sizeof(struct dib0700_state), \ | 1133 | .size_of_priv = sizeof(struct dib0700_state), \ |