diff options
author | Hans Verkuil <hverkuil@xs4all.nl> | 2008-04-07 10:32:14 +0200 |
---|---|---|
committer | Hans Verkuil <hverkuil@xs4all.nl> | 2008-04-07 10:32:14 +0200 |
commit | b9ed2c89650d680d0d8f1edcd238527c50079b4f (patch) | |
tree | 7e7e04432998dcc267a2ae2a0ffd9436c13021e9 /linux/drivers/media | |
parent | 3aa24bc751bcb8c96a5c84186ef4f4aad1ba0853 (diff) | |
download | mediapointer-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.c | 12 |
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; } |