[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