All of lore.kernel.org
 help / color / mirror / Atom feed
* [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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.