* [GIT PULL for v4.6-rc1] media updates
@ 2016-03-15 11:05 Mauro Carvalho Chehab
2016-05-03 21:38 ` Stefan Lippers-Hollmann
0 siblings, 1 reply; 12+ messages in thread
From: Mauro Carvalho Chehab @ 2016-03-15 11:05 UTC (permalink / raw)
To: Linus Torvalds
Cc: Andrew Morton, Linux Media Mailing List,
Linux Kernel Mailing List, Takashi Iwai, Daniel Vetter
Hi Linus,
Please pull from:
git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media tags/media/v4.6-1
For:
- Added support for some new video formats;
- mn88473 DVB frontend driver got promoted from staging;
- several improvements at the VSP1 driver;
- several cleanups and improvements at the Media Controller;
- added Media Controller support to snd-usb-audio. Currently, enabled only
for au0828-based V4L2/DVB boards;
- Several improvements at nuvoton-cir: it now supports wake up codes;
- Add media controller support to em28xx and saa7134 drivers;
- coda driver now accepts NXP distributed firmware files;
- Some legacy SoC camera drivers will be moving to staging, as they're
outdated and nobody so far is willing to fix and convert them to use
the current media framework;
- As usual, lots of cleanups, improvements and new board additions.
Thanks!
Mauro
---
The following changes since commit b562e44f507e863c6792946e4e1b1449fbbac85d:
Linux 4.5 (2016-03-13 21:28:54 -0700)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media tags/media/v4.6-1
for you to fetch changes up to 8331c055b23c4155b896a2c3791704ae68992d2b:
Merge commit '840f5b0572ea' into v4l_for_linus (2016-03-15 07:48:28 -0300)
----------------------------------------------------------------
media updates for v4.6-rc1
----------------------------------------------------------------
Abhilash Jindal (1):
[media] dvb-frontend: Use boottime
Al Viro (1):
[media] davinci: ccdc_update_raw_params() frees the wrong thing
Amitoj Kaur Chawla (2):
[media] media: platform: exynos4-is: media-dev: Add missing of_node_put
[media] media: platform: vivid: vivid-osd: Remove unnecessary cast to kfree
Andrei Koshkosh (1):
[media] si2157.c: fix frequency range
Andrzej Hajda (1):
[media] v4l: omap3isp: Fix handling platform_get_irq result
Andy Shevchenko (1):
[media] tea575x: convert to library
Antti Palosaari (5):
[media] rtl28xxu: retry failed i2c messages
[media] mn88473: move out of staging
[media] mn88473: finalize driver
[media] rtl2832: improve slave TS control
[media] rtl2832: move stats polling to read status
Arnd Bergmann (9):
[media] s5c73m3: remove duplicate module device table
[media] hdpvr: hide unused variable
[media] b2c2: flexcop: avoid unused function warnings
[media] v4l: remove MEDIA_TUNER dependency for VIDEO_TUNER
[media] msp3400: use IS_ENABLED check instead of #if
[media] mx3_camera: use %pad format string for dma_ddr_t
[media] em28xx: restore lost #ifdef
[media] saa7134: fix warning with !MEDIA_CONTROLLER
[media] hide unused functions for !MEDIA_CONTROLLER
Aviv Greenberg (1):
[media] UVC: Add support for R200 depth camera
Benjamin Larsson (1):
[media] Add support for Terratec Cinergy S2 Rev.4
Benoit Parrot (6):
[media] media: ti-vpe: Document CAL driver
[media] MAINTAINERS: Add ti-vpe maintainer entry
[media] media: ti-vpe: Add CAL v4l2 camera capture driver
[media] media: ti-vpe: cal: Fix syntax check warnings
[media] media: ti-vpe: cal: Fix unreachable code in enum_frame_interval
[media] media: ti-vpe: cal: Fix warning: variable dereference before being checked
Christophe JAILLET (1):
[media] netup_unidvb: Remove a useless memset
Dan Carpenter (5):
[media] vpx3220: signedness bug in vpx3220_fp_read()
[media] staging: media: lirc: fix MODULE_PARM_DESC typo
[media] wl128x: fix typo in MODULE_PARM_DESC
[media] xc2028: unlock on error in xc2028_set_config()
[media] usb/cpia2_core: clean up a min_t() cast
Eduard Gavin (1):
[media] tvp5150: Add OF match table
Emilio López (2):
[media] rc: sunxi-cir: support module autoloading
[media] usb: musb: sunxi: support module autoloading
Ernst Martin Witte (5):
[media] af9013: cancel_delayed_work_sync before device removal / kfree
[media] af9033: cancel_delayed_work_sync before device removal / kfree
[media] si2157: cancel_delayed_work_sync before device removal / kfree
[media] rtl2830: cancel_delayed_work_sync before device removal / kfree
[media] ts2020: cancel_delayed_work_sync before device removal / kfree
Ezequiel Garcia (1):
[media] stk1160: Remove redundant vb2_buf payload set
Fugang Duan (1):
[media] radio-si476x: add return value check to avoid dead code
GEORGE (1):
[media] saa7134: Add support for Snazio TvPVR PRO
Geliang Tang (2):
[media] sh_mobile_ceu_camera: use soc_camera_from_vb2q
[media] bttv-driver, usbvision-video: use to_video_device()
Grygorii Strashko (1):
[media] media: i2c: ov2659: speedup probe if no device connected
Guennadi Liakhovetski (3):
[media] V4L: ov9650: fix control clusters
[media] V4L: add Y12I, Y8I and Z16 pixel format documentation
[media] V4L: fix a confusing function name
Guenter Roeck (1):
[media] atmel-isi: Fix bad usage of IS_ERR_VALUE
Hans Verkuil (22):
[media] saa7134: add DMABUF support
[media] v4l2-dv-timings: skip standards check for V4L2_DV_BT_CAP_CUSTOM
[media] DocBook media: make explicit that standard/timings never change automatically
[media] vivid: fix broken Bayer text rendering
[media] v4l2-ctrls: add V4L2_CID_DV_RX/TX_IT_CONTENT_TYPE controls
[media] DocBook media: document the new V4L2_CID_DV_RX/TX_IT_CONTENT_TYPE controls
[media] adv7604: add support to for the content type control
[media] adv7842: add support to for the content type control
[media] adv7511: add support to for the content type control
[media] adv7511: TX_EDID_PRESENT is still 1 after a disconnect
[media] timblogiw: move to staging in preparation for removal
[media] tc358743: use - instead of non-ascii wide-dash character
[media] media-device.h: fix compiler warning
[media] media.h: use hex values for IF and AUDIO entities too
[media] vivid: support new multiplanar YUV formats
[media] soc_camera/omap1: move to staging in preparation for removal
[media] soc_camera/mx2_camera.c: move to staging in preparation, for removal
[media] soc_camera/mx3_camera.c: move to staging in preparation, for removal
[media] v4l2-mc.h: fix compiler warnings
[media] media.h: always start with 1 for the audio entities
[media] staging/media: add missing TODO files
[media] v4l2-mc.h: fix yet more compiler errors
Hans de Goede (4):
[media] pwc: Add USB id for Philips Spc880nc webcam
[media] saa7134: Fix bytesperline not being set correctly for planar formats
[media] bttv: Width must be a multiple of 16 when capturing planar formats
[media] gspca: Remove unused ovfx2_vga_mode/ovfx2_cif_mode arrays
Heiner Kallweit (23):
[media] media: rc: nuvoton: mark wakeup-related resources
[media] media: rc: raw: improve FIFO handling
[media] nuvoton-cir: use request_muxed_region for accessing EFM registers
[media] nuvoton-cir: simplify nvt_select_logical_ dev
[media] nuvoton-cir: simplify nvt_cir_tx_inactive
[media] nuvoton-cir: factor out logical device disabling
[media] nuvoton-cir: fix clearing wake fifo
[media] nuvoton-cir: use IR_DEFAULT_TIMEOUT and consider SAMPLE_PERIOD
[media] nuvoton-cir: factor out logical device enabling
[media] nuvoton-cir: improve logical device handling
[media] nuvoton-cir: remove unneeded EFM operation in nvt_cir_isr
[media] nuvoton-cir: remove unneeded call to nvt_set_cir_iren
[media] nuvoton-cir: fix setting ioport base address
[media] media: rc: nuvoton-cir: improve nvt_hw_detect
[media] media: rc: nuvoton-cir: add locking to calls of nvt_enable_wake
[media] media: rc: nuvoton-cir: fix wakeup interrupt bits
[media] media: rc: nuvoton-cir: fix interrupt handling
[media] media: rc: nuvoton-cir: improve locking in both interrupt handlers
[media] rc/nuvoton_cir: fix locking issue with nvt_enable_cir
[media] rc/nuvoton_cir: fix locking issue when calling nvt_enable_wake
[media] rc/nuvoton_cir: fix locking issue when calling nvt_disable_cir
[media] media: rc: nuvoton: support reading / writing wakeup sequence via sysfs
[media] media: rc: nuvoton: switch attribute wakeup_data to text
Insu Yun (4):
[media] cx231xx: correctly handling failed allocation
[media] usbtv: correctly handling failed allocation
[media] usbvision: fix locking error
[media] pvrusb2: correctly handling failed thread run
Javier Martinez Canillas (22):
[media] v4l: omap3isp: Fix module autoloading
[media] tvp5150: Add device tree binding document
[media] tvp5150: Initialize the chip on probe
[media] tvp5150: Configure data interface via DT
[media] v4l: of: Correct v4l2_of_parse_endpoint() kernel-doc
[media] adv7604: Check v4l2_of_parse_endpoint() return value
[media] s5c73m3: Check v4l2_of_parse_endpoint() return value
[media] s5k5baf: Check v4l2_of_parse_endpoint() return value
[media] tvp514x: Check v4l2_of_parse_endpoint() return value
[media] tvp7002: Check v4l2_of_parse_endpoint() return value
[media] exynos4-is: Check v4l2_of_parse_endpoint() return value
[media] omap3isp: Check v4l2_of_parse_endpoint() return value
[media] v4l2-subdev: add registered_async subdev core operation
[media] v4l2-async: call registered_async after subdev registration
[media] tvp5150: put endpoint node on error
[media] tvp5150: store dev id and rom version
[media] tvp5150: add internal signal generator to HW input list
[media] tvp5150: move input definition header to dt-bindings
[media] tvp5150: document input connectors DT bindings
[media] tvp5150: add HW input connectors support
[media] v4l2-async: Don't fail if registered_async isn't implemented
[media] Revert "[media] tvp5150: document input connectors DT bindings"
Jean-Baptiste Theou (1):
[media] cx231xx: Fix memory leak
Jean-Michel Hautbois (1):
[media] media: i2c: adv7604: Use v4l2-dv-timings helpers
Jemma Denson (1):
[media] cx24120: make sure tuner is locked at get_frontend
Joseph Marrero (1):
[media] davinci_vpfe: make checkpatch happy
Julia Lawall (8):
[media] soc_camera: constify v4l2_subdev_sensor_ops structures
[media] constify stv6110x_devctl structure
[media] drivers/media/usb/as102: constify as102_priv_ops_t structure
[media] go7007: constify go7007_hpi_ops structures
[media] av7110: constify sp8870_config structure
[media] drivers/media/usb/dvb-usb-v2: constify mxl111sf_tuner_config structure
[media] media: bt8xx: constify or51211_config structure
[media] media: bt8xx: constify sp887x_config structure
Koji Matsuoka (1):
[media] soc_camera: rcar_vin: Add ARGB8888 caputre format support
Lad, Prabhakar (1):
[media] v4l: omap3isp: use vb2_buffer_state enum for vb2 buffer state
Laurent Pinchart (46):
[media] v4l: omap3isp: Fix data lane shift configuration
[media] tvp5150: Restructure version detection
[media] tvp5150: Add tvp5151 support
[media] tvp5150: Add pixel rate control support
[media] tvp5150: Add s_stream subdev operation support
[media] tvp5150: Add g_mbus_config subdev operation support
[media] tvp5150: fix tvp5150_fill_fmt()
[media] tvp5150: Add pad-level subdev operations
[media] v4l: Merge the YUV and YVU 4:2:0 tri-planar non-contiguous formats docs
[media] v4l: Add YUV 4:2:2 and YUV 4:4:4 tri-planar non-contiguous formats
[media] v4l: vsp1: Add tri-planar memory formats support
[media] v4l: vsp1: Group all link creation code in a single file
[media] v4l: vsp1: Change the type of the rwpf field in struct vsp1_video
[media] v4l: vsp1: Store the memory format in struct vsp1_rwpf
[media] v4l: vsp1: Move video operations to vsp1_rwpf
[media] v4l: vsp1: Rename vsp1_video_buffer to vsp1_vb2_buffer
[media] v4l: vsp1: Move video device out of struct vsp1_rwpf
[media] v4l: vsp1: Make rwpf operations independent of video device
[media] v4l: vsp1: Support VSP1 instances without any UDS
[media] v4l: vsp1: Move vsp1_video pointer from vsp1_entity to vsp1_rwpf
[media] v4l: vsp1: Remove struct vsp1_pipeline num_video field
[media] v4l: vsp1: Decouple pipeline end of frame processing from vsp1_video
[media] v4l: vsp1: Split pipeline management code from vsp1_video.c
[media] v4l: vsp1: Rename video pipeline functions to use vsp1_video prefix
[media] v4l: vsp1: Extract pipeline initialization code into a function
[media] v4l: vsp1: Reuse local variable instead of recomputing it
[media] v4l: vsp1: Extract link creation to separate function
[media] v4l: vsp1: Document the vsp1_pipeline structure
[media] v4l: vsp1: Fix typo in VI6_DISP_IRQ_STA_DST register bit name
[media] v4l: vsp1: Set the SRU CTRL0 register when starting the stream
[media] v4l: vsp1: Remove unused module read functions
[media] v4l: vsp1: Move entity route setup function to vsp1_entity.c
[media] v4l: vsp1: Make number of BRU inputs configurable
[media] v4l: vsp1: Make the BRU optional
[media] v4l: vsp1: Move format info to vsp1_pipe.c
[media] v4l: vsp1: Make the userspace API optional
[media] v4l: vsp1: Make pipeline inputs array index by RPF index
[media] v4l: vsp1: Set the alpha value manually in RPF and WPF s_stream handlers
[media] v4l: vsp1: Don't validate links when the userspace API is disabled
[media] v4l: vsp1: Add VSP+DU support
[media] v4l: vsp1: Disconnect unused RPFs from the DRM pipeline
[media] v4l: vsp1: Implement atomic update for the DRM driver
[media] v4l: vsp1: Add support for the R-Car Gen3 VSP2
[media] v4l: vsp1: Configure device based on IP version
[media] v4l: vsp1: Check if an entity is a subdev with the right function
[media] v4l: exynos4-is: Drop unneeded check when setting up fimc-lite links
Linus Walleij (1):
[media] : cxd2830r: use gpiochip data pointer
Markus Elfring (8):
[media] gsc-m2m: Use an unsigned data type for a variable
[media] si2165: Refactoring for si2165_writereg_mask8()
[media] tuners: Refactoring for m88rs6000t_sleep()
[media] r820t: Delete an unnecessary variable initialisation in generic_set_freq()
[media] msi2500: Delete an unnecessary check in msi2500_set_usb_adc()
[media] bttv: Returning only value constants in two functions
[media] au0828: Refactoring for start_urb_transfer()
[media] hdpvr: Refactoring for hdpvr_read()
Markus Pargmann (1):
[media] mt9v032: Add reset and standby gpios
Mats Randgaard (2):
[media] tc358743: Print timings only when debug level is set
[media] tc358743: Use local array with fixed size in i2c write
Matthias Schwarzott (1):
[media] si2165: Reject DVB-T bandwidth auto mode
Matthieu Rogez (3):
[media] em28xx: add support for Terratec Grabby REC button
[media] em28xx: add support for Terratec Grabby Record led
[media] em28xx: fix Terratec Grabby AC97 codec detection
Mauro Carvalho Chehab (95):
Merge tag 'v4.5-rc1' into patchwork
Revert "[media] Postpone the addition of MEDIA_IOC_G_TOPOLOGY"
[media] dw2102: use the new USB ID Terratec Cinergy S2 macros
[media] tvp5150: Fix breakage for serial usage
[media] em28xx: fix implementation of s_stream
Revert "[media] tvp5150: Fix breakage for serial usage"
[media] em28xx: remove unused input types
[media] xc2028: avoid use after free
[media] tuner.h: rename TUNER_PAD_IF_OUTPUT to TUNER_PAD_OUTPUT
[media] v4l2-mc.h: move tuner PAD definitions to this new header
[media] v4l2-mc.h: Split audio from baseband output
[media] media.h: add support for IF-PLL video/sound decoder
[media] v4l2-mc.h Add pads for audio and video IF-PLL decoders
[media] v4l2-mc: add analog TV demodulator pad index macros
[media] tvp5150: create the expected number of pads
[media] msp3400: initialize MC data
[media] tvp5150: identify it as a MEDIA_ENT_F_ATV_DECODER
[media] saa7115: initialize demod type and add the needed pads
[media] em28xx: unregister devices in case of failure
[media] em28xx: fix tuner detection for Pixelview Prolink PlayTV USB 2.0
[media] em28xx: make sure that the device has video
[media] em28xx: avoid divide by zero error
[media] mt9v011: add media controller support
[media] em28xx: add media controller support
[media] dvb_frontend: print DTV property dump also for SET_PROPERTY
[media] dvb_frontend: add props argument to dtv_get_frontend()
[media] siano: remove get_frontend stub
[media] friio-fe: remove get_frontend() callback
[media] lgs8gxx: don't export get_frontend() callback
[media] mb86a20s: get rid of dummy get_frontend()
[media] dvb_frontend: pass the props cache to get_frontend() as arg
[media] dvb_frontend: Don't let drivers to trash data at cache
Merge tag 'v4.5-rc3' into patchwork
[media] v4l2-mc: add a generic function to create the media graph
[media] em2xx: use v4l2_mc_create_media_graph()
[media] add media controller support to videobuf2-dvb
[media] saa7134: use input types, instead of hardcoding strings
[media] saa7134: unconditionlally update TV standard at demod
[media] saa7134: Get rid of struct saa7134_input.tv field
[media] v4l2-mc: add an ancillary routine for PCI-based MC
[media] saa7134: add media controller support
[media] au0828: only create V4L2 graph if V4L2 is registered
[media] au0828: move V4L2-specific code to au0828-core.c
[media] v4l2-mc.h: prevent it for being included twice
[media] v4l2-mc: add a routine to create USB media_device
[media] rc-core: don't lock device at rc_register_device()
[media] allow overriding the driver name
[media] use v4l2_mc_usb_media_device_init() on most USB devices
[media] em28xx-dvb: create RF connector on DVB-only mode
[media] cx231xx: use v4l2 core function to create the MC graph
[media] si2157: register as a tuner entity
[media] cx231xx, em28xx: pass media_device to si2157
[media] cx231xx: create connectors at the media graph
[media] v4l2-mc: remove the unused sensor var
[media] au0828: get rid of AU0828_VMUX_DEBUG
[media] cx231xx: get rid of CX231XX_VMUX_DEBUG
[media] tvp5150: replace MEDIA_ENT_F_CONN_TEST by a control
[media] media.h: get rid of MEDIA_ENT_F_CONN_TEST
Merge branch 'fixes' into patchwork
[media] siano: firmware buffer is too small
[media] smsusb: don't sleep while atomic
[media] siano: use generic function to create MC device
[media] vsp1_drm.h: add missing prototypes
[media] xc4000: shut up a bogus smatch message
[media] v4l2-mc: fix hardware version for PCI devices
[media] tvp5150: don't go past decoder->input_ent array
[media] saa7134: fix detection of external decoders
[media] dib0090: do the right thing if rf_ramp is NULL
[media] media-device: move PCI/USB helper functions from v4l2-mc
[media] media_device: move allocation out of media_device_*_init
[media] pvrusb2-io: no need to check if sp is not NULL
[media] pvrusb2: don't go past buf array
[media] stv0900: avoid going past array
[media] ivtv: steal could be NULL
[media] dib9000: read16/write16 could return an error code
[media] drxj: set_param_parameters array is too short
[media] av7110: remove a bogus smatch warning
[media] ttpci: cleanup a bogus smatch warning
[media] airspy: fix bit set/clean mess on s->flags
[media] drxj: don't do math if not needed
[media] dib0090: Do the right check for state->rf_ramp
[media] technisat-usb2: don't do DMA on the stack
[media] pt3: fix device identification
[media] ati_remote: Put timeouts at the accel array
[media] lirc_dev: avoid double mutex unlock
Merge branch 'v4l_for_linus' into patchwork
[media] rc-core: allow calling rc_open with device not initialized
[media] au0828: use standard demod pads struct
[media] au0828: use v4l2_mc_create_media_graph()
[media] v4l2-mc: Fix parameter description
v4l2-mc.h: Add stubs for the V4L2 PM/pipeline routines
[media] mceusb: use %*ph for small buffer dumps
[media] touptek: don't DMA at the stack
[media] touptek: cast char types on %x printk
Merge commit '840f5b0572ea' into v4l_for_linus
Nicolas Sugino (1):
[media] dib8000: Add support for Mygica/Geniatech S2870
Niklas Söderlund (1):
[media] vim2m: return error if driver registration fails
Nikola Forró (1):
[media] usbtv: discard redundant video fields
Olli Salonen (6):
[media] dw2102: convert TechnoTrend S2-4600 to use I2C binding for demod
[media] cx23885: fix reversed I2C bus numbering
[media] cx23885: incorrect I2C bus used in the CI registration
[media] dvb-core: fix return code checking for devices with CA
[media] dw2102: ts2020 included twice
[media] dw2102: add support for TeVii S662
Patrick Boettcher (1):
[media] media: change email address
Philipp Zabel (7):
[media] coda: fix first encoded frame payload
[media] dw2102: Add support for Terratec Cinergy S2 USB BOX
[media] coda: add support for native order firmware files with Freescale header
[media] coda: add support for firmware files named as distributed by NXP
[media] media-entity: include linux/bug.h for WARN_ON
[media] coda: fix error path in case of missing pdata on non-DT platform
[media] v4l2-ioctl: fix YUV422P pixel format description
Philippe Valembois (2):
[media] Add support for Avermedia AverTV Volar HD 2 (TD110)
[media] Fix AverMedia RM-KS remote keymap
RitwikGopi (1):
[media] Staging: media/lirc: lirc_zilog.c : fixed a string split in multi-line issue
Robert Jarzmik (4):
[media] pxa_camera: fix the buffer free path
[media] pxa_camera: move interrupt to tasklet
[media] pxa_camera: trivial move of dma irq functions
[media] pxa_camera: conversion to dmaengine
Sakari Ailus (11):
[media] v4l: omap3isp: Move starting the sensor from streamon IOCTL handler to VB2 QOP
[media] v4l: omap3isp: Return buffers back to videobuf2 if pipeline streamon fails
[media] v4l: omap3isp: preview: Mark output buffer done first
[media] media: v4l: Dual license v4l2-common.h under GPL v2 and BSD licenses
[media] media: Use all bits of an enumeration
[media] media: Always keep a graph walk large enough around
[media] v4l: Add generic pipeline power management code
[media] v4l: omap3isp: Use V4L2 graph PM operations
[media] staging: v4l: omap4iss: Use V4L2 graph PM operations
[media] media: Move media_get_uptr() macro out of the media.h user space header
[media] media: Properly handle user pointers
Sean Young (1):
[media] igorplugusb: fix leaks in error path
Shuah Khan (31):
[media] media: Fix media_open() to clear filp->private_data in error leg
[media] media: Media Controller fix to not let stream_count go negative
[media] Docbook: media-types.xml: Add ALSA Media Controller Intf types
[media] uapi/media.h: Declare interface types for ALSA
[media] Docbook: media-types.xml: Add Audio Function Entities
[media] media: Add ALSA Media Controller function entities
[media] media: Media Controller register/unregister entity_notify API
[media] media: Media Controller enable/disable source handler API
[media] media: Media Controller export non locking __media_entity_setup_link()
[media] media: Media Controller non-locking __media_entity_pipeline_start/stop()
[media] media: v4l-core add enable/disable source common interfaces
[media] media: Move au8522_media_pads enum to au8522.h from au8522_priv.h
[media] media: au8522 change to create MC pad for ALSA Audio Out
[media] media: au0828 Use au8522_media_pads enum for pad defines
[media] media: Change v4l-core to check if source is free
[media] media: au0828 change to use Managed Media Controller API
[media] media: au0828 handle media_init and media_register window
[media] media: au0828 create tuner to decoder link in disabled state
[media] media: au0828 disable tuner to demod link
[media] media: au0828-core register entity_notify hook
[media] media: au0828 add enable, disable source handlers
[media] media: dvb-frontend invoke enable/disable_source handlers
[media] media: au0828 video change to use v4l_enable_media_source()
[media] media: au0828 set ctrl_input in au0828_s_input()
[media] media: au0828 enable the right media source when input changes
[media] sound/usb: Use Media Controller API to share media resources
[media] media: au0828 audio mixer isn't connected to decoder
[media] sound/usb: Use meaninful names for goto labels
[media] media: fix null pointer dereference in v4l_vb2q_enable_media_source()
[media] media: add prefixes to interface types
media: au0828 disable tuner to demod link in au0828_media_device_register()
Simon Horman (1):
[media] rcar_jpu: Add R-Car Gen2 Fallback Compatibility String
Stefan Pöschel (1):
[media] af9035: add support for 2nd tuner of MSI DigiVox Diversity
Sudip Mukherjee (4):
[media] staging: media: lirc: replace NULL comparisons with !var
[media] staging: media: lirc: no space after cast
[media] staging: media: lirc: space around operator
[media] media: ti-vpe: add dependency of HAS_DMA
Takashi Saito (1):
[media] v4l: vsp1: Add display list support
Tiffany Lin (1):
[media] media: v4l2-compat-ioctl32: fix missing length copy in put_v4l2_buffer32
Torbjörn Jansson (1):
[media] dvb-usb-dvbsky: add new product id for TT CT2-4650 CI
Ulrich Hecht (2):
[media] media: adv7604: implement get_selection
[media] adv7604: fix SPA register location for ADV7612
Vladimir Zapolskiy (1):
[media] v4l2-ctrls: remove unclaimed v4l2_ctrl_add_ctrl() interface
Wesley Post (1):
[media] gspca: Fix ov519 i2c r/w not working when connected to a xhci host
Wu, Xia (1):
[media] media: videobuf2-core: Fix one __qbuf_dmabuf() error path
Wu-Cheng Li (2):
[media] v4l: add V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME
[media] s5p-mfc: add the support of V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME
Xiubo Li (3):
[media] dvbdev: remove useless parentheses after return
[media] dvbdev: replace kcalloc with kzalloc
[media] dvbdev: the space is required after ','
Yoshihiko Mori (1):
[media] soc_camera: rcar_vin: Add R-Car Gen3 support
Documentation/ABI/testing/sysfs-class-rc-nuvoton | 15 +
Documentation/DocBook/device-drivers.tmpl | 1 +
Documentation/DocBook/media/v4l/controls.xml | 58 +
.../DocBook/media/v4l/media-ioc-g-topology.xml | 3 -
Documentation/DocBook/media/v4l/media-types.xml | 81 +-
Documentation/DocBook/media/v4l/pixfmt-y12i.xml | 49 +
Documentation/DocBook/media/v4l/pixfmt-y8i.xml | 80 +
Documentation/DocBook/media/v4l/pixfmt-yuv420m.xml | 26 +-
.../v4l/{pixfmt-yvu420m.xml => pixfmt-yuv422m.xml} | 106 +-
Documentation/DocBook/media/v4l/pixfmt-yuv444m.xml | 177 ++
Documentation/DocBook/media/v4l/pixfmt-z16.xml | 81 +
Documentation/DocBook/media/v4l/pixfmt.xml | 13 +-
.../DocBook/media/v4l/vidioc-query-dv-timings.xml | 14 +-
.../DocBook/media/v4l/vidioc-querystd.xml | 10 +
.../devicetree/bindings/media/i2c/mt9v032.txt | 2 +
.../devicetree/bindings/media/i2c/tvp5150.txt | 45 +
.../devicetree/bindings/media/rcar_vin.txt | 1 +
.../devicetree/bindings/media/renesas,jpu.txt | 13 +-
.../devicetree/bindings/media/renesas,vsp1.txt | 34 +-
Documentation/devicetree/bindings/media/ti-cal.txt | 72 +
Documentation/dvb/README.dvb-usb | 2 +-
Documentation/video4linux/CARDLIST.saa7134 | 1 +
Documentation/video4linux/v4l2-controls.txt | 1 -
MAINTAINERS | 12 +-
drivers/media/common/b2c2/flexcop-fe-tuner.c | 4 +-
drivers/media/common/b2c2/flexcop.c | 4 +-
drivers/media/common/cypress_firmware.c | 2 +-
drivers/media/common/cypress_firmware.h | 2 +-
drivers/media/common/siano/smscoreapi.c | 4 +-
drivers/media/common/siano/smsdvb-main.c | 7 -
drivers/media/dvb-core/dvb-usb-ids.h | 9 +-
drivers/media/dvb-core/dvb_frontend.c | 218 +--
drivers/media/dvb-core/dvb_frontend.h | 3 +-
drivers/media/dvb-core/dvbdev.c | 15 +-
drivers/media/dvb-frontends/Kconfig | 8 +
drivers/media/dvb-frontends/Makefile | 1 +
drivers/media/dvb-frontends/af9013.c | 8 +-
drivers/media/dvb-frontends/af9033.c | 7 +-
drivers/media/dvb-frontends/as102_fe.c | 4 +-
drivers/media/dvb-frontends/atbm8830.c | 4 +-
drivers/media/dvb-frontends/au8522.h | 1 -
drivers/media/dvb-frontends/au8522_decoder.c | 7 +-
drivers/media/dvb-frontends/au8522_dig.c | 4 +-
drivers/media/dvb-frontends/au8522_priv.h | 11 +-
drivers/media/dvb-frontends/bcm3510.c | 4 +-
drivers/media/dvb-frontends/bcm3510.h | 2 +-
drivers/media/dvb-frontends/bcm3510_priv.h | 2 +-
drivers/media/dvb-frontends/cx22700.c | 4 +-
drivers/media/dvb-frontends/cx22702.c | 4 +-
drivers/media/dvb-frontends/cx24110.c | 4 +-
drivers/media/dvb-frontends/cx24117.c | 4 +-
drivers/media/dvb-frontends/cx24120.c | 8 +-
drivers/media/dvb-frontends/cx24123.c | 4 +-
drivers/media/dvb-frontends/cxd2820r_c.c | 4 +-
drivers/media/dvb-frontends/cxd2820r_core.c | 20 +-
drivers/media/dvb-frontends/cxd2820r_priv.h | 9 +-
drivers/media/dvb-frontends/cxd2820r_t.c | 4 +-
drivers/media/dvb-frontends/cxd2820r_t2.c | 6 +-
drivers/media/dvb-frontends/cxd2841er.c | 4 +-
drivers/media/dvb-frontends/dib0070.c | 2 +-
drivers/media/dvb-frontends/dib0090.c | 16 +-
drivers/media/dvb-frontends/dib3000.h | 6 +-
drivers/media/dvb-frontends/dib3000mb.c | 17 +-
drivers/media/dvb-frontends/dib3000mb_priv.h | 2 +-
drivers/media/dvb-frontends/dib3000mc.c | 10 +-
drivers/media/dvb-frontends/dib3000mc.h | 2 +-
drivers/media/dvb-frontends/dib7000m.c | 8 +-
drivers/media/dvb-frontends/dib7000p.c | 10 +-
drivers/media/dvb-frontends/dib8000.c | 77 +-
drivers/media/dvb-frontends/dib9000.c | 31 +-
drivers/media/dvb-frontends/dibx000_common.c | 2 +-
drivers/media/dvb-frontends/drx39xyj/drxj.c | 11 +-
drivers/media/dvb-frontends/dvb_dummy_fe.c | 7 +-
drivers/media/dvb-frontends/hd29l2.c | 4 +-
drivers/media/dvb-frontends/l64781.c | 4 +-
drivers/media/dvb-frontends/lg2160.c | 62 +-
drivers/media/dvb-frontends/lgdt3305.c | 4 +-
drivers/media/dvb-frontends/lgdt3306a.c | 4 +-
drivers/media/dvb-frontends/lgdt330x.c | 5 +-
drivers/media/dvb-frontends/lgs8gl5.c | 5 +-
drivers/media/dvb-frontends/lgs8gxx.c | 13 +-
drivers/media/dvb-frontends/m88ds3103.c | 4 +-
drivers/media/dvb-frontends/m88rs2000.c | 5 +-
drivers/media/dvb-frontends/mb86a20s.c | 11 -
.../mn88473 => media/dvb-frontends}/mn88473.c | 388 ++--
drivers/media/dvb-frontends/mn88473.h | 14 +-
.../mn88473 => media/dvb-frontends}/mn88473_priv.h | 7 +-
drivers/media/dvb-frontends/mt312.c | 4 +-
drivers/media/dvb-frontends/mt352.c | 4 +-
drivers/media/dvb-frontends/or51132.c | 4 +-
drivers/media/dvb-frontends/rtl2830.c | 7 +-
drivers/media/dvb-frontends/rtl2832.c | 155 +-
drivers/media/dvb-frontends/rtl2832.h | 4 +-
drivers/media/dvb-frontends/rtl2832_priv.h | 1 -
drivers/media/dvb-frontends/s5h1409.c | 4 +-
drivers/media/dvb-frontends/s5h1411.c | 4 +-
drivers/media/dvb-frontends/s5h1420.c | 4 +-
drivers/media/dvb-frontends/s921.c | 4 +-
drivers/media/dvb-frontends/si2165.c | 28 +-
drivers/media/dvb-frontends/stb0899_drv.c | 4 +-
drivers/media/dvb-frontends/stb6100.c | 2 +-
drivers/media/dvb-frontends/stv0297.c | 4 +-
drivers/media/dvb-frontends/stv0299.c | 8 +-
drivers/media/dvb-frontends/stv0367.c | 8 +-
drivers/media/dvb-frontends/stv0900_core.c | 11 +-
drivers/media/dvb-frontends/stv6110x.c | 4 +-
drivers/media/dvb-frontends/stv6110x.h | 4 +-
drivers/media/dvb-frontends/stv6110x_priv.h | 2 +-
drivers/media/dvb-frontends/tc90522.c | 10 +-
drivers/media/dvb-frontends/tda10021.c | 4 +-
drivers/media/dvb-frontends/tda10023.c | 4 +-
drivers/media/dvb-frontends/tda10048.c | 4 +-
drivers/media/dvb-frontends/tda1004x.c | 4 +-
drivers/media/dvb-frontends/tda10071.c | 4 +-
drivers/media/dvb-frontends/tda10086.c | 4 +-
drivers/media/dvb-frontends/tda8083.c | 4 +-
drivers/media/dvb-frontends/ts2020.c | 4 +
drivers/media/dvb-frontends/ves1820.c | 4 +-
drivers/media/dvb-frontends/ves1x93.c | 4 +-
drivers/media/dvb-frontends/zl10353.c | 4 +-
drivers/media/i2c/adv7511.c | 43 +-
drivers/media/i2c/adv7604.c | 230 +--
drivers/media/i2c/adv7842.c | 20 +
drivers/media/i2c/msp3400-driver.c | 14 +
drivers/media/i2c/msp3400-driver.h | 5 +
drivers/media/i2c/mt9v011.c | 15 +
drivers/media/i2c/mt9v032.c | 28 +
drivers/media/i2c/ov2659.c | 8 +-
drivers/media/i2c/ov9650.c | 4 +-
drivers/media/i2c/s5c73m3/s5c73m3-core.c | 4 +-
drivers/media/i2c/s5c73m3/s5c73m3-spi.c | 1 -
drivers/media/i2c/s5k5baf.c | 5 +-
drivers/media/i2c/saa7115.c | 19 +
drivers/media/i2c/soc_camera/mt9m001.c | 2 +-
drivers/media/i2c/soc_camera/mt9t031.c | 2 +-
drivers/media/i2c/soc_camera/mt9v022.c | 2 +-
drivers/media/i2c/tc358743.c | 55 +-
drivers/media/i2c/tvp514x.c | 6 +-
drivers/media/i2c/tvp5150.c | 452 ++++-
drivers/media/i2c/tvp7002.c | 6 +-
drivers/media/i2c/vpx3220.c | 2 +-
drivers/media/media-device.c | 145 +-
drivers/media/media-devnode.c | 1 +
drivers/media/media-entity.c | 94 +-
drivers/media/pci/b2c2/flexcop-pci.c | 2 +-
drivers/media/pci/bt8xx/bttv-driver.c | 53 +-
drivers/media/pci/bt8xx/dst.c | 4 +-
drivers/media/pci/bt8xx/dvb-bt8xx.c | 4 +-
drivers/media/pci/cx23885/cx23885-dvb.c | 19 +-
drivers/media/pci/cx88/cx88-dvb.c | 3 +-
drivers/media/pci/ddbridge/ddbridge-core.c | 2 +-
drivers/media/pci/ivtv/ivtv-queue.c | 2 +-
drivers/media/pci/netup_unidvb/netup_unidvb_core.c | 7 +-
drivers/media/pci/ngene/ngene-cards.c | 2 +-
drivers/media/pci/pt3/pt3.c | 3 +-
drivers/media/pci/saa7134/saa7134-cards.c | 1851 +++++++++----------
drivers/media/pci/saa7134/saa7134-core.c | 195 +-
drivers/media/pci/saa7134/saa7134-dvb.c | 9 +-
drivers/media/pci/saa7134/saa7134-empress.c | 3 +-
drivers/media/pci/saa7134/saa7134-go7007.c | 2 +-
drivers/media/pci/saa7134/saa7134-input.c | 21 +
drivers/media/pci/saa7134/saa7134-tvaudio.c | 13 +-
drivers/media/pci/saa7134/saa7134-video.c | 108 +-
drivers/media/pci/saa7134/saa7134.h | 46 +-
drivers/media/pci/ttpci/av7110.c | 15 +-
drivers/media/pci/ttpci/budget.c | 36 +-
drivers/media/platform/Kconfig | 22 +-
drivers/media/platform/Makefile | 3 +-
drivers/media/platform/coda/coda-bit.c | 2 +-
drivers/media/platform/coda/coda-common.c | 106 +-
drivers/media/platform/coda/coda.h | 3 +-
drivers/media/platform/davinci/dm644x_ccdc.c | 2 +-
drivers/media/platform/exynos-gsc/gsc-m2m.c | 2 +-
drivers/media/platform/exynos4-is/fimc-lite.c | 12 +-
drivers/media/platform/exynos4-is/media-dev.c | 20 +-
drivers/media/platform/exynos4-is/mipi-csis.c | 10 +-
drivers/media/platform/omap3isp/isp.c | 226 +--
drivers/media/platform/omap3isp/isp.h | 4 -
drivers/media/platform/omap3isp/ispccdc.c | 2 +-
drivers/media/platform/omap3isp/isppreview.c | 14 +-
drivers/media/platform/omap3isp/ispvideo.c | 116 +-
drivers/media/platform/omap3isp/ispvideo.h | 1 -
drivers/media/platform/omap3isp/omap3isp.h | 8 +-
drivers/media/platform/rcar_jpu.c | 1 +
drivers/media/platform/s5p-mfc/s5p_mfc_enc.c | 12 +
drivers/media/platform/soc_camera/Kconfig | 29 +-
drivers/media/platform/soc_camera/Makefile | 3 -
drivers/media/platform/soc_camera/atmel-isi.c | 4 +-
drivers/media/platform/soc_camera/pxa_camera.c | 478 +++--
drivers/media/platform/soc_camera/rcar_vin.c | 41 +-
.../platform/soc_camera/sh_mobile_ceu_camera.c | 14 +-
.../media/platform/sti/c8sectpfe/c8sectpfe-dvb.c | 2 +-
drivers/media/platform/ti-vpe/Makefile | 4 +
drivers/media/platform/ti-vpe/cal.c | 1947 ++++++++++++++++++++
drivers/media/platform/ti-vpe/cal_regs.h | 479 +++++
drivers/media/platform/vim2m.c | 2 +-
drivers/media/platform/vivid/vivid-osd.c | 2 +-
drivers/media/platform/vivid/vivid-tpg.c | 32 +
drivers/media/platform/vivid/vivid-tpg.h | 2 +
drivers/media/platform/vivid/vivid-vid-common.c | 39 +-
drivers/media/platform/vsp1/Makefile | 3 +-
drivers/media/platform/vsp1/vsp1.h | 29 +-
drivers/media/platform/vsp1/vsp1_bru.c | 33 +-
drivers/media/platform/vsp1/vsp1_bru.h | 3 +-
drivers/media/platform/vsp1/vsp1_dl.c | 305 +++
drivers/media/platform/vsp1/vsp1_dl.h | 42 +
drivers/media/platform/vsp1/vsp1_drm.c | 597 ++++++
drivers/media/platform/vsp1/vsp1_drm.h | 49 +
drivers/media/platform/vsp1/vsp1_drv.c | 382 ++--
drivers/media/platform/vsp1/vsp1_entity.c | 31 +-
drivers/media/platform/vsp1/vsp1_entity.h | 14 +-
drivers/media/platform/vsp1/vsp1_hsit.c | 2 +-
drivers/media/platform/vsp1/vsp1_lif.c | 11 +-
drivers/media/platform/vsp1/vsp1_lut.c | 7 +-
drivers/media/platform/vsp1/vsp1_pipe.c | 426 +++++
drivers/media/platform/vsp1/vsp1_pipe.h | 134 ++
drivers/media/platform/vsp1/vsp1_regs.h | 32 +-
drivers/media/platform/vsp1/vsp1_rpf.c | 88 +-
drivers/media/platform/vsp1/vsp1_rwpf.h | 29 +-
drivers/media/platform/vsp1/vsp1_sru.c | 9 +-
drivers/media/platform/vsp1/vsp1_uds.c | 8 +-
drivers/media/platform/vsp1/vsp1_video.c | 518 +-----
drivers/media/platform/vsp1/vsp1_video.h | 111 +-
drivers/media/platform/vsp1/vsp1_wpf.c | 98 +-
drivers/media/radio/radio-si476x.c | 4 +-
drivers/media/radio/tea575x.c | 21 +-
drivers/media/radio/wl128x/fmdrv_common.c | 2 +-
drivers/media/rc/ati_remote.c | 47 +-
drivers/media/rc/igorplugusb.c | 17 +-
drivers/media/rc/keymaps/rc-avermedia-rm-ks.c | 56 +-
drivers/media/rc/lirc_dev.c | 7 +-
drivers/media/rc/mceusb.c | 5 +-
drivers/media/rc/nuvoton-cir.c | 358 ++--
drivers/media/rc/nuvoton-cir.h | 15 +-
drivers/media/rc/rc-core-priv.h | 6 +-
drivers/media/rc/rc-ir-raw.c | 23 +-
drivers/media/rc/rc-main.c | 48 +-
drivers/media/rc/sunxi-cir.c | 1 +
drivers/media/tuners/m88rs6000t.c | 11 +-
drivers/media/tuners/r820t.c | 2 +-
drivers/media/tuners/si2157.c | 39 +-
drivers/media/tuners/si2157.h | 5 +
drivers/media/tuners/si2157_priv.h | 8 +
drivers/media/tuners/tuner-xc2028.c | 6 +-
drivers/media/tuners/xc4000.c | 2 +-
drivers/media/usb/airspy/airspy.c | 11 +-
drivers/media/usb/as102/as102_drv.h | 2 +-
drivers/media/usb/as102/as102_usb_drv.c | 2 +-
drivers/media/usb/au0828/au0828-core.c | 456 +++--
drivers/media/usb/au0828/au0828-dvb.c | 12 +-
drivers/media/usb/au0828/au0828-video.c | 190 +-
drivers/media/usb/au0828/au0828.h | 27 +-
drivers/media/usb/b2c2/flexcop-usb.c | 2 +-
drivers/media/usb/cpia2/cpia2_core.c | 2 +-
drivers/media/usb/cx231xx/cx231xx-417.c | 2 +
drivers/media/usb/cx231xx/cx231xx-audio.c | 5 +
drivers/media/usb/cx231xx/cx231xx-cards.c | 68 +-
drivers/media/usb/cx231xx/cx231xx-dvb.c | 10 +-
drivers/media/usb/cx231xx/cx231xx-video.c | 47 +-
drivers/media/usb/cx231xx/cx231xx.h | 4 +-
drivers/media/usb/dvb-usb-v2/af9035.c | 6 +-
drivers/media/usb/dvb-usb-v2/af9035.h | 3 +-
drivers/media/usb/dvb-usb-v2/dvb_usb.h | 2 +-
drivers/media/usb/dvb-usb-v2/dvb_usb_common.h | 2 +-
drivers/media/usb/dvb-usb-v2/dvb_usb_core.c | 15 +-
drivers/media/usb/dvb-usb-v2/dvb_usb_urb.c | 2 +-
drivers/media/usb/dvb-usb-v2/dvbsky.c | 7 +
drivers/media/usb/dvb-usb-v2/mxl111sf-demod.c | 4 +-
drivers/media/usb/dvb-usb-v2/mxl111sf-tuner.c | 6 +-
drivers/media/usb/dvb-usb-v2/mxl111sf-tuner.h | 8 +-
drivers/media/usb/dvb-usb-v2/mxl111sf.c | 4 +-
drivers/media/usb/dvb-usb-v2/rtl28xxu.c | 32 +-
drivers/media/usb/dvb-usb-v2/usb_urb.c | 2 +-
drivers/media/usb/dvb-usb/a800.c | 4 +-
drivers/media/usb/dvb-usb/af9005-fe.c | 4 +-
drivers/media/usb/dvb-usb/cxusb.c | 4 +-
drivers/media/usb/dvb-usb/dib0700_core.c | 2 +-
drivers/media/usb/dvb-usb/dib0700_devices.c | 77 +-
drivers/media/usb/dvb-usb/dibusb-common.c | 2 +-
drivers/media/usb/dvb-usb/dibusb-mb.c | 6 +-
drivers/media/usb/dvb-usb/dibusb-mc.c | 6 +-
drivers/media/usb/dvb-usb/dibusb.h | 2 +-
drivers/media/usb/dvb-usb/digitv.c | 4 +-
drivers/media/usb/dvb-usb/dtt200u-fe.c | 7 +-
drivers/media/usb/dvb-usb/dtt200u.c | 4 +-
drivers/media/usb/dvb-usb/dtt200u.h | 2 +-
drivers/media/usb/dvb-usb/dvb-usb-common.h | 2 +-
drivers/media/usb/dvb-usb/dvb-usb-dvb.c | 13 +-
drivers/media/usb/dvb-usb/dvb-usb-firmware.c | 2 +-
drivers/media/usb/dvb-usb/dvb-usb-i2c.c | 2 +-
drivers/media/usb/dvb-usb/dvb-usb-init.c | 4 +-
drivers/media/usb/dvb-usb/dvb-usb-remote.c | 2 +-
drivers/media/usb/dvb-usb/dvb-usb-urb.c | 2 +-
drivers/media/usb/dvb-usb/dvb-usb.h | 2 +-
drivers/media/usb/dvb-usb/dw2102.c | 105 +-
drivers/media/usb/dvb-usb/friio-fe.c | 27 +-
drivers/media/usb/dvb-usb/nova-t-usb2.c | 4 +-
drivers/media/usb/dvb-usb/technisat-usb2.c | 43 +-
drivers/media/usb/dvb-usb/ttusb2.c | 2 +-
drivers/media/usb/dvb-usb/umt-010.c | 4 +-
drivers/media/usb/dvb-usb/usb-urb.c | 2 +-
drivers/media/usb/dvb-usb/vp702x-fe.c | 2 +-
drivers/media/usb/dvb-usb/vp702x.c | 4 +-
drivers/media/usb/dvb-usb/vp7045-fe.c | 2 +-
drivers/media/usb/dvb-usb/vp7045.c | 4 +-
drivers/media/usb/dvb-usb/vp7045.h | 2 +-
drivers/media/usb/em28xx/em28xx-camera.c | 4 +
drivers/media/usb/em28xx/em28xx-cards.c | 246 ++-
drivers/media/usb/em28xx/em28xx-dvb.c | 21 +
drivers/media/usb/em28xx/em28xx-video.c | 213 ++-
drivers/media/usb/em28xx/em28xx.h | 21 +-
drivers/media/usb/go7007/go7007-priv.h | 2 +-
drivers/media/usb/go7007/go7007-usb.c | 4 +-
drivers/media/usb/gspca/ov519.c | 43 +-
drivers/media/usb/gspca/touptek.c | 8 +-
drivers/media/usb/gspca/w996Xcf.c | 8 +
drivers/media/usb/hdpvr/hdpvr-core.c | 2 +
drivers/media/usb/hdpvr/hdpvr-video.c | 6 +-
drivers/media/usb/msi2500/msi2500.c | 2 -
drivers/media/usb/pvrusb2/pvrusb2-context.c | 2 +-
drivers/media/usb/pvrusb2/pvrusb2-hdw.c | 3 +
drivers/media/usb/pvrusb2/pvrusb2-io.c | 2 +-
drivers/media/usb/pwc/pwc-if.c | 6 +
drivers/media/usb/siano/smsusb.c | 30 +-
drivers/media/usb/stk1160/stk1160-video.c | 1 -
drivers/media/usb/usbtv/usbtv-video.c | 37 +-
drivers/media/usb/usbtv/usbtv.h | 1 +
drivers/media/usb/usbvision/usbvision-video.c | 29 +-
drivers/media/usb/uvc/uvc_driver.c | 20 +
drivers/media/usb/uvc/uvcvideo.h | 12 +
drivers/media/v4l2-core/Kconfig | 1 -
drivers/media/v4l2-core/Makefile | 1 +
drivers/media/v4l2-core/tuner-core.c | 26 +-
drivers/media/v4l2-core/v4l2-async.c | 7 +
drivers/media/v4l2-core/v4l2-compat-ioctl32.c | 21 +-
drivers/media/v4l2-core/v4l2-ctrls.c | 34 +-
drivers/media/v4l2-core/v4l2-dv-timings.c | 3 +-
drivers/media/v4l2-core/v4l2-fh.c | 2 +
drivers/media/v4l2-core/v4l2-ioctl.c | 36 +-
drivers/media/v4l2-core/v4l2-mc.c | 403 ++++
drivers/media/v4l2-core/v4l2-of.c | 2 +-
drivers/media/v4l2-core/videobuf-core.c | 10 +-
drivers/media/v4l2-core/videobuf2-core.c | 5 +
drivers/media/v4l2-core/videobuf2-dvb.c | 13 +-
drivers/staging/media/Kconfig | 8 +-
drivers/staging/media/Makefile | 5 +-
.../staging/media/davinci_vpfe/davinci_vpfe_user.h | 2 +-
drivers/staging/media/lirc/lirc_parallel.c | 24 +-
drivers/staging/media/lirc/lirc_zilog.c | 4 +-
drivers/staging/media/mn88473/Kconfig | 7 -
drivers/staging/media/mn88473/Makefile | 5 -
drivers/staging/media/mn88473/TODO | 21 -
drivers/staging/media/mx2/Kconfig | 15 +
drivers/staging/media/mx2/Makefile | 3 +
drivers/staging/media/mx2/TODO | 10 +
.../soc_camera => staging/media/mx2}/mx2_camera.c | 0
drivers/staging/media/mx3/Kconfig | 15 +
drivers/staging/media/mx3/Makefile | 3 +
drivers/staging/media/mx3/TODO | 10 +
.../soc_camera => staging/media/mx3}/mx3_camera.c | 12 +-
drivers/staging/media/omap1/Kconfig | 13 +
drivers/staging/media/omap1/Makefile | 3 +
drivers/staging/media/omap1/TODO | 8 +
.../media/omap1}/omap1_camera.c | 0
drivers/staging/media/omap4iss/iss.c | 211 +--
drivers/staging/media/omap4iss/iss.h | 6 +-
drivers/staging/media/omap4iss/iss_video.c | 15 +-
drivers/staging/media/omap4iss/iss_video.h | 1 -
drivers/staging/media/timb/Kconfig | 11 +
drivers/staging/media/timb/Makefile | 1 +
.../platform => staging/media/timb}/timblogiw.c | 0
drivers/usb/musb/sunxi.c | 1 +
include/{media/i2c => dt-bindings/media}/tvp5150.h | 8 +-
include/media/media-device.h | 149 ++
include/media/media-entity.h | 20 +
include/media/rc-core.h | 2 +
include/media/tuner.h | 9 +-
include/media/v4l2-ctrls.h | 12 -
include/media/v4l2-dev.h | 1 +
include/media/v4l2-mc.h | 243 +++
include/media/v4l2-subdev.h | 3 +
include/media/videobuf2-dvb.h | 5 +
include/media/vsp1.h | 33 +
include/uapi/linux/media.h | 45 +-
include/uapi/linux/v4l2-common.h | 46 +-
include/uapi/linux/v4l2-controls.h | 11 +
include/uapi/linux/videodev2.h | 7 +
sound/usb/Kconfig | 4 +
sound/usb/Makefile | 2 +
sound/usb/card.c | 14 +
sound/usb/card.h | 3 +
sound/usb/media.c | 318 ++++
sound/usb/media.h | 72 +
sound/usb/mixer.h | 3 +
sound/usb/pcm.c | 28 +-
sound/usb/quirks-table.h | 1 +
sound/usb/stream.c | 2 +
sound/usb/usbaudio.h | 6 +
398 files changed, 12321 insertions(+), 4923 deletions(-)
create mode 100644 Documentation/ABI/testing/sysfs-class-rc-nuvoton
create mode 100644 Documentation/DocBook/media/v4l/pixfmt-y12i.xml
create mode 100644 Documentation/DocBook/media/v4l/pixfmt-y8i.xml
rename Documentation/DocBook/media/v4l/{pixfmt-yvu420m.xml => pixfmt-yuv422m.xml} (58%)
create mode 100644 Documentation/DocBook/media/v4l/pixfmt-yuv444m.xml
create mode 100644 Documentation/DocBook/media/v4l/pixfmt-z16.xml
create mode 100644 Documentation/devicetree/bindings/media/i2c/tvp5150.txt
create mode 100644 Documentation/devicetree/bindings/media/ti-cal.txt
rename drivers/{staging/media/mn88473 => media/dvb-frontends}/mn88473.c (61%)
rename drivers/{staging/media/mn88473 => media/dvb-frontends}/mn88473_priv.h (89%)
create mode 100644 drivers/media/platform/ti-vpe/cal.c
create mode 100644 drivers/media/platform/ti-vpe/cal_regs.h
create mode 100644 drivers/media/platform/vsp1/vsp1_dl.c
create mode 100644 drivers/media/platform/vsp1/vsp1_dl.h
create mode 100644 drivers/media/platform/vsp1/vsp1_drm.c
create mode 100644 drivers/media/platform/vsp1/vsp1_drm.h
create mode 100644 drivers/media/platform/vsp1/vsp1_pipe.c
create mode 100644 drivers/media/platform/vsp1/vsp1_pipe.h
create mode 100644 drivers/media/v4l2-core/v4l2-mc.c
delete mode 100644 drivers/staging/media/mn88473/Kconfig
delete mode 100644 drivers/staging/media/mn88473/Makefile
delete mode 100644 drivers/staging/media/mn88473/TODO
create mode 100644 drivers/staging/media/mx2/Kconfig
create mode 100644 drivers/staging/media/mx2/Makefile
create mode 100644 drivers/staging/media/mx2/TODO
rename drivers/{media/platform/soc_camera => staging/media/mx2}/mx2_camera.c (100%)
create mode 100644 drivers/staging/media/mx3/Kconfig
create mode 100644 drivers/staging/media/mx3/Makefile
create mode 100644 drivers/staging/media/mx3/TODO
rename drivers/{media/platform/soc_camera => staging/media/mx3}/mx3_camera.c (98%)
create mode 100644 drivers/staging/media/omap1/Kconfig
create mode 100644 drivers/staging/media/omap1/Makefile
create mode 100644 drivers/staging/media/omap1/TODO
rename drivers/{media/platform/soc_camera => staging/media/omap1}/omap1_camera.c (100%)
create mode 100644 drivers/staging/media/timb/Kconfig
create mode 100644 drivers/staging/media/timb/Makefile
rename drivers/{media/platform => staging/media/timb}/timblogiw.c (100%)
rename include/{media/i2c => dt-bindings/media}/tvp5150.h (87%)
create mode 100644 include/media/v4l2-mc.h
create mode 100644 include/media/vsp1.h
create mode 100644 sound/usb/media.c
create mode 100644 sound/usb/media.h
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [GIT PULL for v4.6-rc1] media updates
2016-03-15 11:05 [GIT PULL for v4.6-rc1] media updates Mauro Carvalho Chehab
@ 2016-05-03 21:38 ` Stefan Lippers-Hollmann
2016-05-03 21:53 ` Linus Torvalds
0 siblings, 1 reply; 12+ messages in thread
From: Stefan Lippers-Hollmann @ 2016-05-03 21:38 UTC (permalink / raw)
To: Mauro Carvalho Chehab
Cc: Linus Torvalds, Linux Media Mailing List, Linux Kernel Mailing List
Hi
On 2016-03-15, Mauro Carvalho Chehab wrote:
[...]
> The following changes since commit b562e44f507e863c6792946e4e1b1449fbbac85d:
>
> Linux 4.5 (2016-03-13 21:28:54 -0700)
>
> are available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media tags/media/v4.6-1
>
> for you to fetch changes up to 8331c055b23c4155b896a2c3791704ae68992d2b:
>
> Merge commit '840f5b0572ea' into v4l_for_linus (2016-03-15 07:48:28 -0300)
>
> ----------------------------------------------------------------
> media updates for v4.6-rc1
[...]
> Mauro Carvalho Chehab (95):
[...]
> [media] use v4l2_mc_usb_media_device_init() on most USB devices
[...]
This change, as part of v4.6-rc6-85-g1248ded, breaks two systems, each
equipped with a TeVii s480 (dvb_usb_dw2102) DVB-S2 card, for me (kernel
v4.5.3-rc1 is fine):
sandy-bridge:
- TeVii s480 (dvb_usb_dw2102)
- Trekstor Terres 2.0 (dvb_usb_rtl28xxu)
- x10/ 433 MHz radio remote (ati_remote)
[ 2.058727] usb 5-1: config 1 interface 0 altsetting 0 bulk endpoint 0x81 has invalid maxpacket 2
[ 2.059839] usb 5-1: New USB device found, idVendor=9022, idProduct=d660
[ 2.059843] usb 5-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 2.059845] usb 5-1: Product: DVBS2BOX
[ 2.059847] usb 5-1: Manufacturer: TBS-Tech
[ 2.062754] usb 6-1: config 1 interface 0 altsetting 0 bulk endpoint 0x81 has invalid maxpacket 2
[ 2.064002] usb 6-1: New USB device found, idVendor=9022, idProduct=d660
[ 2.064004] usb 6-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 2.064006] usb 6-1: Product: DVBS2BOX
[ 2.064008] usb 6-1: Manufacturer: TBS-Tech
[...]
[ 2.315642] usb 3-1.1: new low-speed USB device number 3 using ehci-pci
[ 2.396709] usb 3-1.1: New USB device found, idVendor=0bc7, idProduct=0006
[ 2.396714] usb 3-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 2.396717] usb 3-1.1: Product: USB Receiver
[ 2.396719] usb 3-1.1: Manufacturer: X10 Wireless Technology Inc
[...]
[ 2.473623] usb 3-1.4: new high-speed USB device number 4 using ehci-pci
[ 2.563465] usb 3-1.4: New USB device found, idVendor=1f4d, idProduct=c803
[ 2.563470] usb 3-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 2.563472] usb 3-1.4: Product: RTL2838UHIDIR
[ 2.563474] usb 3-1.4: Manufacturer: Realtek
[ 2.563476] usb 3-1.4: SerialNumber: 00000001
[...]
[ 4.984409] media: Linux media interface: v0.10
[ 4.987674] dvb-usb: found a 'TeVii S660 USB' in cold state, will try to load a firmware
[ 4.988892] dvb-usb: downloading firmware from file 'dvb-usb-s660.fw'
[ 4.988894] dw2102: start downloading DW210X firmware
[ 5.010246] usb 3-1.4: dvb_usb_v2: found a 'Trekstor DVB-T Stick Terres 2.0' in warm state
[ 5.025627] iTCO_vendor_support: vendor-support=0
[ 5.026049] iTCO_wdt: Intel TCO WatchDog Timer Driver v1.11
[ 5.026076] iTCO_wdt: Found a Cougar Point TCO device (Version=2, TCOBASE=0x0460)
[ 5.026181] iTCO_wdt: initialized. heartbeat=30 sec (nowayout=0)
[ 5.027427] gpio_ich: GPIO from 436 to 511 on gpio_ich
[ 5.041801] usb 3-1.4: dvb_usb_v2: will pass the complete MPEG2 transport stream to the software demuxer
[ 5.041811] DVB: registering new adapter (Trekstor DVB-T Stick Terres 2.0)
[ 5.041814] usb 3-1.4: media controller created
[ 5.041915] BUG: unable to handle kernel NULL pointer dereference at (null)
[ 5.041921] IP: [<ffffffffa0017b18>] media_gobj_create+0xb8/0x100 [media]
[ 5.041928] PGD 0
[ 5.041930] Oops: 0002 [#1] PREEMPT SMP
[ 5.041934] Modules linked in: vfat irqbypass fat crct10dif_pclmul crc32_pclmul ghash_clmulni_intel gpio_ich iTCO_wdt iTCO_vendor_support evdev dvb_usb_rtl28xxu(+) dvb_usb_v2 sha256_ssse3 dvb_usb_dw2102(+) dvb_usb sha256_generic dvb_core media drbg ansi_cprng i915 aesni_intel aes_x86_64 ath9k(+) lrw snd_hda_codec_realtek(+) gf128mul ath9k_common glue_helper ath9k_hw snd_hda_codec_generic ablk_helper cryptd video ath i2c_algo_bit pcspkr serio_raw snd_hda_intel drm_kms_helper mac80211 snd_hda_codec sg drm i2c_i801 lpc_ich cfg80211 snd_hda_core snd_hwdep rfkill i2c_core snd_pcm intel_gtt snd_timer syscopyarea sysfillrect snd mei_me sysimgblt soundcore fb_sys_fops mei 8250_fintek floppy(+) nuvoton_cir rc_core processor button w83627ehf hwmon_vid parport_pc ppdev lp parport autofs4 ext4 crc16 jbd2 mbcache
[ 5.041996] dm_mod hid_generic usbhid hid sr_mod cdrom sd_mod ohci_pci crc32c_intel ahci libahci psmouse libata scsi_mod xhci_pci xhci_hcd r8169 ohci_hcd ehci_pci ehci_hcd e100 mii e1000e usbcore usb_common ptp pps_core fjes
[ 5.042018] CPU: 4 PID: 309 Comm: systemd-udevd Not tainted 4.6.0-rc6-aptosid-amd64 #1 aptosid 4.6~rc6-1~git72.slh.1
[ 5.042022] Hardware name: /DH67CL, BIOS BLH6710H.86A.0160.2012.1204.1156 12/04/2012
[ 5.042027] task: ffff88000c2d0d80 ti: ffff880409b20000 task.ti: ffff880409b20000
[ 5.042032] RIP: 0010:[<ffffffffa0017b18>] [<ffffffffa0017b18>] media_gobj_create+0xb8/0x100 [media]
[ 5.042043] RSP: 0018:ffff880409b238d8 EFLAGS: 00010297
[ 5.042048] RAX: 0000000000000000 RBX: ffff88040ba90000 RCX: ffff88040ba90010
[ 5.042053] RDX: ffff88040ba90000 RSI: ffff88040a54c420 RDI: ffff88040a54c000
[ 5.042059] RBP: ffff88040a54c000 R08: 0000000000017d80 R09: ffffffff8128fa3f
[ 5.042064] R10: ffffea00102ea600 R11: 000000000000003d R12: ffff88040a54c470
[ 5.042069] R13: 0000000000000000 R14: ffffffffa00bca00 R15: ffff88040ba90000
[ 5.042074] FS: 00007f77a1af68c0(0000) GS:ffff88041f300000(0000) knlGS:0000000000000000
[ 5.042081] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 5.042086] CR2: 0000000000000000 CR3: 00000004098cc000 CR4: 00000000000406e0
[ 5.042090] Stack:
[ 5.042094] ffffffffa0015239 0000000000000001 ffff8800024002c2 00000000f11d1c21
[ 5.042102] ffff880036b56c9f ffff880409b239d8 000000000000000f ffffffffa00bc9e1
[ 5.042109] ffff880036b56c9d ffffffffa00bc9df ffffffff8129975e ffff880036b56c90
[ 5.042116] Call Trace:
[ 5.042122] [<ffffffffa0015239>] ? media_device_register_entity+0xc9/0x230 [media]
[ 5.042132] [<ffffffff8129975e>] ? vsnprintf+0x3ae/0x5a0
[ 5.042137] [<ffffffff8129c92b>] ? kvasprintf+0x7b/0xd0
[ 5.042143] [<ffffffff8129c9ce>] ? kasprintf+0x4e/0x70
[ 5.042149] [<ffffffffa00ac687>] ? dvb_create_tsout_entity+0x127/0x150 [dvb_core]
[ 5.042158] [<ffffffffa00acb44>] ? dvb_register_device+0x414/0x610 [dvb_core]
[ 5.042165] [<ffffffffa00ade9c>] ? dvb_dmxdev_init+0xec/0x140 [dvb_core]
[ 5.042171] [<ffffffffa0125029>] ? dvb_usbv2_probe+0x499/0xcb0 [dvb_usb_v2]
[ 5.042182] [<ffffffffa003fbc4>] ? usb_probe_interface+0x194/0x290 [usbcore]
[ 5.042189] [<ffffffff813ab5dd>] ? driver_probe_device+0x1ed/0x2b0
[ 5.042195] [<ffffffff813ab72f>] ? __driver_attach+0x8f/0xa0
[ 5.042200] [<ffffffff813ab6a0>] ? driver_probe_device+0x2b0/0x2b0
[ 5.042206] [<ffffffff813a9622>] ? bus_for_each_dev+0x62/0xb0
[ 5.042212] [<ffffffff813aa9da>] ? bus_add_driver+0x19a/0x210
[ 5.042217] [<ffffffff813abdc2>] ? driver_register+0x52/0xc0
[ 5.042225] [<ffffffffa003e7d8>] ? usb_register_driver+0x78/0x120 [usbcore]
[ 5.042231] [<ffffffffa0140000>] ? 0xffffffffa0140000
[ 5.042237] [<ffffffff810020f0>] ? do_one_initcall+0x90/0x1e0
[ 5.042243] [<ffffffff8111a0d4>] ? do_init_module+0x51/0x1bd
[ 5.042250] [<ffffffff810d8270>] ? load_module+0x1d40/0x2300
[ 5.042255] [<ffffffff810d59a0>] ? __symbol_put+0x80/0x80
[ 5.042262] [<ffffffff812241ec>] ? security_capable+0x3c/0x50
[ 5.042267] [<ffffffff810d8a32>] ? SYSC_finit_module+0xc2/0xd0
[ 5.042274] [<ffffffff8152d732>] ? entry_SYSCALL_64_fastpath+0x1a/0xa4
[ 5.042278] Code: 89 08 83 87 e0 03 00 00 01 c3 48 8b 87 28 04 00 00 48 8d 4a 10 48 8d b7 20 04 00 00 48 89 8f 28 04 00 00 48 89 72 10 48 89 42 18 <48> 89 08 83 87 e0 03 00 00 01 c3 48 8b 87 48 04 00 00 48 8d 4a
[ 5.042311] RIP [<ffffffffa0017b18>] media_gobj_create+0xb8/0x100 [media]
[ 5.042318] RSP <ffff880409b238d8>
[ 5.042322] CR2: 0000000000000000
[ 5.042327] ---[ end trace c1eead83d05cfb48 ]---
ivy-bridge:
- TeVii s480 (dvb_usb_dw2102)
- Terratec Cinergy T USB XE (dvb_usb_af9015), module blacklisted
- mceusb IR remote
[ 1.451505] usb 5-1: New USB device found, idVendor=9022, idProduct=d481
[ 1.451509] usb 5-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 1.457660] usb 6-1: New USB device found, idVendor=9022, idProduct=d482
[ 1.457664] usb 6-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[...]
[ 2.177819] usb 4-1.6: New USB device found, idVendor=0609, idProduct=0334
[ 2.177822] usb 4-1.6: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 2.177824] usb 4-1.6: Product: MCE TRANCEIVR Emulator Device 2006
[ 2.177826] usb 4-1.6: Manufacturer: SMK CORPORATION
[ 2.177827] usb 4-1.6: SerialNumber: PA070620045513C
[...]
[ 2.355897] media: Linux media interface: v0.10
[ 2.363527] dvb-usb: found a 'TeVii S480.1 USB' in cold state, will try to load a firmware
[ 2.364065] dvb-usb: downloading firmware from file 'dvb-usb-s660.fw'
[ 2.364067] dw2102: start downloading DW210X firmware
[ 2.375828] Registered IR keymap rc-rc6-mce
[ 2.375896] input: Media Center Ed. eHome Infrared Remote Transceiver (0609:0334) as /devices/pci0000:00/0000:00:1d.0/usb4/4-1/4-1.6/4-1.6:1.0/rc/rc0/input17
[...]
[ 2.376015] rc rc0: Media Center Ed. eHome Infrared Remote Transceiver (0609:0334) as /devices/pci0000:00/0000:00:1d.0/usb4/4-1/4-1.6/4-1.6:1.0/rc/rc0
[ 2.377579] rc rc0: lirc_dev: driver ir-lirc-codec (mceusb) registered at minor = 0
[ 2.377580] IR LIRC bridge handler initialized
[ 2.418003] usb 5-1: USB disconnect, device number 2
[...]
[ 2.497370] mceusb 4-1.6:1.0: Registered SMK CORPORATION MCE TRANCEIVR Emulator Device 2006 with mce emulator interface version 1
[ 2.497371] mceusb 4-1.6:1.0: 2 tx ports (0x0 cabled) and 2 rx sensors (0x1 active)
[ 2.497394] usbcore: registered new interface driver mceusb
[ 2.515348] dvb-usb: found a 'TeVii S480.1 USB' in warm state.
[ 2.515386] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
[ 2.515397] DVB: registering new adapter (TeVii S480.1 USB)
[ 2.515398] usb 5-1: media controller created
[ 2.515508] dvb-usb: MAC address: 48:48:48:48:48:48
[ 2.515596] BUG: unable to handle kernel NULL pointer dereference at (null)
[ 2.515600] IP: [<ffffffffa066cb18>] media_gobj_create+0xb8/0x100 [media]
[ 2.515601] PGD 0
[ 2.515602] Oops: 0002 [#1] PREEMPT SMP
[ 2.515621] Modules linked in: ir_lirc_codec lirc_dev iTCO_wdt eeepc_wmi iTCO_vendor_support asus_wmi sparse_keymap rfkill evdev dvb_usb_dw2102(+) dvb_usb dvb_core media rc_rc6_mce mceusb rc_core intel_rapl x86_pkg_temp_thermal intel_powerclamp coretemp kvm_intel kvm irqbypass crct10dif_pclmul crc32_pclmul ghash_clmulni_intel snd_hda_codec_hdmi sha256_ssse3 sha256_generic drbg ansi_cprng aesni_intel aes_x86_64 lrw gf128mul glue_helper ablk_helper cryptd snd_hda_codec_realtek snd_hda_codec_generic pcspkr i915 serio_raw i2c_algo_bit drm_kms_helper snd_hda_intel i2c_i801 drm snd_hda_codec snd_hda_core snd_hwdep i2c_core snd_pcm intel_gtt ie31200_edac syscopyarea snd_timer sysfillrect sysimgblt snd mei_me sg fb_sys_fops soundcore lpc_ich mei edac_core wmi battery 8250_fintek tpm_infineon video button
[ 2.515640] processor nct6775 hwmon_vid parport_pc ppdev lp parport autofs4 ext4 crc16 jbd2 mbcache btrfs xor raid6_pq dm_mod md_mod sd_mod ohci_pci crc32c_intel psmouse ahci libahci libata scsi_mod ohci_hcd ehci_pci xhci_pci xhci_hcd ehci_hcd r8169 mii usbcore usb_common fan thermal fjes
[ 2.515642] CPU: 0 PID: 350 Comm: systemd-udevd Not tainted 4.6.0-rc6-aptosid-amd64 #1 aptosid 4.6~rc6-1~git72.slh.1
[ 2.515642] Hardware name: System manufacturer System Product Name/P8H77-M PRO, BIOS 1505 10/17/2014
[ 2.515643] task: ffff8800c7903600 ti: ffff8807f7168000 task.ti: ffff8807f7168000
[ 2.515645] RIP: 0010:[<ffffffffa066cb18>] [<ffffffffa066cb18>] media_gobj_create+0xb8/0x100 [media]
[ 2.515646] RSP: 0018:ffff8807f716b8a0 EFLAGS: 00010297
[ 2.515647] RAX: 0000000000000000 RBX: ffff8807f8b20000 RCX: ffff8807f8b20010
[ 2.515647] RDX: ffff8807f8b20000 RSI: ffff8807f71cfc20 RDI: ffff8807f71cf800
[ 2.515648] RBP: ffff8807f71cf800 R08: 0000000000017d80 R09: ffffffff8128fa3f
[ 2.515648] R10: ffffea001feaf800 R11: ffff8807f77f7b7e R12: ffff8807f71cfc70
[ 2.515649] R13: 0000000000000000 R14: ffffffffa0c31a00 R15: ffff8807f8b20000
[ 2.515650] FS: 00007fb9565ae8c0(0000) GS:ffff88081fa00000(0000) knlGS:0000000000000000
[ 2.515651] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 2.515651] CR2: 0000000000000000 CR3: 00000007f832d000 CR4: 00000000001406f0
[ 2.515652] Stack:
[ 2.515653] ffffffffa066a239 0000000000000001 ffff8800024002c2 000000008c9fd0a5
[ 2.515654] ffff8807f77f7b7f ffff8807f716b9a0 000000000000000f ffffffffa0c319e1
[ 2.515656] ffff8807f77f7b7d ffffffffa0c319df ffffffff8129975e ffff8807f77f7b70
[ 2.515656] Call Trace:
[ 2.515658] [<ffffffffa066a239>] ? media_device_register_entity+0xc9/0x230 [media]
[ 2.515661] [<ffffffff8129975e>] ? vsnprintf+0x3ae/0x5a0
[ 2.515663] [<ffffffff8129c92b>] ? kvasprintf+0x7b/0xd0
[ 2.515665] [<ffffffff8129c9ce>] ? kasprintf+0x4e/0x70
[ 2.515676] [<ffffffffa0c21687>] ? dvb_create_tsout_entity+0x127/0x150 [dvb_core]
[ 2.515678] [<ffffffffa0c21b44>] ? dvb_register_device+0x414/0x610 [dvb_core]
[ 2.515680] [<ffffffffa0c22e9c>] ? dvb_dmxdev_init+0xec/0x140 [dvb_core]
[ 2.515682] [<ffffffffa0695479>] ? dvb_usb_adapter_dvb_init+0x1a9/0x250 [dvb_usb]
[ 2.515683] [<ffffffffa0694950>] ? dvb_usb_device_init+0x480/0x680 [dvb_usb]
[ 2.515687] [<ffffffffa07f8492>] ? dw2102_probe+0x282/0x3c0 [dvb_usb_dw2102]
[ 2.515692] [<ffffffffa0047bc4>] ? usb_probe_interface+0x194/0x290 [usbcore]
[ 2.515694] [<ffffffff813ab5dd>] ? driver_probe_device+0x1ed/0x2b0
[ 2.515696] [<ffffffff813ab72f>] ? __driver_attach+0x8f/0xa0
[ 2.515697] [<ffffffff813ab6a0>] ? driver_probe_device+0x2b0/0x2b0
[ 2.515698] [<ffffffff813a9622>] ? bus_for_each_dev+0x62/0xb0
[ 2.515699] [<ffffffff813aa9da>] ? bus_add_driver+0x19a/0x210
[ 2.515700] [<ffffffff813abdc2>] ? driver_register+0x52/0xc0
[ 2.515703] [<ffffffffa00467d8>] ? usb_register_driver+0x78/0x120 [usbcore]
[ 2.515704] [<ffffffffa06de000>] ? 0xffffffffa06de000
[ 2.515707] [<ffffffff810020f0>] ? do_one_initcall+0x90/0x1e0
[ 2.515709] [<ffffffff8111a0d4>] ? do_init_module+0x51/0x1bd
[ 2.515711] [<ffffffff810d8270>] ? load_module+0x1d40/0x2300
[ 2.515712] [<ffffffff810d59a0>] ? __symbol_put+0x80/0x80
[ 2.515714] [<ffffffff812241ec>] ? security_capable+0x3c/0x50
[ 2.515715] [<ffffffff810d8a32>] ? SYSC_finit_module+0xc2/0xd0
[ 2.515717] [<ffffffff8152d732>] ? entry_SYSCALL_64_fastpath+0x1a/0xa4
[ 2.515731] Code: 89 08 83 87 e0 03 00 00 01 c3 48 8b 87 28 04 00 00 48 8d 4a 10 48 8d b7 20 04 00 00 48 89 8f 28 04 00 00 48 89 72 10 48 89 42 18 <48> 89 08 83 87 e0 03 00 00 01 c3 48 8b 87 48 04 00 00 48 8d 4a
[ 2.515733] RIP [<ffffffffa066cb18>] media_gobj_create+0xb8/0x100 [media]
[ 2.515733] RSP <ffff8807f716b8a0>
[ 2.515734] CR2: 0000000000000000
[ 2.515735] ---[ end trace 45b644013643405a ]---
The git bisect log ends up at:
$ git bisect log
git bisect start
# bad: [33656a1f2ee5346c742d63ddd0e0970c95a56b70] Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs
git bisect bad 33656a1f2ee5346c742d63ddd0e0970c95a56b70
# good: [b562e44f507e863c6792946e4e1b1449fbbac85d] Linux 4.5
git bisect good b562e44f507e863c6792946e4e1b1449fbbac85d
# bad: [6b5f04b6cf8ebab9a65d9c0026c650bb2538fd0f] Merge branch 'for-4.6' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup
git bisect bad 6b5f04b6cf8ebab9a65d9c0026c650bb2538fd0f
# bad: [96b9b1c95660d4bc5510c5d798d3817ae9f0b391] Merge tag 'tty-4.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty
git bisect bad 96b9b1c95660d4bc5510c5d798d3817ae9f0b391
# good: [277edbabf6fece057b14fb6db5e3a34e00f42f42] Merge tag 'pm+acpi-4.6-rc1-1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
git bisect good 277edbabf6fece057b14fb6db5e3a34e00f42f42
# bad: [bace3db5da970c4d4f80a1ffa988ec66c7f6a8f5] Merge tag 'media/v4.6-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
git bisect bad bace3db5da970c4d4f80a1ffa988ec66c7f6a8f5
# good: [8759957b77ac1b5b5bdfac5ba049789107e85190] Merge tag 'libnvdimm-for-4.6' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm
git bisect good 8759957b77ac1b5b5bdfac5ba049789107e85190
# good: [eee7d353a19032b48c0f71504081de84a0ee79d8] [media] v4l2-mc: add a routine to create USB media_device
git bisect good eee7d353a19032b48c0f71504081de84a0ee79d8
# bad: [182dde7c5d4cd9fcac007c0798c9906fc5ea6889] [media] media: au0828 change to use Managed Media Controller API
git bisect bad 182dde7c5d4cd9fcac007c0798c9906fc5ea6889
# bad: [f6acfcdc5b8cdc9ddd53a459361820b9efe958c4] [media] v4l: vsp1: Set the SRU CTRL0 register when starting the stream
git bisect bad f6acfcdc5b8cdc9ddd53a459361820b9efe958c4
# bad: [3e71da19f9dc22e39a755d6ae9678661abb66adc] [media] saa7134: Fix bytesperline not being set correctly for planar formats
git bisect bad 3e71da19f9dc22e39a755d6ae9678661abb66adc
# bad: [c43875f66140f5457f90fc5f6f6840c74b2762cd] [media] tvp5150: replace MEDIA_ENT_F_CONN_TEST by a control
git bisect bad c43875f66140f5457f90fc5f6f6840c74b2762cd
# bad: [8b0a81c73326af2defaa0d8a4494c7def83928bd] [media] si2157: register as a tuner entity
git bisect bad 8b0a81c73326af2defaa0d8a4494c7def83928bd
# bad: [67873d4e751e400149df7ab61ba04cbb4cc0d449] [media] use v4l2_mc_usb_media_device_init() on most USB devices
git bisect bad 67873d4e751e400149df7ab61ba04cbb4cc0d449
# good: [bb07bd6b6851120ac9b25bb315d62d9782d2c345] [media] allow overriding the driver name
git bisect good bb07bd6b6851120ac9b25bb315d62d9782d2c345
# first bad commit: [67873d4e751e400149df7ab61ba04cbb4cc0d449] [media] use v4l2_mc_usb_media_device_init() on most USB devices
Regards
Stefan Lippers-Hollmann
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [GIT PULL for v4.6-rc1] media updates
2016-05-03 21:38 ` Stefan Lippers-Hollmann
@ 2016-05-03 21:53 ` Linus Torvalds
2016-05-04 4:39 ` Stefan Lippers-Hollmann
0 siblings, 1 reply; 12+ messages in thread
From: Linus Torvalds @ 2016-05-03 21:53 UTC (permalink / raw)
To: Stefan Lippers-Hollmann
Cc: Mauro Carvalho Chehab, Linux Media Mailing List,
Linux Kernel Mailing List
On Tue, May 3, 2016 at 2:38 PM, Stefan Lippers-Hollmann <s.l-h@gmx.de> wrote:
> Hi
> [...]
>> Mauro Carvalho Chehab (95):
> [...]
>> [media] use v4l2_mc_usb_media_device_init() on most USB devices
> [...]
>
> This change, as part of v4.6-rc6-85-g1248ded, breaks two systems, each
> equipped with a TeVii s480 (dvb_usb_dw2102) DVB-S2 card, for me (kernel
> v4.5.3-rc1 is fine):
>From the oops it looks like the "->prev" pointer in one of the list
heads in 'mdev' is NULL.
> [ 5.041915] BUG: unable to handle kernel NULL pointer dereference at (null)
> [ 5.041921] IP: [<ffffffffa0017b18>] media_gobj_create+0xb8/0x100 [media]
I can't tell *which* list head it is, but it looks like there's a
missing call to media_device_init() which is what should have
initialized those list heads.
Of course, maybe that list pointer got initialized but then
overwritten by NULL for some other reason.
Linus
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [GIT PULL for v4.6-rc1] media updates
2016-05-03 21:53 ` Linus Torvalds
@ 2016-05-04 4:39 ` Stefan Lippers-Hollmann
2016-05-04 17:58 ` Linus Torvalds
0 siblings, 1 reply; 12+ messages in thread
From: Stefan Lippers-Hollmann @ 2016-05-04 4:39 UTC (permalink / raw)
To: Linus Torvalds
Cc: Mauro Carvalho Chehab, Linux Media Mailing List,
Linux Kernel Mailing List
Hi
On 2016-05-03, Linus Torvalds wrote:
> On Tue, May 3, 2016 at 2:38 PM, Stefan Lippers-Hollmann <s.l-h@gmx.de> wrote:
> > Hi
> > [...]
> >> Mauro Carvalho Chehab (95):
> > [...]
> >> [media] use v4l2_mc_usb_media_device_init() on most USB devices
> > [...]
> >
> > This change, as part of v4.6-rc6-85-g1248ded, breaks two systems, each
> > equipped with a TeVii s480 (dvb_usb_dw2102) DVB-S2 card, for me (kernel
> > v4.5.3-rc1 is fine):
>
> From the oops it looks like the "->prev" pointer in one of the list
> heads in 'mdev' is NULL.
>
> > [ 5.041915] BUG: unable to handle kernel NULL pointer dereference at (null)
> > [ 5.041921] IP: [<ffffffffa0017b18>] media_gobj_create+0xb8/0x100 [media]
>
> I can't tell *which* list head it is, but it looks like there's a
> missing call to media_device_init() which is what should have
> initialized those list heads.
>
> Of course, maybe that list pointer got initialized but then
> overwritten by NULL for some other reason.
Just as a cross-check, this (incomplete, but au0828, cx231xx and em28xx
aren't needed/ loaded on my system) crude revert avoids the problem for
me on v4.6-rc6-113-g83858a7.
--- a/drivers/media/usb/dvb-usb/dvb-usb-dvb.c
+++ b/drivers/media/usb/dvb-usb/dvb-usb-dvb.c
@@ -107,7 +107,15 @@ static int dvb_usb_media_device_init(str
if (!mdev)
return -ENOMEM;
- media_device_usb_init(mdev, udev, d->desc->name);
+ mdev->dev = &udev->dev;
+ strlcpy(mdev->model, d->desc->name, sizeof(mdev->model));
+ if (udev->serial)
+ strlcpy(mdev->serial, udev->serial, sizeof(mdev->serial));
+ strcpy(mdev->bus_info, udev->devpath);
+ mdev->hw_revision = le16_to_cpu(udev->descriptor.bcdDevice);
+ mdev->driver_version = LINUX_VERSION_CODE;
+
+ media_device_init(mdev);
dvb_register_media_controller(&adap->dvb_adap, mdev);
--- a/drivers/media/usb/dvb-usb-v2/dvb_usb_core.c
+++ b/drivers/media/usb/dvb-usb-v2/dvb_usb_core.c
@@ -412,7 +412,15 @@ static int dvb_usbv2_media_device_init(s
if (!mdev)
return -ENOMEM;
- media_device_usb_init(mdev, udev, d->name);
+ mdev->dev = &udev->dev;
+ strlcpy(mdev->model, d->name, sizeof(mdev->model));
+ if (udev->serial)
+ strlcpy(mdev->serial, udev->serial, sizeof(mdev->serial));
+ strcpy(mdev->bus_info, udev->devpath);
+ mdev->hw_revision = le16_to_cpu(udev->descriptor.bcdDevice);
+ mdev->driver_version = LINUX_VERSION_CODE;
+
+ media_device_init(mdev);
dvb_register_media_controller(&adap->dvb_adap, mdev);
While testing this, I also noticed that not just the dvb_usb based
dvb_usb_dw2102 is affected, but that also the dvb_usb_v2 based rtl2832
triggers this Oops on its own (given that just reverting
drivers/media/usb/dvb-usb/dvb-usb-dvb.c wasn't enough).
Regards
Stefan Lippers-Hollmann
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [GIT PULL for v4.6-rc1] media updates
2016-05-04 4:39 ` Stefan Lippers-Hollmann
@ 2016-05-04 17:58 ` Linus Torvalds
2016-05-04 19:28 ` Stefan Lippers-Hollmann
0 siblings, 1 reply; 12+ messages in thread
From: Linus Torvalds @ 2016-05-04 17:58 UTC (permalink / raw)
To: Stefan Lippers-Hollmann
Cc: Mauro Carvalho Chehab, Linux Media Mailing List,
Linux Kernel Mailing List
On Tue, May 3, 2016 at 9:39 PM, Stefan Lippers-Hollmann <s.l-h@gmx.de> wrote:
>
> Just as a cross-check, this (incomplete, but au0828, cx231xx and em28xx
> aren't needed/ loaded on my system) crude revert avoids the problem for
> me on v4.6-rc6-113-g83858a7.
Hmm.
That just open-codes __media_device_usb_init().
The main difference seems to be that __media_device_usb_init() ends up
having that
#ifdef CONFIG_USB
#endif
around it.
I think that is bogus.
What happens if you replace that #ifdef CONFIG_USB in
__media_device_usb_init() with
#if CONFIG_USB || (MODULE && CONFIG_USB_MODULE)
or alternatively just build with USB compiled in?
Mauro: that __media_device_usb_init() thing does seem to be completely
buggered for the modular USB case.
Linus
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [GIT PULL for v4.6-rc1] media updates
2016-05-04 17:58 ` Linus Torvalds
@ 2016-05-04 19:28 ` Stefan Lippers-Hollmann
2016-05-04 20:49 ` Linus Torvalds
0 siblings, 1 reply; 12+ messages in thread
From: Stefan Lippers-Hollmann @ 2016-05-04 19:28 UTC (permalink / raw)
To: Linus Torvalds
Cc: Mauro Carvalho Chehab, Linux Media Mailing List,
Linux Kernel Mailing List
[-- Attachment #1: Type: text/plain, Size: 1475 bytes --]
Hi
On 2016-05-04, Linus Torvalds wrote:
> On Tue, May 3, 2016 at 9:39 PM, Stefan Lippers-Hollmann <s.l-h@gmx.de> wrote:
> >
> > Just as a cross-check, this (incomplete, but au0828, cx231xx and em28xx
> > aren't needed/ loaded on my system) crude revert avoids the problem for
> > me on v4.6-rc6-113-g83858a7.
>
> Hmm.
>
> That just open-codes __media_device_usb_init().
>
> The main difference seems to be that __media_device_usb_init() ends up
> having that
>
> #ifdef CONFIG_USB
> #endif
>
> around it.
>
> I think that is bogus.
>
> What happens if you replace that #ifdef CONFIG_USB in
> __media_device_usb_init() with
>
> #if CONFIG_USB || (MODULE && CONFIG_USB_MODULE)
[...]
that throws
drivers/media/media-device.c: In function '__media_device_usb_init':
drivers/media/media-device.c:878:5: warning: "CONFIG_USB" is not defined [-Wundef]
#if CONFIG_USB || (MODULE && CONFIG_USB_MODULE)
^
however, taking arch/arm/mach-omap1/include/mach/usb.h as example,
changing it to
--- a/drivers/media/media-device.c
+++ b/drivers/media/media-device.c
@@ -875,7 +875,7 @@ void __media_device_usb_init(struct medi
const char *board_name,
const char *driver_name)
{
-#ifdef CONFIG_USB
+#if defined(CONFIG_USB) || defined(CONFIG_USB_MODULE)
mdev->dev = &udev->dev;
if (driver_name)
indeed fixes the problem for me
Thanks a lot!
Regards
Stefan Lippers-Hollmann
[-- Attachment #2: Digitale Signatur von OpenPGP --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [GIT PULL for v4.6-rc1] media updates
2016-05-04 19:28 ` Stefan Lippers-Hollmann
@ 2016-05-04 20:49 ` Linus Torvalds
2016-05-04 21:45 ` Stefan Lippers-Hollmann
2016-05-04 21:51 ` Mauro Carvalho Chehab
0 siblings, 2 replies; 12+ messages in thread
From: Linus Torvalds @ 2016-05-04 20:49 UTC (permalink / raw)
To: Stefan Lippers-Hollmann
Cc: Mauro Carvalho Chehab, Linux Media Mailing List,
Linux Kernel Mailing List
On Wed, May 4, 2016 at 12:28 PM, Stefan Lippers-Hollmann <s.l-h@gmx.de> wrote:
>
> --- a/drivers/media/media-device.c
> +++ b/drivers/media/media-device.c
> @@ -875,7 +875,7 @@ void __media_device_usb_init(struct medi
> const char *board_name,
> const char *driver_name)
> {
> -#ifdef CONFIG_USB
> +#if defined(CONFIG_USB) || defined(CONFIG_USB_MODULE)
Ok, that should be fine. Can you verify that it builds and works even
if USB isn't compiled in, but the media core code is?
IOW, can you test the
CONFIG_USB=m
CONFIG_MEDIA_CONTROLLER=y
CONFIG_MEDIA_SUPPORT=y
case? Judging by your oops stack trace, I think you currently have
MEDIA_SUPPORT=m.
Also, I do wonder if we should move that #if to _outside_ the
function. Because inside the function, things will compile but
silently not work (like you found), if it is ever mis-used. Outside
that function, you'll get link-errors if you try to misuse that
function.
Linus
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [GIT PULL for v4.6-rc1] media updates
2016-05-04 20:49 ` Linus Torvalds
@ 2016-05-04 21:45 ` Stefan Lippers-Hollmann
2016-05-04 21:51 ` Mauro Carvalho Chehab
1 sibling, 0 replies; 12+ messages in thread
From: Stefan Lippers-Hollmann @ 2016-05-04 21:45 UTC (permalink / raw)
To: Linus Torvalds
Cc: Mauro Carvalho Chehab, Linux Media Mailing List,
Linux Kernel Mailing List
Hi
On 2016-05-04, Linus Torvalds wrote:
> On Wed, May 4, 2016 at 12:28 PM, Stefan Lippers-Hollmann <s.l-h@gmx.de> wrote:
> >
> > --- a/drivers/media/media-device.c
> > +++ b/drivers/media/media-device.c
> > @@ -875,7 +875,7 @@ void __media_device_usb_init(struct medi
> > const char *board_name,
> > const char *driver_name)
> > {
> > -#ifdef CONFIG_USB
> > +#if defined(CONFIG_USB) || defined(CONFIG_USB_MODULE)
>
> Ok, that should be fine. Can you verify that it builds and works even
> if USB isn't compiled in, but the media core code is?
>
> IOW, can you test the
>
> CONFIG_USB=m
> CONFIG_MEDIA_CONTROLLER=y
> CONFIG_MEDIA_SUPPORT=y
Builds (without warnings in drivers/media/media-device.*) and works fine
as well.
> case? Judging by your oops stack trace, I think you currently have
> MEDIA_SUPPORT=m.
My usual configuration (which, as mentioned in the previous mail, now
builds and works as well) is:
CONFIG_MEDIA_SUPPORT=m
CONFIG_MEDIA_CONTROLLER=y
CONFIG_USB=m
> Also, I do wonder if we should move that #if to _outside_ the
> function. Because inside the function, things will compile but
> silently not work (like you found), if it is ever mis-used. Outside
> that function, you'll get link-errors if you try to misuse that
> function.
That would probably be the best approach.
Regards
Stefan Lippers-Hollmann
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [GIT PULL for v4.6-rc1] media updates
2016-05-04 20:49 ` Linus Torvalds
2016-05-04 21:45 ` Stefan Lippers-Hollmann
@ 2016-05-04 21:51 ` Mauro Carvalho Chehab
2016-05-04 23:00 ` Stefan Lippers-Hollmann
1 sibling, 1 reply; 12+ messages in thread
From: Mauro Carvalho Chehab @ 2016-05-04 21:51 UTC (permalink / raw)
To: Linus Torvalds, Stefan Lippers-Hollmann
Cc: Linux Media Mailing List, Linux Kernel Mailing List
Em Wed, 4 May 2016 13:49:52 -0700
Linus Torvalds <torvalds@linux-foundation.org> escreveu:
> On Wed, May 4, 2016 at 12:28 PM, Stefan Lippers-Hollmann <s.l-h@gmx.de> wrote:
> >
> > --- a/drivers/media/media-device.c
> > +++ b/drivers/media/media-device.c
> > @@ -875,7 +875,7 @@ void __media_device_usb_init(struct medi
> > const char *board_name,
> > const char *driver_name)
> > {
> > -#ifdef CONFIG_USB
> > +#if defined(CONFIG_USB) || defined(CONFIG_USB_MODULE)
>
> Ok, that should be fine. Can you verify that it builds and works even
> if USB isn't compiled in, but the media core code is?
>
> IOW, can you test the
>
> CONFIG_USB=m
> CONFIG_MEDIA_CONTROLLER=y
> CONFIG_MEDIA_SUPPORT=y
>
> case? Judging by your oops stack trace, I think you currently have
> MEDIA_SUPPORT=m.
I think we could use, instead:
#if IS_REACHABLE(CONFIG_USB)
This macro is defined as:
/*
* IS_REACHABLE(CONFIG_FOO) evaluates to 1 if the currently compiled
* code can call a function defined in code compiled based on CONFIG_FOO.
* This is similar to IS_ENABLED(), but returns false when invoked from
* built-in code when CONFIG_FOO is set to 'm'.
*/
#define IS_REACHABLE(option) (config_enabled(option) || \
(config_enabled(option##_MODULE) && config_enabled(MODULE)))
And we use it already on other places where we have dependencies
like that.
Btw, there are also some helper function there to initialize
for PCI devices.
> Also, I do wonder if we should move that #if to _outside_ the
> function. Because inside the function, things will compile but
> silently not work (like you found), if it is ever mis-used. Outside
> that function, you'll get link-errors if you try to misuse that
> function.
Yeah, that makes sense. This function is a helper function that
it is used only when CONFIG_USB.
The following (untested) patch should do the work.
Stefan,
Could you please test the enclosed patch?
Regards,
Mauro
[media] media-device: fix builds when USB or PCI is compiled as module
Just checking ifdef CONFIG_USB is not enough, if the USB is compiled
as module. The same applies to PCI.
Compile-tested only.
So, change the logic to use, instead, IS_REACHABLE.
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
diff --git a/drivers/media/media-device.c b/drivers/media/media-device.c
index b84825715f98..8c1f80ff33e3 100644
--- a/drivers/media/media-device.c
+++ b/drivers/media/media-device.c
@@ -842,11 +842,11 @@ struct media_device *media_device_find_devres(struct device *dev)
}
EXPORT_SYMBOL_GPL(media_device_find_devres);
+#if IS_REACHABLE(CONFIG_PCI)
void media_device_pci_init(struct media_device *mdev,
struct pci_dev *pci_dev,
const char *name)
{
-#ifdef CONFIG_PCI
mdev->dev = &pci_dev->dev;
if (name)
@@ -862,16 +862,16 @@ void media_device_pci_init(struct media_device *mdev,
mdev->driver_version = LINUX_VERSION_CODE;
media_device_init(mdev);
-#endif
}
EXPORT_SYMBOL_GPL(media_device_pci_init);
+#endif
+#if IS_REACHABLE(CONFIG_USB)
void __media_device_usb_init(struct media_device *mdev,
struct usb_device *udev,
const char *board_name,
const char *driver_name)
{
-#ifdef CONFIG_USB
mdev->dev = &udev->dev;
if (driver_name)
@@ -891,9 +891,9 @@ void __media_device_usb_init(struct media_device *mdev,
mdev->driver_version = LINUX_VERSION_CODE;
media_device_init(mdev);
-#endif
}
EXPORT_SYMBOL_GPL(__media_device_usb_init);
+#endif
#endif /* CONFIG_MEDIA_CONTROLLER */
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [GIT PULL for v4.6-rc1] media updates
2016-05-04 21:51 ` Mauro Carvalho Chehab
@ 2016-05-04 23:00 ` Stefan Lippers-Hollmann
2016-05-05 11:07 ` Mauro Carvalho Chehab
0 siblings, 1 reply; 12+ messages in thread
From: Stefan Lippers-Hollmann @ 2016-05-04 23:00 UTC (permalink / raw)
To: Mauro Carvalho Chehab
Cc: Linus Torvalds, Linux Media Mailing List, Linux Kernel Mailing List
[-- Attachment #1.1: Type: text/plain, Size: 3018 bytes --]
Hi
On 2016-05-04, Mauro Carvalho Chehab wrote:
> Em Wed, 4 May 2016 13:49:52 -0700
> Linus Torvalds <torvalds@linux-foundation.org> escreveu:
> > On Wed, May 4, 2016 at 12:28 PM, Stefan Lippers-Hollmann <s.l-h@gmx.de> wrote:
[...]
> Stefan,
>
> Could you please test the enclosed patch?
>
> Regards,
> Mauro
>
> [media] media-device: fix builds when USB or PCI is compiled as module
>
> Just checking ifdef CONFIG_USB is not enough, if the USB is compiled
> as module. The same applies to PCI.
>
> Compile-tested only.
>
> So, change the logic to use, instead, IS_REACHABLE.
>
> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
>
> diff --git a/drivers/media/media-device.c b/drivers/media/media-device.c
> index b84825715f98..8c1f80ff33e3 100644
> --- a/drivers/media/media-device.c
> +++ b/drivers/media/media-device.c
> @@ -842,11 +842,11 @@ struct media_device *media_device_find_devres(struct device *dev)
> }
> EXPORT_SYMBOL_GPL(media_device_find_devres);
>
> +#if IS_REACHABLE(CONFIG_PCI)
> void media_device_pci_init(struct media_device *mdev,
> struct pci_dev *pci_dev,
> const char *name)
> {
> -#ifdef CONFIG_PCI
> mdev->dev = &pci_dev->dev;
>
> if (name)
> @@ -862,16 +862,16 @@ void media_device_pci_init(struct media_device *mdev,
> mdev->driver_version = LINUX_VERSION_CODE;
>
> media_device_init(mdev);
> -#endif
> }
> EXPORT_SYMBOL_GPL(media_device_pci_init);
> +#endif
>
> +#if IS_REACHABLE(CONFIG_USB)
> void __media_device_usb_init(struct media_device *mdev,
> struct usb_device *udev,
> const char *board_name,
> const char *driver_name)
> {
> -#ifdef CONFIG_USB
> mdev->dev = &udev->dev;
>
> if (driver_name)
> @@ -891,9 +891,9 @@ void __media_device_usb_init(struct media_device *mdev,
> mdev->driver_version = LINUX_VERSION_CODE;
>
> media_device_init(mdev);
> -#endif
> }
> EXPORT_SYMBOL_GPL(__media_device_usb_init);
> +#endif
>
>
> #endif /* CONFIG_MEDIA_CONTROLLER */
>
>
This fails to build for me with:
[...]
Setup is 16348 bytes (padded to 16384 bytes).
System is 3319 kB
CRC a9178215
Kernel: arch/x86/boot/bzImage is ready (#1)
ERROR: "__media_device_usb_init" [drivers/media/usb/siano/smsusb.ko] undefined!
ERROR: "__media_device_usb_init" [drivers/media/usb/em28xx/em28xx.ko] undefined!
ERROR: "__media_device_usb_init" [drivers/media/usb/dvb-usb/dvb-usb.ko] undefined!
ERROR: "__media_device_usb_init" [drivers/media/usb/dvb-usb-v2/dvb_usb_v2.ko] undefined!
ERROR: "__media_device_usb_init" [drivers/media/usb/cx231xx/cx231xx.ko] undefined!
ERROR: "__media_device_usb_init" [drivers/media/usb/au0828/au0828.ko] undefined!
scripts/Makefile.modpost:91: recipe for target '__modpost' failed
make[6]: *** [__modpost] Error 1
Makefile:1147: recipe for target 'modules' failed
[...]
I've attached my gzipped kernel configs for amd64 and i386.
Regards
Stefan Lippers-Hollmann
[-- Attachment #1.2: config-686.gz --]
[-- Type: application/gzip, Size: 38401 bytes --]
[-- Attachment #1.3: config-amd64.gz --]
[-- Type: application/gzip, Size: 38947 bytes --]
[-- Attachment #2: Digitale Signatur von OpenPGP --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [GIT PULL for v4.6-rc1] media updates
2016-05-04 23:00 ` Stefan Lippers-Hollmann
@ 2016-05-05 11:07 ` Mauro Carvalho Chehab
2016-05-06 0:00 ` Stefan Lippers-Hollmann
0 siblings, 1 reply; 12+ messages in thread
From: Mauro Carvalho Chehab @ 2016-05-05 11:07 UTC (permalink / raw)
To: Stefan Lippers-Hollmann
Cc: Linus Torvalds, Linux Media Mailing List, Linux Kernel Mailing List
[-- Attachment #1: Type: text/plain, Size: 5577 bytes --]
Em Thu, 5 May 2016 01:00:51 +0200
Stefan Lippers-Hollmann <s.l-h@gmx.de> escreveu:
> Hi
>
> On 2016-05-04, Mauro Carvalho Chehab wrote:
> > Em Wed, 4 May 2016 13:49:52 -0700
> > Linus Torvalds <torvalds@linux-foundation.org> escreveu:
> > > On Wed, May 4, 2016 at 12:28 PM, Stefan Lippers-Hollmann <s.l-h@gmx.de> wrote:
> [...]
> > Stefan,
> >
> > Could you please test the enclosed patch?
> >
> > Regards,
> > Mauro
> >
> > [media] media-device: fix builds when USB or PCI is compiled as module
> >
> > Just checking ifdef CONFIG_USB is not enough, if the USB is compiled
> > as module. The same applies to PCI.
> >
> > Compile-tested only.
> >
> > So, change the logic to use, instead, IS_REACHABLE.
> >
> > Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
> >
> > diff --git a/drivers/media/media-device.c b/drivers/media/media-device.c
> > index b84825715f98..8c1f80ff33e3 100644
> > --- a/drivers/media/media-device.c
> > +++ b/drivers/media/media-device.c
> > @@ -842,11 +842,11 @@ struct media_device *media_device_find_devres(struct device *dev)
> > }
> > EXPORT_SYMBOL_GPL(media_device_find_devres);
> >
> > +#if IS_REACHABLE(CONFIG_PCI)
> > void media_device_pci_init(struct media_device *mdev,
> > struct pci_dev *pci_dev,
> > const char *name)
> > {
> > -#ifdef CONFIG_PCI
> > mdev->dev = &pci_dev->dev;
> >
> > if (name)
> > @@ -862,16 +862,16 @@ void media_device_pci_init(struct media_device *mdev,
> > mdev->driver_version = LINUX_VERSION_CODE;
> >
> > media_device_init(mdev);
> > -#endif
> > }
> > EXPORT_SYMBOL_GPL(media_device_pci_init);
> > +#endif
> >
> > +#if IS_REACHABLE(CONFIG_USB)
> > void __media_device_usb_init(struct media_device *mdev,
> > struct usb_device *udev,
> > const char *board_name,
> > const char *driver_name)
> > {
> > -#ifdef CONFIG_USB
> > mdev->dev = &udev->dev;
> >
> > if (driver_name)
> > @@ -891,9 +891,9 @@ void __media_device_usb_init(struct media_device *mdev,
> > mdev->driver_version = LINUX_VERSION_CODE;
> >
> > media_device_init(mdev);
> > -#endif
> > }
> > EXPORT_SYMBOL_GPL(__media_device_usb_init);
> > +#endif
> >
> >
> > #endif /* CONFIG_MEDIA_CONTROLLER */
> >
> >
>
> This fails to build for me with:
>
> [...]
> Setup is 16348 bytes (padded to 16384 bytes).
> System is 3319 kB
> CRC a9178215
> Kernel: arch/x86/boot/bzImage is ready (#1)
> ERROR: "__media_device_usb_init" [drivers/media/usb/siano/smsusb.ko] undefined!
> ERROR: "__media_device_usb_init" [drivers/media/usb/em28xx/em28xx.ko] undefined!
> ERROR: "__media_device_usb_init" [drivers/media/usb/dvb-usb/dvb-usb.ko] undefined!
> ERROR: "__media_device_usb_init" [drivers/media/usb/dvb-usb-v2/dvb_usb_v2.ko] undefined!
> ERROR: "__media_device_usb_init" [drivers/media/usb/cx231xx/cx231xx.ko] undefined!
> ERROR: "__media_device_usb_init" [drivers/media/usb/au0828/au0828.ko] undefined!
> scripts/Makefile.modpost:91: recipe for target '__modpost' failed
> make[6]: *** [__modpost] Error 1
> Makefile:1147: recipe for target 'modules' failed
> [...]
>
> I've attached my gzipped kernel configs for amd64 and i386.
>
> Regards
> Stefan Lippers-Hollmann
Oh, in this case, it should be using IS_ENABLED() macro instead.
The following patch should fix it. I tested here with some different
setups, as described in the patch, and with your .i686 .config.
Please double-check and ack if it is ok for you.
Regards,
Mauro
[PATCH v2] [media] media-device: fix builds when USB or PCI is compiled
as module
Just checking ifdef CONFIG_USB is not enough, if the USB is compiled
as module. The same applies to PCI.
Tested with the following .config alternatives:
CONFIG_USB=m
CONFIG_MEDIA_CONTROLLER=y
CONFIG_MEDIA_SUPPORT=m
CONFIG_VIDEO_AU0828=m
CONFIG_USB=m
CONFIG_MEDIA_CONTROLLER=y
CONFIG_MEDIA_SUPPORT=y
CONFIG_VIDEO_AU0828=m
CONFIG_USB=y
CONFIG_MEDIA_CONTROLLER=y
CONFIG_MEDIA_SUPPORT=y
CONFIG_VIDEO_AU0828=m
CONFIG_USB=y
CONFIG_MEDIA_CONTROLLER=y
CONFIG_MEDIA_SUPPORT=y
CONFIG_VIDEO_AU0828=y
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
diff --git a/drivers/media/media-device.c b/drivers/media/media-device.c
index 6e43c95629ea..3cfd7af8c5ca 100644
--- a/drivers/media/media-device.c
+++ b/drivers/media/media-device.c
@@ -846,11 +846,11 @@ struct media_device *media_device_find_devres(struct device *dev)
}
EXPORT_SYMBOL_GPL(media_device_find_devres);
+#if IS_ENABLED(CONFIG_PCI)
void media_device_pci_init(struct media_device *mdev,
struct pci_dev *pci_dev,
const char *name)
{
-#ifdef CONFIG_PCI
mdev->dev = &pci_dev->dev;
if (name)
@@ -866,16 +866,16 @@ void media_device_pci_init(struct media_device *mdev,
mdev->driver_version = LINUX_VERSION_CODE;
media_device_init(mdev);
-#endif
}
EXPORT_SYMBOL_GPL(media_device_pci_init);
+#endif
+#if IS_ENABLED(CONFIG_USB)
void __media_device_usb_init(struct media_device *mdev,
struct usb_device *udev,
const char *board_name,
const char *driver_name)
{
-#ifdef CONFIG_USB
mdev->dev = &udev->dev;
if (driver_name)
@@ -895,9 +895,9 @@ void __media_device_usb_init(struct media_device *mdev,
mdev->driver_version = LINUX_VERSION_CODE;
media_device_init(mdev);
-#endif
}
EXPORT_SYMBOL_GPL(__media_device_usb_init);
+#endif
#endif /* CONFIG_MEDIA_CONTROLLER */
Thanks,
Mauro
[-- Attachment #2: Assinatura digital OpenPGP --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [GIT PULL for v4.6-rc1] media updates
2016-05-05 11:07 ` Mauro Carvalho Chehab
@ 2016-05-06 0:00 ` Stefan Lippers-Hollmann
0 siblings, 0 replies; 12+ messages in thread
From: Stefan Lippers-Hollmann @ 2016-05-06 0:00 UTC (permalink / raw)
To: Mauro Carvalho Chehab
Cc: Linus Torvalds, Linux Media Mailing List, Linux Kernel Mailing List
[-- Attachment #1: Type: text/plain, Size: 968 bytes --]
Hi
On 2016-05-05, Mauro Carvalho Chehab wrote:
> Em Thu, 5 May 2016 01:00:51 +0200
> Stefan Lippers-Hollmann <s.l-h@gmx.de> escreveu:
[...]
> Oh, in this case, it should be using IS_ENABLED() macro instead.
> The following patch should fix it. I tested here with some different
> setups, as described in the patch, and with your .i686 .config.
>
> Please double-check and ack if it is ok for you.
>
> Regards,
> Mauro
>
>
> [PATCH v2] [media] media-device: fix builds when USB or PCI is compiled
> as module
>
> Just checking ifdef CONFIG_USB is not enough, if the USB is compiled
> as module. The same applies to PCI.
[...]
This patch works for me, both on amd64 and i386, tested with
dvb_usb_dw2102, dvb_usb_af9015 and dvb_usb_rtl28xxu.
> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
Feel free to add
Tested-by: Stefan Lippers-Hollmann <s.l-h@gmx.de>
Thanks a lot.
Regards
Stefan Lippers-Hollmann
[-- Attachment #2: Digitale Signatur von OpenPGP --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2016-05-06 0:01 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-03-15 11:05 [GIT PULL for v4.6-rc1] media updates Mauro Carvalho Chehab
2016-05-03 21:38 ` Stefan Lippers-Hollmann
2016-05-03 21:53 ` Linus Torvalds
2016-05-04 4:39 ` Stefan Lippers-Hollmann
2016-05-04 17:58 ` Linus Torvalds
2016-05-04 19:28 ` Stefan Lippers-Hollmann
2016-05-04 20:49 ` Linus Torvalds
2016-05-04 21:45 ` Stefan Lippers-Hollmann
2016-05-04 21:51 ` Mauro Carvalho Chehab
2016-05-04 23:00 ` Stefan Lippers-Hollmann
2016-05-05 11:07 ` Mauro Carvalho Chehab
2016-05-06 0:00 ` Stefan Lippers-Hollmann
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).