Commit 01df530c authored by Hans Verkuil's avatar Hans Verkuil Committed by Mauro Carvalho Chehab
Browse files

[media] bttv: convert to the control framework



Note that the private chroma agc control has been replaced with the standard
CHROMA_AGC control.
Also fixes a mute/automute problem where closing the file handle would force
mute on. That's not what you want since that would make the mute state out of
sync with the mute control. Instead check against the user count.

Signed-off-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 5d478e0d
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -3554,8 +3554,9 @@ void bttv_init_card2(struct bttv *btv)
			I2C_CLIENT_END
		};

		if (v4l2_i2c_new_subdev(&btv->c.v4l2_dev,
				&btv->c.i2c_adap, "tda7432", 0, addrs))
		btv->sd_tda7432 = v4l2_i2c_new_subdev(&btv->c.v4l2_dev,
				&btv->c.i2c_adap, "tda7432", 0, addrs);
		if (btv->sd_tda7432)
			return;
	}

+256 −426

File changed.

Preview size limit exceeded, changes collapsed.

+7 −9
Original line number Diff line number Diff line
@@ -33,9 +33,10 @@
#include <linux/input.h>
#include <linux/mutex.h>
#include <linux/scatterlist.h>
#include <linux/device.h>
#include <asm/io.h>
#include <media/v4l2-common.h>
#include <linux/device.h>
#include <media/v4l2-ctrls.h>
#include <media/videobuf-dma-sg.h>
#include <media/tveeprom.h>
#include <media/rc-core.h>
@@ -393,12 +394,17 @@ struct bttv {
	wait_queue_head_t          i2c_queue;
	struct v4l2_subdev 	  *sd_msp34xx;
	struct v4l2_subdev 	  *sd_tvaudio;
	struct v4l2_subdev	  *sd_tda7432;

	/* video4linux (1) */
	struct video_device *video_dev;
	struct video_device *radio_dev;
	struct video_device *vbi_dev;

	/* controls */
	struct v4l2_ctrl_handler   ctrl_handler;
	struct v4l2_ctrl_handler   radio_ctrl_handler;

	/* infrared remote */
	int has_remote;
	struct bttv_ir *remote;
@@ -426,17 +432,9 @@ struct bttv {

	/* various options */
	int opt_combfilter;
	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;
	int opt_whitecrush_lower;
	int opt_uv_ratio;
	int opt_full_luma_range;
	int opt_coring;

	/* radio data/state */
	int has_radio;
+5 −0
Original line number Diff line number Diff line
@@ -146,6 +146,11 @@ enum v4l2_colorfx {
 * of controls. We reserve 16 controls for this driver. */
#define V4L2_CID_USER_MEYE_BASE			(V4L2_CID_USER_BASE + 0x1000)

/* The base for the bttv driver controls.
 * We reserve 32 controls for this driver. */
#define V4L2_CID_USER_BTTV_BASE			(V4L2_CID_USER_BASE + 0x1010)


/* MPEG-class control IDs */

#define V4L2_CID_MPEG_BASE 			(V4L2_CTRL_CLASS_MPEG | 0x900)