aboutsummaryrefslogtreecommitdiff
path: root/drivers/media/usb/hdpvr/hdpvr.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/usb/hdpvr/hdpvr.h')
-rw-r--r--drivers/media/usb/hdpvr/hdpvr.h22
1 files changed, 18 insertions, 4 deletions
diff --git a/drivers/media/usb/hdpvr/hdpvr.h b/drivers/media/usb/hdpvr/hdpvr.h
index fea3c692699..dc685d44cb3 100644
--- a/drivers/media/usb/hdpvr/hdpvr.h
+++ b/drivers/media/usb/hdpvr/hdpvr.h
@@ -16,6 +16,7 @@
#include <linux/videodev2.h>
#include <media/v4l2-device.h>
+#include <media/v4l2-ctrls.h>
#include <media/ir-kbd-i2c.h>
#define HDPVR_MAX 8
@@ -37,6 +38,7 @@
#define HDPVR_FIRMWARE_VERSION_AC3 0x0d
#define HDPVR_FIRMWARE_VERSION_0X12 0x12
#define HDPVR_FIRMWARE_VERSION_0X15 0x15
+#define HDPVR_FIRMWARE_VERSION_0X1E 0x1e
/* #define HDPVR_DEBUG */
@@ -65,10 +67,19 @@ struct hdpvr_options {
struct hdpvr_device {
/* the v4l device for this device */
struct video_device *video_dev;
+ /* the control handler for this device */
+ struct v4l2_ctrl_handler hdl;
/* the usb device for this device */
struct usb_device *udev;
/* v4l2-device unused */
struct v4l2_device v4l2_dev;
+ struct { /* video mode/bitrate control cluster */
+ struct v4l2_ctrl *video_mode;
+ struct v4l2_ctrl *video_bitrate;
+ struct v4l2_ctrl *video_bitrate_peak;
+ };
+ /* v4l2 format */
+ uint width, height;
/* the max packet size of the bulk endpoint */
size_t bulk_in_size;
@@ -77,11 +88,11 @@ struct hdpvr_device {
/* holds the current device status */
__u8 status;
- /* count the number of openers */
- uint open_count;
- /* holds the cureent set options */
+ /* holds the current set options */
struct hdpvr_options options;
+ v4l2_std_id cur_std;
+ struct v4l2_dv_timings cur_dv_timings;
uint flags;
@@ -99,6 +110,8 @@ struct hdpvr_device {
struct workqueue_struct *workqueue;
/**/
struct work_struct worker;
+ /* current stream owner */
+ struct v4l2_fh *owner;
/* I2C adapter */
struct i2c_adapter i2c_adapter;
@@ -141,6 +154,7 @@ struct hdpvr_video_info {
u16 width;
u16 height;
u8 fps;
+ bool valid;
};
enum {
@@ -290,7 +304,7 @@ int hdpvr_set_audio(struct hdpvr_device *dev, u8 input,
int hdpvr_config_call(struct hdpvr_device *dev, uint value,
unsigned char valbuf);
-struct hdpvr_video_info *get_video_info(struct hdpvr_device *dev);
+int get_video_info(struct hdpvr_device *dev, struct hdpvr_video_info *vid_info);
/* :0 s b8 81 1800 0003 0003 3 < */
/* :0 0 3 = 0301ff */