Re: [GIT PATCHES] V4L/DVB fixes

Hans-Peter Jansen
2008-01-09T15:45:00Z

Am Montag, 7. Januar 2008 schrieb Mauro Carvalho Chehab:
>
> Hans Verkuil (1):
> V4L/DVB (6916): ivtv: udelay has to be changed *after* the eeprom
> was read, not before

boils down to this patch:

89dab3573aa1d95fd222ee4551f964bfa4c16823
drivers/media/video/ivtv/ivtv-driver.c | 4 ++++
drivers/media/video/ivtv/ivtv-i2c.c | 5 +----
2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/drivers/media/video/ivtv/ivtv-driver.c
b/drivers/media/video/ivtv/ivtv-driver.c
index 6d2dd87..10d6faf 100644
--- a/drivers/media/video/ivtv/ivtv-driver.c
+++ b/drivers/media/video/ivtv/ivtv-driver.c
@@ -1076,6 +1076,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/drivers/media/video/ivtv/ivtv-i2c.c
b/drivers/media/video/ivtv/ivtv-i2c.c
index 44678fe..36e54f7 100644
--- a/drivers/media/video/ivtv/ivtv-i2c.c
+++ b/drivers/media/video/ivtv/ivtv-i2c.c
@@ -541,7 +541,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,
};

@@ -718,9 +718,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;
}

where the logic in hunk #1 was switched, resulting in a now misleading
comment over there.

How about something in the line of:

/*
* We started with a bigger udelay in order to fulfill the needs of the
* mspx4xx chips: cut it down here for all other members of the family.
*/

Cheers,
Pete