forked from Minki/linux
V4L/DVB (11253): 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. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
e7ddcd98a1
commit
195784b8ef
@ -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,
|
||||
@ -4133,6 +4138,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,
|
||||
@ -4169,6 +4175,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,
|
||||
@ -4206,6 +4213,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,
|
||||
|
@ -982,8 +982,9 @@ static int __devinit saa7134_initdev(struct pci_dev *pci_dev,
|
||||
/* 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;
|
||||
|
@ -416,8 +416,7 @@ static int empress_g_chip_ident(struct file *file, void *fh,
|
||||
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;
|
||||
}
|
||||
|
@ -332,6 +332,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;
|
||||
|
Loading…
Reference in New Issue
Block a user