The patch number 11257 was added via Mauro Carvalho Chehab <mche...@redhat.com> to http://linuxtv.org/hg/v4l-dvb master development tree.
Kernel patches in this development tree may be modified to be backward compatible with older kernels. Compatibility modifications will be removed before inclusion into the mainstream Kernel If anyone has any objections, please let us know by sending a message to: Linux Media Mailing List <linux-me...@vger.kernel.org> ------ From: Mauro Carvalho Chehab <mche...@redhat.com> merge: http://www.linuxtv.org/hg/~hverkuil/v4l-dvb Signed-off-by: Mauro Carvalho Chehab <mche...@redhat.com> --- linux/drivers/media/dvb/bt8xx/dst_ca.c | 9 +++++---- linux/drivers/media/video/cs53l32a.c | 10 +++------- linux/drivers/media/video/dabusb.c | 2 +- linux/drivers/media/video/saa7134/saa6752hs.c | 2 +- linux/drivers/media/video/saa7134/saa7134-cards.c | 8 ++++++++ linux/drivers/media/video/saa7134/saa7134-core.c | 5 +++-- linux/drivers/media/video/saa7134/saa7134-empress.c | 3 +-- linux/drivers/media/video/saa7134/saa7134.h | 1 + 8 files changed, 23 insertions(+), 17 deletions(-) diff -r d6aeae810c55 -r e5e3c5df85be linux/drivers/media/dvb/bt8xx/dst_ca.c --- a/linux/drivers/media/dvb/bt8xx/dst_ca.c Sun Mar 29 04:37:46 2009 -0300 +++ b/linux/drivers/media/dvb/bt8xx/dst_ca.c Sun Mar 29 05:34:18 2009 -0300 @@ -650,16 +650,17 @@ free_mem_and_exit: static long dst_ca_ioctl(struct file *file, unsigned int cmd, unsigned long ioctl_arg) { - lock_kernel(); - - struct dvb_device* dvbdev = (struct dvb_device*) file->private_data; - struct dst_state* state = (struct dst_state*) dvbdev->priv; + struct dvb_device *dvbdev; + struct dst_state *state; struct ca_slot_info *p_ca_slot_info; struct ca_caps *p_ca_caps; struct ca_msg *p_ca_message; void __user *arg = (void __user *)ioctl_arg; int result = 0; + lock_kernel(); + dvbdev = (struct dvb_device *)file->private_data; + state = (struct dst_state *)dvbdev->priv; p_ca_message = kmalloc(sizeof (struct ca_msg), GFP_KERNEL); p_ca_slot_info = kmalloc(sizeof (struct ca_slot_info), GFP_KERNEL); p_ca_caps = kmalloc(sizeof (struct ca_caps), GFP_KERNEL); diff -r d6aeae810c55 -r e5e3c5df85be linux/drivers/media/video/cs53l32a.c --- a/linux/drivers/media/video/cs53l32a.c Sun Mar 29 04:37:46 2009 -0300 +++ b/linux/drivers/media/video/cs53l32a.c Sun Mar 29 05:34:18 2009 -0300 @@ -29,7 +29,7 @@ #include <linux/videodev2.h> #include <media/v4l2-device.h> #include <media/v4l2-chip-ident.h> -#include <media/v4l2-i2c-drv-legacy.h> +#include <media/v4l2-i2c-drv.h> #include "compat.h" MODULE_DESCRIPTION("i2c device driver for cs53l32a Audio ADC"); @@ -42,9 +42,11 @@ module_param(debug, bool, 0644); MODULE_PARM_DESC(debug, "Debugging messages, 0=Off (default), 1=On"); +#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 22) static unsigned short normal_i2c[] = { 0x22 >> 1, I2C_CLIENT_END }; I2C_CLIENT_INSMOD; +#endif /* ----------------------------------------------------------------------- */ @@ -121,11 +123,6 @@ static int cs53l32a_log_status(struct v4 (m & 0xC0) ? " (muted)" : ""); v4l2_info(sd, "Volume: %d dB\n", vol); return 0; -} - -static int cs53l32a_command(struct i2c_client *client, unsigned cmd, void *arg) -{ - return v4l2_subdev_command(i2c_get_clientdata(client), cmd, arg); } /* ----------------------------------------------------------------------- */ @@ -225,7 +222,6 @@ MODULE_DEVICE_TABLE(i2c, cs53l32a_id); #endif static struct v4l2_i2c_driver_data v4l2_i2c_data = { .name = "cs53l32a", - .command = cs53l32a_command, .remove = cs53l32a_remove, .probe = cs53l32a_probe, #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 26) diff -r d6aeae810c55 -r e5e3c5df85be linux/drivers/media/video/dabusb.c --- a/linux/drivers/media/video/dabusb.c Sun Mar 29 04:37:46 2009 -0300 +++ b/linux/drivers/media/video/dabusb.c Sun Mar 29 05:34:18 2009 -0300 @@ -736,7 +736,6 @@ static int dabusb_release (struct inode static long dabusb_ioctl (struct file *file, unsigned int cmd, unsigned long arg) { - lock_kernel(); pdabusb_t s = (pdabusb_t) file->private_data; pbulk_transfer_t pbulk; int ret = 0; @@ -744,6 +743,7 @@ static long dabusb_ioctl (struct file *f dbg("dabusb_ioctl"); + lock_kernel(); if (s->remove_pending) { unlock_kernel(); return -EIO; diff -r d6aeae810c55 -r e5e3c5df85be linux/drivers/media/video/saa7134/saa6752hs.c --- a/linux/drivers/media/video/saa7134/saa6752hs.c Sun Mar 29 04:37:46 2009 -0300 +++ b/linux/drivers/media/video/saa7134/saa6752hs.c Sun Mar 29 05:34:18 2009 -0300 @@ -48,7 +48,7 @@ #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 22) /* Addresses to scan */ -static unsigned short normal_i2c[] = {0x20, I2C_CLIENT_END}; +static unsigned short normal_i2c[] = {0x20, 0x21, I2C_CLIENT_END}; I2C_CLIENT_INSMOD; #endif diff -r d6aeae810c55 -r e5e3c5df85be linux/drivers/media/video/saa7134/saa7134-cards.c --- a/linux/drivers/media/video/saa7134/saa7134-cards.c Sun Mar 29 04:37:46 2009 -0300 +++ b/linux/drivers/media/video/saa7134/saa7134-cards.c Sun Mar 29 05:34:18 2009 -0300 @@ -273,6 +273,7 @@ struct saa7134_board saa7134_boards[] = .radio_type = UNSET, .tuner_addr = ADDR_UNSET, .radio_addr = ADDR_UNSET, + .empress_addr = 0x20, .inputs = {{ .name = name_comp1, @@ -409,6 +410,7 @@ struct saa7134_board saa7134_boards[] = .radio_type = UNSET, .tuner_addr = ADDR_UNSET, .radio_addr = ADDR_UNSET, + .empress_addr = 0x20, .tda9887_conf = TDA9887_PRESENT, .gpiomask = 0x820000, .inputs = {{ @@ -819,6 +821,7 @@ struct saa7134_board saa7134_boards[] = .radio_type = UNSET, .tuner_addr = ADDR_UNSET, .radio_addr = ADDR_UNSET, + .empress_addr = 0x20, .inputs = {{ .name = name_comp1, .vmux = 4, @@ -978,6 +981,7 @@ struct saa7134_board saa7134_boards[] = .radio_type = UNSET, .tuner_addr = ADDR_UNSET, .radio_addr = ADDR_UNSET, + .empress_addr = 0x20, .inputs = {{ .name = name_comp1, .vmux = 1, @@ -2365,6 +2369,7 @@ struct saa7134_board saa7134_boards[] = .radio_type = UNSET, .tuner_addr = ADDR_UNSET, .radio_addr = ADDR_UNSET, + .empress_addr = 0x21, .inputs = {{ .name = "Composite 0", .vmux = 0, @@ -4172,6 +4177,7 @@ struct saa7134_board saa7134_boards[] = .radio_type = UNSET, .tuner_addr = ADDR_UNSET, .radio_addr = ADDR_UNSET, + .empress_addr = 0x20, .tda9887_conf = TDA9887_PRESENT, .inputs = { { .name = name_tv, @@ -4208,6 +4214,7 @@ struct saa7134_board saa7134_boards[] = .radio_type = UNSET, .tuner_addr = ADDR_UNSET, .radio_addr = ADDR_UNSET, + .empress_addr = 0x20, .tda9887_conf = TDA9887_PRESENT, .inputs = { { .name = name_tv, @@ -4245,6 +4252,7 @@ struct saa7134_board saa7134_boards[] = .radio_type = UNSET, .tuner_addr = ADDR_UNSET, .radio_addr = ADDR_UNSET, + .empress_addr = 0x20, .tda9887_conf = TDA9887_PRESENT, .inputs = { { .name = name_tv, diff -r d6aeae810c55 -r e5e3c5df85be linux/drivers/media/video/saa7134/saa7134-core.c --- a/linux/drivers/media/video/saa7134/saa7134-core.c Sun Mar 29 04:37:46 2009 -0300 +++ b/linux/drivers/media/video/saa7134/saa7134-core.c Sun Mar 29 05:34:18 2009 -0300 @@ -1043,8 +1043,9 @@ static int __devinit saa7134_initdev(str /* load i2c helpers */ if (card_is_empress(dev)) { struct v4l2_subdev *sd = - v4l2_i2c_new_subdev(&dev->i2c_adap, "saa6752hs", - "saa6752hs", 0x20); + v4l2_i2c_new_subdev(&dev->i2c_adap, + "saa6752hs", "saa6752hs", + saa7134_boards[dev->board].empress_addr); if (sd) sd->grp_id = GRP_EMPRESS; diff -r d6aeae810c55 -r e5e3c5df85be linux/drivers/media/video/saa7134/saa7134-empress.c --- a/linux/drivers/media/video/saa7134/saa7134-empress.c Sun Mar 29 04:37:46 2009 -0300 +++ b/linux/drivers/media/video/saa7134/saa7134-empress.c Sun Mar 29 05:34:18 2009 -0300 @@ -416,8 +416,7 @@ static int empress_g_chip_ident(struct f if (chip->match.type == V4L2_CHIP_MATCH_I2C_DRIVER && !strcmp(chip->match.name, "saa6752hs")) return saa_call_empress(dev, core, g_chip_ident, chip); - if (chip->match.type == V4L2_CHIP_MATCH_I2C_ADDR && - chip->match.addr == 0x20) + if (chip->match.type == V4L2_CHIP_MATCH_I2C_ADDR) return saa_call_empress(dev, core, g_chip_ident, chip); return -EINVAL; } diff -r d6aeae810c55 -r e5e3c5df85be linux/drivers/media/video/saa7134/saa7134.h --- a/linux/drivers/media/video/saa7134/saa7134.h Sun Mar 29 04:37:46 2009 -0300 +++ b/linux/drivers/media/video/saa7134/saa7134.h Sun Mar 29 05:34:18 2009 -0300 @@ -333,6 +333,7 @@ struct saa7134_board { unsigned int radio_type; unsigned char tuner_addr; unsigned char radio_addr; + unsigned char empress_addr; unsigned int tda9887_conf; unsigned int tuner_config; --- Patch is available at: http://linuxtv.org/hg/v4l-dvb/rev/e5e3c5df85be3df93f02c9ebeb9a5676adc63ab7 _______________________________________________ linuxtv-commits mailing list linuxtv-commits@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits