[linux-dvb] I2C changes in 2.6.14-rc1 causes breakage
Michael Krufky
mkrufky at linuxtv.org
Tue Sep 20 01:43:23 CEST 2005
C.Y.M wrote:
> C.Y.M wrote:
>
>>>- This patch is incomplete. Full patches were created by
>>> Jean Delvare <khali at linux-fr.org> and posted to lkml:
>>
>>
>>Ok, here is a full patch for the changes to "DVB" cards and 2.6.14-rc1 kernel.
>>BTW, my Nexus card seems to be working really well with latest changes.
>>
>
>
> Oops, forgot one line in the flexcop driver. Here is a fixed patch.
>
> Regards,
I think you forgot another line:
>
>
> ------------------------------------------------------------------------
>
> --- dvb-kernel/linux/drivers/media/common/saa7146_i2c.c.orig 2005-09-01 13:22:29.000000000 -0700
> +++ dvb-kernel/linux/drivers/media/common/saa7146_i2c.c 2005-09-14 23:59:53.000000000 -0700
> @@ -386,8 +386,6 @@
>
> /* exported algorithm data */
> static struct i2c_algorithm saa7146_algo = {
> - .name = "saa7146 i2c algorithm",
> - .id = I2C_ALGO_SAA7146,
here, i would assume there should be something like:
+ .id = I2C_HW_SAA7146,
But even still, I think that it would be much safer to just pull the
original patches from Jean Delvare in -git, and apply those to dvb cvs.
The patch CYM made could be used by 2.6.14-rcX users in the interim.
Johannes, What is exactly the situation? I volunteer to help you and
make a compat.h, similar to v4l cvs, so that we can make this
backwards-compatable. All I'm waiting for is a green light from you.
Here's how I handled this in v4l cvs:
diff -u -r1.17 -r1.18
--- video4linux/compat.h 2005/09/08 22:19:56 1.17
+++ video4linux/compat.h 2005/09/19 01:20:14 1.18
@@ -56,6 +56,12 @@
#if !defined(I2C_HW_B_CX2388x)
# define I2C_HW_B_CX2388x I2C_HW_B_BT848
#endif
+#if !defined(I2C_HW_SAA7134)
+# define I2C_HW_SAA7134 I2C_ALGO_SAA7134
+#endif
+#if !defined(I2C_HW_SAA7146)
+# define I2C_HW_SAA7146 I2C_ALGO_SAA7146
+#endif
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,9)
#define __le32 __u32
> .master_xfer = saa7146_i2c_xfer,
> .functionality = saa7146_i2c_func,
> };
> @@ -408,7 +406,7 @@
> i2c_adapter->dev.parent = &dev->pci->dev;
> i2c_adapter->algo = &saa7146_algo;
> i2c_adapter->algo_data = NULL;
> - i2c_adapter->id = I2C_ALGO_SAA7146;
> + i2c_adapter->id = I2C_HW_SAA7146;
> i2c_adapter->timeout = SAA7146_I2C_TIMEOUT;
> i2c_adapter->retries = SAA7146_I2C_RETRIES;
> }
> --- dvb-kernel/linux/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c.orig 2005-09-19 13:20:51.000000000 -0700
> +++ dvb-kernel/linux/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c 2005-09-19 13:25:32.000000000 -0700
> @@ -1474,8 +1474,6 @@
>
>
> static struct i2c_algorithm ttusb_dec_algo = {
> - .name = "ttusb dec i2c algorithm",
> - .id = I2C_ALGO_BIT,
> .master_xfer = master_xfer,
> .functionality = functionality,
> };
> @@ -1527,7 +1525,6 @@
> #endif
> ttusb->i2c_adap.algo = &ttusb_dec_algo;
> ttusb->i2c_adap.algo_data = NULL;
> - ttusb->i2c_adap.id = I2C_ALGO_BIT;
>
> result = i2c_add_adapter(&ttusb->i2c_adap);
> if (result) {
> --- dvb-kernel/linux/drivers/media/dvb/dvb-usb/cxusb.c.orig 2005-09-19 13:32:44.000000000 -0700
> +++ dvb-kernel/linux/drivers/media/dvb/dvb-usb/cxusb.c 2005-09-19 13:32:59.000000000 -0700
> @@ -132,8 +132,6 @@
> }
>
> static struct i2c_algorithm cxusb_i2c_algo = {
> - .name = "Conexant USB I2C algorithm",
> - .id = I2C_ALGO_BIT,
> .master_xfer = cxusb_i2c_xfer,
> .functionality = cxusb_i2c_func,
> };
> --- dvb-kernel/linux/drivers/media/dvb/dvb-usb/dibusb-common.c.orig 2005-09-19 13:34:55.000000000 -0700
> +++ dvb-kernel/linux/drivers/media/dvb/dvb-usb/dibusb-common.c 2005-09-19 13:35:07.000000000 -0700
> @@ -155,8 +155,6 @@
> }
>
> struct i2c_algorithm dibusb_i2c_algo = {
> - .name = "DiBcom USB I2C algorithm",
> - .id = I2C_ALGO_BIT,
> .master_xfer = dibusb_i2c_xfer,
> .functionality = dibusb_i2c_func,
> };
> --- dvb-kernel/linux/drivers/media/dvb/dvb-usb/digitv.c.orig 2005-09-19 13:36:45.000000000 -0700
> +++ dvb-kernel/linux/drivers/media/dvb/dvb-usb/digitv.c 2005-09-19 13:36:56.000000000 -0700
> @@ -77,8 +77,6 @@
> }
>
> static struct i2c_algorithm digitv_i2c_algo = {
> - .name = "Nebula DigiTV USB I2C algorithm",
> - .id = I2C_ALGO_BIT,
> .master_xfer = digitv_i2c_xfer,
> .functionality = digitv_i2c_func,
> };
> --- dvb-kernel/linux/drivers/media/dvb/dvb-usb/dvb-usb-i2c.c.orig 2005-09-19 13:39:22.000000000 -0700
> +++ dvb-kernel/linux/drivers/media/dvb/dvb-usb/dvb-usb-i2c.c 2005-09-19 13:39:44.000000000 -0700
> @@ -27,7 +27,6 @@
> #endif
> d->i2c_adap.algo = d->props.i2c_algo;
> d->i2c_adap.algo_data = NULL;
> - d->i2c_adap.id = I2C_ALGO_BIT;
>
> i2c_set_adapdata(&d->i2c_adap, d);
>
> --- dvb-kernel/linux/drivers/media/dvb/pluto2/pluto2.c.orig 2005-09-19 13:42:17.000000000 -0700
> +++ dvb-kernel/linux/drivers/media/dvb/pluto2/pluto2.c 2005-09-19 13:42:43.000000000 -0700
> @@ -628,7 +628,6 @@
> i2c_set_adapdata(&pluto->i2c_adap, pluto);
> strcpy(pluto->i2c_adap.name, DRIVER_NAME);
> pluto->i2c_adap.owner = THIS_MODULE;
> - pluto->i2c_adap.id = I2C_ALGO_BIT;
> pluto->i2c_adap.class = I2C_CLASS_TV_DIGITAL;
> pluto->i2c_adap.dev.parent = &pdev->dev;
> pluto->i2c_adap.algo_data = &pluto->i2c_bit;
> --- dvb-kernel/linux/drivers/media/dvb/b2c2/flexcop-i2c.c.orig 2005-09-19 14:04:50.000000000 -0700
> +++ dvb-kernel/linux/drivers/media/dvb/b2c2/flexcop-i2c.c 2005-09-19 14:05:16.000000000 -0700
> @@ -172,8 +172,6 @@
> }
>
> static struct i2c_algorithm flexcop_algo = {
> - .name = "FlexCop I2C algorithm",
> - .id = I2C_ALGO_BIT,
> .master_xfer = flexcop_master_xfer,
> .functionality = flexcop_i2c_func,
> };
> @@ -192,7 +190,6 @@
> fc->i2c_adap.class = I2C_CLASS_TV_DIGITAL;
> fc->i2c_adap.algo = &flexcop_algo;
> fc->i2c_adap.algo_data = NULL;
> - fc->i2c_adap.id = I2C_ALGO_BIT;
>
> if ((ret = i2c_add_adapter(&fc->i2c_adap)) < 0)
> return ret;
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> linux-dvb mailing list
> linux-dvb at linuxtv.org
> http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
--
Michael Krufky
More information about the linux-dvb
mailing list