Skip to content

Commit c7a45e5

Browse files
author
Mauro Carvalho Chehab
committed
[media] em28xx: Prepare to support 2 different I2C buses
Newer em28xx devices have 2 buses. Change the logic to allow using both buses. This patch was generated by this small script: for i in drivers/media/usb/em28xx/*.c; do sed 's,->i2c_adap,->i2c_adap[dev->def_i2c_bus],g;s,->i2c_client,->i2c_client[dev->def_i2c_bus],' done Of course, em28xx.h needed manual edit. Signed-off-by: Mauro Carvalho Chehab <[email protected]>
1 parent da508f5 commit c7a45e5

File tree

5 files changed

+85
-78
lines changed

5 files changed

+85
-78
lines changed

drivers/media/usb/em28xx/em28xx-cards.c

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2249,7 +2249,7 @@ static int em28xx_initialize_mt9m111(struct em28xx *dev)
22492249
};
22502250

22512251
for (i = 0; i < ARRAY_SIZE(regs); i++)
2252-
i2c_master_send(&dev->i2c_client, &regs[i][0], 3);
2252+
i2c_master_send(&dev->i2c_client[dev->def_i2c_bus], &regs[i][0], 3);
22532253

22542254
return 0;
22552255
}
@@ -2276,7 +2276,7 @@ static int em28xx_initialize_mt9m001(struct em28xx *dev)
22762276
};
22772277

22782278
for (i = 0; i < ARRAY_SIZE(regs); i++)
2279-
i2c_master_send(&dev->i2c_client, &regs[i][0], 3);
2279+
i2c_master_send(&dev->i2c_client[dev->def_i2c_bus], &regs[i][0], 3);
22802280

22812281
return 0;
22822282
}
@@ -2294,10 +2294,10 @@ static int em28xx_hint_sensor(struct em28xx *dev)
22942294
u16 version;
22952295

22962296
/* Micron sensor detection */
2297-
dev->i2c_client.addr = 0xba >> 1;
2297+
dev->i2c_client[dev->def_i2c_bus].addr = 0xba >> 1;
22982298
cmd = 0;
2299-
i2c_master_send(&dev->i2c_client, &cmd, 1);
2300-
rc = i2c_master_recv(&dev->i2c_client, (char *)&version_be, 2);
2299+
i2c_master_send(&dev->i2c_client[dev->def_i2c_bus], &cmd, 1);
2300+
rc = i2c_master_recv(&dev->i2c_client[dev->def_i2c_bus], (char *)&version_be, 2);
23012301
if (rc != 2)
23022302
return -EINVAL;
23032303

@@ -2748,8 +2748,8 @@ static void em28xx_card_setup(struct em28xx *dev)
27482748
#endif
27492749
/* Call first TVeeprom */
27502750

2751-
dev->i2c_client.addr = 0xa0 >> 1;
2752-
tveeprom_hauppauge_analog(&dev->i2c_client, &tv, dev->eedata);
2751+
dev->i2c_client[dev->def_i2c_bus].addr = 0xa0 >> 1;
2752+
tveeprom_hauppauge_analog(&dev->i2c_client[dev->def_i2c_bus], &tv, dev->eedata);
27532753

27542754
dev->tuner_type = tv.tuner_type;
27552755

@@ -2841,15 +2841,15 @@ static void em28xx_card_setup(struct em28xx *dev)
28412841

28422842
/* request some modules */
28432843
if (dev->board.has_msp34xx)
2844-
v4l2_i2c_new_subdev(&dev->v4l2_dev, &dev->i2c_adap,
2844+
v4l2_i2c_new_subdev(&dev->v4l2_dev, &dev->i2c_adap[dev->def_i2c_bus],
28452845
"msp3400", 0, msp3400_addrs);
28462846

28472847
if (dev->board.decoder == EM28XX_SAA711X)
2848-
v4l2_i2c_new_subdev(&dev->v4l2_dev, &dev->i2c_adap,
2848+
v4l2_i2c_new_subdev(&dev->v4l2_dev, &dev->i2c_adap[dev->def_i2c_bus],
28492849
"saa7115_auto", 0, saa711x_addrs);
28502850

28512851
if (dev->board.decoder == EM28XX_TVP5150)
2852-
v4l2_i2c_new_subdev(&dev->v4l2_dev, &dev->i2c_adap,
2852+
v4l2_i2c_new_subdev(&dev->v4l2_dev, &dev->i2c_adap[dev->def_i2c_bus],
28532853
"tvp5150", 0, tvp5150_addrs);
28542854

28552855
if (dev->em28xx_sensor == EM28XX_MT9V011) {
@@ -2861,39 +2861,39 @@ static void em28xx_card_setup(struct em28xx *dev)
28612861
};
28622862

28632863
pdata.xtal = dev->sensor_xtal;
2864-
v4l2_i2c_new_subdev_board(&dev->v4l2_dev, &dev->i2c_adap,
2864+
v4l2_i2c_new_subdev_board(&dev->v4l2_dev, &dev->i2c_adap[dev->def_i2c_bus],
28652865
&mt9v011_info, NULL);
28662866
}
28672867

28682868

28692869
if (dev->board.adecoder == EM28XX_TVAUDIO)
2870-
v4l2_i2c_new_subdev(&dev->v4l2_dev, &dev->i2c_adap,
2870+
v4l2_i2c_new_subdev(&dev->v4l2_dev, &dev->i2c_adap[dev->def_i2c_bus],
28712871
"tvaudio", dev->board.tvaudio_addr, NULL);
28722872

28732873
if (dev->board.tuner_type != TUNER_ABSENT) {
28742874
int has_demod = (dev->tda9887_conf & TDA9887_PRESENT);
28752875

28762876
if (dev->board.radio.type)
2877-
v4l2_i2c_new_subdev(&dev->v4l2_dev, &dev->i2c_adap,
2877+
v4l2_i2c_new_subdev(&dev->v4l2_dev, &dev->i2c_adap[dev->def_i2c_bus],
28782878
"tuner", dev->board.radio_addr, NULL);
28792879

28802880
if (has_demod)
28812881
v4l2_i2c_new_subdev(&dev->v4l2_dev,
2882-
&dev->i2c_adap, "tuner",
2882+
&dev->i2c_adap[dev->def_i2c_bus], "tuner",
28832883
0, v4l2_i2c_tuner_addrs(ADDRS_DEMOD));
28842884
if (dev->tuner_addr == 0) {
28852885
enum v4l2_i2c_tuner_type type =
28862886
has_demod ? ADDRS_TV_WITH_DEMOD : ADDRS_TV;
28872887
struct v4l2_subdev *sd;
28882888

28892889
sd = v4l2_i2c_new_subdev(&dev->v4l2_dev,
2890-
&dev->i2c_adap, "tuner",
2890+
&dev->i2c_adap[dev->def_i2c_bus], "tuner",
28912891
0, v4l2_i2c_tuner_addrs(type));
28922892

28932893
if (sd)
28942894
dev->tuner_addr = v4l2_i2c_subdev_addr(sd);
28952895
} else {
2896-
v4l2_i2c_new_subdev(&dev->v4l2_dev, &dev->i2c_adap,
2896+
v4l2_i2c_new_subdev(&dev->v4l2_dev, &dev->i2c_adap[dev->def_i2c_bus],
28972897
"tuner", dev->tuner_addr, NULL);
28982898
}
28992899
}

0 commit comments

Comments
 (0)