C.Y.M wrote: > I noticed the kernel developers made some new changes to i2c which > affects saa7146 (and some other drivers) in 2.6.11-bk1. Included is a > patch for current dvb-kernel if you want to build the latest 2.6 kernel > snapshot. > > Best Regards, Whoever checks this in to CVS should please make sure the latest CVS version of dvb-kernel still compiles with kernel 2.6.8 (which ist the version used in current Linux distributions such as SUSE 9.2). I'd hate to be forced to install a special kernel version in case I switch to dvb-kernel. Klaus > ------------------------------------------------------------------------ > > --- dvb-kernel/linux/include/media/saa7146.h.orig 2005-03-05 13:40:47.000000000 -0800 > +++ dvb-kernel/linux/include/media/saa7146.h 2005-03-05 13:41:31.000000000 -0800 > @@ -169,7 +169,7 @@ > > /* from saa7146_i2c.c */ > int saa7146_i2c_adapter_prepare(struct saa7146_dev *dev, struct i2c_adapter *i2c_adapter, u32 bitrate); > -int saa7146_i2c_transfer(struct saa7146_dev *saa, const struct i2c_msg msgs[], int num, int retries); > +int saa7146_i2c_transfer(struct saa7146_dev *saa, const struct i2c_msg *msgs, int num, int retries); > > /* from saa7146_core.c */ > extern struct list_head saa7146_devices; > --- dvb-kernel/linux/drivers/media/common/saa7146_video.c.orig 2005-03-05 13:36:37.000000000 -0800 > +++ dvb-kernel/linux/drivers/media/common/saa7146_video.c 2005-03-05 13:38:45.000000000 -0800 > @@ -889,7 +889,7 @@ > > strcpy(cap->driver, "saa7146 v4l2"); > strlcpy(cap->card, dev->ext->name, sizeof(cap->card)); > - sprintf(cap->bus_info,"PCI:%s",dev->pci->slot_name); > + sprintf(cap->bus_info,"PCI:%s", pci_name(dev->pci)); > cap->version = SAA7146_VERSION_CODE; > cap->capabilities = > V4L2_CAP_VIDEO_CAPTURE | > --- dvb-kernel/linux/drivers/media/common/saa7146_i2c.c.orig 2005-03-02 21:15:05.000000000 -0800 > +++ dvb-kernel/linux/drivers/media/common/saa7146_i2c.c 2005-03-05 13:43:00.000000000 -0800 > @@ -25,7 +25,7 @@ > sent through the saa7146. have a look at the specifications p. 122 ff > to understand this. it returns the number of u32s to send, or -1 > in case of an error. */ > -static int saa7146_i2c_msg_prepare(const struct i2c_msg m[], int num, u32 *op) > +static int saa7146_i2c_msg_prepare(const struct i2c_msg *m, int num, u32 *op) > { > int h1, h2; > int i, j, addr; > @@ -89,7 +89,7 @@ > which bytes were read through the adapter and write them back to the corresponding > i2c-message. but instead, we simply write back all bytes. > fixme: this could be improved. */ > -static int saa7146_i2c_msg_cleanup(const struct i2c_msg m[], int num, u32 *op) > +static int saa7146_i2c_msg_cleanup(const struct i2c_msg *m, int num, u32 *op) > { > int i, j; > int op_count = 0; > @@ -272,7 +272,7 @@ > return 0; > } > > -int saa7146_i2c_transfer(struct saa7146_dev *dev, const struct i2c_msg msgs[], int num, int retries) > +int saa7146_i2c_transfer(struct saa7146_dev *dev, const struct i2c_msg *msgs, int num, int retries) > { > int i = 0, count = 0; > u32* buffer = dev->d_i2c.cpu_addr; > @@ -372,7 +372,7 @@ > } > > /* utility functions */ > -static int saa7146_i2c_xfer(struct i2c_adapter* adapter, struct i2c_msg msg[], int num) > +static int saa7146_i2c_xfer(struct i2c_adapter* adapter, struct i2c_msg *msg, int num) > { > struct saa7146_dev* dev = i2c_get_adapdata(adapter); > > > > ------------------------------------------------------------------------ > > --- dvb-kernel/linux/drivers/media/dvb/b2c2/skystar2.c.orig 2005-02-11 17:57:54.000000000 -0800 > +++ dvb-kernel/linux/drivers/media/dvb/b2c2/skystar2.c 2005-03-05 16:09:02.000000000 -0800 > @@ -298,7 +298,7 @@ > return buf - start; > } > > -static int master_xfer(struct i2c_adapter* adapter, struct i2c_msg msgs[], int num) > +static int master_xfer(struct i2c_adapter* adapter, struct i2c_msg *msgs, int num) > { > struct adapter *tmp = i2c_get_adapdata(adapter); > int i, ret = 0; > --- dvb-kernel/linux/drivers/media/dvb/dibusb/dvb-dibusb-fe-i2c.c.orig 2005-03-05 14:00:35.000000000 -0800 > +++ dvb-kernel/linux/drivers/media/dvb/dibusb/dvb-dibusb-fe-i2c.c 2005-03-05 16:09:02.000000000 -0800 > @@ -38,7 +38,7 @@ > /* > * I2C master xfer function > */ > -static int dibusb_i2c_xfer(struct i2c_adapter *adap,struct i2c_msg msg[],int num) > +static int dibusb_i2c_xfer(struct i2c_adapter *adap,struct i2c_msg *msg,int num) > { > struct usb_dibusb *dib = i2c_get_adapdata(adap); > int i; > --- dvb-kernel/linux/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c.orig 2005-02-19 01:16:49.000000000 -0800 > +++ dvb-kernel/linux/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c 2005-03-05 16:09:02.000000000 -0800 > @@ -239,7 +239,7 @@ > return rcv_len; > } > > -static int master_xfer(struct i2c_adapter* adapter, struct i2c_msg msg[], int num) > +static int master_xfer(struct i2c_adapter* adapter, struct i2c_msg *msg, int num) > { > struct ttusb *ttusb = i2c_get_adapdata(adapter); > int i = 0;