Re: Pull request: http://linuxtv.org/hg/~hgoede/gspca

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Em Mon, 12 Oct 2009 16:38:13 +0200
Hans de Goede <hdegoede@xxxxxxxxxx> escreveu:

> Hi Mauro,
> 
> Please pull from:
> http://linuxtv.org/hg/~hgoede/gspca
> 
> Besides the changes from my previous pull request, my tree now also
> contains support for ovfx2 based cams

On the first patch of the series:
	gspca: Add support for Winbond W9967CF and W9968CF camera's

Things like this are really ugly:

+       ret += w9968cf_smbus_start(sd);
+       ret += w9968cf_smbus_write_byte(sd, sd->sensor_addr);
+       ret += w9968cf_smbus_read_ack(sd);
+       ret += w9968cf_smbus_write_byte(sd, reg);
+       ret += w9968cf_smbus_read_ack(sd);
+       ret += w9968cf_smbus_stop(sd);
+       ret += w9968cf_smbus_start(sd);
+       ret += w9968cf_smbus_write_byte(sd, sd->sensor_addr + 1);
+       ret += w9968cf_smbus_read_ack(sd);
+       ret += w9968cf_smbus_read_byte(sd, &value);
+       /* signal we don't want to read anymore, the v4l1 driver used to
+          send an ack here which is very wrong! (and then fixed
+          the issues this gave by retrying reads) */
+       ret += w9968cf_smbus_write_nack(sd);
+       ret += w9968cf_smbus_stop(sd);
+

It would be much better if you port it to use the kernel bus support for i2c, and
do the right thing.

As all gspca drivers has this problem, I'm committing the tree, but I really expect
you to fix this issue, starting with the above.

If you have any troubles on doing it, I'm sure Jean can help porting it to i2c.



Cheers,
Mauro
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux