summaryrefslogtreecommitdiff
path: root/linux/drivers/media
diff options
context:
space:
mode:
authorHans Verkuil <hverkuil@xs4all.nl>2008-04-07 10:32:14 +0200
committerHans Verkuil <hverkuil@xs4all.nl>2008-04-07 10:32:14 +0200
commitb9ed2c89650d680d0d8f1edcd238527c50079b4f (patch)
tree7e7e04432998dcc267a2ae2a0ffd9436c13021e9 /linux/drivers/media
parent3aa24bc751bcb8c96a5c84186ef4f4aad1ba0853 (diff)
downloadmediapointer-dvb-s2-b9ed2c89650d680d0d8f1edcd238527c50079b4f.tar.gz
mediapointer-dvb-s2-b9ed2c89650d680d0d8f1edcd238527c50079b4f.tar.bz2
ivtv: the upd* modules have to be probed to properly autodetect some cards.
From: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Diffstat (limited to 'linux/drivers/media')
-rw-r--r--linux/drivers/media/video/ivtv/ivtv-i2c.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/linux/drivers/media/video/ivtv/ivtv-i2c.c b/linux/drivers/media/video/ivtv/ivtv-i2c.c
index 1f421a574..77b4f960b 100644
--- a/linux/drivers/media/video/ivtv/ivtv-i2c.c
+++ b/linux/drivers/media/video/ivtv/ivtv-i2c.c
@@ -178,10 +178,16 @@ int ivtv_i2c_register(struct ivtv *itv, unsigned idx)
}
if (id != I2C_DRIVERID_TUNER) {
- c = i2c_new_device(&itv->i2c_adap, &info);
- if (c->driver == NULL)
+ if (id == I2C_DRIVERID_UPD64031A ||
+ id == I2C_DRIVERID_UPD64083) {
+ unsigned short addrs[2] = { info.addr, I2C_CLIENT_END };
+
+ c = i2c_new_probed_device(&itv->i2c_adap, &info, addrs);
+ } else
+ c = i2c_new_device(&itv->i2c_adap, &info);
+ if (c && c->driver == NULL)
i2c_unregister_device(c);
- else
+ else if (c)
itv->i2c_clients[i] = c;
return itv->i2c_clients[i] ? 0 : -ENODEV;
}