aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2014-08-05 19:36:30 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2014-08-05 19:36:30 -0400
commitf4d33337eac4007793ca11fd1ab68d91ce7aa762 (patch)
treeb775ad213179822225a3e1c1a27e4cc16f8aff68 /include
parent91c2ff7708d4edf73ef1f0abb3ea4a44b4b0cf1d (diff)
parent0f3bf3dc1ca394a8385079a5653088672b65c5c4 (diff)
Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
Pull media updates from Mauro Carvalho Chehab: - removal of sn9c102. This device driver was replaced a long time ago by gspca - solo6x10 and go7007 webcam drivers moved from staging into mainstream. They were waiting for an API to allow setting the image detection matrix - SDR drivers moved from staging into mainstream: sdr-msi3101 (renamed as msi2500) and rtl2832 - added SDR driver for airspy - added demux driver: si2165 - rework at several RC subsystem, making the code for RC-5 SZ variant to be added at the standard RC5 decoder - added decoder for the XMP IR protocol - tuner driver moved from staging into mainstream: msi3101 (renamed as msi001) - added documentation for some additional SDR pixfmt - some device tree bindings documented - added support for exynos3250 at s5p-jpeg - remove the obsolete, unmaintained and broken mx1_camera driver - added support for remote controllers at au0828 driver - added a RC driver: sunxi-cir - several driver fixes, enhancements and cleanups. * 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (455 commits) [media] cx23885: fix UNSET/TUNER_ABSENT confusion [media] coda: fix build error by making reset control optional [media] radio-miropcm20: fix sparse NULL pointer warning [media] MAINTAINERS: Update go7007 pattern [media] MAINTAINERS: Update solo6x10 patterns [media] media: atmel-isi: add primary DT support [media] media: atmel-isi: convert the pdata from pointer to structure [media] media: atmel-isi: add v4l2 async probe support [media] rcar_vin: add devicetree support [media] media: pxa_camera device-tree support [media] media: mt9m111: add device-tree suppport [media] soc_camera: add support for dt binding soc_camera drivers [media] media: soc_camera: pxa_camera documentation device-tree support [media] media: mt9m111: add device-tree documentation [media] s5p-mfc: remove unnecessary calling to function video_devdata() [media] s5p-jpeg: add chroma subsampling adjustment for Exynos3250 [media] s5p-jpeg: Prevent erroneous downscaling for Exynos3250 SoC [media] s5p-jpeg: Assure proper crop rectangle initialization [media] s5p-jpeg: fix g_selection op [media] s5p-jpeg: Adjust jpeg_bound_align_image to Exynos3250 needs ...
Diffstat (limited to 'include')
-rw-r--r--include/media/atmel-isi.h4
-rw-r--r--include/media/blackfin/ppi.h4
-rw-r--r--include/media/ir-kbd-i2c.h6
-rw-r--r--include/media/rc-core.h71
-rw-r--r--include/media/rc-map.h16
-rw-r--r--include/media/v4l2-ctrls.h222
-rw-r--r--include/media/v4l2-dev.h2
-rw-r--r--include/media/v4l2-ioctl.h2
-rw-r--r--include/media/v4l2-mem2mem.h2
-rw-r--r--include/media/videobuf-dma-sg.h3
-rw-r--r--include/media/videobuf2-core.h19
-rw-r--r--include/uapi/linux/v4l2-controls.h32
-rw-r--r--include/uapi/linux/videodev2.h101
13 files changed, 368 insertions, 116 deletions
diff --git a/include/media/atmel-isi.h b/include/media/atmel-isi.h
index 2b023471ac89..c2e570336269 100644
--- a/include/media/atmel-isi.h
+++ b/include/media/atmel-isi.h
@@ -106,6 +106,8 @@
106#define ISI_DATAWIDTH_8 0x01 106#define ISI_DATAWIDTH_8 0x01
107#define ISI_DATAWIDTH_10 0x02 107#define ISI_DATAWIDTH_10 0x02
108 108
109struct v4l2_async_subdev;
110
109struct isi_platform_data { 111struct isi_platform_data {
110 u8 has_emb_sync; 112 u8 has_emb_sync;
111 u8 emb_crc_sync; 113 u8 emb_crc_sync;
@@ -118,6 +120,8 @@ struct isi_platform_data {
118 u32 frate; 120 u32 frate;
119 /* Using for ISI_MCK */ 121 /* Using for ISI_MCK */
120 u32 mck_hz; 122 u32 mck_hz;
123 struct v4l2_async_subdev **asd; /* Flat array, arranged in groups */
124 int *asd_sizes; /* 0-terminated array of asd group sizes */
121}; 125};
122 126
123#endif /* __ATMEL_ISI_H__ */ 127#endif /* __ATMEL_ISI_H__ */
diff --git a/include/media/blackfin/ppi.h b/include/media/blackfin/ppi.h
index d0697f4edf87..4900baedd55a 100644
--- a/include/media/blackfin/ppi.h
+++ b/include/media/blackfin/ppi.h
@@ -83,6 +83,7 @@ struct ppi_info {
83}; 83};
84 84
85struct ppi_if { 85struct ppi_if {
86 struct device *dev;
86 unsigned long ppi_control; 87 unsigned long ppi_control;
87 const struct ppi_ops *ops; 88 const struct ppi_ops *ops;
88 const struct ppi_info *info; 89 const struct ppi_info *info;
@@ -91,6 +92,7 @@ struct ppi_if {
91 void *priv; 92 void *priv;
92}; 93};
93 94
94struct ppi_if *ppi_create_instance(const struct ppi_info *info); 95struct ppi_if *ppi_create_instance(struct platform_device *pdev,
96 const struct ppi_info *info);
95void ppi_delete_instance(struct ppi_if *ppi); 97void ppi_delete_instance(struct ppi_if *ppi);
96#endif 98#endif
diff --git a/include/media/ir-kbd-i2c.h b/include/media/ir-kbd-i2c.h
index e221bc74020b..d8564354debb 100644
--- a/include/media/ir-kbd-i2c.h
+++ b/include/media/ir-kbd-i2c.h
@@ -20,7 +20,8 @@ struct IR_i2c {
20 struct delayed_work work; 20 struct delayed_work work;
21 char name[32]; 21 char name[32];
22 char phys[32]; 22 char phys[32];
23 int (*get_key)(struct IR_i2c*, u32*, u32*); 23 int (*get_key)(struct IR_i2c *ir, enum rc_type *protocol,
24 u32 *scancode, u8 *toggle);
24}; 25};
25 26
26enum ir_kbd_get_key_fn { 27enum ir_kbd_get_key_fn {
@@ -44,7 +45,8 @@ struct IR_i2c_init_data {
44 * Specify either a function pointer or a value indicating one of 45 * Specify either a function pointer or a value indicating one of
45 * ir_kbd_i2c's internal get_key functions 46 * ir_kbd_i2c's internal get_key functions
46 */ 47 */
47 int (*get_key)(struct IR_i2c*, u32*, u32*); 48 int (*get_key)(struct IR_i2c *ir, enum rc_type *protocol,
49 u32 *scancode, u8 *toggle);
48 enum ir_kbd_get_key_fn internal_get_key_func; 50 enum ir_kbd_get_key_fn internal_get_key_func;
49 51
50 struct rc_dev *rc_dev; 52 struct rc_dev *rc_dev;
diff --git a/include/media/rc-core.h b/include/media/rc-core.h
index fde142e5f25a..2c7fbca40b69 100644
--- a/include/media/rc-core.h
+++ b/include/media/rc-core.h
@@ -26,7 +26,7 @@ extern int rc_core_debug;
26#define IR_dprintk(level, fmt, ...) \ 26#define IR_dprintk(level, fmt, ...) \
27do { \ 27do { \
28 if (rc_core_debug >= level) \ 28 if (rc_core_debug >= level) \
29 pr_debug("%s: " fmt, __func__, ##__VA_ARGS__); \ 29 printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__); \
30} while (0) 30} while (0)
31 31
32enum rc_driver_type { 32enum rc_driver_type {
@@ -74,21 +74,25 @@ enum rc_filter_type {
74 * @input_dev: the input child device used to communicate events to userspace 74 * @input_dev: the input child device used to communicate events to userspace
75 * @driver_type: specifies if protocol decoding is done in hardware or software 75 * @driver_type: specifies if protocol decoding is done in hardware or software
76 * @idle: used to keep track of RX state 76 * @idle: used to keep track of RX state
77 * @allowed_protocols: bitmask with the supported RC_BIT_* protocols for each 77 * @allowed_protocols: bitmask with the supported RC_BIT_* protocols
78 * filter type 78 * @enabled_protocols: bitmask with the enabled RC_BIT_* protocols
79 * @enabled_protocols: bitmask with the enabled RC_BIT_* protocols for each 79 * @allowed_wakeup_protocols: bitmask with the supported RC_BIT_* wakeup protocols
80 * filter type 80 * @enabled_wakeup_protocols: bitmask with the enabled RC_BIT_* wakeup protocols
81 * @scanmask: some hardware decoders are not capable of providing the full 81 * @scancode_filter: scancode filter
82 * @scancode_wakeup_filter: scancode wakeup filters
83 * @scancode_mask: some hardware decoders are not capable of providing the full
82 * scancode to the application. As this is a hardware limit, we can't do 84 * scancode to the application. As this is a hardware limit, we can't do
83 * anything with it. Yet, as the same keycode table can be used with other 85 * anything with it. Yet, as the same keycode table can be used with other
84 * devices, a mask is provided to allow its usage. Drivers should generally 86 * devices, a mask is provided to allow its usage. Drivers should generally
85 * leave this field in blank 87 * leave this field in blank
88 * @users: number of current users of the device
86 * @priv: driver-specific data 89 * @priv: driver-specific data
87 * @keylock: protects the remaining members of the struct 90 * @keylock: protects the remaining members of the struct
88 * @keypressed: whether a key is currently pressed 91 * @keypressed: whether a key is currently pressed
89 * @keyup_jiffies: time (in jiffies) when the current keypress should be released 92 * @keyup_jiffies: time (in jiffies) when the current keypress should be released
90 * @timer_keyup: timer for releasing a keypress 93 * @timer_keyup: timer for releasing a keypress
91 * @last_keycode: keycode of last keypress 94 * @last_keycode: keycode of last keypress
95 * @last_protocol: protocol of last keypress
92 * @last_scancode: scancode of last keypress 96 * @last_scancode: scancode of last keypress
93 * @last_toggle: toggle value of last command 97 * @last_toggle: toggle value of last command
94 * @timeout: optional time after which device stops sending data 98 * @timeout: optional time after which device stops sending data
@@ -96,7 +100,6 @@ enum rc_filter_type {
96 * @max_timeout: maximum timeout supported by device 100 * @max_timeout: maximum timeout supported by device
97 * @rx_resolution : resolution (in ns) of input sampler 101 * @rx_resolution : resolution (in ns) of input sampler
98 * @tx_resolution: resolution (in ns) of output sampler 102 * @tx_resolution: resolution (in ns) of output sampler
99 * @scancode_filters: scancode filters (indexed by enum rc_filter_type)
100 * @change_protocol: allow changing the protocol used on hardware decoders 103 * @change_protocol: allow changing the protocol used on hardware decoders
101 * @change_wakeup_protocol: allow changing the protocol used for wakeup 104 * @change_wakeup_protocol: allow changing the protocol used for wakeup
102 * filtering 105 * filtering
@@ -113,7 +116,7 @@ enum rc_filter_type {
113 * device doesn't interrupt host until it sees IR pulses 116 * device doesn't interrupt host until it sees IR pulses
114 * @s_learning_mode: enable wide band receiver used for learning 117 * @s_learning_mode: enable wide band receiver used for learning
115 * @s_carrier_report: enable carrier reports 118 * @s_carrier_report: enable carrier reports
116 * @s_filter: set the scancode filter 119 * @s_filter: set the scancode filter
117 * @s_wakeup_filter: set the wakeup scancode filter 120 * @s_wakeup_filter: set the wakeup scancode filter
118 */ 121 */
119struct rc_dev { 122struct rc_dev {
@@ -131,16 +134,21 @@ struct rc_dev {
131 struct input_dev *input_dev; 134 struct input_dev *input_dev;
132 enum rc_driver_type driver_type; 135 enum rc_driver_type driver_type;
133 bool idle; 136 bool idle;
134 u64 allowed_protocols[RC_FILTER_MAX]; 137 u64 allowed_protocols;
135 u64 enabled_protocols[RC_FILTER_MAX]; 138 u64 enabled_protocols;
139 u64 allowed_wakeup_protocols;
140 u64 enabled_wakeup_protocols;
141 struct rc_scancode_filter scancode_filter;
142 struct rc_scancode_filter scancode_wakeup_filter;
143<