diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2017-02-22 03:58:32 +0300 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2017-02-22 03:58:32 +0300 |
commit | ff58d005cd10fcd372787cceac547e11cf706ff6 (patch) | |
tree | 7e7af56aa1a38731af1ec5f3cf09f13050bb0ff4 /include | |
parent | 5ab356626f3cf97f00280f17a52e4b5b4a13e038 (diff) | |
parent | 9eeb0ed0f30938f31a3d9135a88b9502192c18dd (diff) | |
download | linux-ff58d005cd10fcd372787cceac547e11cf706ff6.tar.xz |
Merge tag 'media/v4.11-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
Pull media updates from Mauro Carvalho Chehab:
- new drivers:
- i.MX6 Video Data Order Adapter's (VDOA)
- Toshiba et8ek8 5MP sensor
- STM DELTA multi-format video decoder V4L2 driver
- SPI connected IR LED
- Mediatek IR remote receiver
- ZyDAS ZD1301 DVB USB interface driver
- new RC keymaps
- some very old LIRC drivers got removed from staging
- RC core gained support encoding IR scan codes
- DVB si2168 gained support for DVBv5 statistics
- lirc_sir driver ported to rc-core and promoted from staging
- other bug fixes, board additions and driver improvements
* tag 'media/v4.11-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (230 commits)
[media] mtk-vcodec: fix build warnings without DEBUG
[media] zd1301: fix building interface driver without demodulator
[media] usbtv: add sharpness control
[media] cxusb: Use a dma capable buffer also for reading
[media] ttpci: address stringop overflow warning
[media] dvb-usb-v2: avoid use-after-free
[media] add Hama Hybrid DVB-T Stick support
[media] et8ek8: Fix compiler / Coccinelle warnings
[media] media: fix semicolon.cocci warnings
[media] media: exynos4-is: add flags to dummy Exynos IS i2c adapter
[media] v4l: of: check for unique lanes in data-lanes and clock-lanes
[media] coda/imx-vdoa: constify structs
[media] st-delta: debug: trace stream/frame information & summary
[media] st-delta: add mjpeg support
[media] st-delta: EOS (End Of Stream) support
[media] st-delta: rpmsg ipc support
[media] st-delta: add memory allocator helper functions
[media] st-delta: STiH4xx multi-format video decoder v4l2 driver
[media] MAINTAINERS: add st-delta driver
[media] ARM: multi_v7_defconfig: enable STMicroelectronics DELTA Support
...
Diffstat (limited to 'include')
34 files changed, 90 insertions, 182 deletions
diff --git a/include/linux/platform_data/media/ir-rx51.h b/include/linux/platform_data/media/ir-rx51.h index 812d87307877..2c94ab568bfa 100644 --- a/include/linux/platform_data/media/ir-rx51.h +++ b/include/linux/platform_data/media/ir-rx51.h @@ -1,7 +1,7 @@ -#ifndef _LIRC_RX51_H -#define _LIRC_RX51_H +#ifndef _IR_RX51_H +#define _IR_RX51_H -struct lirc_rx51_platform_data { +struct ir_rx51_platform_data { int(*set_max_mpu_wakeup_lat)(struct device *dev, long t); }; diff --git a/include/media/blackfin/ppi.h b/include/media/blackfin/ppi.h index 4900baedd55a..987e49e8f9c9 100644 --- a/include/media/blackfin/ppi.h +++ b/include/media/blackfin/ppi.h @@ -11,10 +11,6 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifndef _PPI_H_ diff --git a/include/media/davinci/ccdc_types.h b/include/media/davinci/ccdc_types.h index 5773874bf266..a27defcf972c 100644 --- a/include/media/davinci/ccdc_types.h +++ b/include/media/davinci/ccdc_types.h @@ -11,10 +11,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * **************************************************************************/ #ifndef _CCDC_TYPES_H #define _CCDC_TYPES_H diff --git a/include/media/davinci/dm355_ccdc.h b/include/media/davinci/dm355_ccdc.h index c669a9fb75e5..e6bc72f6b60f 100644 --- a/include/media/davinci/dm355_ccdc.h +++ b/include/media/davinci/dm355_ccdc.h @@ -10,10 +10,6 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef _DM355_CCDC_H #define _DM355_CCDC_H diff --git a/include/media/davinci/dm644x_ccdc.h b/include/media/davinci/dm644x_ccdc.h index 984fb79031de..7c909da29d43 100644 --- a/include/media/davinci/dm644x_ccdc.h +++ b/include/media/davinci/dm644x_ccdc.h @@ -10,10 +10,6 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef _DM644X_CCDC_H #define _DM644X_CCDC_H diff --git a/include/media/davinci/isif.h b/include/media/davinci/isif.h index 7f3d76a4b9e3..170a7b9cf824 100644 --- a/include/media/davinci/isif.h +++ b/include/media/davinci/isif.h @@ -11,10 +11,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * * isif header file */ #ifndef _ISIF_H diff --git a/include/media/davinci/vpbe.h b/include/media/davinci/vpbe.h index 4376beeb28c2..79a566d7defd 100644 --- a/include/media/davinci/vpbe.h +++ b/include/media/davinci/vpbe.h @@ -9,10 +9,6 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef _VPBE_H #define _VPBE_H diff --git a/include/media/davinci/vpbe_osd.h b/include/media/davinci/vpbe_osd.h index de59364d7ed2..32f77bcae6b3 100644 --- a/include/media/davinci/vpbe_osd.h +++ b/include/media/davinci/vpbe_osd.h @@ -16,10 +16,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * */ #ifndef _OSD_H #define _OSD_H diff --git a/include/media/davinci/vpbe_types.h b/include/media/davinci/vpbe_types.h index 05dbe0ba514c..c10690b15935 100644 --- a/include/media/davinci/vpbe_types.h +++ b/include/media/davinci/vpbe_types.h @@ -9,10 +9,6 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef _VPBE_TYPES_H #define _VPBE_TYPES_H diff --git a/include/media/davinci/vpbe_venc.h b/include/media/davinci/vpbe_venc.h index 3dbd20026107..e32617bc7f9d 100644 --- a/include/media/davinci/vpbe_venc.h +++ b/include/media/davinci/vpbe_venc.h @@ -9,10 +9,6 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef _VPBE_VENC_H #define _VPBE_VENC_H diff --git a/include/media/davinci/vpfe_capture.h b/include/media/davinci/vpfe_capture.h index 28bcd71cdd26..8e1a4d88daa0 100644 --- a/include/media/davinci/vpfe_capture.h +++ b/include/media/davinci/vpfe_capture.h @@ -10,10 +10,6 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef _VPFE_CAPTURE_H diff --git a/include/media/davinci/vpfe_types.h b/include/media/davinci/vpfe_types.h index 76fb74bad08c..498a27404761 100644 --- a/include/media/davinci/vpfe_types.h +++ b/include/media/davinci/vpfe_types.h @@ -10,10 +10,6 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef _VPFE_TYPES_H #define _VPFE_TYPES_H diff --git a/include/media/davinci/vpif_types.h b/include/media/davinci/vpif_types.h index 3cb1704a0650..c49c306cba61 100644 --- a/include/media/davinci/vpif_types.h +++ b/include/media/davinci/vpif_types.h @@ -9,10 +9,6 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef _VPIF_TYPES_H #define _VPIF_TYPES_H @@ -82,6 +78,7 @@ struct vpif_capture_config { struct vpif_capture_chan_config chan_config[VPIF_CAPTURE_MAX_CHANNELS]; struct vpif_subdev_info *subdev_info; int subdev_count; + int i2c_adapter_id; const char *card_name; struct v4l2_async_subdev **asd; /* Flat array, arranged in groups */ int *asd_sizes; /* 0-terminated array of asd group sizes */ diff --git a/include/media/davinci/vpss.h b/include/media/davinci/vpss.h index 153473daaa32..98e7f41fc387 100644 --- a/include/media/davinci/vpss.h +++ b/include/media/davinci/vpss.h @@ -11,10 +11,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * * vpss - video processing subsystem module header file. * * Include this header file if a driver needs to configure vpss system diff --git a/include/media/drv-intf/tea575x.h b/include/media/drv-intf/tea575x.h index fb272d48ba33..ba4923844d1d 100644 --- a/include/media/drv-intf/tea575x.h +++ b/include/media/drv-intf/tea575x.h @@ -16,10 +16,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * */ #include <linux/videodev2.h> diff --git a/include/media/i2c/adp1653.h b/include/media/i2c/adp1653.h index 0b6709335dff..8a79f7200f5d 100644 --- a/include/media/i2c/adp1653.h +++ b/include/media/i2c/adp1653.h @@ -18,11 +18,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA - * 02110-1301 USA - * */ #ifndef ADP1653_H diff --git a/include/media/i2c/adv7183.h b/include/media/i2c/adv7183.h index c5c2d377c0a6..2ad8c3d0b7d2 100644 --- a/include/media/i2c/adv7183.h +++ b/include/media/i2c/adv7183.h @@ -11,10 +11,6 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifndef _ADV7183_H_ diff --git a/include/media/i2c/as3645a.h b/include/media/i2c/as3645a.h index 0e07484ddc33..fffd4b563f5a 100644 --- a/include/media/i2c/as3645a.h +++ b/include/media/i2c/as3645a.h @@ -14,11 +14,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA - * 02110-1301 USA - * */ #ifndef __AS3645A_H__ diff --git a/include/media/i2c/lm3560.h b/include/media/i2c/lm3560.h index 5ed942a8ac32..a5bd310c9e1e 100644 --- a/include/media/i2c/lm3560.h +++ b/include/media/i2c/lm3560.h @@ -15,11 +15,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA - * 02110-1301 USA - * */ #ifndef __LM3560_H__ diff --git a/include/media/i2c/mt9m032.h b/include/media/i2c/mt9m032.h index c3a78114d7a6..30d02a1af708 100644 --- a/include/media/i2c/mt9m032.h +++ b/include/media/i2c/mt9m032.h @@ -14,11 +14,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA - * 02110-1301 USA - * */ #ifndef MT9M032_H diff --git a/include/media/i2c/smiapp.h b/include/media/i2c/smiapp.h index 635007e7441a..525d55b2afeb 100644 --- a/include/media/i2c/smiapp.h +++ b/include/media/i2c/smiapp.h @@ -15,11 +15,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA - * 02110-1301 USA - * */ #ifndef __SMIAPP_H_ diff --git a/include/media/i2c/ths7303.h b/include/media/i2c/ths7303.h index a7b49297da82..834e2f95b630 100644 --- a/include/media/i2c/ths7303.h +++ b/include/media/i2c/ths7303.h @@ -16,10 +16,6 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef THS7353_H diff --git a/include/media/i2c/tvp514x.h b/include/media/i2c/tvp514x.h index 86ed7e806830..c4896702f2d0 100644 --- a/include/media/i2c/tvp514x.h +++ b/include/media/i2c/tvp514x.h @@ -20,10 +20,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * */ #ifndef _TVP514X_H diff --git a/include/media/i2c/tvp7002.h b/include/media/i2c/tvp7002.h index fadb6afe9ef0..5ee007c1cead 100644 --- a/include/media/i2c/tvp7002.h +++ b/include/media/i2c/tvp7002.h @@ -18,10 +18,6 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifndef _TVP7002_H_ #define _TVP7002_H_ diff --git a/include/media/i2c/upd64031a.h b/include/media/i2c/upd64031a.h index 3ad6a32e1bce..48ec03c4ef23 100644 --- a/include/media/i2c/upd64031a.h +++ b/include/media/i2c/upd64031a.h @@ -12,10 +12,6 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _UPD64031A_H_ diff --git a/include/media/i2c/upd64083.h b/include/media/i2c/upd64083.h index 59b6f32ba300..4bed7371fdde 100644 --- a/include/media/i2c/upd64083.h +++ b/include/media/i2c/upd64083.h @@ -12,10 +12,6 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _UPD64083_H_ diff --git a/include/media/media-device.h b/include/media/media-device.h index c21b4c5f5871..6896266031b9 100644 --- a/include/media/media-device.h +++ b/include/media/media-device.h @@ -14,10 +14,6 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef _MEDIA_DEVICE_H @@ -125,6 +121,8 @@ struct media_device_ops { * bridge driver finds the media_device during probe. * Bridge driver sets source_priv with information * necessary to run @enable_source and @disable_source handlers. + * Callers should hold graph_mutex to access and call @enable_source + * and @disable_source handlers. */ struct media_device { /* dev->driver_data points to this struct. */ @@ -154,7 +152,7 @@ struct media_device { /* Serializes graph operations. */ struct mutex graph_mutex; - struct media_entity_graph pm_count_walk; + struct media_graph pm_count_walk; void *source_priv; int (*enable_source)(struct media_entity *entity, diff --git a/include/media/media-devnode.h b/include/media/media-devnode.h index cd23e915764c..511615d3bf6f 100644 --- a/include/media/media-devnode.h +++ b/include/media/media-devnode.h @@ -15,10 +15,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * * -- * * Common functions for media-related drivers to register and unregister media diff --git a/include/media/media-entity.h b/include/media/media-entity.h index b2203ee7a4c1..c7c254c5bca1 100644 --- a/include/media/media-entity.h +++ b/include/media/media-entity.h @@ -14,10 +14,6 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef _MEDIA_ENTITY_H @@ -86,7 +82,7 @@ struct media_entity_enum { }; /** - * struct media_entity_graph - Media graph traversal state + * struct media_graph - Media graph traversal state * * @stack: Graph traversal stack; the stack contains information * on the path the media entities to be walked and the @@ -94,7 +90,7 @@ struct media_entity_enum { * @ent_enum: Visited entities * @top: The top of the stack */ -struct media_entity_graph { +struct media_graph { struct { struct media_entity *entity; struct list_head *link; @@ -112,7 +108,7 @@ struct media_entity_graph { */ struct media_pipeline { int streaming_count; - struct media_entity_graph graph; + struct media_graph graph; }; /** @@ -179,7 +175,7 @@ struct media_pad { * return an error, in which case link setup will be * cancelled. Optional. * @link_validate: Return whether a link is valid from the entity point of - * view. The media_entity_pipeline_start() function + * view. The media_pipeline_start() function * validates all links by calling this operation. Optional. * * .. note:: @@ -820,20 +816,20 @@ struct media_pad *media_entity_remote_pad(struct media_pad *pad); struct media_entity *media_entity_get(struct media_entity *entity); /** - * media_entity_graph_walk_init - Allocate resources used by graph walk. + * media_graph_walk_init - Allocate resources used by graph walk. * * @graph: Media graph structure that will be used to walk the graph * @mdev: Pointer to the &media_device that contains the object */ -__must_check int media_entity_graph_walk_init( - struct media_entity_graph *graph, struct media_device *mdev); +__must_check int media_graph_walk_init( + struct media_graph *graph, struct media_device *mdev); /** - * media_entity_graph_walk_cleanup - Release resources used by graph walk. + * media_graph_walk_cleanup - Release resources used by graph walk. * * @graph: Media graph structure that will be used to walk the graph */ -void media_entity_graph_walk_cleanup(struct media_entity_graph *graph); +void media_graph_walk_cleanup(struct media_graph *graph); /** * media_entity_put - Release the reference to the parent module @@ -847,40 +843,39 @@ void media_entity_graph_walk_cleanup(struct media_entity_graph *graph); void media_entity_put(struct media_entity *entity); /** - * media_entity_graph_walk_start - Start walking the media graph at a + * media_graph_walk_start - Start walking the media graph at a * given entity * * @graph: Media graph structure that will be used to walk the graph * @entity: Starting entity * - * Before using this function, media_entity_graph_walk_init() must be + * Before using this function, media_graph_walk_init() must be * used to allocate resources used for walking the graph. This * function initializes the graph traversal structure to walk the * entities graph starting at the given entity. The traversal * structure must not be modified by the caller during graph * traversal. After the graph walk, the resources must be released - * using media_entity_graph_walk_cleanup(). + * using media_graph_walk_cleanup(). */ -void media_entity_graph_walk_start(struct media_entity_graph *graph, - struct media_entity *entity); +void media_graph_walk_start(struct media_graph *graph, + struct media_entity *entity); /** - * media_entity_graph_walk_next - Get the next entity in the graph + * media_graph_walk_next - Get the next entity in the graph * @graph: Media graph structure * * Perform a depth-first traversal of the given media entities graph. * * The graph structure must have been previously initialized with a call to - * media_entity_graph_walk_start(). + * media_graph_walk_start(). * * Return: returns the next entity in the graph or %NULL if the whole graph * have been traversed. */ -struct media_entity * -media_entity_graph_walk_next(struct media_entity_graph *graph); +struct media_entity *media_graph_walk_next(struct media_graph *graph); /** - * media_entity_pipeline_start - Mark a pipeline as streaming + * media_pipeline_start - Mark a pipeline as streaming * @entity: Starting entity * @pipe: Media pipeline to be assigned to all entities in the pipeline. * @@ -889,45 +884,45 @@ media_entity_graph_walk_next(struct media_entity_graph *graph); * to every entity in the pipeline and stored in the media_entity pipe field. * * Calls to this function can be nested, in which case the same number of - * media_entity_pipeline_stop() calls will be required to stop streaming. The + * media_pipeline_stop() calls will be required to stop streaming. The * pipeline pointer must be identical for all nested calls to - * media_entity_pipeline_start(). + * media_pipeline_start(). */ -__must_check int media_entity_pipeline_start(struct media_entity *entity, - struct media_pipeline *pipe); +__must_check int media_pipeline_start(struct media_entity *entity, + struct media_pipeline *pipe); /** - * __media_entity_pipeline_start - Mark a pipeline as streaming + * __media_pipeline_start - Mark a pipeline as streaming * * @entity: Starting entity * @pipe: Media pipeline to be assigned to all entities in the pipeline. * - * ..note:: This is the non-locking version of media_entity_pipeline_start() + * ..note:: This is the non-locking version of media_pipeline_start() */ -__must_check int __media_entity_pipeline_start(struct media_entity *entity, - struct media_pipeline *pipe); +__must_check int __media_pipeline_start(struct media_entity *entity, + struct media_pipeline *pipe); /** - * media_entity_pipeline_stop - Mark a pipeline as not streaming + * media_pipeline_stop - Mark a pipeline as not streaming * @entity: Starting entity * * Mark all entities connected to a given entity through enabled links, either * directly or indirectly, as not streaming. The media_entity pipe field is * reset to %NULL. * - * If multiple calls to media_entity_pipeline_start() have been made, the same + * If multiple calls to media_pipeline_start() have been made, the same * number of calls to this function are required to mark the pipeline as not * streaming. */ -void media_entity_pipeline_stop(struct media_entity *entity); +void media_pipeline_stop(struct media_entity *entity); /** - * __media_entity_pipeline_stop - Mark a pipeline as not streaming + * __media_pipeline_stop - Mark a pipeline as not streaming * * @entity: Starting entity * - * .. note:: This is the non-locking version of media_entity_pipeline_stop() + * .. note:: This is the non-locking version of media_pipeline_stop() */ -void __media_entity_pipeline_stop(struct media_entity *entity); +void __media_pipeline_stop(struct media_entity *entity); /** * media_devnode_create() - creates and initializes a device node interface diff --git a/include/media/rc-core.h b/include/media/rc-core.h index 55281b92105a..73ddd721d7ba 100644 --- a/include/media/rc-core.h +++ b/include/media/rc-core.h @@ -32,13 +32,16 @@ do { \ /** * enum rc_driver_type - type of the RC output * - * @RC_DRIVER_SCANCODE: Driver or hardware generates a scancode - * @RC_DRIVER_IR_RAW: Driver or hardware generates pulse/space sequences. - * It needs a Infra-Red pulse/space decoder + * @RC_DRIVER_SCANCODE: Driver or hardware generates a scancode + * @RC_DRIVER_IR_RAW: Driver or hardware generates pulse/space sequences. + * It needs a Infra-Red pulse/space decoder + * @RC_DRIVER_IR_RAW_TX: Device transmitter only, + * driver requires pulse/space data sequence. */ enum rc_driver_type { RC_DRIVER_SCANCODE = 0, RC_DRIVER_IR_RAW, + RC_DRIVER_IR_RAW_TX, }; /** @@ -83,10 +86,13 @@ enum rc_filter_type { * @input_dev: the input child device used to communicate events to userspace * @driver_type: specifies if protocol decoding is done in hardware or software * @idle: used to keep track of RX state + * @encode_wakeup: wakeup filtering uses IR encode API, therefore the allowed + * wakeup protocols is the set of all raw encoders * @allowed_protocols: bitmask with the supported RC_BIT_* protocols * @enabled_protocols: bitmask with the enabled RC_BIT_* protocols * @allowed_wakeup_protocols: bitmask with the supported RC_BIT_* wakeup protocols - * @enabled_wakeup_protocols: bitmask with the enabled RC_BIT_* wakeup protocols + * @wakeup_protocol: the enabled RC_TYPE_* wakeup protocol or + * RC_TYPE_UNKNOWN if disabled. * @scancode_filter: scancode filter * @scancode_wakeup_filter: scancode wakeup filters * @scancode_mask: some hardware decoders are not capable of providing the full @@ -110,8 +116,6 @@ enum rc_filter_type { * @rx_resolution : resolution (in ns) of input sampler * @tx_resolution: resolution (in ns) of output sampler * @change_protocol: allow changing the protocol used on hardware decoders - * @change_wakeup_protocol: allow changing the protocol used for wakeup - * filtering * @open: callback to allow drivers to enable polling/irq when IR input device * is opened. * @close: callback to allow drivers to disable polling/irq when IR input device @@ -126,7 +130,9 @@ enum rc_filter_type { * @s_learning_mode: enable wide band receiver used for learning * @s_carrier_report: enable carrier reports * @s_filter: set the scancode filter - * @s_wakeup_filter: set the wakeup scancode filter + * @s_wakeup_filter: set the wakeup scancode filter. If the mask is zero + * then wakeup should be disabled. wakeup_protocol will be set to + * a valid protocol if mask is nonzero. * @s_timeout: set hardware timeout in ns */ struct rc_dev { @@ -146,10 +152,11 @@ struct rc_dev { struct input_dev *input_dev; enum rc_driver_type driver_type; bool idle; + bool encode_wakeup; u64 allowed_protocols; u64 enabled_protocols; u64 allowed_wakeup_protocols; - u64 enabled_wakeup_protocols; + enum rc_type wakeup_protocol; struct rc_scancode_filter scancode_filter; struct rc_scancode_filter scancode_wakeup_filter; u32 scancode_mask; @@ -169,7 +176,6 @@ struct rc_dev { u32 rx_resolution; u32 tx_resolution; int (*change_protocol)(struct rc_dev *dev, u64 *rc_type); - int (*change_wakeup_protocol)(struct rc_dev *dev, u64 *rc_type); int (*open)(struct rc_dev *dev); void (*close)(struct rc_dev *dev); int (*s_tx_mask)(struct rc_dev *dev, u32 mask); @@ -200,17 +206,19 @@ struct rc_dev { /** * rc_allocate_device - Allocates a RC device * + * @rc_driver_type: specifies the type of the RC output to be allocated * returns a pointer to struct rc_dev. */ -struct rc_dev *rc_allocate_device(void); +struct rc_dev *rc_allocate_device(enum rc_driver_type); /** * devm_rc_allocate_device - Managed RC device allocation * * @dev: pointer to struct device + * @rc_driver_type: specifies the type of the RC output to be allocated * returns a pointer to struct rc_dev. */ -struct rc_dev *devm_rc_allocate_device(struct device *dev); +struct rc_dev *devm_rc_allocate_device(struct device *dev, enum rc_driver_type); /** * rc_free_device - Frees a RC device @@ -306,6 +314,8 @@ int ir_raw_event_store_edge(struct rc_dev *dev, enum raw_event_type type); int ir_raw_event_store_with_filter(struct rc_dev *dev, struct ir_raw_event *ev); void ir_raw_event_set_idle(struct rc_dev *dev, bool idle); +int ir_raw_encode_scancode(enum rc_type protocol, u32 scancode, + struct ir_raw_event *events, unsigned int max); static inline void ir_raw_event_reset(struct rc_dev *dev) { diff --git a/include/media/rc-map.h b/include/media/rc-map.h index e1cc14cba391..a704749280d2 100644 --- a/include/media/rc-map.h +++ b/include/media/rc-map.h @@ -17,7 +17,7 @@ * @RC_TYPE_UNKNOWN: Protocol not known * @RC_TYPE_OTHER: Protocol known but proprietary * @RC_TYPE_RC5: Philips RC5 protocol - * @RC_TYPE_RC5X: Philips RC5x protocol + * @RC_TYPE_RC5X_20: Philips RC5x 20 bit protocol * @RC_TYPE_RC5_SZ: StreamZap variant of RC5 * @RC_TYPE_JVC: JVC protocol * @RC_TYPE_SONY12: Sony 12 bit protocol @@ -41,7 +41,7 @@ enum rc_type { RC_TYPE_UNKNOWN = 0, RC_TYPE_OTHER = 1, RC_TYPE_RC5 = 2, - RC_TYPE_RC5X = 3, + RC_TYPE_RC5X_20 = 3, RC_TYPE_RC5_SZ = 4, RC_TYPE_JVC = 5, RC_TYPE_SONY12 = 6, @@ -66,7 +66,7 @@ enum rc_type { #define RC_BIT_UNKNOWN (1ULL << RC_TYPE_UNKNOWN) #define RC_BIT_OTHER (1ULL << RC_TYPE_OTHER) #define RC_BIT_RC5 (1ULL << RC_TYPE_RC5) -#define RC_BIT_RC5X (1ULL << RC_TYPE_RC5X) +#define RC_BIT_RC5X_20 (1ULL << RC_TYPE_RC5X_20) #define RC_BIT_RC5_SZ (1ULL << RC_TYPE_RC5_SZ) #define RC_BIT_JVC (1ULL << RC_TYPE_JVC) #define RC_BIT_SONY12 (1ULL << RC_TYPE_SONY12) @@ -87,7 +87,7 @@ enum rc_type { #define RC_BIT_CEC (1ULL << RC_TYPE_CEC) #define RC_BIT_ALL (RC_BIT_UNKNOWN | RC_BIT_OTHER | \ - RC_BIT_RC5 | RC_BIT_RC5X | RC_BIT_RC5_SZ | \ + RC_BIT_RC5 | RC_BIT_RC5X_20 | RC_BIT_RC5_SZ | \ RC_BIT_JVC | \ RC_BIT_SONY12 | RC_BIT_SONY15 | RC_BIT_SONY20 | \ RC_BIT_NEC | RC_BIT_NECX | RC_BIT_NEC32 | \ @@ -95,7 +95,26 @@ enum rc_type { RC_BIT_RC6_6A_20 | RC_BIT_RC6_6A_24 | \ RC_BIT_RC6_6A_32 | RC_BIT_RC6_MCE | RC_BIT_SHARP | \ RC_BIT_XMP | RC_BIT_CEC) +/* All rc protocols for which we have decoders */ +#define RC_BIT_ALL_IR_DECODER \ + (RC_BIT_RC5 | RC_BIT_RC5X_20 | RC_BIT_RC5_SZ | \ + RC_BIT_JVC | \ + RC_BIT_SONY12 | RC_BIT_SONY15 | RC_BIT_SONY20 | \ + RC_BIT_NEC | RC_BIT_NECX | RC_BIT_NEC32 | \ + RC_BIT_SANYO | RC_BIT_MCE_KBD | RC_BIT_RC6_0 | \ + RC_BIT_RC6_6A_20 | RC_BIT_RC6_6A_24 | \ + RC_BIT_RC6_6A_32 | RC_BIT_RC6_MCE | RC_BIT_SHARP | \ + RC_BIT_XMP) +#define RC_BIT_ALL_IR_ENCODER \ + (RC_BIT_RC5 | RC_BIT_RC5X_20 | RC_BIT_RC5_SZ | \ + RC_BIT_JVC | \ + RC_BIT_SONY12 | RC_BIT_SONY15 | RC_BIT_SONY20 | \ + RC_BIT_NEC | RC_BIT_NECX | RC_BIT_NEC32 | \ + RC_BIT_SANYO | \ + RC_BIT_RC6_0 | RC_BIT_RC6_6A_20 | RC_BIT_RC6_6A_24 | \ + RC_BIT_RC6_6A_32 | RC_BIT_RC6_MCE | \ + RC_BIT_SHARP) #define RC_SCANCODE_UNKNOWN(x) (x) #define RC_SCANCODE_OTHER(x) (x) @@ -198,6 +217,7 @@ struct rc_map *rc_map_get(const char *name); #define RC_MAP_CEC "rc-cec" #define RC_MAP_CINERGY_1400 "rc-cinergy-1400" #define RC_MAP_CINERGY "rc-cinergy" +#define RC_MAP_D680_DMB "rc-d680-dmb" #define RC_MAP_DELOCK_61959 "rc-delock-61959" #define RC_MAP_DIB0700_NEC_TABLE "rc-dib0700-nec" #define RC_MAP_DIB0700_RC5_TABLE "rc-dib0700-rc5" @@ -208,6 +228,8 @@ struct rc_map *rc_map_get(const char *name); #define RC_MAP_DNTV_LIVE_DVB_T "rc-dntv-live-dvb-t" #define RC_MAP_DTT200U "rc-dtt200u" #define RC_MAP_DVBSKY "rc-dvbsky" +#define RC_MAP_DVICO_MCE "rc-dvico-mce" +#define RC_MAP_DVICO_PORTABLE "rc-dvico-portable" #define RC_MAP_EMPTY "rc-empty" #define RC_MAP_EM_TERRATEC "rc-em-terratec" #define RC_MAP_ENCORE_ENLTV2 "rc-encore-enltv2" @@ -219,6 +241,7 @@ struct rc_map *rc_map_get(const char *name); #define RC_MAP_FLYVIDEO "rc-flyvideo" #define RC_MAP_FUSIONHDTV_MCE "rc-fusionhdtv-mce" #define RC_MAP_GADMEI_RM008Z "rc-gadmei-rm008z" +#define RC_MAP_GEEKBOX "rc-geekbox" #define RC_MAP_GENIUS_TVGO_A11MCE "rc-genius-tvgo-a11mce" #define RC_MAP_GOTVIEW7135 "rc-gotview7135" #define RC_MAP_HAUPPAUGE_NEW "rc-hauppauge" diff --git a/include/media/v4l2-event.h b/include/media/v4l2-event.h index a700285c64a9..6741910c3a18 100644 --- a/include/media/v4l2-event.h +++ b/include/media/v4l2-event.h @@ -15,11 +15,6 @@ * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA - * 02110-1301 USA */ #ifndef V4L2_EVENT_H diff --git a/include/media/v4l2-fh.h b/include/media/v4l2-fh.h index e19e6246e21c..62633e7d2630 100644 --- a/include/media/v4l2-fh.h +++ b/include/media/v4l2-fh.h @@ -16,11 +16,6 @@ * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA - * 02110-1301 USA */ #ifndef V4L2_FH_H diff --git a/include/media/v4l2-subdev.h b/include/media/v4l2-subdev.h index cf778c5dca18..0ab1c5df6fac 100644 --- a/include/media/v4l2-subdev.h +++ b/include/media/v4l2-subdev.h @@ -592,9 +592,9 @@ struct v4l2_subdev_ir_ops { /** * struct v4l2_subdev_pad_config - Used for storing subdev pad information. * - * @try_fmt: pointer to &struct v4l2_mbus_framefmt - * @try_crop: pointer to &struct v4l2_rect to be used for crop - * @try_compose: pointer to &struct v4l2_rect to be used for compose + * @try_fmt: &struct v4l2_mbus_framefmt + * @try_crop: &struct v4l2_rect to be used for crop + * @try_compose: &struct v4l2_rect to be used for compose * * This structure only needs to be passed to the pad op if the 'which' field * of the main argument is set to %V4L2_SUBDEV_FORMAT_TRY. For |