diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-08-05 19:36:30 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-08-05 19:36:30 -0400 |
| commit | f4d33337eac4007793ca11fd1ab68d91ce7aa762 (patch) | |
| tree | b775ad213179822225a3e1c1a27e4cc16f8aff68 /include | |
| parent | 91c2ff7708d4edf73ef1f0abb3ea4a44b4b0cf1d (diff) | |
| parent | 0f3bf3dc1ca394a8385079a5653088672b65c5c4 (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.h | 4 | ||||
| -rw-r--r-- | include/media/blackfin/ppi.h | 4 | ||||
| -rw-r--r-- | include/media/ir-kbd-i2c.h | 6 | ||||
| -rw-r--r-- | include/media/rc-core.h | 71 | ||||
| -rw-r--r-- | include/media/rc-map.h | 16 | ||||
| -rw-r--r-- | include/media/v4l2-ctrls.h | 222 | ||||
| -rw-r--r-- | include/media/v4l2-dev.h | 2 | ||||
| -rw-r--r-- | include/media/v4l2-ioctl.h | 2 | ||||
| -rw-r--r-- | include/media/v4l2-mem2mem.h | 2 | ||||
| -rw-r--r-- | include/media/videobuf-dma-sg.h | 3 | ||||
| -rw-r--r-- | include/media/videobuf2-core.h | 19 | ||||
| -rw-r--r-- | include/uapi/linux/v4l2-controls.h | 32 | ||||
| -rw-r--r-- | include/uapi/linux/videodev2.h | 101 |
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 | ||
| 109 | struct v4l2_async_subdev; | ||
| 110 | |||
| 109 | struct isi_platform_data { | 111 | struct 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 | ||
| 85 | struct ppi_if { | 85 | struct 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 | ||
| 94 | struct ppi_if *ppi_create_instance(const struct ppi_info *info); | 95 | struct ppi_if *ppi_create_instance(struct platform_device *pdev, |
| 96 | const struct ppi_info *info); | ||
| 95 | void ppi_delete_instance(struct ppi_if *ppi); | 97 | void 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 | ||
| 26 | enum ir_kbd_get_key_fn { | 27 | enum 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, ...) \ |
| 27 | do { \ | 27 | do { \ |
| 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 | ||
| 32 | enum rc_driver_type { | 32 | enum 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 | */ |
| 119 | struct rc_dev { | 122 | struct 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< | |||
