The patch number 11253 was added via Hans Verkuil <[email protected]>
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 <[email protected]>

------

From: Hans Verkuil  <[email protected]>
saa7134: fix RTD Embedded Technologies VFG7350 support.


This card has the saa6752hs on 7-bit address 0x21 instead of 0x20. Add
support in the card definition struct to select which address to use and
update the definitions accordingly.

Priority: normal

Signed-off-by: Hans Verkuil <[email protected]>


---

 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 +
 5 files changed, 14 insertions(+), 5 deletions(-)

diff -r 2adf4a837334 -r c7ca307cd4ac 
linux/drivers/media/video/saa7134/saa6752hs.c
--- a/linux/drivers/media/video/saa7134/saa6752hs.c     Sat Mar 28 06:55:35 
2009 -0300
+++ b/linux/drivers/media/video/saa7134/saa6752hs.c     Sat Mar 28 13:27:02 
2009 +0100
@@ -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 2adf4a837334 -r c7ca307cd4ac 
linux/drivers/media/video/saa7134/saa7134-cards.c
--- a/linux/drivers/media/video/saa7134/saa7134-cards.c Sat Mar 28 06:55:35 
2009 -0300
+++ b/linux/drivers/media/video/saa7134/saa7134-cards.c Sat Mar 28 13:27:02 
2009 +0100
@@ -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 2adf4a837334 -r c7ca307cd4ac 
linux/drivers/media/video/saa7134/saa7134-core.c
--- a/linux/drivers/media/video/saa7134/saa7134-core.c  Sat Mar 28 06:55:35 
2009 -0300
+++ b/linux/drivers/media/video/saa7134/saa7134-core.c  Sat Mar 28 13:27:02 
2009 +0100
@@ -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 2adf4a837334 -r c7ca307cd4ac 
linux/drivers/media/video/saa7134/saa7134-empress.c
--- a/linux/drivers/media/video/saa7134/saa7134-empress.c       Sat Mar 28 
06:55:35 2009 -0300
+++ b/linux/drivers/media/video/saa7134/saa7134-empress.c       Sat Mar 28 
13:27:02 2009 +0100
@@ -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 2adf4a837334 -r c7ca307cd4ac linux/drivers/media/video/saa7134/saa7134.h
--- a/linux/drivers/media/video/saa7134/saa7134.h       Sat Mar 28 06:55:35 
2009 -0300
+++ b/linux/drivers/media/video/saa7134/saa7134.h       Sat Mar 28 13:27:02 
2009 +0100
@@ -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/c7ca307cd4ac3acef280e060018102b30dc4cdc6

_______________________________________________
linuxtv-commits mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits

Reply via email to