From 3cde94352e6d9cf7bc428f7936c654ae3577528a Mon Sep 17 00:00:00 2001 From: Guilherme Herrmann Destefani Date: Tue, 25 Sep 2012 18:10:52 -0300 Subject: [PATCH] --- yaml --- r: 333837 b: refs/heads/master c: 34e59a7d45950b1a03e498d34c1baf4998218cd7 h: refs/heads/master i: 333835: d9d51b47eb23f5998310f61f01814bc643e0d7f1 v: v3 --- [refs] | 2 +- trunk/drivers/media/pci/bt8xx/bttv-driver.c | 30 ++++++++++++++++++--- trunk/drivers/media/pci/bt8xx/bttvp.h | 1 + 3 files changed, 28 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index e53be19e9f50..c0d675a7c9a1 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 38a7996cbb26ddd6b595e2fafa9742aefcb2f115 +refs/heads/master: 34e59a7d45950b1a03e498d34c1baf4998218cd7 diff --git a/trunk/drivers/media/pci/bt8xx/bttv-driver.c b/trunk/drivers/media/pci/bt8xx/bttv-driver.c index 16f5ca23698c..8bad444c86f2 100644 --- a/trunk/drivers/media/pci/bt8xx/bttv-driver.c +++ b/trunk/drivers/media/pci/bt8xx/bttv-driver.c @@ -668,6 +668,12 @@ static const struct v4l2_queryctrl bttv_ctls[] = { .default_value = 32768, .type = V4L2_CTRL_TYPE_INTEGER, },{ + .id = V4L2_CID_COLOR_KILLER, + .name = "Color killer", + .minimum = 0, + .maximum = 1, + .type = V4L2_CTRL_TYPE_BOOLEAN, + }, { .id = V4L2_CID_HUE, .name = "Hue", .minimum = 0, @@ -1474,6 +1480,9 @@ static int bttv_g_ctrl(struct file *file, void *priv, case V4L2_CID_SATURATION: c->value = btv->saturation; break; + case V4L2_CID_COLOR_KILLER: + c->value = btv->opt_color_killer; + break; case V4L2_CID_AUDIO_MUTE: case V4L2_CID_AUDIO_VOLUME: @@ -1526,7 +1535,6 @@ static int bttv_s_ctrl(struct file *file, void *f, struct v4l2_control *c) { int err; - int val; struct bttv_fh *fh = f; struct bttv *btv = fh->btv; @@ -1547,6 +1555,16 @@ static int bttv_s_ctrl(struct file *file, void *f, case V4L2_CID_SATURATION: bt848_sat(btv, c->value); break; + case V4L2_CID_COLOR_KILLER: + btv->opt_color_killer = c->value; + if (btv->opt_color_killer) { + btor(BT848_SCLOOP_CKILL, BT848_E_SCLOOP); + btor(BT848_SCLOOP_CKILL, BT848_O_SCLOOP); + } else { + btand(~BT848_SCLOOP_CKILL, BT848_E_SCLOOP); + btand(~BT848_SCLOOP_CKILL, BT848_O_SCLOOP); + } + break; case V4L2_CID_AUDIO_MUTE: audio_mute(btv, c->value); /* fall through */ @@ -1564,9 +1582,13 @@ static int bttv_s_ctrl(struct file *file, void *f, case V4L2_CID_PRIVATE_CHROMA_AGC: btv->opt_chroma_agc = c->value; - val = btv->opt_chroma_agc ? BT848_SCLOOP_CAGC : 0; - btwrite(val, BT848_E_SCLOOP); - btwrite(val, BT848_O_SCLOOP); + if (btv->opt_chroma_agc) { + btor(BT848_SCLOOP_CAGC, BT848_E_SCLOOP); + btor(BT848_SCLOOP_CAGC, BT848_O_SCLOOP); + } else { + btand(~BT848_SCLOOP_CAGC, BT848_E_SCLOOP); + btand(~BT848_SCLOOP_CAGC, BT848_O_SCLOOP); + } break; case V4L2_CID_PRIVATE_COMBFILTER: btv->opt_combfilter = c->value; diff --git a/trunk/drivers/media/pci/bt8xx/bttvp.h b/trunk/drivers/media/pci/bt8xx/bttvp.h index 70fd4f23f605..9ec0adba236c 100644 --- a/trunk/drivers/media/pci/bt8xx/bttvp.h +++ b/trunk/drivers/media/pci/bt8xx/bttvp.h @@ -429,6 +429,7 @@ struct bttv { int opt_lumafilter; int opt_automute; int opt_chroma_agc; + int opt_color_killer; int opt_adc_crush; int opt_vcr_hack; int opt_whitecrush_upper;