Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 161595
b: refs/heads/master
c: 5f5e26b
h: refs/heads/master
i:
  161593: 0eedc67
  161591: 38919a2
v: v3
  • Loading branch information
Hans de Goede authored and Mauro Carvalho Chehab committed Sep 12, 2009
1 parent 276682c commit 76697f2
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 26 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 9ac6978a10a22499f6333d55364809f4ddb32b0c
refs/heads/master: 5f5e26b1e6c23f23e9b116a4439437e752e56eb7
59 changes: 34 additions & 25 deletions trunk/drivers/media/video/gspca/mr97310a.c
Original file line number Diff line number Diff line change
Expand Up @@ -360,6 +360,8 @@ static int sd_config(struct gspca_dev *gspca_dev,
{
struct sd *sd = (struct sd *) gspca_dev;
struct cam *cam;
__u8 *data = gspca_dev->usb_buf;
int err_code;

cam = &gspca_dev->cam;
cam->cam_mode = vga_mode;
Expand All @@ -372,6 +374,38 @@ static int sd_config(struct gspca_dev *gspca_dev,
if (id->idProduct == 0x010e) {
sd->cam_type = CAM_TYPE_CIF;
cam->nmodes--;

data[0] = 0x01;
data[1] = 0x01;
err_code = mr_write(gspca_dev, 2);
if (err_code < 0)
return err_code;

msleep(200);
data[0] = get_sensor_id(gspca_dev);
/*
* Known CIF cameras. If you have another to report, please do
*
* Name byte just read sd->sensor_type
* reported by
* Sakar Spy-shot 0x28 T. Kilgore 0
* Innovage 0xf5 (unstable) T. Kilgore 0
* Vivitar Mini 0x53 H. De Goede 0
* Vivitar Mini 0x08 T. Kilgore 1
* Elta-Media 8212dc 0x23 T. Kaiser 1
* Philips dig. keych. 0x37 T. Kilgore 1
*/
if ((data[0] & 0x78) == 8 ||
((data[0] & 0x2) == 0x2 && data[0] != 0x53))
sd->sensor_type = 1;
else
sd->sensor_type = 0;

PDEBUG(D_ERR, "Sensor type is %01x", sd->sensor_type);

if (sd->sensor_type == 0)
gspca_dev->ctrl_dis = (1 << BRIGHTNESS_IDX) |
(1 << EXPOSURE_IDX) | (1 << GAIN_IDX);
} else {
sd->cam_type = CAM_TYPE_VGA;
gspca_dev->ctrl_dis = (1 << BRIGHTNESS_IDX) |
Expand Down Expand Up @@ -411,37 +445,12 @@ static int start_cif_cam(struct gspca_dev *gspca_dev)
};

/* Note: Some of the above descriptions guessed from MR97113A driver */
sd->sensor_type = 0;
data[0] = 0x01;
data[1] = 0x01;
err_code = mr_write(gspca_dev, 2);
if (err_code < 0)
return err_code;

msleep(200);
data[0] = get_sensor_id(gspca_dev);
/*
* Known CIF cameras. If you have another to report, please do
*
* Name byte just read sd->sensor_type
* reported by
* Sakar Spy-shot 0x28 T. Kilgore 0
* Innovage 0xf5 (unstable) T. Kilgore 0
* Vivitar Mini 0x53 H. De Goede 0
* Vivitar Mini 0x08 T. Kilgore 1
* Elta-Media 8212dc 0x23 T. Kaiser 1
* Philips dig. keych. 0x37 T. Kilgore 1
*/
if ((data[0] & 0x78) == 8 ||
((data[0] & 0x2) == 0x2 && data[0] != 0x53))
sd->sensor_type = 1;

PDEBUG(D_ERR, "Sensor type is %01x", sd->sensor_type);

if (sd->sensor_type == 0)
gspca_dev->ctrl_dis = (1 << BRIGHTNESS_IDX) |
(1 << EXPOSURE_IDX) | (1 << GAIN_IDX);

memcpy(data, startup_string, 11);
if (sd->sensor_type)
data[5] = 0xbb;
Expand Down

0 comments on commit 76697f2

Please sign in to comment.