gspca - ov534/ov534_9: Fix sccd_read/write errors

Message ID 20120528190407.463f7d6e@tele (mailing list archive)
State Accepted, archived
Headers

Commit Message

Jean-Francois Moine May 28, 2012, 5:04 p.m. UTC
  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.

Signed-off-by: Jean-François Moine <moinejf@free.fr>
---
 drivers/media/video/gspca/ov534.c   |    1 +
 drivers/media/video/gspca/ov534_9.c |    1 +
 2 files changed, 2 insertions(+)
  

Comments

Hans de Goede May 29, 2012, 9:15 a.m. UTC | #1
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


On 05/28/2012 07:04 PM, Jean-Francois Moine wrote:
> 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.
>
> Signed-off-by: Jean-François Moine<moinejf@free.fr>
> ---
>   drivers/media/video/gspca/ov534.c   |    1 +
>   drivers/media/video/gspca/ov534_9.c |    1 +
>   2 files changed, 2 insertions(+)
>
> diff --git a/drivers/media/video/gspca/ov534.c b/drivers/media/video/gspca/ov534.c
> index b5acb1e..d5a7873 100644
> --- a/drivers/media/video/gspca/ov534.c
> +++ b/drivers/media/video/gspca/ov534.c
> @@ -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) {
> diff --git a/drivers/media/video/gspca/ov534_9.c b/drivers/media/video/gspca/ov534_9.c
> index e6601b8..0120f94 100644
> --- a/drivers/media/video/gspca/ov534_9.c
> +++ b/drivers/media/video/gspca/ov534_9.c
> @@ -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) {
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
  

Patch

diff --git a/drivers/media/video/gspca/ov534.c b/drivers/media/video/gspca/ov534.c
index b5acb1e..d5a7873 100644
--- a/drivers/media/video/gspca/ov534.c
+++ b/drivers/media/video/gspca/ov534.c
@@ -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) {
diff --git a/drivers/media/video/gspca/ov534_9.c b/drivers/media/video/gspca/ov534_9.c
index e6601b8..0120f94 100644
--- a/drivers/media/video/gspca/ov534_9.c
+++ b/drivers/media/video/gspca/ov534_9.c
@@ -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) {