diff --git a/drivers/media/video/bt8xx/bttv-cards.c b/drivers/media/video/bt8xx/bttv-cards.c
index ced7770..58fb93e 100644
--- a/drivers/media/video/bt8xx/bttv-cards.c
+++ b/drivers/media/video/bt8xx/bttv-cards.c
@@ -3640,21 +3640,13 @@
 	   it really is a msp3400, so it will return NULL when the device
 	   found is really something else (e.g. a tea6300). */
 	if (!bttv_tvcards[btv->c.type].no_msp34xx) {
-		static const unsigned short addrs[] = {
-			I2C_ADDR_MSP3400 >> 1,
-			I2C_CLIENT_END
-		};
-
-		btv->sd_msp34xx = v4l2_i2c_new_probed_subdev(&btv->c.v4l2_dev,
-			&btv->c.i2c_adap, "msp3400", "msp3400", addrs);
+		btv->sd_msp34xx = v4l2_i2c_new_probed_subdev_addr(&btv->c.v4l2_dev,
+			&btv->c.i2c_adap, "msp3400", "msp3400",
+			I2C_ADDR_MSP3400 >> 1);
 	} else if (bttv_tvcards[btv->c.type].msp34xx_alt) {
-		static const unsigned short addrs[] = {
-			I2C_ADDR_MSP3400_ALT >> 1,
-			I2C_CLIENT_END
-		};
-
-		btv->sd_msp34xx = v4l2_i2c_new_probed_subdev(&btv->c.v4l2_dev,
-			&btv->c.i2c_adap, "msp3400", "msp3400", addrs);
+		btv->sd_msp34xx = v4l2_i2c_new_probed_subdev_addr(&btv->c.v4l2_dev,
+			&btv->c.i2c_adap, "msp3400", "msp3400",
+			I2C_ADDR_MSP3400_ALT >> 1);
 	}
 
 	/* If we found a msp34xx, then we're done. */
diff --git a/drivers/media/video/cx88/cx88-video.c b/drivers/media/video/cx88/cx88-video.c
index d7d4d2a..61afa89 100644
--- a/drivers/media/video/cx88/cx88-video.c
+++ b/drivers/media/video/cx88/cx88-video.c
@@ -1888,12 +1888,9 @@
 	if (core->board.audio_chip == V4L2_IDENT_TVAUDIO) {
 		/* This probes for a tda9874 as is used on some
 		   Pixelview Ultra boards. */
-		static const unsigned short i2c_addr[] = {
-			0xb0 >> 1, I2C_CLIENT_END
-		};
-
-		v4l2_i2c_new_probed_subdev(&core->v4l2_dev, &core->i2c_adap,
-				"tvaudio", "tvaudio", i2c_addr);
+		v4l2_i2c_new_probed_subdev_addr(&core->v4l2_dev,
+				&core->i2c_adap,
+				"tvaudio", "tvaudio", 0xb0 >> 1);
 	}
 
 	switch (core->boardnr) {
diff --git a/drivers/media/video/ivtv/ivtv-i2c.c b/drivers/media/video/ivtv/ivtv-i2c.c
index 1a289fd..9e3d32b 100644
--- a/drivers/media/video/ivtv/ivtv-i2c.c
+++ b/drivers/media/video/ivtv/ivtv-i2c.c
@@ -181,10 +181,8 @@
 	if (!hw_addrs[idx])
 		return -1;
 	if (hw == IVTV_HW_UPD64031A || hw == IVTV_HW_UPD6408X) {
-		unsigned short addrs[2] = { hw_addrs[idx], I2C_CLIENT_END };
-
-		sd = v4l2_i2c_new_probed_subdev(&itv->v4l2_dev,
-				adap, mod, type, addrs);
+		sd = v4l2_i2c_new_probed_subdev_addr(&itv->v4l2_dev,
+				adap, mod, type, hw_addrs[idx]);
 	} else {
 		sd = v4l2_i2c_new_subdev(&itv->v4l2_dev,
 				adap, mod, type, hw_addrs[idx]);
diff --git a/drivers/media/video/saa7134/saa7134-core.c b/drivers/media/video/saa7134/saa7134-core.c
index 234f530..0bb09f1 100644
--- a/drivers/media/video/saa7134/saa7134-core.c
+++ b/drivers/media/video/saa7134/saa7134-core.c
@@ -991,12 +991,11 @@
 	}
 
 	if (saa7134_boards[dev->board].rds_addr) {
-		unsigned short addrs[2] = { 0, I2C_CLIENT_END };
 		struct v4l2_subdev *sd;
 
-		addrs[0] = saa7134_boards[dev->board].rds_addr;
-		sd = v4l2_i2c_new_probed_subdev(&dev->v4l2_dev, &dev->i2c_adap,
-				"saa6588", "saa6588", addrs);
+		sd = v4l2_i2c_new_probed_subdev_addr(&dev->v4l2_dev,
+				&dev->i2c_adap,	"saa6588", "saa6588",
+				saa7134_boards[dev->board].rds_addr);
 		if (sd)
 			printk(KERN_INFO "%s: found RDS decoder\n", dev->name);
 	}
diff --git a/drivers/media/video/vino.c b/drivers/media/video/vino.c
index 9434375..4912696 100644
--- a/drivers/media/video/vino.c
+++ b/drivers/media/video/vino.c
@@ -4266,7 +4266,6 @@
 
 static int __init vino_module_init(void)
 {
-	unsigned short addr[] = { 0, I2C_CLIENT_END };
 	int ret;
 
 	printk(KERN_INFO "SGI VINO driver version %s\n",
@@ -4336,14 +4335,12 @@
 	}
 	vino_init_stage++;
 
-	addr[0] = 0x45;
 	vino_drvdata->decoder =
-		v4l2_i2c_new_probed_subdev(&vino_drvdata->v4l2_dev,
-			&vino_i2c_adapter, "saa7191", "saa7191", addr);
-	addr[0] = 0x2b;
+		v4l2_i2c_new_probed_subdev_addr(&vino_drvdata->v4l2_dev,
+			&vino_i2c_adapter, "saa7191", "saa7191", 0x45);
 	vino_drvdata->camera =
-		v4l2_i2c_new_probed_subdev(&vino_drvdata->v4l2_dev,
-			&vino_i2c_adapter, "indycam", "indycam", addr);
+		v4l2_i2c_new_probed_subdev_addr(&vino_drvdata->v4l2_dev,
+			&vino_i2c_adapter, "indycam", "indycam", 0x2b);
 
 	dprintk("init complete!\n");
 
