Skip to contentSkip to conversation

gspca - ov534/ov534_9: Fix sccd_read/write errors

PATCH In review Jean-Francois Moine 2 participants 2 messages May 28, 2012 – May 29, 2012 Media (V4L/DVB)

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 gspca - ov534/ov534_9: Fix sccd_read/write errors

The ov534 bridge is too slow to handle the sensor accesses requested by fast hosts giving 'sccb_reg_write failed'. A small delay fixes the problem.

---
 drivers/media/video/gspca/ov534.c   |    1 +
 drivers/media/video/gspca/ov534_9.c |    1 +
 2 files changed, 2 insertions(+)
drivers/media/video/gspca/ov534.c +1 -0
index b5acb1e..d5a7873 100644
@@ -851,6 +851,7 @@ static int sccb_check_status(struct gspca_dev *gspca_dev)
 	int i;
 
 	for (i = 0; i < 5; i++) {
+		msleep(10);
 		data = ov534_reg_read(gspca_dev, OV534_REG_STATUS);
 
 		switch (data) {
drivers/media/video/gspca/ov534_9.c +1 -0
index e6601b8..0120f94 100644
@@ -1008,6 +1008,7 @@ static int sccb_check_status(struct gspca_dev *gspca_dev)
 	int i;
 
 	for (i = 0; i < 5; i++) {
+		msleep(10);
 		data = reg_r(gspca_dev, OV534_REG_STATUS);
 
 		switch (data) {
Signature · 5 lines
1.7.10

-- 
Ken ar c'hentañ	|	      ** Breizh ha Linux atav! **
Jef		|		http://moinejf.free.fr/
#1 lore raw

Hi,

Thanks I've added this and the sonixj fixes to my tree and send an updated pullreq to Mauro to include these in the next round of fixes for 3.5

Regards,

Hans

Quoted 34 lines · Jean-Francois Moine

The ov534 bridge is too slow to handle the sensor accesses requested by fast hosts giving 'sccb_reg_write failed'. A small delay fixes the problem.

---
  drivers/media/video/gspca/ov534.c   |    1 +
  drivers/media/video/gspca/ov534_9.c |    1 +
  2 files changed, 2 insertions(+)
drivers/media/video/gspca/ov534.c +1 -0
index b5acb1e..d5a7873 100644
@@ -851,6 +851,7 @@ static int sccb_check_status(struct gspca_dev *gspca_dev)
  	int i;
 
  	for (i = 0; i<  5; i++) {
+		msleep(10);
  		data = ov534_reg_read(gspca_dev, OV534_REG_STATUS);
 
  		switch (data) {
drivers/media/video/gspca/ov534_9.c +1 -0
index e6601b8..0120f94 100644
@@ -1008,6 +1008,7 @@ static int sccb_check_status(struct gspca_dev *gspca_dev)
  	int i;
 
  	for (i = 0; i<  5; i++) {
+		msleep(10);
  		data = reg_r(gspca_dev, OV534_REG_STATUS);
 
  		switch (data) {