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