From 5f7f65f13c5027574640590d220b5a69a1057e57 Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Sun, 1 Jan 2012 16:35:01 -0300 Subject: [PATCH] --- yaml --- r: 285685 b: refs/heads/master c: eb3fb7c9633f79077c7c650efe0edec1840926da h: refs/heads/master i: 285683: 90b9a1489fded22048dc9cd3f7fadb9868ea3c39 v: v3 --- [refs] | 2 +- trunk/drivers/media/video/gspca/gspca.c | 3 ++- trunk/drivers/media/video/gspca/gspca.h | 3 +++ trunk/drivers/media/video/gspca/nw80x.c | 1 + trunk/drivers/media/video/gspca/sn9c20x.c | 1 + trunk/drivers/media/video/gspca/spca561.c | 1 + 6 files changed, 9 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 663c2d20bfb9..f072d5f2ac8c 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 51e23be28418cf836287615cf78b237af13ea1b3 +refs/heads/master: eb3fb7c9633f79077c7c650efe0edec1840926da diff --git a/trunk/drivers/media/video/gspca/gspca.c b/trunk/drivers/media/video/gspca/gspca.c index a8643bcd2ecb..b044c8a10a1d 100644 --- a/trunk/drivers/media/video/gspca/gspca.c +++ b/trunk/drivers/media/video/gspca/gspca.c @@ -638,7 +638,8 @@ static u32 which_bandwidth(struct gspca_dev *gspca_dev) bandwidth = gspca_dev->cam.cam_mode[i].sizeimage; /* if the image is compressed, estimate its mean size */ - if (bandwidth < gspca_dev->cam.cam_mode[i].width * + if (!gspca_dev->cam.needs_full_bandwidth && + bandwidth < gspca_dev->cam.cam_mode[i].width * gspca_dev->cam.cam_mode[i].height) bandwidth = bandwidth * 3 / 8; /* 0.375 */ diff --git a/trunk/drivers/media/video/gspca/gspca.h b/trunk/drivers/media/video/gspca/gspca.h index 5f1f46c8e373..589009f4496f 100644 --- a/trunk/drivers/media/video/gspca/gspca.h +++ b/trunk/drivers/media/video/gspca/gspca.h @@ -69,6 +69,9 @@ struct cam { u8 bulk; /* image transfer by 0:isoc / 1:bulk */ u8 npkt; /* number of packets in an ISOC message * 0 is the default value: 32 packets */ + u8 needs_full_bandwidth;/* Set this flag to notify the bandwidth calc. + * code that the cam fills all image buffers to + * the max, even when using compression. */ }; struct gspca_dev; diff --git a/trunk/drivers/media/video/gspca/nw80x.c b/trunk/drivers/media/video/gspca/nw80x.c index 3830054a683e..09f7db8ceffd 100644 --- a/trunk/drivers/media/video/gspca/nw80x.c +++ b/trunk/drivers/media/video/gspca/nw80x.c @@ -1764,6 +1764,7 @@ static int sd_config(struct gspca_dev *gspca_dev, webcam = 0; sd->webcam = webcam; gspca_dev->cam.ctrls = sd->ctrls; + gspca_dev->cam.needs_full_bandwidth = 1; sd->ag_cnt = -1; /* diff --git a/trunk/drivers/media/video/gspca/sn9c20x.c b/trunk/drivers/media/video/gspca/sn9c20x.c index 86e07a139a16..7350718c613a 100644 --- a/trunk/drivers/media/video/gspca/sn9c20x.c +++ b/trunk/drivers/media/video/gspca/sn9c20x.c @@ -2048,6 +2048,7 @@ static int sd_config(struct gspca_dev *gspca_dev, struct cam *cam; cam = &gspca_dev->cam; + cam->needs_full_bandwidth = 1; sd->sensor = (id->driver_info >> 8) & 0xff; sd->i2c_addr = id->driver_info & 0xff; diff --git a/trunk/drivers/media/video/gspca/spca561.c b/trunk/drivers/media/video/gspca/spca561.c index 61743d425584..8a6e258abf30 100644 --- a/trunk/drivers/media/video/gspca/spca561.c +++ b/trunk/drivers/media/video/gspca/spca561.c @@ -451,6 +451,7 @@ static int sd_config(struct gspca_dev *gspca_dev, } cam = &gspca_dev->cam; + cam->needs_full_bandwidth = 1; sd->chip_revision = id->driver_info; if (sd->chip_revision == Rev012A) {