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

Reply via email to