Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 330965
b: refs/heads/master
c: b1a19c0
h: refs/heads/master
i:
  330963: 34bb390
v: v3
  • Loading branch information
Frank Schäfer authored and Mauro Carvalho Chehab committed Sep 13, 2012
1 parent 2fe1f94 commit e51fad9
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 2 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: db43b9ca2f101d0945d043fa7d5ecd8f2da17fef
refs/heads/master: b1a19c0165573b169eceb690df7a72bf1ffa47dc
25 changes: 24 additions & 1 deletion trunk/drivers/media/usb/gspca/pac7302.c
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,11 @@
/*
* Some documentation about various registers as determined by trial and error.
*
* Register page 0:
*
* Address Description
* 0xb6 Sharpness control (bits 0-4)
*
* Register page 1:
*
* Address Description
Expand Down Expand Up @@ -66,6 +71,7 @@
* -----+------------+---------------------------------------------------
* 0 | 0x0f..0x20 | setcolors()
* 0 | 0xa2..0xab | setbrightcont()
* 0 | 0xb6 | setsharpness()
* 0 | 0xc5 | setredbalance()
* 0 | 0xc6 | setwhitebalance()
* 0 | 0xc7 | setbluebalance()
Expand Down Expand Up @@ -109,6 +115,7 @@ struct sd {
struct v4l2_ctrl *hflip;
struct v4l2_ctrl *vflip;
};
struct v4l2_ctrl *sharpness;
u8 flags;
#define FL_HFLIP 0x01 /* mirrored by default */
#define FL_VFLIP 0x02 /* vertical flipped by default */
Expand Down Expand Up @@ -531,6 +538,16 @@ static void sethvflip(struct gspca_dev *gspca_dev)
reg_w(gspca_dev, 0x11, 0x01);
}

static void setsharpness(struct gspca_dev *gspca_dev)
{
struct sd *sd = (struct sd *) gspca_dev;

reg_w(gspca_dev, 0xff, 0x00); /* page 0 */
reg_w(gspca_dev, 0xb6, sd->sharpness->val);

reg_w(gspca_dev, 0xdc, 0x01);
}

/* this function is called at probe and resume time for pac7302 */
static int sd_init(struct gspca_dev *gspca_dev)
{
Expand Down Expand Up @@ -584,6 +601,9 @@ static int sd_s_ctrl(struct v4l2_ctrl *ctrl)
case V4L2_CID_HFLIP:
sethvflip(gspca_dev);
break;
case V4L2_CID_SHARPNESS:
setsharpness(gspca_dev);
break;
default:
return -EINVAL;
}
Expand All @@ -601,7 +621,7 @@ static int sd_init_controls(struct gspca_dev *gspca_dev)
struct v4l2_ctrl_handler *hdl = &gspca_dev->ctrl_handler;

gspca_dev->vdev.ctrl_handler = hdl;
v4l2_ctrl_handler_init(hdl, 11);
v4l2_ctrl_handler_init(hdl, 12);

sd->brightness = v4l2_ctrl_new_std(hdl, &sd_ctrl_ops,
V4L2_CID_BRIGHTNESS, 0, 32, 1, 16);
Expand Down Expand Up @@ -632,6 +652,9 @@ static int sd_init_controls(struct gspca_dev *gspca_dev)
sd->vflip = v4l2_ctrl_new_std(hdl, &sd_ctrl_ops,
V4L2_CID_VFLIP, 0, 1, 1, 0);

sd->sharpness = v4l2_ctrl_new_std(hdl, &sd_ctrl_ops,
V4L2_CID_SHARPNESS, 0, 15, 1, 8);

if (hdl->error) {
pr_err("Could not initialize controls\n");
return hdl->error;
Expand Down

0 comments on commit e51fad9

Please sign in to comment.