diff options
author | Hans Verkuil <hverkuil@xs4all.nl> | 2007-12-24 14:40:05 +0100 |
---|---|---|
committer | Hans Verkuil <hverkuil@xs4all.nl> | 2007-12-24 14:40:05 +0100 |
commit | d69aa5be49f36d5e00e8564d50ad85b5d92521fe (patch) | |
tree | c5773eed8c219a7abf37412a36153ce7c7cf2cb2 /linux/drivers/media/video | |
parent | 120c1398702a2dc21276025bbc2bd6bf39cd1004 (diff) | |
download | mediapointer-dvb-s2-d69aa5be49f36d5e00e8564d50ad85b5d92521fe.tar.gz mediapointer-dvb-s2-d69aa5be49f36d5e00e8564d50ad85b5d92521fe.tar.bz2 |
ivtv: udelay has to be changed *after* the eeprom was read, not before
From: Hans Verkuil <hverkuil@xs4all.nl>
The eeprom decides which Hauppauge model it is, so the decision whether to
use an udelay of 5 or 10 needs to be taken after reading the eeprom, not
before.
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Diffstat (limited to 'linux/drivers/media/video')
-rw-r--r-- | linux/drivers/media/video/ivtv/ivtv-driver.c | 4 | ||||
-rw-r--r-- | linux/drivers/media/video/ivtv/ivtv-i2c.c | 5 |
2 files changed, 5 insertions, 4 deletions
diff --git a/linux/drivers/media/video/ivtv/ivtv-driver.c b/linux/drivers/media/video/ivtv/ivtv-driver.c index eb6430249..8f7bf0a70 100644 --- a/linux/drivers/media/video/ivtv/ivtv-driver.c +++ b/linux/drivers/media/video/ivtv/ivtv-driver.c @@ -1077,6 +1077,10 @@ static int __devinit ivtv_probe(struct pci_dev *dev, ivtv_process_eeprom(itv); } + /* The mspx4xx chips need a longer delay for some reason */ + if (!(itv->hw_flags & IVTV_HW_MSP34XX)) + itv->i2c_algo.udelay = 5; + if (itv->std == 0) { itv->std = V4L2_STD_NTSC_M; } diff --git a/linux/drivers/media/video/ivtv/ivtv-i2c.c b/linux/drivers/media/video/ivtv/ivtv-i2c.c index 9a6ed4525..1f421a574 100644 --- a/linux/drivers/media/video/ivtv/ivtv-i2c.c +++ b/linux/drivers/media/video/ivtv/ivtv-i2c.c @@ -622,7 +622,7 @@ static const struct i2c_algo_bit_data ivtv_i2c_algo_template = { .setscl = ivtv_setscl_old, .getsda = ivtv_getsda_old, .getscl = ivtv_getscl_old, - .udelay = 5, + .udelay = 10, .timeout = 200, }; @@ -806,9 +806,6 @@ int init_ivtv_i2c(struct ivtv *itv) sizeof(struct i2c_adapter)); memcpy(&itv->i2c_algo, &ivtv_i2c_algo_template, sizeof(struct i2c_algo_bit_data)); - /* The mspx4xx chips need a longer delay for some reason */ - if (itv->hw_flags & IVTV_HW_MSP34XX) - itv->i2c_algo.udelay = 10; } itv->i2c_algo.data = itv; itv->i2c_adap.algo_data = &itv->i2c_algo; |