Skip to contentSkip to conversation

media updates for v3.5

GIT PULL Superseded Mauro Carvalho Chehab 10 participants 36 messages May 24, 2012 – May 28, 2012

Subsystems (2)

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore
#0 lore raw

Hi Linus,

Please pull from:
git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media v4l_for_linus

For a series of patches for 3.5, including:
- some V4L2 API updates needed by embedded devices;
- DVB API extensions for ATSC-MH delivery system, used in US for mobile TV;
- new tuners for fc0011/0012/0013 and tua9001;
- a new dvb driver for af9033/9035;
- a new ATSC-MH frontend (lg2160);
- new remote controller keymaps;
- Removal of a few legacy webcam driver that got replaced by gspca on several kernel versions ago;
- a new driver for Exynos 4/5 webcams(s5pp fimc-lite);
- a new webcam sensor driver (smiapp);
- a new video input driver for embedded (sta2x1xx);
- several improvements, fixes, cleanups, etc inside the drivers.

Regards,
Mauro

-

Latest commit at the branch:
71006fb22b0f5a2045605b3887ee99a0e9adafe4 [media] saa7134-cards: Remove a PCI entry added by mistake The following changes since commit 76e10d158efb6d4516018846f60c2ab5501900bc:

Linux 3.4 (2012-05-20 15:29:13 -0700)

are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media v4l_for_linus

Alan McIvor (1):
[media] Default bt878 contrast value

Alexey Khoroshilov (1):
[media] dib9000: get rid of Dib*Lock macros

Andy Shevchenko (1):
[media] as3645a: move relevant code under __devinit/__devexit

Anssi Hannula (4):
[media] ati_remote: allow specifying a default keymap selector function [media] ati_remote: add support for Medion X10 Digitainer remote [media] ati_remote: add keymap for Medion X10 OR2x remotes [media] ati_remote: add regular up/down buttons to Medion Digitainer keymap

Antonio Ospite (3):
[media] gspca - ov534: Add Saturation control [media] Input: move drivers/input/fixp-arith.h to include/linux [media] gspca - ov534: Add Hue control

Antti Palosaari (33):
[media] Infineon TUA 9001 silicon tuner driver
[media] Afatech AF9033 DVB-T demodulator driver [media] Afatech AF9035 DVB USB driver
[media] af9035: enhancement for unknown tuner ID handling [media] af9035: reimplement firmware downloader [media] af9035: add missing error check
[media] af9033: correct debug print
[media] af9033: implement .read_snr()
[media] af9035: add log writing if unsupported Xtal freq is given [media] af9035: fix and enhance I2C adapter
[media] af9035: initial support for IT9135 chip [media] af9033: do some minor changes for .get_frontend() [media] af9035: minor changes for af9035_fc0011_tuner_callback() [media] af9035: reorganise USB ID and device list [media] af9035: disable frontend0 I2C-gate control [media] af9035: various small changes for af9035_ctrl_msg() [media] af9035: remove unused struct
[media] af9035: move device configuration to the state [media] af9035: remove one config parameter
[media] af9035: add few new reference design USB IDs [media] get_dvb_firmware: add dvb-demod-drxk-pctv.fw [media] rtl28xxu: dynamic USB ID support
[media] af9015: various small changes and clean-ups [media] drxk: fix GPIOs
[media] em28xx: disable LNA - PCTV QuatroStick nano (520e) [media] rtl2830: implement .read_snr()
[media] rtl2830: implement .read_ber()
[media] rtl2830: implement .read_signal_strength() [media] rtl2830: implement .get_frontend()
[media] rtl2830: prevent hw access when sleeping [media] rtl28xxu: add small sleep for rtl2830 demod attach [media] zl10353: change .read_snr() to report SNR as a 0.1 dB [media] em28xx: simple comment fix

Arnd Bergmann (5):
[media] video/omap24xxcam: use __iomem annotations [media] dvb/drxd: stub out drxd_attach when not built [media] media/rc: IR_SONY_DECODER depends on BITREVERSE [media] media/video: add I2C dependencies
[media] drivers/media: add missing __devexit_p() annotations

Ben Hutchings (1):
[media] rc: Fix invalid free_region and/or free_irq on probe failure

Bhupesh Sharma (1):
[media] usb: gadget/uvc: Remove non-required locking from 'uvc_queue_next_buffer' routine

Dan Carpenter (6):
[media] mxl111sf: remove an unused variable
[media] uvcvideo: remove unneeded access_ok() check [media] pluto2: remove some dead code
[media] saa7164: saa7164_vbi_stop_port() returns linux error codes [media] ngene: remove an unneeded condition
[media] gspca: passing wrong length parameter to reg_w()

Daniel Drake (1):
[media] via-camera: specify XO-1.5 camera clock speed

Ezequiel Garcia (2):
[media] em28xx: Make card_setup() and pre_card_setup() static [media] em28xx: Remove unused list_head struct for queued buffers

Ezequiel García (19):
[media] em28xx: Remove redundant dev->ctl_input set
[media] em28xx: Export em28xx_[read,write]_reg functions as SYMBOL_GPL [media] em28xx: Move ir/rc related initialization to em28xx_ir_init() [media] em28xx: Move em28xx_register_i2c_ir() to em28xx-input.c [media] em28xx: Change scope of em28xx-input local functions to static [media] em28xx: Make em28xx-input.c a separate module
[media] em28xx: Remove unused field from em28xx_buffer struct [media] em28xx: Remove unused enum em28xx_io_method
[media] em28xx: Remove unused wait_queue's
[media] staging: easycap: Split device struct alloc and retrieval code [media] staging: easycap: Split buffer and video urb allocation [media] staging: easycap: Push bInterfaceNumber saving to config_easycap() [media] staging: easycap: Initialize 'ntsc' parameter before usage [media] staging: easycap: Push video registration to easycap_register_video() [media] staging: easycap: Split audio buffer and urb allocation [media] staging: easycap: Clean comment style in easycap_usb_disconnect() [media] staging: easycap: Clean comment style in easycap_delete() [media] staging: easycap: Split easycap_delete() into several pieces [media] em28xx: Fix memory leak on driver defered resource release

Federico Vaga (3):
[media] adv7180: add support to user controls [media] videobuf-dma-contig: add cache support [media] STA2X11 VIP: new V4L2 driver

Gianluca Gennari (12):
[media] af9035: fix warning
[media] af9035: add USB id for 07ca:a867
[media] af9035: add support for the tda18218 tuner
[media] af9035: use module_usb_driver macro
[media] af9033: implement get_frontend
[media] lirc: delete unused init/exit function prototypes
[media] em28xx-dvb: stop URBs when stopping the streaming
[media] em28xx: clean-up several unused parametrs in struct em28xx_usb_isoc_ctl [media] dib7000p: remove duplicate code and comment
[media] dib0700: add new USB PID for the Elgato EyeTV DTT stick [media] em28xx-dvb: enable LNA for cxd2820r in DVB-T mode
[media] cxd2820r: tweak search algorithm behavior

Guennadi Liakhovetski (10):
[media] V4L: fix a compiler warning
[media] mt9m032: fix two dead-locks
[media] mt9m032: fix compilation breakage
[media] mt9m032: use the available subdev pointer, don't re-calculate it [media] V4L: marvell-ccic: (cosmetic) remove redundant variable assignment [media] V4L: soc-camera: (cosmetic) use a more explicit name for a host handler [media] V4L: mem2mem: fix alignment in mem2mem-testdev
[media] V4L: mx2-camera: avoid overflowing 32-bits
[media] V4L: soc-camera: switch to using the existing .enum_framesizes() [media] V4L: sh_mobile_ceu_camera: don't fail TRY_FMT

H Hartley Sweeten (2):
[media] media: videobuf2-dma-contig: include header for exported symbols [media] media: videobuf2-dma-contig: quiet sparse noise about plain integer as NULL pointer

Hans Verkuil (86):
[media] ivtv: only start streaming in poll() if polling for input [media] videobuf2: only start streaming in poll() if so requested by the poll mask [media] videobuf: only start streaming in poll() if so requested by the poll mask [media] videobuf2-core: also test for pending events
[media] vivi: let vb2_poll handle events
[media] radio-rtrack2: add missing slab.h
[media] videodev2.h: Fix VIDIOC_QUERYMENU ioctl regression
[media] V4L: fix incorrect refcounting
[media] V4L2: drivers implementing vidioc_default should also return -ENOTTY [media] v4l2-ctrls.c: zero min/max/step/def values for 64 bit integers [media] vivi: fix duplicate line
[media] V4L2 Spec: fix typo
[media] dsbr100: clean up and update to the latest v4l2 framework [media] ivtv: set max/step to 0 for PTS and FRAME controls
[media] radio-keene: support suspend/resume
[media] radio-isa: fix memory leak
[media] radio-mr800: cleanup and have it comply to the V4L2 API [media] radio-mr800: add support for stereo and signal detection [media] radio-mr800: add hardware seek support
[media] cpia2: major overhaul to get it in a working state again [media] pvrusb2: convert to video_ioctl2
[media] v4l2-dev: make it possible to skip locking for selected ioctls [media] v4l2-dev/ioctl: determine the valid ioctls upfront
[media] tea575x-tuner: mark VIDIOC_S_HW_FREQ_SEEK as an invalid ioctl [media] v4l2-ioctl: handle priority handling based on a table lookup [media] v4l2-dev: add flag to have the core lock all file operations [media] v4l2-framework.txt: document v4l2_dont_use_cmd
[media] gspca: Allow subdrivers to use the control framework
[media] gspca: Use video_drvdata(file) instead of file->private_data [media] gscpa: Use v4l2_fh and add G/S_PRIORITY support
[media] gspca: Add support for control events
[media] gspca: Fix querycap and incorrect return codes
[media] gspca: Fix locking issues related to suspend/resume
[media] gspca: Switch to V4L2 core locking, except for the buffer queuing ioctls [media] gspca_zc3xx: Convert to the control framework
[media] gcpca_sn9c20x: Convert to the control framework
[media] gspca_stv06xx: Convert to the control framework
[media] gspca_mars: Convert to the control framework
[media] pms: update to the latest V4L2 frameworks
[media] si470x: Clean up, introduce the control framework
[media] si470x: add control event support and more v4l2 compliancy fixes [media] radio-si470x-common.c: remove unnecessary kernel log spam [media] radio-si470x-usb: remove autosuspend, implement suspend/resume [media] dw2102: fix compile warnings
[media] cx231xx: fix compiler warnings
[media] ivtv/cx18: fix compiler warnings
[media] cx25821: fix compiler warnings
[media] v4l: fix compiler warnings
[media] v4l: fix compiler warnings
[media] v4l/dvb: fix compiler warnings
[media] v4l/dvb: fix compiler warnings
[media] mxb/saa7146: first round of cleanups
[media] mxb: fix initial audio + ntsc/secam support
[media] mxb: fix audio handling
[media] mxb: simplify a line that was too long
[media] tda9840: fix setting of the audio mode
[media] mxb: fix audio and standard handling
[media] saa7146: move overlay information from saa7146_fh into saa7146_vv [media] saa7146: move video_fmt from saa7146_fh to saa7146_vv [media] saa7146: move vbi fields from saa7146_fh to saa7146_vv [media] saa7146: remove the unneeded type field from saa7146_fh [media] saa7146: rename vbi/video_q to vbi/video_dmaq
[media] saa7146: support control events and priority handling [media] saa7146: fix querycap, vbi/video separation and g/s_register [media] fixes and add querystd support to mxb
[media] hexium-gemini: remove B&W control, fix input table
[media] hexium-orion: fix incorrect input table
[media] vivi: add more pixelformats
[media] vivi: add the alpha component control
[media] av7110: fix v4l2_compliance test issues
[media] v4l2-framework.txt: update the core lock documentation [media] v4l2-dev.h: add comment not to use V4L2_FL_LOCK_ALL_FOPS in new drivers [media] v4l2-dev: rename two functions
[media] v4l2-event: fix regression with initial event handling [media] videodev2.h: add enum/query/cap dv_timings ioctls
[media] V4L2 spec: document the new V4L2 DV timings ioctls
[media] v4l2 framework: add support for the new dv_timings ioctls [media] v4l2-dv-timings.h: definitions for CEA-861 and VESA DMT timings [media] tvp7002: add support for the new dv timings API
[media] Feature removal: remove invalid DV presets
[media] V4L2: Mark the DV Preset API as deprecated
[media] bw-qcam: update to latest frameworks
[media] c-qcam: convert to the latest frameworks
[media] arv: use latest frameworks
[media] w9966: convert to the latest frameworks
[media] gspca: the field 'frozen' is under CONFIG_PM

Hans de Goede (47):
[media] pwc: poll(): Check that the device has not beem claimed for streaming already
pwc: Add support for control events
[media] stk-webcam: Don't flip the image by default
[media] gspca/autogain_functions.h: Allow users to declare what they want [media] gspca_pac73xx: Remove comments from before the 7302 / 7311 separation [media] gspca_pac7311: Make sure exposure changes get applied immediately [media] gspca_pac7311: Adjust control scales to match registers [media] gspca_pac7311: Switch to new gspca control mechanism
[media] gspca_pac7311: Switch to coarse expo autogain algorithm [media] gspca_pac7311: Convert multi-line comments to standard kernel style [media] gspca_pac7311: Properly set the compression balance
[media] gspca_pac7302: Convert multi-line comments to standard kernel style [media] gspca_pac7302: Document some more registers
[media] gspca_pac7302: Improve the gain control
[media] media/video/et61x251: Remove this deprecated driver
[media] media/radio: use v4l2_ctrl_subscribe_event where possible [media] v4l2-event: Add v4l2_subscribed_event_ops
[media] v4l2-ctrls: Use v4l2_subscribed_event_ops
[media] uvcvideo: Fix a "ignoring return value of ‘__clear_user’" warning [media] uvcvideo: Refactor uvc_ctrl_get and query
[media] uvcvideo: Move __uvc_ctrl_get() up
[media] uvcvideo: Add support for control events
[media] uvcvideo: Properly report the inactive flag for inactive controls [media] uvcvideo: Send control change events for slave ctrls when the master changes [media] uvcvideo: Drop unused ctrl member from struct uvc_control_mapping [media] videobuf2: Fix a bug in fileio emulation error handling [media] pwc: Fix locking
[media] gscpa: Clear usb_err before calling sd methods from suspend/resume [media] gspca: Use req_events in poll
[media] gspca: Call sd_stop0 on disconnect
[media] gspca: Set gspca_dev->usb_err to 0 at the begin of gspca_stream_off [media] gspca: Add autogain functions for use with control framework drivers [media] gspca_gl860: Add a present check to sd_stop0
[media] gspca_zc3xx: Fix setting of jpeg quality while streaming [media] gspca_zc3xx: Fix JPEG quality setting code
[media] gspca_zc3xx: Always automatically adjust BRC as needed
[media] gspca_zc3xx: Disable the highest quality setting as it is not usable [media] gspca_sn9c20x: Whitespace fixes
[media] gscpa_stv06xx: Make sd_desc const
[media] gscpa: Move ctrl_handler to gspca_dev
[media] gscpa_pac207: use usb_err for error handling
[media] gspca_pac207: Convert to the control framework
[media] gscpa_pac207: Switch to coarse_grained_expo auto gain algorithm [media] gspca: Remove gspca_auto_gain_n_exposure function
[media] gspca_pac7311: Convert to the control framework
[media] gspca_pac7311: Set register page at start of init
[media] gspca_pac7311: Remove vflip control

Hans-Frieder Vogt (9):
[media] af9035: i2c read fix
[media] af9035: add Avermedia Volar HD (A867R) support [media] af9035: add remote control support
[media] af9033: implement ber and ucb functions [media] fc001x: common header file for FC0012 and FC0013 [media] fc001x: tuner driver for FC0012, version 0.5 [media] fc001x: tuner driver for FC0013
[media] fc0012 ver. 0.6: introduction of get_rf_strength function [media] fc0013 ver. 0.2: introduction of get_rf_strength function

Igor M. Liplianin (2):
[media] cx23885: TeVii s471 card support [media] m88rs2000: LNB voltage control implemented

Il Han (1):
[media] lmedm04: Initialize a variable before its usage

Ismael Luceno (2):
[media] au0828: Add USB ID used by many dongles [media] au0828: Move the Kconfig knob under V4L_USB_DRIVERS

Javier Martin (4):
[media] i.MX2: eMMa-PrP: Allow userptr IO mode [media] media: tvp5150: Fix mbus format
[media] i.MX27: visstrim_m10: Remove use of MX2_CAMERA_SWAP16 [media] media: mx2_camera: Fix mbus format handling

Jean-François Moine (7):

      [media] gspca - ov519: Add more information about probe problems
      [media] gspca - sn9c20x: Change the number of the sensor mt9vprb
      [media] gspca - sn9c20x: Add the sensor mt9vprb to the sensor ident table
      [media] gspca - sn9c20x: Define more tables as constant
      [media] gspca - sn9c20x: Set the i2c interface speed
      [media] gspca - sn9c20x: Don't do sensor update before the capture is started
      [media] gspca - sn9c20x: Change the exposure setting of Omnivision sensors

Jesper Juhl (3):
[media] staging/media/as102: Don't call release_firmware() on uninitialized variable [media] staging: as102: Remove redundant NULL check before release_firmware() and pointless comments [media] s2255drv: Remove redundant NULL test before release_firmware()

Jim Cromie (1):
[media] cx231xx: replace open-coded ARRAY_SIZE with macro

Jozsef Marton (1):

      [media] media: add support to gspca/pac7302.c for 093a:2627 (Genius FaceCam 300)

Julia Lawall (1):
[media] drivers/media/video/au0828/au0828-video.c: add missing video_device_release

Kartik Mohta (1):
[media] mt9v032: Correct the logic for the auto-exposure setting

Konstantin Khlebnikov (1):
[media] mm/drivers: use vm_flags_t for vma flags

Kuninori Morimoto (1):
[media] V4L2: sh_mobile_ceu: manage lower 8bit bus

Laurent Pinchart (36):
[media] uvcvideo: Fix ENUMINPUT handling
[media] MAINTAINERS: Update UVC driver's mailing list address [media] uvcvideo: Use videobuf2 .get_unmapped_area() implementation [media] omap3isp: Prevent pipelines that contain a crashed entity from starting [media] omap3isp: Fix frame number propagation
[media] omap3isp: preview: Skip brightness and contrast in configuration ioctl [media] omap3isp: preview: Optimize parameters setup for the common case [media] omap3isp: preview: Remove averager parameter update flag [media] omap3isp: preview: Remove unused isptables_update structure definition [media] omap3isp: preview: Merge configuration and feature bits [media] omap3isp: preview: Remove update_attrs feature_bit field [media] omap3isp: preview: Rename prev_params fields to match userspace API [media] omap3isp: preview: Simplify configuration parameters access [media] omap3isp: preview: Shorten shadow update delay
[media] omap3isp: preview: Rename last occurences of *_rgb_to_ycbcr to *_csc [media] omap3isp: preview: Add support for greyscale input [media] omap3isp: Mark probe and cleanup functions with __devinit and __devexit [media] omap3isp: ccdc: Add selection support on output formatter source pad [media] omap3isp: preview: Replace the crop API by the selection API [media] omap3isp: resizer: Replace the crop API by the selection API [media] v4l: aptina-pll: Round up minimum multiplier factor value properly [media] mt9p031: Identify color/mono models using I2C device name [media] mt9p031: Replace the reset board callback by a GPIO number [media] mt9p031: Implement black level compensation control [media] v4l: v4l2-ctrls: moves the forward declaration of struct file [media] mx2_camera: Fix sizeimage computation in try_fmt() [media] soc_camera: Use soc_camera_device::sizeimage to compute buffer sizes [media] soc_camera: Use soc_camera_device::bytesperline to compute line sizes [media] soc-camera: Add plane layout information to struct soc_mbus_pixelfmt [media] soc-camera: Fix bytes per line computation for planar formats [media] soc-camera: Add soc_mbus_image_size
[media] soc-camera: Honor user-requested bytesperline and sizeimage [media] mx2_camera: Use soc_mbus_image_size() instead of manual computation [media] soc-camera: Support user-configurable line stride
[media] sh_mobile_ceu_camera: Support user-configurable line stride [media] uvcvideo: Fix V4L2 button controls that share the same UVC control

Liu Ying (1):
[media] V4L: OV5642:remove redundant code to set cropping w/h

Malcolm Priestley (3):

      [media] it913x.: Fix a misuse of ||
      [media] rc-it913x=v2 Incorrect assigned KEY_1
      [media] m88rs2000 - only flip bit 2 on reg 0x70 on 16th try

Marcos Paulo de Souza (3):
[media] drivers: media: video: adp1653.c: Remove unneeded include of version.h [media] drivers: media: radio: radio-keene.c: Remove unneeded include of version.h [media] drivers: media: dvb: ddbridge: ddbridge-code: Remove unneeded include of version.h

Marek Szyprowski (1):
[media] v4l: s5p-tv: fix plane size calculation

Mark Brown (1):
[media] Convert I2C drivers to dev_pm_ops

Masahiro Nakai (1):
[media] V4L2: mt9t112: fixup JPEG initialization workaround

Mauro Carvalho Chehab (12):
Merge branch 'poll' into staging/for_v3.4
Merge tag 'v3.4-rc3' into staging/for_v3.5
[media] tlg2300: Remove usage of KERNEL_VERSION() [media] tm6000: don't use KERNEL_VERSION
Merge remote-tracking branch 'linus/master' into staging/for_v3.5 [media] saa7134: remove unused log_err() macro [media] smiapp: fix compilation breakage
[media] lg2160: Don't fill the legacy DVBv3 ops.type field [media] lg2160: Fix a few warnings
Revert "[media] staging: media: go7007: Adlink MPG24 board issues" [media] sta2x11_vip: Fix 60Hz video standard handling [media] saa7134-cards: Remove a PCI entry added by mistake

Michael Buesch (7):
[media] af9035: Add USB read checksumming [media] Add fc0011 tuner driver
[media] af9035: Add fc0011 tuner support [media] af9035: Add Afatech USB PIDs
[media] fc0011: use usleep_range()
[media] af9035: Use usleep_range() in fc0011 support code [media] fc0011: Reduce number of retries

Michael Krufky (18):
[media] xc5000: support 32MHz & 31.875MHz xtal using the 41.024.5 firmware [media] xc5000: log firmware upload failures in xc5000_fwupload [media] xc5000: xtal_khz should be a u16 rather than a u32 [media] au0828-dvb: attach tuner based on dev->board.tuner_type on hvr950q [media] au8522: build ATV/DTV demodulators as separate modules [media] au8522_common: add missing MODULE_LICENSE
[media] au8522_common: dont EXPORT_SYMBOL(au8522_led_gpio_enable) [media] smsusb: add autodetection support for USB ID 2040:c0a0 [media] linux-dvb v5 API support for ATSC-MH
[media] DocBook: document new DTV Properties for ATSC-MH delivery system [media] increment DVB API to version 5.6 for ATSC-MH frontend control [media] mxl111sf-tuner: tune SYS_ATSCMH just like SYS_ATSC [media] DVB: add support for the LG2160 ATSC-MH demodulator [media] dvb-demux: add functionality to send raw payload to the dvr device [media] dvb-usb: add support for dvb-usb-adapters that deliver raw payload [media] dvb-usb: increase MAX_NO_OF_FE_PER_ADAP from 2 to 3 [media] mxl111sf: add ATSC-MH support
[media] DVB: remove "stats" property bits from ATSC-MH API property additions

Michel Machado (1):
[media] rc-loopback: remove duplicate line

Mike Isely (9):
[media] pvrusb2: Stop statically initializing reserved struct fields to zero [media] pvrusb2: Clean up pvr2_hdw_get_detected_std()
[media] pvrusb2: Implement querystd for videodev_ioctl2
[media] pvrusb2: Transform video standard detection result into read-only control ID [media][trival] pvrusb2: Fix truncated video standard names
[media] pvrusb2: Base available video standards on what hardware supports [media] pvrusb2: Trivial tweak to get rid of some redundant dereferences [media] pvrusb2: Get rid of obsolete code for video standard enumeration [media] pvrusb2: For querystd, start with list of hardware-supported standards

Ondrej Zary (4):
[media] radio-isa: PnP support for the new ISA radio framework [media] radio-gemtek: add PnP support for AOpen FX-3D/Pro Radio [media] [resend] radio-sf16fmr2: add PnP support for SF16-FMD2 [media] radio-sf16fmi: add support for SF16-FMD

Pierangelo Terzulli (1):

      [media] af9035: add AVerMedia Twinstar (A825) [07ca:0825]

Sachin Kamat (10):
[media] v4l: s5p-tv: Fix section mismatch warning in mixer_video.c [media] s5p-mfc: Fix NULL pointer warnings
[media] s5p-mfc: Add missing static storage class to silence warnings [media] s5p-g2d: Fix NULL pointer warnings in g2d.c file [media] s5p-g2d: Add missing static storage class in g2d.c file [media] s5p-jpeg: Make s5p_jpeg_g_selection function static [media] s5p-mfc: Add missing static storage class in s5p_mfc_enc.c file [media] s5p-g2d: Use devm_* functions in g2d.c file
[media] s5p-jpeg: Use devm_* functions in jpeg-core.c file [media] s5p-mfc: Use devm_* functions in s5p_mfc.c file

Sakari Ailus (45):
[media] v4l: Introduce integer menu controls
[media] v4l: Document integer menu controls
[media] vivi: Add an integer menu test control
[media] v4l: VIDIOC_SUBDEV_S_SELECTION and VIDIOC_SUBDEV_G_SELECTION IOCTLs [media] v4l: vdev_to_v4l2_subdev() should have return type "struct v4l2_subdev *" [media] v4l: Check pad number in get try pointer functions
[media] v4l: Support s_crop and g_crop through s/g_selection
[media] v4l: Add subdev selections documentation: svg and dia files [media] v4l: Add subdev selections documentation
[media] v4l: Mark VIDIOC_SUBDEV_G_CROP and VIDIOC_SUBDEV_S_CROP obsolete [media] omap3isp: Prevent crash at module unload
[media] omap3isp: Handle omap3isp_csi2_reset() errors
[media] v4l2: use __u32 rather than enums in ioctl() structs
[media] v4l: Image source control class
[media] v4l: Image processing control class
[media] v4l: Document raw bayer 4CC codes
[media] v4l: Add DPCM compressed raw bayer pixel formats
[media] media: Add link_validate() op to check links to the sink pad [media] v4l: Improve sub-device documentation for pad ops
[media] v4l: Implement v4l2_subdev_link_validate()
[media] v4l: Allow changing control handler lock
[media] omap3isp: Support additional in-memory compressed bayer formats [media] omap3isp: Move definitions required by board code under include/media [media] omap3isp: Move setting constaints above media_entity_pipeline_start [media] omap3isp: Assume media_entity_pipeline_start may fail
[media] omap3isp: Add lane configuration to platform data
[media] omap3isp: Refactor collecting information on entities in pipeline [media] omap3isp: Add information on external subdev to struct isp_pipeline [media] omap3isp: Introduce isp_video_check_external_subdevs()
[media] omap3isp: Use external rate instead of vpcfg
[media] omap3isp: Default link validation for ccp2, csi2, preview and resizer [media] omap3isp: Move CCDC link validation to ccdc_link_validate() [media] smiapp: Generic SMIA++/SMIA PLL calculator
[media] smiapp: Add driver
[media] smiapp: Remove smiapp-debug.h in favour of dynamic debug [media] smiapp: Allow using external clock from the clock framework [media] smiapp: Pass struct sensor to register writing commands instead of i2c_client [media] smiapp: Quirk for sensors that only do 8-bit reads
[media] smiapp: Use 8-bit reads only before identifying the sensor [media] smiapp: Round minimum pre_pll up rather than down in ip_clk_freq check [media] smiapp: Initialise rval in smiapp_read_nvm()
[media] smiapp: Use non-binning limits if the binning limit is zero [media] smiapp: Allow generic quirk registers
[media] smiapp: Add support for 8-bit uncompressed formats
[media] smiapp: Use v4l2_ctrl_new_int_menu() instead of v4l2_ctrl_new_custom()

Santosh Nayak (1):
[media] dib0700: Return -EINTR and unlock mutex if locking attempts fails

Srinivas Kandagatla (2):
[media] [3.3.0] ir-raw: remove BUG_ON in ir_raw_event_thread [media] kernel:kfifo: export __kfifo_max_r symbol

Sylwester Nawrocki (44):
[media] s5p-fimc: Don't use platform data for CSI data alignment configuration [media] s5p-fimc: Reinitialize the pipeline properly after VIDIOC_STREAMOFF [media] s5p-fimc: Simplify locking by removing the context data structure spinlock [media] s5p-fimc: Refactor hardware setup for m2m transaction [media] s5p-fimc: Remove unneeded fields from struct fimc_dev [media] s5p-fimc: Handle sub-device interdependencies using deferred probing [media] V4L: JPEG class documentation corrections
[media] s5p-fimc: Fix locking in subdev set_crop op
[media] V4L: Extend V4L2_CID_COLORFX with more image effects
[media] V4L: Add helper function for standard integer menu controls [media] V4L: Add camera exposure bias control
[media] V4L: Add an extended camera white balance control
[media] V4L: Add camera wide dynamic range control
[media] V4L: Add camera image stabilization control
[media] V4L: Add camera ISO sensitivity controls
[media] V4L: Add camera exposure metering control
[media] V4L: Add camera scene mode control
[media] V4L: Add camera 3A lock control
[media] V4L: Add camera auto focus controls
[media] m5mols: Convert macros to inline functions
[media] m5mols: Refactored controls handling
[media] m5mols: Use proper sensor mode for the controls
[media] m5mols: Add ISO sensitivity controls
[media] m5mols: Add auto and preset white balance control
[media] m5mols: Add exposure bias control
[media] m5mols: Add wide dynamic range control
[media] m5mols: Add image stabilization control
[media] m5mols: Add exposure metering control
[media] m5mols: Add JPEG compression quality control
[media] m5mols: Add 3A lock control
[media] V4L: JPEG class documentation corrections
[media] s5p-fimc: Avoid crash with null platform_data
[media] s5p-fimc: Move m2m node driver into separate file
[media] s5p-fimc: Use v4l2_subdev internal ops to register video nodes [media] s5p-fimc: Refactor the register interface functions
[media] s5p-fimc: Add FIMC-LITE register definitions
[media] s5p-fimc: Rework the video pipeline control functions [media] s5p-fimc: Prefix format enumerations with FIMC_FMT_
[media] s5p-fimc: Minor cleanups
[media] s5p-fimc: Make sure an interrupt is properly requested [media] s5p-fimc: Add support for Exynos4x12 FIMC-LITE
[media] s5p-fimc: Update copyright notices
[media] s5p-fimc: Add color effect control
[media] s5p-fimc: Use selection API in place of crop operations

Tim Gardner (2):
[media] staging: go7007: Add MODULE_FIRMWARE [media] video: vicam: Add MODULE_FIRMWARE

Tomasz Stanislawski (5):
[media] v4l: s5p-tv: mixer: fix compilation warning [media] v4l: s5p-tv: hdmiphy: add support for per-platform variants [media] v4l: s5p-tv: hdmi: parametrize DV timings [media] v4l: s5p-tv: hdmi: fix mode synchronization [media] v4l: s5p-tv: mixer: fix handling of interlaced modes

Uwe Kleine-König (1):
[media] s5p-tv: mark const init data with __initconst instead of __initdata

Volokh Konstantin (1):
[media] staging: media: go7007: Adlink MPG24 board issues

Xi Wang (3):
[media] v4l2-ctrls: fix integer overflow in v4l2_g_ext_ctrls() [media] v4l2-ctrls: fix integer overflow in try_set_ext_ctrls() [media] zoran: fix integer overflow in setup_window()

joseph daniel (2):
[media] staging/media/as102: removed else statements [media] staging/media/as102: remove version.h include at as102_fe.c

remi schwartz (1):

      [media] patch for Asus My Cinema PS3-100 (1043:48cd)
 Documentation/DocBook/media/Makefile               |    4 +-
 Documentation/DocBook/media/dvb/dvbproperty.xml    |  160 ++
 Documentation/DocBook/media/v4l/biblio.xml         |   29 +
 Documentation/DocBook/media/v4l/common.xml         |   38 +-
 Documentation/DocBook/media/v4l/compat.xml         |   75 +
 Documentation/DocBook/media/v4l/controls.xml       |  708 +++++-
 Documentation/DocBook/media/v4l/dev-subdev.xml     |  202 ++-
 Documentation/DocBook/media/v4l/io.xml             |   12 +-
 Documentation/DocBook/media/v4l/pixfmt-srggb10.xml |    2 +-
 .../DocBook/media/v4l/pixfmt-srggb10dpcm8.xml      |   29 +
 Documentation/DocBook/media/v4l/pixfmt.xml         |    6 +-
 .../media/v4l/subdev-image-processing-crop.dia     |  614 +++++
 .../media/v4l/subdev-image-processing-crop.svg     |   63 +
 .../media/v4l/subdev-image-processing-full.dia     | 1588 +++++++++++
 .../media/v4l/subdev-image-processing-full.svg     |  163 ++
 ...ubdev-image-processing-scaling-multi-source.dia | 1152 ++++++++
 ...ubdev-image-processing-scaling-multi-source.svg |  116 +
 Documentation/DocBook/media/v4l/v4l2.xml           |   44 +-
 .../DocBook/media/v4l/vidioc-create-bufs.xml       |   16 +-
 Documentation/DocBook/media/v4l/vidioc-cropcap.xml |    4 +-
 .../DocBook/media/v4l/vidioc-dv-timings-cap.xml    |  211 ++
 .../DocBook/media/v4l/vidioc-enum-dv-presets.xml   |    4 +
 .../DocBook/media/v4l/vidioc-enum-dv-timings.xml   |  119 +
 .../DocBook/media/v4l/vidioc-enum-fmt.xml          |    4 +-
 .../DocBook/media/v4l/vidioc-enuminput.xml         |    2 +-
 .../DocBook/media/v4l/vidioc-enumoutput.xml        |    2 +-
 Documentation/DocBook/media/v4l/vidioc-g-crop.xml  |    4 +-
 .../DocBook/media/v4l/vidioc-g-dv-preset.xml       |    6 +
 .../DocBook/media/v4l/vidioc-g-dv-timings.xml      |  130 +-
 .../DocBook/media/v4l/vidioc-g-ext-ctrls.xml       |   26 +
 Documentation/DocBook/media/v4l/vidioc-g-fmt.xml   |    2 +-
 .../DocBook/media/v4l/vidioc-g-frequency.xml       |    6 +-
 Documentation/DocBook/media/v4l/vidioc-g-parm.xml  |    5 +-
 .../DocBook/media/v4l/vidioc-g-sliced-vbi-cap.xml  |    2 +-
 Documentation/DocBook/media/v4l/vidioc-g-tuner.xml |    2 +-
 .../DocBook/media/v4l/vidioc-prepare-buf.xml       |    6 +
 .../DocBook/media/v4l/vidioc-query-dv-preset.xml   |    4 +
 .../DocBook/media/v4l/vidioc-query-dv-timings.xml  |  104 +
 .../DocBook/media/v4l/vidioc-queryctrl.xml         |   41 +-
 Documentation/DocBook/media/v4l/vidioc-reqbufs.xml |    7 +-
 .../DocBook/media/v4l/vidioc-s-hw-freq-seek.xml    |    5 +-
 .../DocBook/media/v4l/vidioc-subdev-g-crop.xml     |    9 +-
 .../media/v4l/vidioc-subdev-g-selection.xml        |  228 ++
 Documentation/dvb/get_dvb_firmware                 |   20 +-
 Documentation/feature-removal-schedule.txt         |    9 +
 Documentation/media-framework.txt                  |   19 +
 Documentation/video4linux/4CCs.txt                 |   32 +
 Documentation/video4linux/gspca.txt                |    1 +
 Documentation/video4linux/v4l2-controls.txt        |   21 +
 Documentation/video4linux/v4l2-framework.txt       |  106 +-
 MAINTAINERS                                        |    9 +-
 arch/arm/mach-imx/mach-imx27_visstrim_m10.c        |    2 +-
 arch/arm/plat-mxc/include/mach/mx2_cam.h           |    2 -
 drivers/input/ff-memless.c                         |    3 +-
 drivers/media/common/saa7146_fops.c                |  126 +-
 drivers/media/common/saa7146_hlp.c                 |   23 +-
 drivers/media/common/saa7146_vbi.c                 |   54 +-
 drivers/media/common/saa7146_video.c               |  367 +--
 drivers/media/common/tuners/Kconfig                |   27 +
 drivers/media/common/tuners/Makefile               |    4 +
 drivers/media/common/tuners/fc0011.c               |  524 ++++
 drivers/media/common/tuners/fc0011.h               |   41 +
 drivers/media/common/tuners/fc0012-priv.h          |   43 +
 drivers/media/common/tuners/fc0012.c               |  467 ++++
 drivers/media/common/tuners/fc0012.h               |   44 +
 drivers/media/common/tuners/fc0013-priv.h          |   44 +
 drivers/media/common/tuners/fc0013.c               |  634 +++++
 drivers/media/common/tuners/fc0013.h               |   57 +
 drivers/media/common/tuners/fc001x-common.h        |   39 +
 drivers/media/common/tuners/tua9001.c              |  215 ++
 drivers/media/common/tuners/tua9001.h              |   46 +
 drivers/media/common/tuners/tua9001_priv.h         |   34 +
 drivers/media/common/tuners/xc5000.c               |    7 +-
 drivers/media/common/tuners/xc5000.h               |    2 +-
 drivers/media/dvb/bt8xx/dst_ca.c                   |    2 -
 drivers/media/dvb/ddbridge/ddbridge-core.c         |    3 +-
 drivers/media/dvb/dvb-core/dvb_demux.c             |   10 +
 drivers/media/dvb/dvb-core/dvb_demux.h             |    2 +
 drivers/media/dvb/dvb-core/dvb_frontend.c          |   80 +-
 drivers/media/dvb/dvb-core/dvb_frontend.h          |   18 +
 drivers/media/dvb/dvb-usb/Kconfig                  |   13 +
 drivers/media/dvb/dvb-usb/Makefile                 |    3 +
 drivers/media/dvb/dvb-usb/af9015.c                 |  495 ++--
 drivers/media/dvb/dvb-usb/af9035.c                 | 1242 +++++++++
 drivers/media/dvb/dvb-usb/af9035.h                 |  113 +
 drivers/media/dvb/dvb-usb/dib0700_core.c           |   24 +-
 drivers/media/dvb/dvb-usb/dib0700_devices.c        |    7 +-
 drivers/media/dvb/dvb-usb/dvb-usb-ids.h            |   12 +
 drivers/media/dvb/dvb-usb/dvb-usb-urb.c            |   12 +
 drivers/media/dvb/dvb-usb/dvb-usb.h                |    3 +-
 drivers/media/dvb/dvb-usb/dw2102.c                 |   76 +-
 drivers/media/dvb/dvb-usb/it913x.c                 |    4 +-
 drivers/media/dvb/dvb-usb/lmedm04.c                |    5 +-
 drivers/media/dvb/dvb-usb/mxl111sf-tuner.c         |    1 +
 drivers/media/dvb/dvb-usb/mxl111sf.c               |  872 ++++++-
 drivers/media/dvb/dvb-usb/rtl28xxu.c               |   28 +
 drivers/media/dvb/frontends/Kconfig                |   35 +-
 drivers/media/dvb/frontends/Makefile               |    7 +-
 drivers/media/dvb/frontends/af9013.c               |   13 +-
 drivers/media/dvb/frontends/af9033.c               |  980 +++++++
 drivers/media/dvb/frontends/af9033.h               |   75 +
 drivers/media/dvb/frontends/af9033_priv.h          |  470 ++++
 drivers/media/dvb/frontends/au8522_common.c        |  259 ++
 drivers/media/dvb/frontends/au8522_dig.c           |  215 --
 drivers/media/dvb/frontends/au8522_priv.h          |    2 +
 drivers/media/dvb/frontends/cx24110.c              |    7 +-
 drivers/media/dvb/frontends/cxd2820r_core.c        |    4 +-
 drivers/media/dvb/frontends/dib7000p.c             |    5 -
 drivers/media/dvb/frontends/dib9000.c              |  131 +-
 drivers/media/dvb/frontends/drxd.h                 |   14 +
 drivers/media/dvb/frontends/drxk_hard.c            |   18 +-
 drivers/media/dvb/frontends/drxk_map.h             |    2 +
 drivers/media/dvb/frontends/ds3000.c               |    5 +-
 drivers/media/dvb/frontends/it913x-fe.c            |   26 +-
 drivers/media/dvb/frontends/lg2160.c               | 1468 ++++++++++
 drivers/media/dvb/frontends/lg2160.h               |   84 +
 drivers/media/dvb/frontends/lgs8gxx.c              |    3 +-
 drivers/media/dvb/frontends/m88rs2000.c            |   29 +-
 drivers/media/dvb/frontends/rtl2830.c              |  201 ++-
 drivers/media/dvb/frontends/rtl2830_priv.h         |    1 +
 drivers/media/dvb/frontends/stb0899_drv.c          |    8 +-
 drivers/media/dvb/frontends/stb6100.c              |    3 +-
 drivers/media/dvb/frontends/stv0297.c              |    2 -
 drivers/media/dvb/frontends/stv0900_sw.c           |    2 -
 drivers/media/dvb/frontends/stv090x.c              |    2 -
 drivers/media/dvb/frontends/zl10353.c              |    5 +-
 drivers/media/dvb/mantis/hopper_cards.c            |    3 +-
 drivers/media/dvb/mantis/mantis_cards.c            |    3 +-
 drivers/media/dvb/mantis/mantis_dma.c              |    4 -
 drivers/media/dvb/mantis/mantis_evm.c              |    3 +-
 drivers/media/dvb/ngene/ngene-core.c               |    4 +-
 drivers/media/dvb/pluto2/pluto2.c                  |    8 -
 drivers/media/dvb/siano/smssdio.c                  |    4 +-
 drivers/media/dvb/siano/smsusb.c                   |    2 +
 drivers/media/dvb/ttpci/av7110_v4l.c               |   72 +-
 drivers/media/dvb/ttpci/budget-av.c                |    6 +-
 drivers/media/media-entity.c                       |   57 +-
 drivers/media/radio/Kconfig                        |    4 +-
 drivers/media/radio/dsbr100.c                      |  528 ++---
 drivers/media/radio/radio-gemtek.c                 |   25 +
 drivers/media/radio/radio-isa.c                    |  173 +-
 drivers/media/radio/radio-isa.h                    |    9 +
 drivers/media/radio/radio-keene.c                  |   36 +-
 drivers/media/radio/radio-mr800.c                  |  524 ++--
 drivers/media/radio/radio-rtrack2.c                |    1 +
 drivers/media/radio/radio-sf16fmi.c                |   14 +-
 drivers/media/radio/radio-sf16fmr2.c               |  144 +-
 drivers/media/radio/radio-timb.c                   |    2 +-
 drivers/media/radio/saa7706h.c                     |    2 +-
 drivers/media/radio/si470x/radio-si470x-common.c   |  305 +--
 drivers/media/radio/si470x/radio-si470x-i2c.c      |   65 +-
 drivers/media/radio/si470x/radio-si470x-usb.c      |  265 +-
 drivers/media/radio/si470x/radio-si470x.h          |   14 +-
 drivers/media/radio/tef6862.c                      |    2 +-
 drivers/media/radio/wl128x/fmdrv_v4l2.c            |    4 +
 drivers/media/rc/Kconfig                           |    1 +
 drivers/media/rc/ati_remote.c                      |  146 +-
 drivers/media/rc/fintek-cir.c                      |   13 +-
 drivers/media/rc/imon.c                            |    2 +-
 drivers/media/rc/ir-raw.c                          |    8 +-
 drivers/media/rc/ir-sanyo-decoder.c                |    4 +-
 drivers/media/rc/ite-cir.c                         |   14 +-
 drivers/media/rc/keymaps/Makefile                  |    3 +
 drivers/media/rc/keymaps/rc-asus-ps3-100.c         |   91 +
 drivers/media/rc/keymaps/rc-it913x-v2.c            |    2 +-
 .../media/rc/keymaps/rc-medion-x10-digitainer.c    |  123 +
 drivers/media/rc/keymaps/rc-medion-x10-or2x.c      |  108 +
 drivers/media/rc/mceusb.c                          |    5 +-
 drivers/media/rc/nuvoton-cir.c                     |   26 +-
 drivers/media/rc/rc-loopback.c                     |    1 -
 drivers/media/rc/redrat3.c                         |    2 +-
 drivers/media/video/Kconfig                        |   48 +-
 drivers/media/video/Makefile                       |    5 +-
 drivers/media/video/adp1653.c                      |    9 +-
 drivers/media/video/adv7180.c                      |  417 +++-
 drivers/media/video/adv7343.c                      |    4 +-
 drivers/media/video/aptina-pll.c                   |    5 +-
 drivers/media/video/arv.c                          |    7 +-
 drivers/media/video/as3645a.c                      |   10 +-
 drivers/media/video/atmel-isi.c                    |   18 +-
 drivers/media/video/au0828/Kconfig                 |    3 +-
 drivers/media/video/au0828/au0828-cards.c          |    2 +
 drivers/media/video/au0828/au0828-dvb.c            |   27 +-
 drivers/media/video/au0828/au0828-video.c          |   25 +-
 drivers/media/video/blackfin/bfin_capture.c        |    4 +
 drivers/media/video/bt8xx/bttv-driver.c            |    4 +-
 drivers/media/video/bw-qcam.c                      |  132 +-
 drivers/media/video/c-qcam.c                       |  140 +-
 drivers/media/video/cpia2/cpia2.h                  |   34 +-
 drivers/media/video/cpia2/cpia2_core.c             |  142 +-
 drivers/media/video/cpia2/cpia2_usb.c              |   78 +-
 drivers/media/video/cpia2/cpia2_v4l.c              |  850 ++----
 drivers/media/video/cpia2/cpia2dev.h               |   50 -
 drivers/media/video/cx18/cx18-alsa-main.c          |    1 +
 drivers/media/video/cx18/cx18-alsa-pcm.c           |   10 +-
 drivers/media/video/cx18/cx18-ioctl.c              |    2 +-
 drivers/media/video/cx18/cx18-mailbox.c            |    6 +-
 drivers/media/video/cx18/cx18-streams.c            |    3 -
 drivers/media/video/cx231xx/cx231xx-417.c          |   18 +-
 drivers/media/video/cx231xx/cx231xx-audio.c        |   18 +-
 drivers/media/video/cx231xx/cx231xx-avcore.c       |  148 +-
 drivers/media/video/cx231xx/cx231xx-core.c         |   76 +-
 drivers/media/video/cx231xx/cx231xx-vbi.c          |    6 +-
 drivers/media/video/cx231xx/cx231xx-video.c        |   20 +-
 drivers/media/video/cx23885/cx23885-cards.c        |    9 +
 drivers/media/video/cx23885/cx23885-core.c         |    7 +
 drivers/media/video/cx23885/cx23885-dvb.c          |    7 +
 drivers/media/video/cx23885/cx23885.h              |    1 +
 drivers/media/video/cx23885/cx23888-ir.c           |    4 +-
 drivers/media/video/cx25821/cx25821-alsa.c         |    2 -
 .../media/video/cx25821/cx25821-audio-upstream.c   |    3 +-
 drivers/media/video/cx25821/cx25821-core.c         |   14 +-
 drivers/media/video/cx25821/cx25821-i2c.c          |    3 +-
 drivers/media/video/cx25821/cx25821-medusa-video.c |   13 +-
 .../video/cx25821/cx25821-video-upstream-ch2.c     |    3 +-
 .../media/video/cx25821/cx25821-video-upstream.c   |    3 +-
 drivers/media/video/cx25821/cx25821-video.c        |   25 +-
 drivers/media/video/cx25821/cx25821-video.h        |    2 -
 drivers/media/video/cx25840/cx25840-ir.c           |    6 +-
 drivers/media/video/davinci/Kconfig                |    1 +
 drivers/media/video/davinci/vpbe_display.c         |    4 +
 drivers/media/video/davinci/vpfe_capture.c         |    2 +-
 drivers/media/video/davinci/vpif_capture.c         |    4 +
 drivers/media/video/davinci/vpif_display.c         |    4 +
 drivers/media/video/em28xx/Kconfig                 |    4 +-
 drivers/media/video/em28xx/Makefile                |    5 +-
 drivers/media/video/em28xx/em28xx-audio.c          |   11 +-
 drivers/media/video/em28xx/em28xx-cards.c          |   81 +-
 drivers/media/video/em28xx/em28xx-core.c           |   30 +-
 drivers/media/video/em28xx/em28xx-dvb.c            |   11 +-
 drivers/media/video/em28xx/em28xx-i2c.c            |    3 -
 drivers/media/video/em28xx/em28xx-input.c          |  250 ++-
 drivers/media/video/em28xx/em28xx-video.c          |   13 +-
 drivers/media/video/em28xx/em28xx.h                |   60 +-
 drivers/media/video/et61x251/Kconfig               |   18 -
 drivers/media/video/et61x251/Makefile              |    4 -
 drivers/media/video/et61x251/et61x251.h            |  213 --
 drivers/media/video/et61x251/et61x251_core.c       | 2683 ------------------
 drivers/media/video/et61x251/et61x251_sensor.h     |  108 -
 drivers/media/video/et61x251/et61x251_tas5130d1b.c |  143 -
 drivers/media/video/fsl-viu.c                      |    4 +
 drivers/media/video/gspca/Makefile                 |    2 +-
 drivers/media/video/gspca/autogain_functions.c     |  178 ++
 drivers/media/video/gspca/autogain_functions.h     |    6 +-
 drivers/media/video/gspca/conex.c                  |    4 +-
 drivers/media/video/gspca/finepix.c                |   18 +-
 drivers/media/video/gspca/gl860/gl860.c            |    3 +
 drivers/media/video/gspca/gspca.c                  |  545 ++---
 drivers/media/video/gspca/gspca.h                  |   26 +-
 drivers/media/video/gspca/jl2005bcd.c              |   10 +-
 drivers/media/video/gspca/mars.c                   |  292 +--
 drivers/media/video/gspca/nw80x.c                  |    2 +
 drivers/media/video/gspca/ov519.c                  |   10 +-
 drivers/media/video/gspca/ov534.c                  |  146 +-
 drivers/media/video/gspca/pac207.c                 |  336 +--
 drivers/media/video/gspca/pac7302.c                |  185 +-
 drivers/media/video/gspca/pac7311.c                |  505 ++---
 drivers/media/video/gspca/sn9c20x.c                |  594 ++---
 drivers/media/video/gspca/sonixb.c                 |    2 +
 drivers/media/video/gspca/sonixj.c                 |    5 +-
 drivers/media/video/gspca/sq905.c                  |   12 +-
 drivers/media/video/gspca/sq905c.c                 |   10 +-
 drivers/media/video/gspca/stv06xx/stv06xx.c        |   21 +-
 drivers/media/video/gspca/stv06xx/stv06xx.h        |    3 -
 drivers/media/video/gspca/stv06xx/stv06xx_hdcs.c   |  143 +-
 drivers/media/video/gspca/stv06xx/stv06xx_hdcs.h   |    7 +-
 drivers/media/video/gspca/stv06xx/stv06xx_pb0100.c |  359 +--
 drivers/media/video/gspca/stv06xx/stv06xx_pb0100.h |   12 +-
 drivers/media/video/gspca/stv06xx/stv06xx_sensor.h |    4 +-
 drivers/media/video/gspca/stv06xx/stv06xx_st6422.c |  236 +--
 drivers/media/video/gspca/stv06xx/stv06xx_st6422.h |    4 +-
 drivers/media/video/gspca/stv06xx/stv06xx_vv6410.c |  198 +-
 drivers/media/video/gspca/stv06xx/stv06xx_vv6410.h |    8 +-
 drivers/media/video/gspca/topro.c                  |    6 +-
 drivers/media/video/gspca/vicam.c                  |   13 +-
 drivers/media/video/gspca/zc3xx.c                  |  620 ++---
 drivers/media/video/hdpvr/hdpvr-control.c          |    2 +
 drivers/media/video/hdpvr/hdpvr-video.c            |    2 +-
 drivers/media/video/hexium_gemini.c                |  129 +-
 drivers/media/video/hexium_orion.c                 |   24 +-
 drivers/media/video/ivtv/ivtv-driver.c             |    4 +-
 drivers/media/video/ivtv/ivtv-fileops.c            |    6 +-
 drivers/media/video/ivtv/ivtv-ioctl.c              |    8 +-
 drivers/media/video/ivtv/ivtv-streams.c            |    4 +
 drivers/media/video/ivtv/ivtvfb.c                  |    2 +
 drivers/media/video/m5mols/m5mols.h                |   81 +-
 drivers/media/video/m5mols/m5mols_capture.c        |   11 +-
 drivers/media/video/m5mols/m5mols_controls.c       |  479 +++-
 drivers/media/video/m5mols/m5mols_core.c           |   93 +-
 drivers/media/video/m5mols/m5mols_reg.h            |    1 +
 drivers/media/video/marvell-ccic/mcam-core.c       |    1 -
 drivers/media/video/mem2mem_testdev.c              |    6 +-
 drivers/media/video/meye.c                         |    2 +-
 drivers/media/video/msp3400-driver.c               |   15 +-
 drivers/media/video/mt9m032.c                      |    4 +-
 drivers/media/video/mt9p031.c                      |  161 +-
 drivers/media/video/mt9t112.c                      |    1 +
 drivers/media/video/mt9v032.c                      |    2 +-
 drivers/media/video/mx1_camera.c                   |   14 +-
 drivers/media/video/mx2_camera.c                   |   78 +-
 drivers/media/video/mx2_emmaprp.c                  |    8 +-
 drivers/media/video/mx3_camera.c                   |   41 +-
 drivers/media/video/mxb.c                          |  351 ++--
 drivers/media/video/mxb.h                          |   42 -
 drivers/media/video/omap1_camera.c                 |   22 +-
 drivers/media/video/omap24xxcam-dma.c              |   20 +-
 drivers/media/video/omap24xxcam.c                  |    3 +-
 drivers/media/video/omap24xxcam.h                  |   14 +-
 drivers/media/video/omap3isp/isp.c                 |   59 +-
 drivers/media/video/omap3isp/isp.h                 |    8 +-
 drivers/media/video/omap3isp/ispccdc.c             |  256 ++-
 drivers/media/video/omap3isp/ispccdc.h             |   12 +-
 drivers/media/video/omap3isp/ispccp2.c             |   24 +-
 drivers/media/video/omap3isp/ispcsi2.c             |   21 +-
 drivers/media/video/omap3isp/ispcsi2.h             |    1 -
 drivers/media/video/omap3isp/ispcsiphy.c           |    4 +-
 drivers/media/video/omap3isp/ispcsiphy.h           |   15 +-
 drivers/media/video/omap3isp/isppreview.c          |  634 +++--
 drivers/media/video/omap3isp/isppreview.h          |   76 +-
 drivers/media/video/omap3isp/ispqueue.h            |    2 +-
 drivers/media/video/omap3isp/ispresizer.c          |  139 +-
 drivers/media/video/omap3isp/ispstat.c             |    2 +-
 drivers/media/video/omap3isp/ispvideo.c            |  303 ++-
 drivers/media/video/omap3isp/ispvideo.h            |    5 +
 drivers/media/video/ov5642.c                       |    2 -
 drivers/media/video/pms.c                          |  239 +-
 drivers/media/video/pvrusb2/pvrusb2-hdw-internal.h |    6 +-
 drivers/media/video/pvrusb2/pvrusb2-hdw.c          |  193 +--
 drivers/media/video/pvrusb2/pvrusb2-hdw.h          |    9 +-
 drivers/media/video/pvrusb2/pvrusb2-v4l2.c         | 1343 +++++-----
 drivers/media/video/pwc/pwc-if.c                   |  191 +-
 drivers/media/video/pwc/pwc-v4l.c                  |  145 +-
 drivers/media/video/pwc/pwc.h                      |   21 +-
 drivers/media/video/pxa_camera.c                   |   15 +-
 drivers/media/video/s2255drv.c                     |   11 +-
 drivers/media/video/s5p-fimc/Kconfig               |   48 +
 drivers/media/video/s5p-fimc/Makefile              |    6 +-
 drivers/media/video/s5p-fimc/fimc-capture.c        |  506 +++--
 drivers/media/video/s5p-fimc/fimc-core.c           | 1159 ++-------
 drivers/media/video/s5p-fimc/fimc-core.h           |  272 +--
 drivers/media/video/s5p-fimc/fimc-lite-reg.c       |  300 ++
 drivers/media/video/s5p-fimc/fimc-lite-reg.h       |  150 +
 drivers/media/video/s5p-fimc/fimc-lite.c           | 1576 +++++++++++
 drivers/media/video/s5p-fimc/fimc-lite.h           |  213 ++
 drivers/media/video/s5p-fimc/fimc-m2m.c            |  824 ++++++
 drivers/media/video/s5p-fimc/fimc-mdevice.c        |  476 +++-
 drivers/media/video/s5p-fimc/fimc-mdevice.h        |   18 +-
 drivers/media/video/s5p-fimc/fimc-reg.c            |  616 +++--
 drivers/media/video/s5p-fimc/fimc-reg.h            |  326 +++
 drivers/media/video/s5p-fimc/mipi-csis.c           |   21 +-
 drivers/media/video/s5p-fimc/regs-fimc.h           |  301 --
 drivers/media/video/s5p-g2d/g2d.c                  |   69 +-
 drivers/media/video/s5p-g2d/g2d.h                  |    1 -
 drivers/media/video/s5p-jpeg/jpeg-core.c           |   68 +-
 drivers/media/video/s5p-jpeg/jpeg-core.h           |    2 -
 drivers/media/video/s5p-mfc/s5p_mfc.c              |   81 +-
 drivers/media/video/s5p-mfc/s5p_mfc_common.h       |    2 -
 drivers/media/video/s5p-mfc/s5p_mfc_ctrl.c         |   16 +-
 drivers/media/video/s5p-mfc/s5p_mfc_enc.c          |    6 +-
 drivers/media/video/s5p-mfc/s5p_mfc_opr.c          |   28 +-
 drivers/media/video/s5p-tv/hdmi_drv.c              |  480 ++--
 drivers/media/video/s5p-tv/hdmiphy_drv.c           |  225 ++-
 drivers/media/video/s5p-tv/mixer.h                 |    3 +-
 drivers/media/video/s5p-tv/mixer_drv.c             |    2 +-
 drivers/media/video/s5p-tv/mixer_reg.c             |   15 +-
 drivers/media/video/s5p-tv/mixer_video.c           |   10 +-
 drivers/media/video/s5p-tv/regs-hdmi.h             |    1 +
 drivers/media/video/saa7134/saa7134-cards.c        |   45 +
 drivers/media/video/saa7134/saa7134-dvb.c          |   39 +
 drivers/media/video/saa7134/saa7134-input.c        |    7 +
 drivers/media/video/saa7134/saa7134-video.c        |    2 +-
 drivers/media/video/saa7134/saa7134.h              |    1 +
 drivers/media/video/saa7164/saa7164-vbi.c          |    4 +-
 drivers/media/video/saa7164/saa7164.h              |    5 -
 drivers/media/video/sh_mobile_ceu_camera.c         |   92 +-
 drivers/media/video/sh_vou.c                       |    4 +
 drivers/media/video/smiapp-pll.c                   |  418 +++
 drivers/media/video/smiapp-pll.h                   |  103 +
 drivers/media/video/smiapp/Kconfig                 |    6 +
 drivers/media/video/smiapp/Makefile                |    5 +
 drivers/media/video/smiapp/smiapp-core.c           | 2894 ++++++++++++++++++++
 drivers/media/video/smiapp/smiapp-limits.c         |  132 +
 drivers/media/video/smiapp/smiapp-limits.h         |  128 +
 drivers/media/video/smiapp/smiapp-quirk.c          |  306 +++
 drivers/media/video/smiapp/smiapp-quirk.h          |   83 +
 drivers/media/video/smiapp/smiapp-reg-defs.h       |  503 ++++
 drivers/media/video/smiapp/smiapp-reg.h            |  122 +
 drivers/media/video/smiapp/smiapp-regs.c           |  273 ++
 drivers/media/video/smiapp/smiapp-regs.h           |   49 +
 drivers/media/video/smiapp/smiapp.h                |  252 ++
 drivers/media/video/sn9c102/sn9c102_core.c         |    4 +-
 drivers/media/video/soc_camera.c                   |   55 +-
 drivers/media/video/soc_mediabus.c                 |   54 +
 drivers/media/video/sta2x11_vip.c                  | 1550 +++++++++++
 drivers/media/video/sta2x11_vip.h                  |   40 +
 drivers/media/video/stk-webcam.c                   |    8 +-
 drivers/media/video/tda9840.c                      |   75 +-
 drivers/media/video/tlg2300/pd-video.c             |    1 -
 drivers/media/video/tm6000/tm6000-input.c          |    3 +-
 drivers/media/video/tm6000/tm6000-stds.c           |    2 -
 drivers/media/video/tm6000/tm6000-video.c          |   14 +-
 drivers/media/video/tm6000/tm6000.h                |    2 -
 drivers/media/video/tuner-core.c                   |   15 +-
 drivers/media/video/tvp5150.c                      |   11 +-
 drivers/media/video/tvp7002.c                      |  105 +-
 drivers/media/video/usbvision/usbvision-core.c     |   12 +-
 drivers/media/video/usbvision/usbvision-video.c    |    4 +
 drivers/media/video/uvc/uvc_ctrl.c                 |  330 ++-
 drivers/media/video/uvc/uvc_queue.c                |   43 +-
 drivers/media/video/uvc/uvc_v4l2.c                 |   50 +-
 drivers/media/video/uvc/uvcvideo.h                 |   26 +-
 drivers/media/video/v4l2-compat-ioctl32.c          |   15 +-
 drivers/media/video/v4l2-ctrls.c                   |  302 ++-
 drivers/media/video/v4l2-dev.c                     |  218 ++-
 drivers/media/video/v4l2-event.c                   |   71 +-
 drivers/media/video/v4l2-ioctl.c                   |  662 ++---
 drivers/media/video/v4l2-subdev.c                  |  143 +-
 drivers/media/video/via-camera.c                   |   15 +-
 drivers/media/video/videobuf-core.c                |    3 +-
 drivers/media/video/videobuf-dma-contig.c          |  199 +-
 drivers/media/video/videobuf-dvb.c                 |    3 +-
 drivers/media/video/videobuf2-core.c               |   50 +-
 drivers/media/video/vivi.c                         |  223 ++-
 drivers/media/video/w9966.c                        |   94 +-
 drivers/media/video/zoran/zoran_device.c           |    2 -
 drivers/media/video/zoran/zoran_driver.c           |   20 +-
 drivers/media/video/zr364xx.c                      |    2 -
 drivers/staging/android/ashmem.c                   |    2 +-
 drivers/staging/media/as102/as102_fe.c             |    2 -
 drivers/staging/media/as102/as102_fw.c             |    5 +-
 drivers/staging/media/as102/as10x_cmd.c            |   28 +-
 drivers/staging/media/dt3155v4l/dt3155v4l.c        |    4 +
 drivers/staging/media/easycap/easycap_main.c       | 1662 ++++++-----
 drivers/staging/media/go7007/go7007-v4l2.c         |    2 -
 drivers/staging/media/go7007/s2250-loader.c        |    2 +
 drivers/staging/media/lirc/lirc_imon.c             |    4 -
 drivers/staging/media/lirc/lirc_sasem.c            |    4 -
 drivers/usb/gadget/uvc_queue.c                     |    2 +-
 drivers/usb/gadget/uvc_v4l2.c                      |    2 +-
 include/linux/Kbuild                               |    1 +
 include/linux/dvb/frontend.h                       |   51 +-
 include/linux/dvb/version.h                        |    2 +-
 {drivers/input => include/linux}/fixp-arith.h      |    0
 include/linux/v4l2-dv-timings.h                    |  816 ++++++
 include/linux/v4l2-subdev.h                        |   41 +
 include/linux/videodev2.h                          |  372 ++-
 include/media/media-entity.h                       |    5 +-
 include/media/mt9p031.h                            |   19 +-
 include/media/omap3isp.h                           |   29 +
 include/media/rc-map.h                             |    3 +
 include/media/s5p_fimc.h                           |   16 +
 include/media/saa7146.h                            |    4 +-
 include/media/saa7146_vv.h                         |   25 +-
 include/media/sh_mobile_ceu.h                      |    1 +
 include/media/smiapp.h                             |   84 +
 include/media/soc_camera.h                         |    6 +-
 include/media/soc_mediabus.h                       |   21 +
 include/media/v4l2-ctrls.h                         |   40 +-
 include/media/v4l2-dev.h                           |   25 +
 include/media/v4l2-event.h                         |   24 +-
 include/media/v4l2-ioctl.h                         |    6 +
 include/media/v4l2-subdev.h                        |   55 +-
 include/media/videobuf-dma-contig.h                |   10 +
 kernel/kfifo.c                                     |    1 +
 sound/i2c/other/tea575x-tuner.c                    |    3 +
 465 files changed, 39196 insertions(+), 16784 deletions(-)
 create mode 100644 Documentation/DocBook/media/v4l/pixfmt-srggb10dpcm8.xml
 create mode 100644 Documentation/DocBook/media/v4l/subdev-image-processing-crop.dia
 create mode 100644 Documentation/DocBook/media/v4l/subdev-image-processing-crop.svg
 create mode 100644 Documentation/DocBook/media/v4l/subdev-image-processing-full.dia
 create mode 100644 Documentation/DocBook/media/v4l/subdev-image-processing-full.svg
 create mode 100644 Documentation/DocBook/media/v4l/subdev-image-processing-scaling-multi-source.dia
 create mode 100644 Documentation/DocBook/media/v4l/subdev-image-processing-scaling-multi-source.svg
 create mode 100644 Documentation/DocBook/media/v4l/vidioc-dv-timings-cap.xml
 create mode 100644 Documentation/DocBook/media/v4l/vidioc-enum-dv-timings.xml
 create mode 100644 Documentation/DocBook/media/v4l/vidioc-query-dv-timings.xml
 create mode 100644 Documentation/DocBook/media/v4l/vidioc-subdev-g-selection.xml
 create mode 100644 Documentation/video4linux/4CCs.txt
 create mode 100644 drivers/media/common/tuners/fc0011.c
 create mode 100644 drivers/media/common/tuners/fc0011.h
 create mode 100644 drivers/media/common/tuners/fc0012-priv.h
 create mode 100644 drivers/media/common/tuners/fc0012.c
 create mode 100644 drivers/media/common/tuners/fc0012.h
 create mode 100644 drivers/media/common/tuners/fc0013-priv.h
 create mode 100644 drivers/media/common/tuners/fc0013.c
 create mode 100644 drivers/media/common/tuners/fc0013.h
 create mode 100644 drivers/media/common/tuners/fc001x-common.h
 create mode 100644 drivers/media/common/tuners/tua9001.c
 create mode 100644 drivers/media/common/tuners/tua9001.h
 create mode 100644 drivers/media/common/tuners/tua9001_priv.h
 create mode 100644 drivers/media/dvb/dvb-usb/af9035.c
 create mode 100644 drivers/media/dvb/dvb-usb/af9035.h
 create mode 100644 drivers/media/dvb/frontends/af9033.c
 create mode 100644 drivers/media/dvb/frontends/af9033.h
 create mode 100644 drivers/media/dvb/frontends/af9033_priv.h
 create mode 100644 drivers/media/dvb/frontends/au8522_common.c
 create mode 100644 drivers/media/dvb/frontends/lg2160.c
 create mode 100644 drivers/media/dvb/frontends/lg2160.h
 create mode 100644 drivers/media/rc/keymaps/rc-asus-ps3-100.c
 create mode 100644 drivers/media/rc/keymaps/rc-medion-x10-digitainer.c
 create mode 100644 drivers/media/rc/keymaps/rc-medion-x10-or2x.c
 delete mode 100644 drivers/media/video/cpia2/cpia2dev.h
 delete mode 100644 drivers/media/video/et61x251/Kconfig
 delete mode 100644 drivers/media/video/et61x251/Makefile
 delete mode 100644 drivers/media/video/et61x251/et61x251.h
 delete mode 100644 drivers/media/video/et61x251/et61x251_core.c
 delete mode 100644 drivers/media/video/et61x251/et61x251_sensor.h
 delete mode 100644 drivers/media/video/et61x251/et61x251_tas5130d1b.c
 create mode 100644 drivers/media/video/gspca/autogain_functions.c
 delete mode 100644 drivers/media/video/mxb.h
 create mode 100644 drivers/media/video/s5p-fimc/Kconfig
 create mode 100644 drivers/media/video/s5p-fimc/fimc-lite-reg.c
 create mode 100644 drivers/media/video/s5p-fimc/fimc-lite-reg.h
 create mode 100644 drivers/media/video/s5p-fimc/fimc-lite.c
 create mode 100644 drivers/media/video/s5p-fimc/fimc-lite.h
 create mode 100644 drivers/media/video/s5p-fimc/fimc-m2m.c
 create mode 100644 drivers/media/video/s5p-fimc/fimc-reg.h
 delete mode 100644 drivers/media/video/s5p-fimc/regs-fimc.h
 create mode 100644 drivers/media/video/smiapp-pll.c
 create mode 100644 drivers/media/video/smiapp-pll.h
 create mode 100644 drivers/media/video/smiapp/Kconfig
 create mode 100644 drivers/media/video/smiapp/Makefile
 create mode 100644 drivers/media/video/smiapp/smiapp-core.c
 create mode 100644 drivers/media/video/smiapp/smiapp-limits.c
 create mode 100644 drivers/media/video/smiapp/smiapp-limits.h
 create mode 100644 drivers/media/video/smiapp/smiapp-quirk.c
 create mode 100644 drivers/media/video/smiapp/smiapp-quirk.h
 create mode 100644 drivers/media/video/smiapp/smiapp-reg-defs.h
 create mode 100644 drivers/media/video/smiapp/smiapp-reg.h
 create mode 100644 drivers/media/video/smiapp/smiapp-regs.c
 create mode 100644 drivers/media/video/smiapp/smiapp-regs.h
 create mode 100644 drivers/media/video/smiapp/smiapp.h
 create mode 100644 drivers/media/video/sta2x11_vip.c
 create mode 100644 drivers/media/video/sta2x11_vip.h
 rename {drivers/input => include/linux}/fixp-arith.h (100%)
 create mode 100644 include/linux/v4l2-dv-timings.h
 create mode 100644 include/media/smiapp.h
#1 lore raw
Quoted 5 lines · Mauro Carvalho Chehab

Hi Linus,

Please pull from:
git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media v4l_for_linus

Quoted 13 lines

For a series of patches for 3.5, including:
- some V4L2 API updates needed by embedded devices;
- DVB API extensions for ATSC-MH delivery system, used in US for mobile TV;
- new tuners for fc0011/0012/0013 and tua9001;
- a new dvb driver for af9033/9035;
- a new ATSC-MH frontend (lg2160);
- new remote controller keymaps;
- Removal of a few legacy webcam driver that got replaced by gspca on several kernel versions ago;
- a new driver for Exynos 4/5 webcams(s5pp fimc-lite);
- a new webcam sensor driver (smiapp);
- a new video input driver for embedded (sta2x1xx);
- several improvements, fixes, cleanups, etc inside the drivers.

Mauro,
Are you planning to PULL-request another set for the Kernel 3.5?

I wonder if it is possible to get in Thomas Mair Realtek RTL2832 DVB-T demod driver which adds support for few RTL2832U based designs.

http://patchwork.linuxtv.org/patch/11319/
http://patchwork.linuxtv.org/patch/11320/
http://patchwork.linuxtv.org/patch/11321/
http://patchwork.linuxtv.org/patch/11322/
http://patchwork.linuxtv.org/patch/11323/

regards
Antti

Signature · 1 line
http://palosaari.fi/
#2 lore raw
In reply to Mauro Carvalho Chehab

Hi Mauro,

Quoted 7 lines · Mauro Carvalho Chehab

Ezequiel Garcia (2):
     [media] em28xx: Make card_setup() and pre_card_setup() static [media] em28xx: Remove unused list_head struct for queued buffers

Ezequiel García (19):
     [media] em28xx: Remove redundant dev->ctl_input set [media] em28xx: Export em28xx_[read,write]_reg functions as SYMBOL_GPL

Looks like I have a clone ;)

I wasn't sure how to handle the accentuated "i" in García. Perhaps this change obeys the fact in some point, I changed the way gmail sends my name.
I have always signed-off as Garcia (non accentuated), despite being wrong.

It's not really important, right?

#3 lore raw

Hi Ezequiel,

Em 24-05-2012 13:33, Ezequiel Garcia escreveu:

Quoted 8 lines

Hi Mauro,

Quoted 4 lines · Mauro Carvalho Chehab

Ezequiel Garcia (2):
[media] em28xx: Make card_setup() and pre_card_setup() static [media] em28xx: Remove unused list_head struct for queued buffers

Quoted 5 lines
Quoted 3 lines

Ezequiel García (19):
[media] em28xx: Remove redundant dev->ctl_input set [media] em28xx: Export em28xx_[read,write]_reg functions as SYMBOL_GPL

Looks like I have a clone ;)

:)

Quoted 3 lines

I wasn't sure how to handle the accentuated "i" in García. Perhaps this change obeys the fact in some point, I changed the way gmail sends my name.

The from: comes from the email header, so if you changed it on your emailer, it will affect the way it will be handled.

Quoted 3 lines

I have always signed-off as Garcia (non accentuated), despite being wrong.

It's not really important, right?

No, this is not relevant. It is not uncommon that the from: line is not matching the signed-off-by line, due to lowercase/upserspace and accents, among other issues.

Regards,
Mauro

#4 lore raw
In reply to Mauro Carvalho Chehab

Btw, I only noticed now, because I normally don't build DVB on my main machine with "oldconfig" - why the hell does DVB add tuners with "default m"?

Why would *anybody* with an old config ever want to get those new drivers as modules?

Get rid of all the stupid

default m if DVB_FE_CUSTOMISE

because there's no reason for them. If somebody wants that module, they can damn well press the 'm' button. There's absolutely no reason for it to default to on.

This is true of *all* drivers. No driver (and certainly DVB is not at all an exception) is so important that it should be "default m" (or y).

There are a few valid reasons to use "default m/y", but I don't see that that is the case here:

- if you have an *existing* driver that got split up, and "make
oldconfig" with that old driver enabled would result in it no longer supporting the same capability, then a

default OLD_DRIVER_WAS_ENABLED

is appropriate - it makes "oldconfig" work the way people expect it to work.

But this is only when that piece of hardware used to be supported
already, it's irrelevant for new hardware.

- if it's *such* a basic piece of hardware that you simply don't want
to bother the user with an insane default. Like supporting an ATKBD driver on a PC etc.

This simply isn't true for media devices.

So stop doing the silly "enable this driver by default for old configurations". It's *wrong*.

Linus

#5 lore raw

Hi Linus,

Em 24-05-2012 17:42, Linus Torvalds escreveu:

Quoted 33 lines

Btw, I only noticed now, because I normally don't build DVB on my main machine with "oldconfig" - why the hell does DVB add tuners with "default m"?

Why would *anybody* with an old config ever want to get those new drivers as modules?

Get rid of all the stupid

default m if DVB_FE_CUSTOMISE

because there's no reason for them. If somebody wants that module, they can damn well press the 'm' button. There's absolutely no reason for it to default to on.

This is true of *all* drivers. No driver (and certainly DVB is not at all an exception) is so important that it should be "default m" (or y).

There are a few valid reasons to use "default m/y", but I don't see that that is the case here:

- if you have an *existing* driver that got split up, and "make
oldconfig" with that old driver enabled would result in it no longer supporting the same capability, then a

default OLD_DRIVER_WAS_ENABLED

is appropriate - it makes "oldconfig" work the way people expect it to work.

But this is only when that piece of hardware used to be supported
already, it's irrelevant for new hardware.

Quoted 8 lines

- if it's *such* a basic piece of hardware that you simply don't want
to bother the user with an insane default. Like supporting an ATKBD driver on a PC etc.

This simply isn't true for media devices.

So stop doing the silly "enable this driver by default for old configurations". It's *wrong*.

For a DVB driver to work, it is generally required to select 3 drivers:
a bridge driver, a tuner driver and a demodulator driver.

The Kconfig default for DVB_FE_CUSTOMISE is 'n'. So, if no DVB bridge is selected, nothing will be compiled.

The same bridge driver can be used with several different tuner and demods. On almost all cases, the tuner and demod drivers are connected via an I2C bus.

The Kconfig logic was built in a way that, when a bridge driver is selected, all the drivers that might be required will also be selected.

For example:

config DVB_USB_DIB0700
tristate "DiBcom DiB0700 USB DVB devices (see help for supported devices)" depends on DVB_USB
select DVB_DIB7000P if !DVB_FE_CUSTOMISE
select DVB_DIB7000M if !DVB_FE_CUSTOMISE
select DVB_DIB8000 if !DVB_FE_CUSTOMISE
select DVB_DIB3000MC if !DVB_FE_CUSTOMISE
select DVB_S5H1411 if !DVB_FE_CUSTOMISE
select DVB_LGDT3305 if !DVB_FE_CUSTOMISE
select DVB_TUNER_DIB0070 if !DVB_FE_CUSTOMISE
select DVB_TUNER_DIB0090 if !DVB_FE_CUSTOMISE
select MEDIA_TUNER_MT2060 if !MEDIA_TUNER_CUSTOMISE
select MEDIA_TUNER_MT2266 if !MEDIA_TUNER_CUSTOMISE
select MEDIA_TUNER_XC2028 if !MEDIA_TUNER_CUSTOMISE
select MEDIA_TUNER_XC5000 if !MEDIA_TUNER_CUSTOMISE
select MEDIA_TUNER_XC4000 if !MEDIA_TUNER_CUSTOMISE
select MEDIA_TUNER_MXL5007T if !MEDIA_TUNER_CUSTOMISE

This driver supports 82 different types of devices. When this driver is selected, all supported variants of tuners and frontends are selected, meaning that any of the 82 types will work.

Keeping DVB_FE_CUSTOMISE not set is the recommended way, as the options DVB_FE_CUSTOMISE and MEDIA_TUNER_CUSTOMISE are there only to allow advanced users to disable the devices that aren't needed.

For example, one of the ISDB-T devices I have here requires only those drivers to work:
DVB_USB_DIB0700 - USB bridge and I2C controller
DVB_DIB8000 - ISDB-T demodulator
DVB_TUNER_DIB0070 - the PLL tuner driver

If just DVB_USB_DIB0700 is selected, the bridge driver will be loaded, but no DVB devices will appear, as the driver won't initialize properly.

On the other hand, if those tree modules are selected, the remaining tuners/demods can be disabled, as the bridge driver won't require them.

So, this is an option that it is useful for embedded systems, where there's just one specific hardware model to be used.

So, in order to avoid non embedded/advanced users that might enable DVB_FE_CUSTOMISE by mistake to generate lots of not-a-bug bugzillas, when the DVB customise options are enabled, all I2C modules are selected by default, using the "default m if DVB_FE_CUSTOMISE" logic.

So, I think that, in this specific case, the "default m if DVB_FE_CUSTOMISE" makes sense.

Regards,
Mauro

#6 lore raw
Quoted 3 lines · Mauro Carvalho Chehab

The Kconfig default for DVB_FE_CUSTOMISE is 'n'. So, if no DVB bridge is selected, nothing will be compiled.

Sadly, it looks like the default for distro kernels is 'y'.

Which means that if you start with a distro kernel config, and then try to cut it down to match your system, you end up screwed in the future - all the new hardware will default to on.

At least that's how I noticed it. Very annoying.

Linus

#7 lore raw

Em 24-05-2012 19:40, Linus Torvalds escreveu:

Quoted 7 lines
Quoted 3 lines · Mauro Carvalho Chehab

The Kconfig default for DVB_FE_CUSTOMISE is 'n'. So, if no DVB bridge is selected, nothing will be compiled.

Sadly, it looks like the default for distro kernels is 'y'.

I'll change the default on Fedora (f16/f17/rawhide).

Quoted 5 lines

Which means that if you start with a distro kernel config, and then try to cut it down to match your system, you end up screwed in the future - all the new hardware will default to on.

At least that's how I noticed it. Very annoying.

A simple way to solve it seems to make those options dependent on CONFIG_EXPERT.

Not sure if all usual distributions disable it, but I guess most won't have EXPERT enabled.

The enclosed patch does that. If nobody complains, I'll submit it together with the next git pull request.

Regards,
Mauro

-

[RFC PATCH] Make tuner/frontend options dependent on EXPERT

The media CUSTOMISE options are there to allow embedded systems and advanced users to disable tuner/frontends that are supported by a bridge driver to be disabled, in order to save some disk space and memory, when compiled builtin.

However, distros are mistakenly enabling it, causing problems when a make oldconfig is used.

Make those options dependent on EXPERT, in order to avoid such annoyance behavior.

drivers/media/common/tuners/Kconfig +1 -0
index bbf4945..702a3bf 100644
@@ -35,6 +35,7 @@ config MEDIA_TUNER
 config MEDIA_TUNER_CUSTOMISE
 	bool "Customize analog and hybrid tuner modules to build"
 	depends on MEDIA_TUNER
+	depends on EXPERT
 	default y if EXPERT
 	help
 	  This allows the user to deselect tuner drivers unnecessary
drivers/media/dvb/frontends/Kconfig +1 -0
index b98ebb2..6d3c2f7 100644
@@ -1,6 +1,7 @@
 config DVB_FE_CUSTOMISE
 	bool "Customise the frontend modules to build"
 	depends on DVB_CORE
+	depends on EXPERT
 	default y if EXPERT
 	help
 	  This allows the user to select/deselect frontend drivers for their
#8 lore raw

25.05.2012 15:12, Mauro Carvalho Chehab kirjoitti:

Quoted 48 lines

Em 24-05-2012 19:40, Linus Torvalds escreveu:

Quoted 7 lines
Quoted 3 lines · Mauro Carvalho Chehab

The Kconfig default for DVB_FE_CUSTOMISE is 'n'. So, if no DVB bridge is selected, nothing will be compiled.

Sadly, it looks like the default for distro kernels is 'y'.

I'll change the default on Fedora (f16/f17/rawhide).

Quoted 5 lines

Which means that if you start with a distro kernel config, and then try to cut it down to match your system, you end up screwed in the future - all the new hardware will default to on.

At least that's how I noticed it. Very annoying.

A simple way to solve it seems to make those options dependent on CONFIG_EXPERT.

Not sure if all usual distributions disable it, but I guess most won't have EXPERT enabled.

The enclosed patch does that. If nobody complains, I'll submit it together with the next git pull request.

Regards,
Mauro

-

[RFC PATCH] Make tuner/frontend options dependent on EXPERT

The media CUSTOMISE options are there to allow embedded systems and advanced users to disable tuner/frontends that are supported by a bridge driver to be disabled, in order to save some disk space and memory, when compiled builtin.

However, distros are mistakenly enabling it, causing problems when a make oldconfig is used.

Make those options dependent on EXPERT, in order to avoid such annoyance behavior.

drivers/media/common/tuners/Kconfig +0 -0
index bbf4945..702a3bf 100644

drivers/media/common/tuners/Kconfig config MEDIA_TUNER · line 39

Quoted 5 lines
drivers/media/common/tuners/Kconfig +1 -0
@@ -35,6 +35,7 @@ config MEDIA_TUNER
 config MEDIA_TUNER_CUSTOMISE
 	bool "Customize analog and hybrid tuner modules to build"
 	depends on MEDIA_TUNER
+	depends on EXPERT
 	default y if EXPERT
        ^^^^^^^^^^^^^^^^^^^

Hmm, why should CONFIG_EXPERT automatically mean that the tuner modules should be customized? I'd think this shouldn't default to y even with EXPERT.

Not a biggie, just thought I'd point it out :)

(as a sidenote, on Mageia kernels CONFIG_EXPERT is on... didn't check why, could be just historical reasons)

drivers/media/dvb/frontends/Kconfig line 5

Quoted 12 lines
drivers/media/common/tuners/Kconfig +0 -0
 	help
 	  This allows the user to deselect tuner drivers unnecessary
drivers/media/dvb/frontends/Kconfig +1 -0
index b98ebb2..6d3c2f7 100644
@@ -1,6 +1,7 @@
 config DVB_FE_CUSTOMISE
 	bool "Customise the frontend modules to build"
 	depends on DVB_CORE
+	depends on EXPERT
 	default y if EXPERT

Ditto.

Quoted 2 lines
drivers/media/dvb/frontends/Kconfig +0 -0
 	help
 	  This allows the user to select/deselect frontend drivers for their
Signature · 1 line
Anssi Hannula
#9 lore raw

Em 25-05-2012 11:49, Anssi Hannula escreveu:

Quoted 65 lines

25.05.2012 15:12, Mauro Carvalho Chehab kirjoitti:

Quoted 48 lines

Em 24-05-2012 19:40, Linus Torvalds escreveu:

Quoted 7 lines
Quoted 3 lines · Mauro Carvalho Chehab

The Kconfig default for DVB_FE_CUSTOMISE is 'n'. So, if no DVB bridge is selected, nothing will be compiled.

Sadly, it looks like the default for distro kernels is 'y'.

I'll change the default on Fedora (f16/f17/rawhide).

Quoted 5 lines

Which means that if you start with a distro kernel config, and then try to cut it down to match your system, you end up screwed in the future - all the new hardware will default to on.

At least that's how I noticed it. Very annoying.

A simple way to solve it seems to make those options dependent on CONFIG_EXPERT.

Not sure if all usual distributions disable it, but I guess most won't have EXPERT enabled.

The enclosed patch does that. If nobody complains, I'll submit it together with the next git pull request.

Regards,
Mauro

-

[RFC PATCH] Make tuner/frontend options dependent on EXPERT

The media CUSTOMISE options are there to allow embedded systems and advanced users to disable tuner/frontends that are supported by a bridge driver to be disabled, in order to save some disk space and memory, when compiled builtin.

However, distros are mistakenly enabling it, causing problems when a make oldconfig is used.

Make those options dependent on EXPERT, in order to avoid such annoyance behavior.

drivers/media/common/tuners/Kconfig +0 -0
index bbf4945..702a3bf 100644

drivers/media/common/tuners/Kconfig config MEDIA_TUNER · line 39

Quoted 5 lines
drivers/media/common/tuners/Kconfig +1 -0
@@ -35,6 +35,7 @@ config MEDIA_TUNER
 config MEDIA_TUNER_CUSTOMISE
 	bool "Customize analog and hybrid tuner modules to build"
 	depends on MEDIA_TUNER
+	depends on EXPERT
 	default y if EXPERT
        ^^^^^^^^^^^^^^^^^^^

Hmm, why should CONFIG_EXPERT automatically mean that the tuner modules should be customized? I'd think this shouldn't default to y even with EXPERT.

Not a biggie, just thought I'd point it out :)

(as a sidenote, on Mageia kernels CONFIG_EXPERT is on... didn't check why, could be just historical reasons)

Quoted 18 lines

drivers/media/dvb/frontends/Kconfig line 5

Quoted 12 lines
drivers/media/common/tuners/Kconfig +0 -0
 	help
 	  This allows the user to deselect tuner drivers unnecessary
drivers/media/dvb/frontends/Kconfig +1 -0
index b98ebb2..6d3c2f7 100644
@@ -1,6 +1,7 @@
 config DVB_FE_CUSTOMISE
 	bool "Customise the frontend modules to build"
 	depends on DVB_CORE
+	depends on EXPERT
 	default y if EXPERT

Ditto.

Quoted 2 lines
drivers/media/dvb/frontends/Kconfig +0 -0
 	help
 	  This allows the user to select/deselect frontend drivers for their

This was added on the changeset b3fc1782c8 (see below). A latter changeset (6a108a14fa3) renamed EMBEDDED to EXPERT.

For embedded systems, it makes more sense to customize the tuners/demods, in order to remove drivers that would never be used there. That's the rationale behind this patch.

Quoted 1 line

From my side, I don't mind removing the "default y if EXPERT", but, as I don't usually

work with embedded devices, I don't care much about that. It would be great to hear some comments from embedded people about that as well.

That's said, it is weird that Mageia is using CONFIG_EXPERT. Are they using those two Kconfig options enabled as well?

Regards,
Mauro

-

commit b3fc1782c8b84574e44cf5869c9afa75523e2db8

Author: Guennadi Liakhovetski <[email protected]>
Date:   Thu Aug 5 18:09:28 2010 -0300

V4L/DVB: V4L: do not autoselect components on embedded systems

Tuner, DVB frontend and video helper chip drivers are by default autoselected by their respective host cards, this, however, doesn't make much sense on SoC-based systems. Disable autoselection on EMBEDDED systems.

drivers/media/common/tuners/Kconfig +1 -1
index 409a426..b3ed5da 100644
@@ -34,7 +34,7 @@ config MEDIA_TUNER
 menuconfig MEDIA_TUNER_CUSTOMISE
 	bool "Customize analog and hybrid tuner modules to build"
 	depends on MEDIA_TUNER
-	default n
+	default y if EMBEDDED
 	help
 	  This allows the user to deselect tuner drivers unnecessary
 	  for their hardware from the build. Use this option with care
drivers/media/dvb/frontends/Kconfig +1 -1
index 51d578a..b5f6a04 100644
@@ -1,7 +1,7 @@
 config DVB_FE_CUSTOMISE
 	bool "Customise the frontend modules to build"
 	depends on DVB_CORE
-	default N
+	default y if EMBEDDED
 	help
 	  This allows the user to select/deselect frontend drivers for their
 	  hardware from the build.
drivers/media/video/Kconfig +1 -1
index c70b67d..9d55fef 100644
@@ -83,7 +83,7 @@ config VIDEO_FIXED_MINOR_RANGES
 
 config VIDEO_HELPER_CHIPS_AUTO
 	bool "Autoselect pertinent encoders/decoders and other helper chips"
-	default y
+	default y if !EMBEDDED
 	---help---
 	  Most video cards may require additional modules to encode or
 	  decode audio/video standards. This option will autoselect
#10 lore raw

25.05.2012 18:21, Mauro Carvalho Chehab kirjoitti:

Quoted 88 lines

Em 25-05-2012 11:49, Anssi Hannula escreveu:

Quoted 65 lines

25.05.2012 15:12, Mauro Carvalho Chehab kirjoitti:

Quoted 48 lines

Em 24-05-2012 19:40, Linus Torvalds escreveu:

Quoted 7 lines
Quoted 3 lines · Mauro Carvalho Chehab

The Kconfig default for DVB_FE_CUSTOMISE is 'n'. So, if no DVB bridge is selected, nothing will be compiled.

Sadly, it looks like the default for distro kernels is 'y'.

I'll change the default on Fedora (f16/f17/rawhide).

Quoted 5 lines

Which means that if you start with a distro kernel config, and then try to cut it down to match your system, you end up screwed in the future - all the new hardware will default to on.

At least that's how I noticed it. Very annoying.

A simple way to solve it seems to make those options dependent on CONFIG_EXPERT.

Not sure if all usual distributions disable it, but I guess most won't have EXPERT enabled.

The enclosed patch does that. If nobody complains, I'll submit it together with the next git pull request.

Regards,
Mauro

-

[RFC PATCH] Make tuner/frontend options dependent on EXPERT

The media CUSTOMISE options are there to allow embedded systems and advanced users to disable tuner/frontends that are supported by a bridge driver to be disabled, in order to save some disk space and memory, when compiled builtin.

However, distros are mistakenly enabling it, causing problems when a make oldconfig is used.

Make those options dependent on EXPERT, in order to avoid such annoyance behavior.

drivers/media/common/tuners/Kconfig +0 -0
index bbf4945..702a3bf 100644

drivers/media/common/tuners/Kconfig config MEDIA_TUNER · line 39

Quoted 5 lines
drivers/media/common/tuners/Kconfig +1 -0
@@ -35,6 +35,7 @@ config MEDIA_TUNER
 config MEDIA_TUNER_CUSTOMISE
 	bool "Customize analog and hybrid tuner modules to build"
 	depends on MEDIA_TUNER
+	depends on EXPERT
 	default y if EXPERT
        ^^^^^^^^^^^^^^^^^^^

Hmm, why should CONFIG_EXPERT automatically mean that the tuner modules should be customized? I'd think this shouldn't default to y even with EXPERT.

Not a biggie, just thought I'd point it out :)

(as a sidenote, on Mageia kernels CONFIG_EXPERT is on... didn't check why, could be just historical reasons)

Quoted 18 lines

drivers/media/dvb/frontends/Kconfig line 5

Quoted 12 lines
drivers/media/common/tuners/Kconfig +0 -0
 	help
 	  This allows the user to deselect tuner drivers unnecessary
drivers/media/dvb/frontends/Kconfig +1 -0
index b98ebb2..6d3c2f7 100644
@@ -1,6 +1,7 @@
 config DVB_FE_CUSTOMISE
 	bool "Customise the frontend modules to build"
 	depends on DVB_CORE
+	depends on EXPERT
 	default y if EXPERT

Ditto.

Quoted 2 lines
drivers/media/dvb/frontends/Kconfig +0 -0
 	help
 	  This allows the user to select/deselect frontend drivers for their

This was added on the changeset b3fc1782c8 (see below). A latter changeset (6a108a14fa3) renamed EMBEDDED to EXPERT.

Quoted 6 lines

For embedded systems, it makes more sense to customize the tuners/demods, in order to remove drivers that would never be used there. That's the rationale behind this patch.

From my side, I don't mind removing the "default y if EXPERT", but, as I don't usually work with embedded devices, I don't care much about that. It would be great to hear some comments from embedded people about that as well.

OK.

Quoted 2 lines

That's said, it is weird that Mageia is using CONFIG_EXPERT. Are they using those two Kconfig options enabled as well?

No, *_CUSTOMISE are unset. CC'd our kernel maintainer in case he remembers off-hand why CONFIG_EXPERT is enabled.

Quoted 18 lines

Regards,
Mauro

-

commit b3fc1782c8b84574e44cf5869c9afa75523e2db8

Author: Guennadi Liakhovetski <[email protected]>
Date:   Thu Aug 5 18:09:28 2010 -0300

V4L/DVB: V4L: do not autoselect components on embedded systems

Tuner, DVB frontend and video helper chip drivers are by default autoselected by their respective host cards, this, however, doesn't make much sense on SoC-based systems. Disable autoselection on EMBEDDED systems.

[...]

Signature · 1 line
Anssi Hannula
#11 lore raw
In reply to Mauro Carvalho Chehab

Hi Mauro

Quoted 2 lines · Mauro Carvalho Chehab

Em 25-05-2012 11:49, Anssi Hannula escreveu:

Quoted 1 line

25.05.2012 15:12, Mauro Carvalho Chehab kirjoitti:

[snip]

Quoted 56 lines
Quoted 34 lines
Quoted 18 lines

[RFC PATCH] Make tuner/frontend options dependent on EXPERT

The media CUSTOMISE options are there to allow embedded systems and advanced users to disable tuner/frontends that are supported by a bridge driver to be disabled, in order to save some disk space and memory, when compiled builtin.

However, distros are mistakenly enabling it, causing problems when a make oldconfig is used.

Make those options dependent on EXPERT, in order to avoid such annoyance behavior.

drivers/media/common/tuners/Kconfig +0 -0
index bbf4945..702a3bf 100644

drivers/media/common/tuners/Kconfig config MEDIA_TUNER · line 39

Quoted 5 lines
drivers/media/common/tuners/Kconfig +1 -0
@@ -35,6 +35,7 @@ config MEDIA_TUNER
 config MEDIA_TUNER_CUSTOMISE
 	bool "Customize analog and hybrid tuner modules to build"
 	depends on MEDIA_TUNER
+	depends on EXPERT
 	default y if EXPERT
        ^^^^^^^^^^^^^^^^^^^

Hmm, why should CONFIG_EXPERT automatically mean that the tuner modules should be customized? I'd think this shouldn't default to y even with EXPERT.

Not a biggie, just thought I'd point it out :)

(as a sidenote, on Mageia kernels CONFIG_EXPERT is on... didn't check why, could be just historical reasons)

Quoted 18 lines

drivers/media/dvb/frontends/Kconfig line 5

Quoted 12 lines
drivers/media/common/tuners/Kconfig +0 -0
 	help
 	  This allows the user to deselect tuner drivers unnecessary
drivers/media/dvb/frontends/Kconfig +1 -0
index b98ebb2..6d3c2f7 100644
@@ -1,6 +1,7 @@
 config DVB_FE_CUSTOMISE
 	bool "Customise the frontend modules to build"
 	depends on DVB_CORE
+	depends on EXPERT
 	default y if EXPERT

Ditto.

Quoted 2 lines
drivers/media/dvb/frontends/Kconfig +0 -0
 	help
 	  This allows the user to select/deselect frontend drivers for their

This was added on the changeset b3fc1782c8 (see below). A latter changeset (6a108a14fa3) renamed EMBEDDED to EXPERT.

Quoted 6 lines

For embedded systems, it makes more sense to customize the tuners/demods, in order to remove drivers that would never be used there. That's the rationale behind this patch.

Quoted 1 line

From my side, I don't mind removing the "default y if EXPERT", but, as I don't usually

work with embedded devices, I don't care much about that. It would be great to hear some comments from embedded people about that as well.

My opinion hasn't changed since then. I actually wanted an even larger change, but it has been shrunk to what we see below. Hans also wanted to reorganise Kconfig, so, I hoped, situation would improve after that, but it didn't. And with every new kernel new tuner modules get added, which automatically get enabled, so, every time I upgrade to a newer kernel I have to make sure to deselect them. This doesn't seem a very optimal situation to me. BTW, what is stated below (the commit message is not completely mine, it has been edited, Mauro, by you?) is also not always
true: tuner modules are not autoselected by host cards if customisation is on. They simply all default to "m" in this case.

Thanks
Guennadi

Quoted 59 lines

That's said, it is weird that Mageia is using CONFIG_EXPERT. Are they using those two Kconfig options enabled as well?

Regards,
Mauro

-

commit b3fc1782c8b84574e44cf5869c9afa75523e2db8

Author: Guennadi Liakhovetski <[email protected]>
Date:   Thu Aug 5 18:09:28 2010 -0300

V4L/DVB: V4L: do not autoselect components on embedded systems

Tuner, DVB frontend and video helper chip drivers are by default autoselected by their respective host cards, this, however, doesn't make much sense on SoC-based systems. Disable autoselection on EMBEDDED systems.

drivers/media/common/tuners/Kconfig +1 -1
index 409a426..b3ed5da 100644
@@ -34,7 +34,7 @@ config MEDIA_TUNER
 menuconfig MEDIA_TUNER_CUSTOMISE
 	bool "Customize analog and hybrid tuner modules to build"
 	depends on MEDIA_TUNER
-	default n
+	default y if EMBEDDED
 	help
 	  This allows the user to deselect tuner drivers unnecessary
 	  for their hardware from the build. Use this option with care
drivers/media/dvb/frontends/Kconfig +1 -1
index 51d578a..b5f6a04 100644
@@ -1,7 +1,7 @@
 config DVB_FE_CUSTOMISE
 	bool "Customise the frontend modules to build"
 	depends on DVB_CORE
-	default N
+	default y if EMBEDDED
 	help
 	  This allows the user to select/deselect frontend drivers for their
 	  hardware from the build.
drivers/media/video/Kconfig +0 -0
index c70b67d..9d55fef 100644

drivers/media/video/Kconfig config VIDEO_FIXED_MINOR_RANGES · line 89

Quoted 8 lines
drivers/media/video/Kconfig +1 -1
@@ -83,7 +83,7 @@ config VIDEO_FIXED_MINOR_RANGES
 
 config VIDEO_HELPER_CHIPS_AUTO
 	bool "Autoselect pertinent encoders/decoders and other helper chips"
-	default y
+	default y if !EMBEDDED
 	---help---
 	  Most video cards may require additional modules to encode or
 	  decode audio/video standards. This option will autoselect

---
Guennadi Liakhovetski, Ph.D.
Freelance Open-Source Software Developer
http://www.open-technology.de/

#12 lore raw
In reply to Mauro Carvalho Chehab
Quoted 7 lines · On May 25 Mauro Carvalho Chehab wrote:

A simple way to solve it seems to make those options dependent on CONFIG_EXPERT.

Not sure if all usual distributions disable it, but I guess most won't have EXPERT enabled.

The enclosed patch does that. If nobody complains, I'll submit it together with the next git pull request.

I only want dvb-core and firedtv. But when I switch off CONFIG_MEDIA_TUNER_CUSTOMISE, suddenly also

  CC [M]  drivers/media/common/tuners/tuner-xc2028.o
  CC [M]  drivers/media/common/tuners/tuner-simple.o
  CC [M]  drivers/media/common/tuners/tuner-types.o
  CC [M]  drivers/media/common/tuners/mt20xx.o
  CC [M]  drivers/media/common/tuners/tda8290.o
  CC [M]  drivers/media/common/tuners/tea5767.o
  CC [M]  drivers/media/common/tuners/tea5761.o
  CC [M]  drivers/media/common/tuners/tda9887.o
  CC [M]  drivers/media/common/tuners/tda827x.o
  CC [M]  drivers/media/common/tuners/tda18271-maps.o
  CC [M]  drivers/media/common/tuners/tda18271-common.o
  CC [M]  drivers/media/common/tuners/tda18271-fe.o
  CC [M]  drivers/media/common/tuners/xc5000.o
  CC [M]  drivers/media/common/tuners/xc4000.o
  CC [M]  drivers/media/common/tuners/mc44s803.o
  LD [M]  drivers/media/common/tuners/tda18271.o

are built. Why is that?

$ grep DVB .config
CONFIG_DVB_CORE=m
# CONFIG_DVB_NET is not set
CONFIG_DVB_MAX_ADAPTERS=8
# CONFIG_DVB_DYNAMIC_MINORS is not set
CONFIG_DVB_CAPTURE_DRIVERS=y
# CONFIG_DVB_BUDGET_CORE is not set
# CONFIG_DVB_TTUSB_BUDGET is not set
# CONFIG_DVB_TTUSB_DEC is not set
# CONFIG_DVB_B2C2_FLEXCOP is not set
# CONFIG_DVB_PLUTO2 is not set
CONFIG_DVB_FIREDTV=m
CONFIG_DVB_FIREDTV_INPUT=y
# CONFIG_DVB_PT1 is not set
# CONFIG_DVB_NGENE is not set
# CONFIG_DVB_DDBRIDGE is not set
# Supported DVB Frontends
# CONFIG_DVB_FE_CUSTOMISE is not set
# DVB-S (satellite) frontends
# DVB-T (terrestrial) frontends
# DVB-C (cable) frontends
# SEC control devices for DVB-S
# CONFIG_DVB_DUMMY_FE is not set
Signature · 3 lines
Stefan Richter
-=====-===-- -=-= ==-=-
http://arcgraph.de/sr/
#13 lore raw

Em 25-05-2012 19:38, Stefan Richter escreveu:

Quoted 29 lines · On May 25 Mauro Carvalho Chehab wrote:
Quoted 7 lines

A simple way to solve it seems to make those options dependent on CONFIG_EXPERT.

Not sure if all usual distributions disable it, but I guess most won't have EXPERT enabled.

The enclosed patch does that. If nobody complains, I'll submit it together with the next git pull request.

I only want dvb-core and firedtv. But when I switch off CONFIG_MEDIA_TUNER_CUSTOMISE, suddenly also

  CC [M]  drivers/media/common/tuners/tuner-xc2028.o
  CC [M]  drivers/media/common/tuners/tuner-simple.o
  CC [M]  drivers/media/common/tuners/tuner-types.o
  CC [M]  drivers/media/common/tuners/mt20xx.o
  CC [M]  drivers/media/common/tuners/tda8290.o
  CC [M]  drivers/media/common/tuners/tea5767.o
  CC [M]  drivers/media/common/tuners/tea5761.o
  CC [M]  drivers/media/common/tuners/tda9887.o
  CC [M]  drivers/media/common/tuners/tda827x.o
  CC [M]  drivers/media/common/tuners/tda18271-maps.o
  CC [M]  drivers/media/common/tuners/tda18271-common.o
  CC [M]  drivers/media/common/tuners/tda18271-fe.o
  CC [M]  drivers/media/common/tuners/xc5000.o
  CC [M]  drivers/media/common/tuners/xc4000.o
  CC [M]  drivers/media/common/tuners/mc44s803.o
  LD [M]  drivers/media/common/tuners/tda18271.o
Quoted 1 line

are built. Why is that?

Those are the tuners supported by the tuner_core logic. The tuner_core module is required by all TV drivers that have analog support.

After the tuner rework to allow a driver under drivers/media/dvb to use the same tuner module as the ../v4l modules, there are now pure dvb drivers that don't use tune_core.

So, it makes sense to add a new config for tuner_core that will be selected only for devices with analog TV support.

Regards,
Mauro

#14 lore raw

Em 27-05-2012 11:47, Mauro Carvalho Chehab escreveu:

Quoted 35 lines

Em 25-05-2012 19:38, Stefan Richter escreveu:

Quoted 29 lines · On May 25 Mauro Carvalho Chehab wrote:
Quoted 7 lines

A simple way to solve it seems to make those options dependent on CONFIG_EXPERT.

Not sure if all usual distributions disable it, but I guess most won't have EXPERT enabled.

The enclosed patch does that. If nobody complains, I'll submit it together with the next git pull request.

I only want dvb-core and firedtv. But when I switch off CONFIG_MEDIA_TUNER_CUSTOMISE, suddenly also

  CC [M]  drivers/media/common/tuners/tuner-xc2028.o
  CC [M]  drivers/media/common/tuners/tuner-simple.o
  CC [M]  drivers/media/common/tuners/tuner-types.o
  CC [M]  drivers/media/common/tuners/mt20xx.o
  CC [M]  drivers/media/common/tuners/tda8290.o
  CC [M]  drivers/media/common/tuners/tea5767.o
  CC [M]  drivers/media/common/tuners/tea5761.o
  CC [M]  drivers/media/common/tuners/tda9887.o
  CC [M]  drivers/media/common/tuners/tda827x.o
  CC [M]  drivers/media/common/tuners/tda18271-maps.o
  CC [M]  drivers/media/common/tuners/tda18271-common.o
  CC [M]  drivers/media/common/tuners/tda18271-fe.o
  CC [M]  drivers/media/common/tuners/xc5000.o
  CC [M]  drivers/media/common/tuners/xc4000.o
  CC [M]  drivers/media/common/tuners/mc44s803.o
  LD [M]  drivers/media/common/tuners/tda18271.o
Quoted 1 line

are built. Why is that?

Those are the tuners supported by the tuner_core logic. The tuner_core module is required by all TV drivers that have analog support.

Quoted 6 lines

After the tuner rework to allow a driver under drivers/media/dvb to use the same tuner module as the ../v4l modules, there are now pure dvb drivers that don't use tune_core.

So, it makes sense to add a new config for tuner_core that will be selected only for devices with analog TV support.

The correct fix for it seems to change the Kconfig menu to be like:

<m> Multimedia support --->

   [ ]   Webcams and video grabbers support
   [ ]   Analog TV API and drivers support
   [ ]   Digital TV support
   [ ]   AM/FM radio receivers/transmitters support
   [ ]   Remote Controller support

and only select the tuner-core drivers if analog TV is selected.

I'll write some RFC patches for it for 3.6, posting them at linux-media.

Regards,
Mauro

#15 lore raw

cover Improve Kconfig selection for media devices

The Kconfig building system is improperly selecting some drivers, like analog TV tuners even when this is not required.

Rearrange the Kconfig in a way to prevent that.

Mauro Carvalho Chehab (3):
media: reorganize the main Kconfig items
media: Remove VIDEO_MEDIA Kconfig option
media: only show V4L devices based on device type selection

 drivers/media/Kconfig               |  114 +++++++++++++++++++++++------------
 drivers/media/common/tuners/Kconfig |   64 ++++++++++----------
 drivers/media/dvb/frontends/Kconfig |    1 +
 drivers/media/radio/Kconfig         |    1 +
 drivers/media/rc/Kconfig            |   29 ++++-----
 drivers/media/video/Kconfig         |   76 +++++++++++++++++------
 drivers/media/video/m5mols/Kconfig  |    1 +
 drivers/media/video/pvrusb2/Kconfig |    1 -
 drivers/media/video/smiapp/Kconfig  |    1 +
 9 files changed, 181 insertions(+), 107 deletions(-)
Signature · 1 line
1.7.8
#16 lore raw

RFC PATCH 1/3 media: reorganize the main Kconfig items

Change the main items to:

<m> Multimedia support --->

   [ ]   Webcams and video grabbers support
   [ ]   Analog TV API and drivers support
   [ ]   Digital TV support
   [ ]   AM/FM radio receivers/transmitters support
   [ ]   Remote Controller support

This provides an interface that is clearer to end users that are compiling the Kernel, and will allow the building system to automatically unselect drivers for unused functions.

---
 drivers/media/Kconfig               |  110 ++++++++++++++++++++++++-----------
 drivers/media/common/tuners/Kconfig |    1 +
 drivers/media/dvb/frontends/Kconfig |    1 +
 drivers/media/rc/Kconfig            |   29 ++++-----
 4 files changed, 90 insertions(+), 51 deletions(-)
drivers/media/Kconfig +75 -35
index 9575db4..8deddcd 100644
@@ -6,20 +6,83 @@ menuconfig MEDIA_SUPPORT
 	tristate "Multimedia support"
 	depends on HAS_IOMEM
 	help
-	  If you want to use Video for Linux, DVB for Linux, or DAB adapters,
+	  If you want to use Webcams, Video grabber devices and/or TV devices
 	  enable this option and other options below.
 
+	  Additional info and docs are available on the web at
+	  <http://linuxtv.org>
+
 if MEDIA_SUPPORT
 
 comment "Multimedia core support"
 
 #
+# Multimedia support - automatically enable V4L2 and DVB core
+#
+config MEDIA_WEBCAM_SUPP
+	bool "Webcams and video grabbers support"
+	---help---
+	  Enable support for webcams and video grabbers.
+
+	  Say Y when you have a webcam or a video capture grabber board.
+
+config MEDIA_ANALOG_TV_SUPP
+	bool "Analog TV API and drivers support"
+	---help---
+	  Enable analog TV support.
+
+	  Say Y when you have a TV board with analog support of with an
+	  hybrid analog/digital TV chipset.
+
+	  Note: There are several DVB cards that are based on chips that
+		supports both analog and digital TV. Disabling this option
+		will disable support for them.
+
+config MEDIA_DIGITAL_TV_SUPP
+	bool "Digital TV support"
+	---help---
+	  Enable digital TV support.
+
+	  Say Y when you have a board with digital support or a board with
+	  hybrid digital TV and analog TV.
+
+config MEDIA_RADIO_SUPP
+	bool "AM/FM radio receivers/transmitters support"
+	---help---
+	  Enable AM/FM radio support.
+
+	  Additional info and docs are available on the web at
+	  <http://linuxtv.org>
+
+	  Say Y when you have a board with radio support.
+
+	  Note: There are several TV cards that are based on chips that
+		supports radio reception Disabling this option will
+		disable support for them.
+
+menuconfig RC_CORE_SUPP
+	bool "Remote Controller support"
+	depends on INPUT
+	---help---
+	  Enable support for Remote Controllers on Linux. This is
+	  needed in order to support several video capture adapters,
+	  standalone IR receivers/transmitters, and RF receivers.
+
+	  Enable this option if you have a video capture board even
+	  if you don't need IR, as otherwise, you may not be able to
+	  compile the driver for your adapter.
+
+	  Say Y when you have a TV or an IR device.
+
+#
 # Media controller
+#	Selectable only for webcam/grabbers, as other drivers don't use it
 #
 
 config MEDIA_CONTROLLER
 	bool "Media Controller API (EXPERIMENTAL)"
 	depends on EXPERIMENTAL
+	depends on MEDIA_WEBCAM_SUPP
 	---help---
 	  Enable the media controller API used to query media devices internal
 	  topology and configure it dynamically.
@@ -27,26 +90,15 @@ config MEDIA_CONTROLLER
 	  This API is mostly used by camera interfaces in embedded platforms.
 
 #
-# V4L core and enabled API's
+# Video4Linux support
+#	Only enables if one of the V4L2 types (ATV, webcam, radio) is selected
 #
 
 config VIDEO_DEV
-	tristate "Video For Linux"
-	---help---
-	  V4L core support for video capture and overlay devices, webcams and
-	  AM/FM radio cards.
-
-	  This kernel includes support for the new Video for Linux Two API,
-	  (V4L2).
-
-	  Additional info and docs are available on the web at
-	  <http://linuxtv.org>
-
-	  Documentation for V4L2 is also available on the web at
-	  <http://bytesex.org/v4l/>.
-
-	  To compile this driver as a module, choose M here: the
-	  module will be called videodev.
+	tristate
+	depends on MEDIA_SUPPORT
+	depends on MEDIA_WEBCAM_SUPP || MEDIA_ANALOG_TV_SUPP || MEDIA_RADIO_SUPP
+	default y
 
 config VIDEO_V4L2_COMMON
 	tristate
@@ -64,25 +116,15 @@ config VIDEO_V4L2_SUBDEV_API
 
 #
 # DVB Core
+#	Only enables if one of DTV is selected
 #
 
 config DVB_CORE
-	tristate "DVB for Linux"
+	tristate
+	depends on MEDIA_SUPPORT
+	depends on MEDIA_DIGITAL_TV_SUPP
+	default y
 	select CRC32
-	help
-	  DVB core utility functions for device handling, software fallbacks etc.
-
-	  Enable this if you own a DVB/ATSC adapter and want to use it or if
-	  you compile Linux for a digital SetTopBox.
-
-	  Say Y when you have a DVB or an ATSC card and want to use it.
-
-	  API specs and user tools are available from <http://www.linuxtv.org/>.
-
-	  Please report problems regarding this support to the LinuxDVB
-	  mailing list.
-
-	  If unsure say N.
 
 config DVB_NET
 	bool "DVB Network Support"
@@ -101,8 +143,6 @@ config VIDEO_MEDIA
 	tristate
 	default (DVB_CORE && (VIDEO_DEV = n)) || (VIDEO_DEV && (DVB_CORE = n)) || (DVB_CORE && VIDEO_DEV)
 
-comment "Multimedia drivers"
-
 source "drivers/media/common/Kconfig"
 source "drivers/media/rc/Kconfig"
 
drivers/media/common/tuners/Kconfig +1 -0
index bbf4945..16ee1a4 100644
@@ -2,6 +2,7 @@ config MEDIA_ATTACH
 	bool "Load and attach frontend and tuner driver modules as needed"
 	depends on VIDEO_MEDIA
 	depends on MODULES
+	default y if !EXPERT
 	help
 	  Remove the static dependency of DVB card drivers on all
 	  frontend modules for all possible card variants. Instead,
drivers/media/dvb/frontends/Kconfig +1 -0
index b98ebb2..6d3c2f7 100644
@@ -1,6 +1,7 @@
 config DVB_FE_CUSTOMISE
 	bool "Customise the frontend modules to build"
 	depends on DVB_CORE
+	depends on EXPERT
 	default y if EXPERT
 	help
 	  This allows the user to select/deselect frontend drivers for their
drivers/media/rc/Kconfig +13 -16
index f97eeb8..d6a0290 100644
@@ -1,21 +1,12 @@
-menuconfig RC_CORE
-	tristate "Remote Controller adapters"
+config RC_CORE
+	tristate
+	depends on RC_CORE_SUPP
 	depends on INPUT
-	default INPUT
-	---help---
-	  Enable support for Remote Controllers on Linux. This is
-	  needed in order to support several video capture adapters,
-	  standalone IR receivers/transmitters, and RF receivers.
-
-	  Enable this option if you have a video capture board even
-	  if you don't need IR, as otherwise, you may not be able to
-	  compile the driver for your adapter.
-
-if RC_CORE
+	default y
 
 config LIRC
-	tristate
-	default y
+	tristate "LIRC interface driver"
+	depends on RC_CORE
 
 	---help---
 	   Enable this option to build the Linux Infrared Remote
@@ -109,6 +100,12 @@ config IR_MCE_KBD_DECODER
 	   Windows Media Center Edition, which you would like to use with
 	   a raw IR receiver in your system.
 
+menuconfig RC_DEVICES
+	bool "Remote Controller devices"
+	depends on RC_CORE
+
+if RC_DEVICES
+
 config IR_LIRC_CODEC
 	tristate "Enable IR to LIRC bridge"
 	depends on RC_CORE
@@ -276,4 +273,4 @@ config IR_GPIO_CIR
 	   To compile this driver as a module, choose M here: the module will
 	   be called gpio-ir-recv.
 
-endif #RC_CORE
+endif #RC_DEVICES
Signature · 1 line
1.7.8
#17 lore raw

Re: [RFC PATCH 1/3] media: reorganize the main Kconfig items

Just a few typos...

Quoted 42 lines · On Sun May 27 2012 18:56:41 Mauro Carvalho Chehab wrote:

Change the main items to:

<m> Multimedia support --->

   [ ]   Webcams and video grabbers support
   [ ]   Analog TV API and drivers support
   [ ]   Digital TV support
   [ ]   AM/FM radio receivers/transmitters support
   [ ]   Remote Controller support

This provides an interface that is clearer to end users that are compiling the Kernel, and will allow the building system to automatically unselect drivers for unused functions.

---
 drivers/media/Kconfig               |  110 ++++++++++++++++++++++++-----------
 drivers/media/common/tuners/Kconfig |    1 +
 drivers/media/dvb/frontends/Kconfig |    1 +
 drivers/media/rc/Kconfig            |   29 ++++-----
 4 files changed, 90 insertions(+), 51 deletions(-)
drivers/media/Kconfig +5 -1
index 9575db4..8deddcd 100644
@@ -6,20 +6,83 @@ menuconfig MEDIA_SUPPORT
 	tristate "Multimedia support"
 	depends on HAS_IOMEM
 	help
-	  If you want to use Video for Linux, DVB for Linux, or DAB adapters,
+	  If you want to use Webcams, Video grabber devices and/or TV devices
 	  enable this option and other options below.
 
+	  Additional info and docs are available on the web at
+	  <http://linuxtv.org>
+
 if MEDIA_SUPPORT
 
 comment "Multimedia core support"
 
 #
+# Multimedia support - automatically enable V4L2 and DVB core

drivers/media/Kconfig menuconfig MEDIA_SUPPORT · line 30

Quoted 10 lines
drivers/media/Kconfig +10 -0
+#
+config MEDIA_WEBCAM_SUPP
+	bool "Webcams and video grabbers support"
+	---help---
+	  Enable support for webcams and video grabbers.
+
+	  Say Y when you have a webcam or a video capture grabber board.
+
+config MEDIA_ANALOG_TV_SUPP
+	bool "Analog TV API and drivers support"

I would rename this to "Analog TV support" to be consistent with the digital option.

drivers/media/Kconfig menuconfig MEDIA_SUPPORT · line 34

Quoted 4 lines
drivers/media/Kconfig +4 -0
+	---help---
+	  Enable analog TV support.
+
+	  Say Y when you have a TV board with analog support of with an

Typo: of with an -> or with a

drivers/media/Kconfig menuconfig MEDIA_SUPPORT · line 38

Quoted 4 lines
drivers/media/Kconfig +4 -0
+	  hybrid analog/digital TV chipset.
+
+	  Note: There are several DVB cards that are based on chips that
+		supports both analog and digital TV. Disabling this option

supports -> support

Quoted 12 lines
drivers/media/Kconfig +12 -0
+		will disable support for them.
+
+config MEDIA_DIGITAL_TV_SUPP
+	bool "Digital TV support"
+	---help---
+	  Enable digital TV support.
+
+	  Say Y when you have a board with digital support or a board with
+	  hybrid digital TV and analog TV.
+
+config MEDIA_RADIO_SUPP
+	bool "AM/FM radio receivers/transmitters support"

drivers/media/Kconfig menuconfig MEDIA_SUPPORT · line 60

Quoted 10 lines
drivers/media/Kconfig +10 -0
+	---help---
+	  Enable AM/FM radio support.
+
+	  Additional info and docs are available on the web at
+	  <http://linuxtv.org>
+
+	  Say Y when you have a board with radio support.
+
+	  Note: There are several TV cards that are based on chips that
+		supports radio reception Disabling this option will

supports -> support

Also add a period after reception.

Regards,

Hans

#18 lore raw

Re: [RFC PATCH 1/3] media: reorganize the main Kconfig items

Em 27-05-2012 14:15, Hans Verkuil escreveu:

Quoted 98 lines

Just a few typos...

Quoted 42 lines · On Sun May 27 2012 18:56:41 Mauro Carvalho Chehab wrote:

Change the main items to:

<m> Multimedia support --->

   [ ]   Webcams and video grabbers support
   [ ]   Analog TV API and drivers support
   [ ]   Digital TV support
   [ ]   AM/FM radio receivers/transmitters support
   [ ]   Remote Controller support

This provides an interface that is clearer to end users that are compiling the Kernel, and will allow the building system to automatically unselect drivers for unused functions.

---
 drivers/media/Kconfig               |  110 ++++++++++++++++++++++++-----------
 drivers/media/common/tuners/Kconfig |    1 +
 drivers/media/dvb/frontends/Kconfig |    1 +
 drivers/media/rc/Kconfig            |   29 ++++-----
 4 files changed, 90 insertions(+), 51 deletions(-)
drivers/media/Kconfig +5 -1
index 9575db4..8deddcd 100644
@@ -6,20 +6,83 @@ menuconfig MEDIA_SUPPORT
 	tristate "Multimedia support"
 	depends on HAS_IOMEM
 	help
-	  If you want to use Video for Linux, DVB for Linux, or DAB adapters,
+	  If you want to use Webcams, Video grabber devices and/or TV devices
 	  enable this option and other options below.
 
+	  Additional info and docs are available on the web at
+	  <http://linuxtv.org>
+
 if MEDIA_SUPPORT
 
 comment "Multimedia core support"
 
 #
+# Multimedia support - automatically enable V4L2 and DVB core

drivers/media/Kconfig menuconfig MEDIA_SUPPORT · line 30

Quoted 10 lines
drivers/media/Kconfig +10 -0
+#
+config MEDIA_WEBCAM_SUPP
+	bool "Webcams and video grabbers support"
+	---help---
+	  Enable support for webcams and video grabbers.
+
+	  Say Y when you have a webcam or a video capture grabber board.
+
+config MEDIA_ANALOG_TV_SUPP
+	bool "Analog TV API and drivers support"

I would rename this to "Analog TV support" to be consistent with the digital option.

drivers/media/Kconfig menuconfig MEDIA_SUPPORT · line 34

Quoted 4 lines
drivers/media/Kconfig +4 -0
+	---help---
+	  Enable analog TV support.
+
+	  Say Y when you have a TV board with analog support of with an

Typo: of with an -> or with a

drivers/media/Kconfig menuconfig MEDIA_SUPPORT · line 38

Quoted 4 lines
drivers/media/Kconfig +4 -0
+	  hybrid analog/digital TV chipset.
+
+	  Note: There are several DVB cards that are based on chips that
+		supports both analog and digital TV. Disabling this option

supports -> support

Quoted 12 lines
drivers/media/Kconfig +12 -0
+		will disable support for them.
+
+config MEDIA_DIGITAL_TV_SUPP
+	bool "Digital TV support"
+	---help---
+	  Enable digital TV support.
+
+	  Say Y when you have a board with digital support or a board with
+	  hybrid digital TV and analog TV.
+
+config MEDIA_RADIO_SUPP
+	bool "AM/FM radio receivers/transmitters support"

drivers/media/Kconfig menuconfig MEDIA_SUPPORT · line 60

Quoted 10 lines
drivers/media/Kconfig +10 -0
+	---help---
+	  Enable AM/FM radio support.
+
+	  Additional info and docs are available on the web at
+	  <http://linuxtv.org>
+
+	  Say Y when you have a board with radio support.
+
+	  Note: There are several TV cards that are based on chips that
+		supports radio reception Disabling this option will

supports -> support

Quoted 5 lines

Also add a period after reception.

Regards,

Hans

Thanks!

It follows v2 with the suggested fixes.

-

media: reorganize the main Kconfig items

From: Mauro Carvalho Chehab <[email protected]>

Change the main items to:

<m> Multimedia support --->

   [ ]   Webcams and video grabbers support
   [ ]   Analog TV API and drivers support
   [ ]   Digital TV support
   [ ]   AM/FM radio receivers/transmitters support
   [ ]   Remote Controller support

This provides an interface that is clearer to end users that are compiling the Kernel, and will allow the building system to automatically unselect drivers for unused functions.

drivers/media/Kconfig +75 -35
index 9575db4..2ac4c9a 100644
@@ -6,20 +6,83 @@ menuconfig MEDIA_SUPPORT
 	tristate "Multimedia support"
 	depends on HAS_IOMEM
 	help
-	  If you want to use Video for Linux, DVB for Linux, or DAB adapters,
+	  If you want to use Webcams, Video grabber devices and/or TV devices
 	  enable this option and other options below.
 
+	  Additional info and docs are available on the web at
+	  <http://linuxtv.org>
+
 if MEDIA_SUPPORT
 
 comment "Multimedia core support"
 
 #
+# Multimedia support - automatically enable V4L2 and DVB core
+#
+config MEDIA_WEBCAM_SUPP
+	bool "Webcams and video grabbers support"
+	---help---
+	  Enable support for webcams and video grabbers.
+
+	  Say Y when you have a webcam or a video capture grabber board.
+
+config MEDIA_ANALOG_TV_SUPP
+	bool "Analog TV support"
+	---help---
+	  Enable analog TV support.
+
+	  Say Y when you have a TV board with analog support of with a
+	  hybrid analog/digital TV chipset.
+
+	  Note: There are several DVB cards that are based on chips that
+		support both analog and digital TV. Disabling this option
+		will disable support for them.
+
+config MEDIA_DIGITAL_TV_SUPP
+	bool "Digital TV support"
+	---help---
+	  Enable digital TV support.
+
+	  Say Y when you have a board with digital support or a board with
+	  hybrid digital TV and analog TV.
+
+config MEDIA_RADIO_SUPP
+	bool "AM/FM radio receivers/transmitters support"
+	---help---
+	  Enable AM/FM radio support.
+
+	  Additional info and docs are available on the web at
+	  <http://linuxtv.org>
+
+	  Say Y when you have a board with radio support.
+
+	  Note: There are several TV cards that are based on chips that
+		support radio reception. Disabling this option will
+		disable support for them.
+
+menuconfig RC_CORE_SUPP
+	bool "Remote Controller support"
+	depends on INPUT
+	---help---
+	  Enable support for Remote Controllers on Linux. This is
+	  needed in order to support several video capture adapters,
+	  standalone IR receivers/transmitters, and RF receivers.
+
+	  Enable this option if you have a video capture board even
+	  if you don't need IR, as otherwise, you may not be able to
+	  compile the driver for your adapter.
+
+	  Say Y when you have a TV or an IR device.
+
+#
 # Media controller
+#	Selectable only for webcam/grabbers, as other drivers don't use it
 #
 
 config MEDIA_CONTROLLER
 	bool "Media Controller API (EXPERIMENTAL)"
 	depends on EXPERIMENTAL
+	depends on MEDIA_WEBCAM_SUPP
 	---help---
 	  Enable the media controller API used to query media devices internal
 	  topology and configure it dynamically.
@@ -27,26 +90,15 @@ config MEDIA_CONTROLLER
 	  This API is mostly used by camera interfaces in embedded platforms.
 
 #
-# V4L core and enabled API's
+# Video4Linux support
+#	Only enables if one of the V4L2 types (ATV, webcam, radio) is selected
 #
 
 config VIDEO_DEV
-	tristate "Video For Linux"
-	---help---
-	  V4L core support for video capture and overlay devices, webcams and
-	  AM/FM radio cards.
-
-	  This kernel includes support for the new Video for Linux Two API,
-	  (V4L2).
-
-	  Additional info and docs are available on the web at
-	  <http://linuxtv.org>
-
-	  Documentation for V4L2 is also available on the web at
-	  <http://bytesex.org/v4l/>.
-
-	  To compile this driver as a module, choose M here: the
-	  module will be called videodev.
+	tristate
+	depends on MEDIA_SUPPORT
+	depends on MEDIA_WEBCAM_SUPP || MEDIA_ANALOG_TV_SUPP || MEDIA_RADIO_SUPP
+	default y
 
 config VIDEO_V4L2_COMMON
 	tristate
@@ -64,25 +116,15 @@ config VIDEO_V4L2_SUBDEV_API
 
 #
 # DVB Core
+#	Only enables if one of DTV is selected
 #
 
 config DVB_CORE
-	tristate "DVB for Linux"
+	tristate
+	depends on MEDIA_SUPPORT
+	depends on MEDIA_DIGITAL_TV_SUPP
+	default y
 	select CRC32
-	help
-	  DVB core utility functions for device handling, software fallbacks etc.
-
-	  Enable this if you own a DVB/ATSC adapter and want to use it or if
-	  you compile Linux for a digital SetTopBox.
-
-	  Say Y when you have a DVB or an ATSC card and want to use it.
-
-	  API specs and user tools are available from <http://www.linuxtv.org/>.
-
-	  Please report problems regarding this support to the LinuxDVB
-	  mailing list.
-
-	  If unsure say N.
 
 config DVB_NET
 	bool "DVB Network Support"
@@ -101,8 +143,6 @@ config VIDEO_MEDIA
 	tristate
 	default (DVB_CORE && (VIDEO_DEV = n)) || (VIDEO_DEV && (DVB_CORE = n)) || (DVB_CORE && VIDEO_DEV)
 
-comment "Multimedia drivers"
-
 source "drivers/media/common/Kconfig"
 source "drivers/media/rc/Kconfig"
 
drivers/media/common/tuners/Kconfig +1 -0
index bbf4945..16ee1a4 100644
@@ -2,6 +2,7 @@ config MEDIA_ATTACH
 	bool "Load and attach frontend and tuner driver modules as needed"
 	depends on VIDEO_MEDIA
 	depends on MODULES
+	default y if !EXPERT
 	help
 	  Remove the static dependency of DVB card drivers on all
 	  frontend modules for all possible card variants. Instead,
drivers/media/dvb/frontends/Kconfig +1 -0
index b98ebb2..6d3c2f7 100644
@@ -1,6 +1,7 @@
 config DVB_FE_CUSTOMISE
 	bool "Customise the frontend modules to build"
 	depends on DVB_CORE
+	depends on EXPERT
 	default y if EXPERT
 	help
 	  This allows the user to select/deselect frontend drivers for their
drivers/media/rc/Kconfig +13 -16
index f97eeb8..d6a0290 100644
@@ -1,21 +1,12 @@
-menuconfig RC_CORE
-	tristate "Remote Controller adapters"
+config RC_CORE
+	tristate
+	depends on RC_CORE_SUPP
 	depends on INPUT
-	default INPUT
-	---help---
-	  Enable support for Remote Controllers on Linux. This is
-	  needed in order to support several video capture adapters,
-	  standalone IR receivers/transmitters, and RF receivers.
-
-	  Enable this option if you have a video capture board even
-	  if you don't need IR, as otherwise, you may not be able to
-	  compile the driver for your adapter.
-
-if RC_CORE
+	default y
 
 config LIRC
-	tristate
-	default y
+	tristate "LIRC interface driver"
+	depends on RC_CORE
 
 	---help---
 	   Enable this option to build the Linux Infrared Remote
@@ -109,6 +100,12 @@ config IR_MCE_KBD_DECODER
 	   Windows Media Center Edition, which you would like to use with
 	   a raw IR receiver in your system.
 
+menuconfig RC_DEVICES
+	bool "Remote Controller devices"
+	depends on RC_CORE
+
+if RC_DEVICES
+
 config IR_LIRC_CODEC
 	tristate "Enable IR to LIRC bridge"
 	depends on RC_CORE
@@ -276,4 +273,4 @@ config IR_GPIO_CIR
 	   To compile this driver as a module, choose M here: the module will
 	   be called gpio-ir-recv.
 
-endif #RC_CORE
+endif #RC_DEVICES
#19 lore raw

Re: [RFC PATCH 1/3] media: reorganize the main Kconfig items

In reply to Mauro Carvalho Chehab

Hi Mauro,

Quoted 9 lines · Mauro Carvalho Chehab

Change the main items to:

<m> Multimedia support --->

    [ ]   Webcams and video grabbers support
    [ ]   Analog TV API and drivers support
    [ ]   Digital TV support
    [ ]   AM/FM radio receivers/transmitters support
    [ ]   Remote Controller support
Quoted 3 lines

This provides an interface that is clearer to end users that are compiling the Kernel, and will allow the building system to automatically unselect drivers for unused functions.

The change looks reasonable to me, however I have few doubts with regards to the naming. Is V4L2 really only for webcams? :)

How about renaming:

MEDIA_WEBCAM -> MEDIA_CAMERA,
*_SUPP -> _SUPPORT (grep gives many more results for the full word), Webcams -> Cameras ?

Regards,
Sylwester

#20 lore raw

RFC PATCH 2/3 media: Remove VIDEO_MEDIA Kconfig option

In reply to Mauro Carvalho Chehab

In the past, it was possible to have either DVB or V4L2 core as module and the other as builtin. Such config never make much sense, and created several issues in order to make the Kconfig dependency to work, as all drivers that depend on both (most TV drivers) would need to be compiled as 'm'. Due to that, the VIDEO_MEDIA config option were added.

Instead of such weird approach, let's just use the MEDIA_SUPPORT =y or =m to select if the media subsystem core will be either builtin or module, simplifying the building system logic.

Also, fix the tuners configuration, by enabling them only if a tuner is required. So, if just webcam/grabbers support is selected, no tuner option will be selected. Also, if only digital TV is selected, no analog tuner support is selected.

That removes the need of using EXPERT customise options, when analog TV is not selected.

---
 drivers/media/Kconfig               |    4 --
 drivers/media/common/tuners/Kconfig |   63 ++++++++++++++++++-----------------
 drivers/media/video/pvrusb2/Kconfig |    1 -
 3 files changed, 32 insertions(+), 36 deletions(-)
drivers/media/Kconfig +0 -4
index 8deddcd..fe59b49 100644
@@ -139,10 +139,6 @@ config DVB_NET
 	  You may want to disable the network support on embedded devices. If
 	  unsure say Y.
 
-config VIDEO_MEDIA
-	tristate
-	default (DVB_CORE && (VIDEO_DEV = n)) || (VIDEO_DEV && (DVB_CORE = n)) || (DVB_CORE && VIDEO_DEV)
-
 source "drivers/media/common/Kconfig"
 source "drivers/media/rc/Kconfig"
 
drivers/media/common/tuners/Kconfig +32 -31

238 lines not on this page · raw message

drivers/media/video/pvrusb2/Kconfig +0 -1
index f9b6001..25e412e 100644
@@ -1,7 +1,6 @@
 config VIDEO_PVRUSB2
 	tristate "Hauppauge WinTV-PVR USB2 support"
 	depends on VIDEO_V4L2 && I2C
-	depends on VIDEO_MEDIA	# Avoids pvrusb = Y / DVB = M
 	select VIDEO_TUNER
 	select VIDEO_TVEEPROM
 	select VIDEO_CX2341X
Signature · 1 line
1.7.8
#21 lore raw

RFC PATCH 3/3 media: only show V4L devices based on device type selection

In reply to Mauro Carvalho Chehab

After this patch, the MEDIA*_SUPP will be used as a filter, exposing only devices that are pertinent to one of the 3 V4L types: webcam/grabber, radio, analog TV.

---
 drivers/media/radio/Kconfig        |    1 +
 drivers/media/video/Kconfig        |   76 ++++++++++++++++++++++++++---------
 drivers/media/video/m5mols/Kconfig |    1 +
 drivers/media/video/smiapp/Kconfig |    1 +
 4 files changed, 59 insertions(+), 20 deletions(-)
drivers/media/radio/Kconfig +1 -0
index c257da1..ac4f627 100644
@@ -5,6 +5,7 @@
 menuconfig RADIO_ADAPTERS
 	bool "Radio Adapters"
 	depends on VIDEO_V4L2
+	depends on MEDIA_RADIO_SUPP
 	default y
 	---help---
 	  Say Y here to enable selecting AM/FM radio adapters.
drivers/media/video/Kconfig +56 -20

211 lines not on this page · raw message

drivers/media/video/m5mols/Kconfig +1 -0
index 302dc3d..5d8ce31 100644
@@ -1,5 +1,6 @@
 config VIDEO_M5MOLS
 	tristate "Fujitsu M-5MOLS 8MP sensor support"
 	depends on I2C && VIDEO_V4L2 && VIDEO_V4L2_SUBDEV_API
+	depends on MEDIA_WEBCAM_SUPP
 	---help---
 	  This driver supports Fujitsu M-5MOLS camera sensor with ISP
drivers/media/video/smiapp/Kconfig +1 -0
index f7b35ff..209e824 100644
@@ -1,6 +1,7 @@
 config VIDEO_SMIAPP
 	tristate "SMIA++/SMIA sensor support"
 	depends on I2C && VIDEO_V4L2 && VIDEO_V4L2_SUBDEV_API
+	depends on MEDIA_WEBCAM_SUPP
 	select VIDEO_SMIAPP_PLL
 	---help---
 	  This is a generic driver for SMIA++/SMIA camera modules.
Signature · 1 line
1.7.8
#22 lore raw

[RFC] file tree rearrangement - was: Re: [RFC PATCH 0/3] Improve Kconfig selection for media devices

In reply to Mauro Carvalho Chehab

Em 27-05-2012 13:56, Mauro Carvalho Chehab escreveu:

Quoted 10 lines

The Kconfig building system is improperly selecting some drivers, like analog TV tuners even when this is not required.

Rearrange the Kconfig in a way to prevent that.

Mauro Carvalho Chehab (3):
media: reorganize the main Kconfig items
media: Remove VIDEO_MEDIA Kconfig option
media: only show V4L devices based on device type selection

Quoted 11 lines
 drivers/media/Kconfig               |  114 +++++++++++++++++++++++------------
 drivers/media/common/tuners/Kconfig |   64 ++++++++++----------
 drivers/media/dvb/frontends/Kconfig |    1 +
 drivers/media/radio/Kconfig         |    1 +
 drivers/media/rc/Kconfig            |   29 ++++-----
 drivers/media/video/Kconfig         |   76 +++++++++++++++++------
 drivers/media/video/m5mols/Kconfig  |    1 +
 drivers/media/video/pvrusb2/Kconfig |    1 -
 drivers/media/video/smiapp/Kconfig  |    1 +
 9 files changed, 181 insertions(+), 107 deletions(-)

The organization between DVB only, V4L only and hybrid devices are somewhat confusing on our tree. From time to time, someone proposes changing one driver from one place to another or complains that "his device is DVB only but it is inside the V4L tree" (and other similar requests). This sometimes happen because the same driver can support analog only, digital only or hybrid devices.

Also, one driver may start as a DVB only or as a V4L only and then it can be latter be converted into an hybrid driver.

So, the better is to rearrange the drivers tree, in order to fix this issue, removing them from /video and /dvb, and storing them on a better place.

So, my proposal is to move all radio, analog TV, digital TV, webcams and grabber bridge drivers to this arrangement:

drivers/media/isa - ISA drivers
drivers/media/usb - USB drivers
drivers/media/pci - PCI/PCIe drivers
drivers/media/platform - platform drivers

Comments?

Regards,
Mauro

-

PS.: for now, I don't intend to touch at I2C/ancillary drivers. We may latter move the i2c drivers that aren't frontend/tuners to media/i2c or to media/common.

#23 lore raw

Re: [RFC] file tree rearrangement - was: Re: [RFC PATCH 0/3] Improve Kconfig selection for media devices

Quoted 35 lines · On Sun May 27 2012 19:13:38 Mauro Carvalho Chehab wrote:

Em 27-05-2012 13:56, Mauro Carvalho Chehab escreveu:

Quoted 10 lines

The Kconfig building system is improperly selecting some drivers, like analog TV tuners even when this is not required.

Rearrange the Kconfig in a way to prevent that.

Mauro Carvalho Chehab (3):
media: reorganize the main Kconfig items
media: Remove VIDEO_MEDIA Kconfig option
media: only show V4L devices based on device type selection

Quoted 11 lines
 drivers/media/Kconfig               |  114 +++++++++++++++++++++++------------
 drivers/media/common/tuners/Kconfig |   64 ++++++++++----------
 drivers/media/dvb/frontends/Kconfig |    1 +
 drivers/media/radio/Kconfig         |    1 +
 drivers/media/rc/Kconfig            |   29 ++++-----
 drivers/media/video/Kconfig         |   76 +++++++++++++++++------
 drivers/media/video/m5mols/Kconfig  |    1 +
 drivers/media/video/pvrusb2/Kconfig |    1 -
 drivers/media/video/smiapp/Kconfig  |    1 +
 9 files changed, 181 insertions(+), 107 deletions(-)

The organization between DVB only, V4L only and hybrid devices are somewhat confusing on our tree. From time to time, someone proposes changing one driver from one place to another or complains that "his device is DVB only but it is inside the V4L tree" (and other similar requests). This sometimes happen because the same driver can support analog only, digital only or hybrid devices.

Also, one driver may start as a DVB only or as a V4L only and then it can be latter be converted into an hybrid driver.

So, the better is to rearrange the drivers tree, in order to fix this issue, removing them from /video and /dvb, and storing them on a better place.

Quoted 7 lines

So, my proposal is to move all radio, analog TV, digital TV, webcams and grabber bridge drivers to this arrangement:

drivers/media/isa - ISA drivers
drivers/media/usb - USB drivers
drivers/media/pci - PCI/PCIe drivers
drivers/media/platform - platform drivers

drivers/media/parport
drivers/media/i2c

Also, if we do this then I would really like to separate the sub-device drivers from the main drivers. I find it very messy that those are mixed.

So: drivers/media/subdevs

We might subdivide /subdevs even further (sensors, encoders, decoders, etc.) but I am not sure if that is worthwhile.

Frankly, the current directory structure (other than the lack of a subdevs directory) doesn't bother me. But your proposal is a bit cleaner.

Regards,

Hans

Quoted 15 lines

Comments?

Regards,
Mauro

-

PS.: for now, I don't intend to touch at I2C/ancillary drivers. We may latter move the i2c drivers that aren't frontend/tuners to media/i2c or to media/common. --
To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

#24 lore raw

Re: [RFC] file tree rearrangement - was: Re: [RFC PATCH 0/3] Improve Kconfig selection for media devices

Quoted 89 lines · Hans Verkuil
Quoted 12 lines · On Sun May 27 2012 19:13:38 Mauro Carvalho Chehab wrote:

Em 27-05-2012 13:56, Mauro Carvalho Chehab escreveu:

Quoted 11 lines

The Kconfig building system is improperly selecting some drivers, like analog TV tuners even when this is not required.

Rearrange the Kconfig in a way to prevent that.

Mauro Carvalho Chehab (3):
media: reorganize the main Kconfig items
media: Remove VIDEO_MEDIA Kconfig option
media: only show V4L devices based on device type selection

 drivers/media/Kconfig               |  114

+++++++++++++++++++++++------------

Quoted 11 lines
Quoted 10 lines
 drivers/media/common/tuners/Kconfig |   64 ++++++++++----------
 drivers/media/dvb/frontends/Kconfig |    1 +
 drivers/media/radio/Kconfig         |    1 +
 drivers/media/rc/Kconfig            |   29 ++++-----
 drivers/media/video/Kconfig         |   76 +++++++++++++++++------
 drivers/media/video/m5mols/Kconfig  |    1 +
 drivers/media/video/pvrusb2/Kconfig |    1 -
 drivers/media/video/smiapp/Kconfig  |    1 +
 9 files changed, 181 insertions(+), 107 deletions(-)
Quoted 1 line

The organization between DVB only, V4L only and hybrid devices are

somewhat

Quoted 1 line

confusing on our tree. From time to time, someone proposes changing

one driver

Quoted 1 line

from one place to another or complains that "his device is DVB only

but it is

Quoted 1 line

inside the V4L tree" (and other similar requests). This sometimes

happen because

Quoted 1 line

the same driver can support analog only, digital only or hybrid

devices.

Quoted 5 lines

Also, one driver may start as a DVB only or as a V4L only and then it can be latter be converted into an hybrid driver.

So, the better is to rearrange the drivers tree, in order to fix this

issue,

Quoted 1 line

removing them from /video and /dvb, and storing them on a better

place.

Quoted 2 lines

So, my proposal is to move all radio, analog TV, digital TV, webcams

and grabber

Quoted 6 lines

bridge drivers to this arrangement:

drivers/media/isa - ISA drivers
drivers/media/usb - USB drivers
drivers/media/pci - PCI/PCIe drivers
drivers/media/platform - platform drivers

drivers/media/parport
drivers/media/i2c

Also, if we do this then I would really like to separate the sub-device drivers
from the main drivers. I find it very messy that those are mixed.

So: drivers/media/subdevs

We might subdivide /subdevs even further (sensors, encoders, decoders, etc.) but
I am not sure if that is worthwhile.

Frankly, the current directory structure (other than the lack of a subdevs
directory) doesn't bother me. But your proposal is a bit cleaner.

Regards,

Hans

Quoted 9 lines

Comments?

Regards,
Mauro

-

PS.: for now, I don't intend to touch at I2C/ancillary drivers. We

may latter move

Quoted 1 line

the i2c drivers that aren't frontend/tuners to media/i2c or to

media/common.

Quoted 2 lines

--
To unsubscribe from this list: send the line "unsubscribe

linux-media" in

Quoted 8 lines
Quoted 3 lines

the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

Also

cx2341x and tveeprom

are oddballs. I can't think of any other exceptions at the moment.

Regards,
Andy

#25 lore raw

Re: [RFC] file tree rearrangement - was: Re: [RFC PATCH 0/3] Improve Kconfig selection for media devices

Em 27-05-2012 15:47, Andy Walls escreveu:

Quoted 100 lines
Quoted 89 lines · Hans Verkuil
Quoted 12 lines · On Sun May 27 2012 19:13:38 Mauro Carvalho Chehab wrote:

Em 27-05-2012 13:56, Mauro Carvalho Chehab escreveu:

Quoted 11 lines

The Kconfig building system is improperly selecting some drivers, like analog TV tuners even when this is not required.

Rearrange the Kconfig in a way to prevent that.

Mauro Carvalho Chehab (3):
media: reorganize the main Kconfig items
media: Remove VIDEO_MEDIA Kconfig option
media: only show V4L devices based on device type selection

 drivers/media/Kconfig               |  114

+++++++++++++++++++++++------------

Quoted 11 lines
Quoted 10 lines
 drivers/media/common/tuners/Kconfig |   64 ++++++++++----------
 drivers/media/dvb/frontends/Kconfig |    1 +
 drivers/media/radio/Kconfig         |    1 +
 drivers/media/rc/Kconfig            |   29 ++++-----
 drivers/media/video/Kconfig         |   76 +++++++++++++++++------
 drivers/media/video/m5mols/Kconfig  |    1 +
 drivers/media/video/pvrusb2/Kconfig |    1 -
 drivers/media/video/smiapp/Kconfig  |    1 +
 9 files changed, 181 insertions(+), 107 deletions(-)
Quoted 1 line

The organization between DVB only, V4L only and hybrid devices are

somewhat

Quoted 1 line

confusing on our tree. From time to time, someone proposes changing

one driver

Quoted 1 line

from one place to another or complains that "his device is DVB only

but it is

Quoted 1 line

inside the V4L tree" (and other similar requests). This sometimes

happen because

Quoted 1 line

the same driver can support analog only, digital only or hybrid

devices.

Quoted 5 lines

Also, one driver may start as a DVB only or as a V4L only and then it can be latter be converted into an hybrid driver.

So, the better is to rearrange the drivers tree, in order to fix this

issue,

Quoted 1 line

removing them from /video and /dvb, and storing them on a better

place.

Quoted 2 lines

So, my proposal is to move all radio, analog TV, digital TV, webcams

and grabber

Quoted 6 lines

bridge drivers to this arrangement:

drivers/media/isa - ISA drivers
drivers/media/usb - USB drivers
drivers/media/pci - PCI/PCIe drivers
drivers/media/platform - platform drivers

drivers/media/parport
drivers/media/i2c

Also, if we do this then I would really like to separate the sub-device drivers
from the main drivers. I find it very messy that those are mixed.

So: drivers/media/subdevs

We might subdivide /subdevs even further (sensors, encoders, decoders, etc.) but
I am not sure if that is worthwhile.

Frankly, the current directory structure (other than the lack of a subdevs
directory) doesn't bother me. But your proposal is a bit cleaner.

Regards,

Hans

Quoted 9 lines

Comments?

Regards,
Mauro

-

PS.: for now, I don't intend to touch at I2C/ancillary drivers. We

may latter move

Quoted 1 line

the i2c drivers that aren't frontend/tuners to media/i2c or to

media/common.

Quoted 2 lines

--
To unsubscribe from this list: send the line "unsubscribe

linux-media" in

Quoted 8 lines
Quoted 3 lines

the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

Quoted 3 lines

Also

cx2341x and tveeprom

cx2341x is a sub-device module. So, it can go to drivers/media/subdevs (ok, it has other problems, but solving them is not as simple as moving things from one place to the other - so let's not mix it here).

The case of tveeprom is different, because it is not really a sub-device.

Btw, this file is bad named - it should be called hauppauge-eeprom or something like that. Yet, I wouldn't move it out of drivers/media/video (or at least on this first step).

There are other similar cases. for example, btcx-risc is a common module used by both cx88 and bttv drivers to handle the RISC processor that exists on both. This is not a sub-device, so it won't fit on the above structure. .

Maybe we can create a drivers/media/v4l2-core and move everything that belongs to the core into it, and the things that won't fit elsewhere can be moved into drivers/media/common.

I would also move tuner, dvb-core and frontend to an upper level:

So, in summary, the final structure would be:

drivers/media
/common - drivers that are "common" to several ones, like tveeprom and btcx-risc
/dvb-core - what is already at dvb/dvb-core
/frontends - what is already at dvb/frontends
/isa - all ISA drivers
/parport - all parallel port drivers
/pci - all PCI/PCIe drivers
/platform - all platform drivers
/subdevice - all sub-device drivers
/tuner - what's currently at common/tuners
/usb - all USB drivers
/v4l2-core - V4L2 core

After doing that, the Kconfig options at isa, parport, pci, platform and usb can be optimized further, based on the media support "filters":

<m> Multimedia support --->

    [ ]   Webcams and video grabbers support
    [ ]   Analog TV support
    [ ]   Digital TV support
    [ ]   AM/FM radio receivers/transmitters support
    [ ]   Remote Controller support 

Comments?

Mauro

#26 lore raw

Re: [RFC] file tree rearrangement - was: Re: [RFC PATCH 0/3] Improve Kconfig selection for media devices

Quoted 101 lines · On Sun May 27 2012 22:15:08 Mauro Carvalho Chehab wrote:

Em 27-05-2012 15:47, Andy Walls escreveu:

Quoted 100 lines
Quoted 97 lines · Hans Verkuil
Quoted 12 lines · On Sun May 27 2012 19:13:38 Mauro Carvalho Chehab wrote:

Em 27-05-2012 13:56, Mauro Carvalho Chehab escreveu:

Quoted 11 lines

The Kconfig building system is improperly selecting some drivers, like analog TV tuners even when this is not required.

Rearrange the Kconfig in a way to prevent that.

Mauro Carvalho Chehab (3):
media: reorganize the main Kconfig items
media: Remove VIDEO_MEDIA Kconfig option
media: only show V4L devices based on device type selection

 drivers/media/Kconfig               |  114

+++++++++++++++++++++++------------

Quoted 11 lines
Quoted 10 lines
 drivers/media/common/tuners/Kconfig |   64 ++++++++++----------
 drivers/media/dvb/frontends/Kconfig |    1 +
 drivers/media/radio/Kconfig         |    1 +
 drivers/media/rc/Kconfig            |   29 ++++-----
 drivers/media/video/Kconfig         |   76 +++++++++++++++++------
 drivers/media/video/m5mols/Kconfig  |    1 +
 drivers/media/video/pvrusb2/Kconfig |    1 -
 drivers/media/video/smiapp/Kconfig  |    1 +
 9 files changed, 181 insertions(+), 107 deletions(-)
Quoted 1 line

The organization between DVB only, V4L only and hybrid devices are

somewhat

Quoted 1 line

confusing on our tree. From time to time, someone proposes changing

one driver

Quoted 1 line

from one place to another or complains that "his device is DVB only

but it is

Quoted 1 line

inside the V4L tree" (and other similar requests). This sometimes

happen because

Quoted 1 line

the same driver can support analog only, digital only or hybrid

devices.

Quoted 5 lines

Also, one driver may start as a DVB only or as a V4L only and then it can be latter be converted into an hybrid driver.

So, the better is to rearrange the drivers tree, in order to fix this

issue,

Quoted 1 line

removing them from /video and /dvb, and storing them on a better

place.

Quoted 2 lines

So, my proposal is to move all radio, analog TV, digital TV, webcams

and grabber

Quoted 6 lines

bridge drivers to this arrangement:

drivers/media/isa - ISA drivers
drivers/media/usb - USB drivers
drivers/media/pci - PCI/PCIe drivers
drivers/media/platform - platform drivers

drivers/media/parport
drivers/media/i2c

Also, if we do this then I would really like to separate the sub-device drivers
from the main drivers. I find it very messy that those are mixed.

So: drivers/media/subdevs

We might subdivide /subdevs even further (sensors, encoders, decoders, etc.) but
I am not sure if that is worthwhile.

Frankly, the current directory structure (other than the lack of a subdevs
directory) doesn't bother me. But your proposal is a bit cleaner.

Regards,

Hans

Quoted 9 lines

Comments?

Regards,
Mauro

-

PS.: for now, I don't intend to touch at I2C/ancillary drivers. We

may latter move

Quoted 1 line

the i2c drivers that aren't frontend/tuners to media/i2c or to

media/common.

Quoted 2 lines

--
To unsubscribe from this list: send the line "unsubscribe

linux-media" in

Quoted 3 lines

the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

Quoted 7 lines
Quoted 3 lines

Also

cx2341x and tveeprom

cx2341x is a sub-device module. So, it can go to drivers/media/subdevs (ok, it has other problems, but solving them is not as simple as moving things from one place to the other - so let's not mix it here).

It's not a subdev. It's a helper module, so it should go to common (or 'helpers').

Quoted 6 lines

The case of tveeprom is different, because it is not really a sub-device.

Btw, this file is bad named - it should be called hauppauge-eeprom or something like that. Yet, I wouldn't move it out of drivers/media/video (or at least on this first step).

Quoted 8 lines

There are other similar cases. for example, btcx-risc is a common module used by both cx88 and bttv drivers to handle the RISC processor that exists on both. This is not a sub-device, so it won't fit on the above structure. .

Maybe we can create a drivers/media/v4l2-core and move everything that belongs to the core into it, and the things that won't fit elsewhere can be moved into drivers/media/common.

Ack.

Quoted 6 lines

I would also move tuner, dvb-core and frontend to an upper level:

So, in summary, the final structure would be:

drivers/media
/common - drivers that are "common" to several ones, like tveeprom and btcx-risc

And saa7146 sources in /common/saa7146. That will (finally!) make sense.

What can go in here:

- saa7146
- tveeprom
- cx2341x
- btcx-risc
- radio-isa
- smiapp-pll (?)

We should probably also try and get tea575x-tuner.c in here. But that can be done in a separate step.

Quoted 4 lines

/dvb-core - what is already at dvb/dvb-core
/frontends - what is already at dvb/frontends
/isa - all ISA drivers
/parport - all parallel port drivers

I propose to replace /parport with a /others directory for things of which we have only a very few (parport, i2c) or are hard to classify (si470x, vivi, mem2mem_testdev).

Quoted 3 lines

/pci - all PCI/PCIe drivers
/platform - all platform drivers
/subdevice - all sub-device drivers

Either /subdevices or /subdevs. It should definitely be plural.

Quoted 1 line

/tuner - what's currently at common/tuners

Ditto: /tuners

Quoted 2 lines
	/usb		- all USB drivers
	/v4l2-core	- V4L2 core

/media-core for the media*.c sources.

Quoted 10 lines

After doing that, the Kconfig options at isa, parport, pci, platform and usb can be optimized further, based on the media support "filters":

<m> Multimedia support --->

    [ ]   Webcams and video grabbers support
    [ ]   Analog TV support
    [ ]   Digital TV support
    [ ]   AM/FM radio receivers/transmitters support
    [ ]   Remote Controller support 

One thing wasn't clear to me: if I have a hybrid device I gathered that it be enabled only if both analog and digital are set, right? But is that also true for radio and RC support? So if I have a card with all of the above, will it be enabled only if I check all four items?

That doesn't really make sense to me. I think the average end-user just cares about the hardware that he wants to enable, and if a hybrid device is selected, then that should select all the various core configs that it needs. Not the other way around.

Another thing: I would move 'video grabber' away from webcams and to 'Analog TV/Video support'. And rename 'Digital TV' to 'Digital TV/Video' as well. A video grabber driver has much more to do with TV then it does with webcams.

But basically I would do away with filters altogether and just present a menu with bus type (usb/pci/platform/isa/others) and subdivide each bus either by captions:

*** Webcams ***
*** Analog TV/Video Capture ***

or corresponding submenus. This could be decided based on the number of devices in each category.

Regards,

Hans

#27 lore raw

Re: [RFC] file tree rearrangement - was: Re: [RFC PATCH 0/3] Improve Kconfig selection for media devices

Em 28-05-2012 06:42, Hans Verkuil escreveu:

Quoted 150 lines · On Sun May 27 2012 22:15:08 Mauro Carvalho Chehab wrote:
Quoted 101 lines

Em 27-05-2012 15:47, Andy Walls escreveu:

Quoted 100 lines
Quoted 97 lines · Hans Verkuil
Quoted 12 lines · On Sun May 27 2012 19:13:38 Mauro Carvalho Chehab wrote:

Em 27-05-2012 13:56, Mauro Carvalho Chehab escreveu:

Quoted 11 lines

The Kconfig building system is improperly selecting some drivers, like analog TV tuners even when this is not required.

Rearrange the Kconfig in a way to prevent that.

Mauro Carvalho Chehab (3):
media: reorganize the main Kconfig items
media: Remove VIDEO_MEDIA Kconfig option
media: only show V4L devices based on device type selection

 drivers/media/Kconfig               |  114

+++++++++++++++++++++++------------

Quoted 11 lines
Quoted 10 lines
 drivers/media/common/tuners/Kconfig |   64 ++++++++++----------
 drivers/media/dvb/frontends/Kconfig |    1 +
 drivers/media/radio/Kconfig         |    1 +
 drivers/media/rc/Kconfig            |   29 ++++-----
 drivers/media/video/Kconfig         |   76 +++++++++++++++++------
 drivers/media/video/m5mols/Kconfig  |    1 +
 drivers/media/video/pvrusb2/Kconfig |    1 -
 drivers/media/video/smiapp/Kconfig  |    1 +
 9 files changed, 181 insertions(+), 107 deletions(-)
Quoted 1 line

The organization between DVB only, V4L only and hybrid devices are

somewhat

Quoted 1 line

confusing on our tree. From time to time, someone proposes changing

one driver

Quoted 1 line

from one place to another or complains that "his device is DVB only

but it is

Quoted 1 line

inside the V4L tree" (and other similar requests). This sometimes

happen because

Quoted 1 line

the same driver can support analog only, digital only or hybrid

devices.

Quoted 5 lines

Also, one driver may start as a DVB only or as a V4L only and then it can be latter be converted into an hybrid driver.

So, the better is to rearrange the drivers tree, in order to fix this

issue,

Quoted 1 line

removing them from /video and /dvb, and storing them on a better

place.

Quoted 2 lines

So, my proposal is to move all radio, analog TV, digital TV, webcams

and grabber

Quoted 6 lines

bridge drivers to this arrangement:

drivers/media/isa - ISA drivers
drivers/media/usb - USB drivers
drivers/media/pci - PCI/PCIe drivers
drivers/media/platform - platform drivers

drivers/media/parport
drivers/media/i2c

Also, if we do this then I would really like to separate the sub-device drivers
from the main drivers. I find it very messy that those are mixed.

So: drivers/media/subdevs

We might subdivide /subdevs even further (sensors, encoders, decoders, etc.) but
I am not sure if that is worthwhile.

Frankly, the current directory structure (other than the lack of a subdevs
directory) doesn't bother me. But your proposal is a bit cleaner.

Regards,

Hans

Quoted 9 lines

Comments?

Regards,
Mauro

-

PS.: for now, I don't intend to touch at I2C/ancillary drivers. We

may latter move

Quoted 1 line

the i2c drivers that aren't frontend/tuners to media/i2c or to

media/common.

Quoted 2 lines

--
To unsubscribe from this list: send the line "unsubscribe

linux-media" in

Quoted 3 lines

the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

Quoted 7 lines
Quoted 3 lines

Also

cx2341x and tveeprom

cx2341x is a sub-device module. So, it can go to drivers/media/subdevs (ok, it has other problems, but solving them is not as simple as moving things from one place to the other - so let's not mix it here).

It's not a subdev. It's a helper module, so it should go to common (or 'helpers').

Quoted 6 lines

The case of tveeprom is different, because it is not really a sub-device.

Btw, this file is bad named - it should be called hauppauge-eeprom or something like that. Yet, I wouldn't move it out of drivers/media/video (or at least on this first step).

Quoted 8 lines

There are other similar cases. for example, btcx-risc is a common module used by both cx88 and bttv drivers to handle the RISC processor that exists on both. This is not a sub-device, so it won't fit on the above structure. .

Maybe we can create a drivers/media/v4l2-core and move everything that belongs to the core into it, and the things that won't fit elsewhere can be moved into drivers/media/common.

Ack.

Quoted 6 lines

I would also move tuner, dvb-core and frontend to an upper level:

So, in summary, the final structure would be:

drivers/media
/common - drivers that are "common" to several ones, like tveeprom and btcx-risc

And saa7146 sources in /common/saa7146. That will (finally!) make sense.

What can go in here:

- saa7146
- tveeprom
- cx2341x
- btcx-risc
- radio-isa
- smiapp-pll (?)

We should probably also try and get tea575x-tuner.c in here. But that can be done in a separate step.

Quoted 8 lines
Quoted 4 lines

/dvb-core - what is already at dvb/dvb-core
/frontends - what is already at dvb/frontends
/isa - all ISA drivers
/parport - all parallel port drivers

I propose to replace /parport with a /others directory for things of which we have only a very few (parport, i2c) or are hard to classify (si470x, vivi, mem2mem_testdev).

It makes sense to group those drivers that use other buses together. However, the term 'other' could have other meanings than "other bus" or "other drivers".

I think "other-bus" could be an appropriate name for that.

Quoted 6 lines
Quoted 4 lines

/pci - all PCI/PCIe drivers
/platform - all platform drivers
/subdevice - all sub-device drivers

Either /subdevices or /subdevs. It should definitely be plural.

I prefer to put all names in singular, but as "frontends" and "tuners" are already in plural, "subdevices" should follow it.

Quoted 8 lines
Quoted 1 line

/tuner - what's currently at common/tuners

Ditto: /tuners

Quoted 2 lines
	/usb		- all USB drivers
	/v4l2-core	- V4L2 core

/media-core for the media*.c sources.

"media-core" is a very bad name, as "media" is the name of the subsystem. maybe "media-ctrl-core" or something similar.

Quoted 11 lines
Quoted 10 lines

After doing that, the Kconfig options at isa, parport, pci, platform and usb can be optimized further, based on the media support "filters":

<m> Multimedia support --->

    [ ]   Webcams and video grabbers support
    [ ]   Analog TV support
    [ ]   Digital TV support
    [ ]   AM/FM radio receivers/transmitters support
    [ ]   Remote Controller support 
Quoted 4 lines

One thing wasn't clear to me: if I have a hybrid device I gathered that it be enabled only if both analog and digital are set, right? But is that also true for radio and RC support? So if I have a card with all of the above, will it be enabled only if I check all four items?

No.

The tendency is to break drivers into RC support, analog TV support and DVB support. There are several requirements for that, and it actually makes sense to allow disabling what's not needed.

So, the idea here is that, if only analog TV is selected, only the analog part of a board will be enabled. For example, if you select only analog TV, this is how the USB menu will show, for em28xx:

--- V4L USB devices
*** Webcam and/or TV USB devices ***
< > Empia EM28xx USB video capture support (NEW)

(em28xx has the RC part and the DTV part as separate Kconfig options)

Currently, radio will be enabled together with em28xx, but it would be easy to add a logic inside em28xx-video to disable radio, if RADIO_SUPPORT is disabled.

Unfortunately, all hybrid drivers currently require analog TV, although most of them implements the analog support on a separate file (foo-video.c). It shouldn't be hard and it makes sense to split hybrid drivers into a core driver, an analog driver, rc driver and a dvb driver. I don't think it makes sense to split radio into a separate driver, but it shouldn't be hard to do that too.

This is actually one of the issues I want to solve: there are several em28xx devices that don't support analog TV at all. Yet, V4L2 is not selected, the driver won't even appear to the user.

Of course, just renaming the directories won't help with hybrid cards itself. A further work is required on each hybrid drivers.

Quoted 3 lines

That doesn't really make sense to me. I think the average end-user just cares about the hardware that he wants to enable, and if a hybrid device is selected, then that should select all the various core configs that it needs. Not the other way around.

We can add an option for "hybrid TV support" that would enable all 4 cores, in order to help the average end-user, although I don't think he would have any troubles to understand that, if his board has analog TV, digital TV and Remote Controller, that all those 3 options need to be selected, for full device support.

Quoted 5 lines

Another thing: I would move 'video grabber' away from webcams and to 'Analog TV/Video support'. And rename 'Digital TV' to 'Digital TV/Video' as well. A video grabber driver has much more to do with TV then it does with webcams.

From the Kconfig perspective, the difference between the 3 video categories is that:

- analog TV: tuner-core is required, and 10 other tuner drivers that are listed inside tuner core;

- digital TV: tuners are needed, but those are either customised or auto-selected;

- camera/grabber: no tuner is needed.

Also, there are several professional camera devices at bttv, cx88, saa7134 and cx25821 that don't require tuners, and support for them can be compiled without tuner support.

In other words, a camera driver and a grabber driver are very similar. Of course, a webcam will also require a sensor (on several drivers, the sensor is internal to the driver, so no extra modules are needed). Of course, a platform camera driver will also require "media controller", "subdev API", but those features are already enabled via other config options.

So, from tuners' perspective, and from Kconfig's perspective, a video grabber is just like a professional camera driver, a cellphone camera or a webcam driver.

Quoted 8 lines

But basically I would do away with filters altogether and just present a menu with bus type (usb/pci/platform/isa/others) and subdivide each bus either by captions:

*** Webcams ***
*** Analog TV/Video Capture ***

or corresponding submenus. This could be decided based on the number of devices in each category.

The Kconfig logic for doing that would be a nightmare, as "select" doesn't auto-select the dependencies, and a logic using "depends on" would be very hard to maintain.

So, assuming for example, the em28xx Kconfig, the logic would need to be something like:

config VIDEO_EM28XX
select VIDEO_DEV
select MEDIA_TUNER

config VIDEO_EM28XX_DVB
select DVB_CORE

config VIDEO_EM28XX_RC
select RC_CORE

But MEDIA_TUNER selects 11 drivers, so the above won't work, as select doesn't do dependency check.

Moving all tuner-core dependencies to all analog drivers will be a big and hard-to-maintain patch, as new tuners are added all the times, and they may require changes for all boards.

A reverse depends on might be used for it, but then:

config MEDIA_TUNER

	depends on VIDEO_EM28XX || VIDEO_BTTV || ...

would be counter-intuitive for developers and that would bring a long list of dependencies.

Also, if RC_CORE is selected, the RC hardware decoders drivers list should appear, but the list will only appear after selecting the hardware, with will look weird and counter-intuitive for the end-user.

So, I don't think we can get rid of asking the user about what core features are needed by the driver he wants to compile.

Regards,
Mauro

#28 lore raw

Re: [RFC] file tree rearrangement - was: Re: [RFC PATCH 0/3] Improve Kconfig selection for media devices

Quoted 2 lines · On Mon May 28 2012 13:03:42 Mauro Carvalho Chehab wrote:

Em 28-05-2012 06:42, Hans Verkuil escreveu:

Quoted 1 line · On Sun May 27 2012 22:15:08 Mauro Carvalho Chehab wrote:

...

Quoted 9 lines
Quoted 8 lines
Quoted 4 lines

/dvb-core - what is already at dvb/dvb-core
/frontends - what is already at dvb/frontends
/isa - all ISA drivers
/parport - all parallel port drivers

I propose to replace /parport with a /others directory for things of which we have only a very few (parport, i2c) or are hard to classify (si470x, vivi, mem2mem_testdev).

Quoted 5 lines

It makes sense to group those drivers that use other buses together. However, the term 'other' could have other meanings than "other bus" or "other drivers".

I think "other-bus" could be an appropriate name for that.

OK.

Quoted 5 lines
Quoted 1 line

/media-core for the media*.c sources.

"media-core" is a very bad name, as "media" is the name of the subsystem. maybe "media-ctrl-core" or something similar.

mc-core?

Quoted 33 lines
Quoted 12 lines
Quoted 11 lines

After doing that, the Kconfig options at isa, parport, pci, platform and usb can be optimized further, based on the media support "filters":

<m> Multimedia support --->

    [ ]   Webcams and video grabbers support
    [ ]   Analog TV support
    [ ]   Digital TV support
    [ ]   AM/FM radio receivers/transmitters support
    [ ]   Remote Controller support 
Quoted 4 lines

One thing wasn't clear to me: if I have a hybrid device I gathered that it be enabled only if both analog and digital are set, right? But is that also true for radio and RC support? So if I have a card with all of the above, will it be enabled only if I check all four items?

No.

The tendency is to break drivers into RC support, analog TV support and DVB support. There are several requirements for that, and it actually makes sense to allow disabling what's not needed.

So, the idea here is that, if only analog TV is selected, only the analog part of a board will be enabled. For example, if you select only analog TV, this is how the USB menu will show, for em28xx:

--- V4L USB devices
*** Webcam and/or TV USB devices ***
< > Empia EM28xx USB video capture support (NEW)

(em28xx has the RC part and the DTV part as separate Kconfig options)

Quoted 8 lines

Currently, radio will be enabled together with em28xx, but it would be easy to add a logic inside em28xx-video to disable radio, if RADIO_SUPPORT is disabled.

Unfortunately, all hybrid drivers currently require analog TV, although most of them implements the analog support on a separate file (foo-video.c). It shouldn't be hard and it makes sense to split hybrid drivers into a core driver, an analog driver, rc driver and a dvb driver. I don't think it makes sense to split radio into a separate driver, but it shouldn't be hard to do that too.

OK, I misunderstood your original description.

Quoted 32 lines

This is actually one of the issues I want to solve: there are several em28xx devices that don't support analog TV at all. Yet, V4L2 is not selected, the driver won't even appear to the user.

Of course, just renaming the directories won't help with hybrid cards itself. A further work is required on each hybrid drivers.

Quoted 3 lines

That doesn't really make sense to me. I think the average end-user just cares about the hardware that he wants to enable, and if a hybrid device is selected, then that should select all the various core configs that it needs. Not the other way around.

We can add an option for "hybrid TV support" that would enable all 4 cores, in order to help the average end-user, although I don't think he would have any troubles to understand that, if his board has analog TV, digital TV and Remote Controller, that all those 3 options need to be selected, for full device support.

Quoted 3 lines

Another thing: I would move 'video grabber' away from webcams and to 'Analog TV/Video support'. And rename 'Digital TV' to 'Digital TV/Video' as well. A video grabber driver has much more to do with TV then it does with webcams.

From the Kconfig perspective, the difference between the 3 video categories is that:

- analog TV: tuner-core is required, and 10 other tuner drivers that are listed inside tuner core;

- digital TV: tuners are needed, but those are either customised or auto-selected;

- camera/grabber: no tuner is needed.

Also, there are several professional camera devices at bttv, cx88, saa7134 and cx25821 that don't require tuners, and support for them can be compiled without tuner support.

Quoted 7 lines

In other words, a camera driver and a grabber driver are very similar. Of course, a webcam will also require a sensor (on several drivers, the sensor is internal to the driver, so no extra modules are needed). Of course, a platform camera driver will also require "media controller", "subdev API", but those features are already enabled via other config options.

So, from tuners' perspective, and from Kconfig's perspective, a video grabber is just like a professional camera driver, a cellphone camera or a webcam driver.

I would never have understood that from the menu names. In particular that 'Analog TV' implies a tuner. For me it could just as well imply a composite input video grabber.

How about this:

[ ] Video (aka V4L2) support
[ ] Digital TV Tuner (aka DVB) support
[ ] Analog TV Tuner support
[ ] Radio Tuner/Modulator support
[ ] Remote Controller support

I didn't like the term 'Webcams and video grabbers' as that description is never 100%. The help text can clarify this in more detail, of course.

Regards,

Hans

#29 lore raw

Re: [RFC] file tree rearrangement - was: Re: [RFC PATCH 0/3] Improve Kconfig selection for media devices

Em 28-05-2012 08:45, Hans Verkuil escreveu:

Quoted 3 lines · On Mon May 28 2012 13:03:42 Mauro Carvalho Chehab wrote:
Quoted 2 lines

Em 28-05-2012 06:42, Hans Verkuil escreveu:

Quoted 1 line · On Sun May 27 2012 22:15:08 Mauro Carvalho Chehab wrote:

<skip/>

Quoted 7 lines
Quoted 5 lines
Quoted 1 line

/media-core for the media*.c sources.

"media-core" is a very bad name, as "media" is the name of the subsystem. maybe "media-ctrl-core" or something similar.

mc-core?

Ok.

<skip/>

Quoted 21 lines
Quoted 21 lines
Quoted 3 lines

Another thing: I would move 'video grabber' away from webcams and to 'Analog TV/Video support'. And rename 'Digital TV' to 'Digital TV/Video' as well. A video grabber driver has much more to do with TV then it does with webcams.

From the Kconfig perspective, the difference between the 3 video categories is that:

- analog TV: tuner-core is required, and 10 other tuner drivers that are listed inside tuner core;

- digital TV: tuners are needed, but those are either customised or auto-selected;

- camera/grabber: no tuner is needed.

Also, there are several professional camera devices at bttv, cx88, saa7134 and cx25821 that don't require tuners, and support for them can be compiled without tuner support.

In other words, a camera driver and a grabber driver are very similar. Of course, a webcam will also require a sensor (on several drivers, the sensor is internal to the driver, so no extra modules are needed). Of course, a platform camera driver will also require "media controller", "subdev API", but those features are already enabled via other config options.

Quoted 5 lines
Quoted 2 lines

So, from tuners' perspective, and from Kconfig's perspective, a video grabber is just like a professional camera driver, a cellphone camera or a webcam driver.

I would never have understood that from the menu names. In particular that 'Analog TV' implies a tuner. For me it could just as well imply a composite input video grabber.

(the discussion below is a little OT for file rearrangement - It belongs to the Kconfig selection patches - I'm about to post a version 2 of it)

Can you use analog TV without a tuner? ;)

Analog TV is a clear concept for the end user: it is something that allows tuning a channel and watch it. So, enabling this feature should enable both functionality.

For us, this term causes some confusion as we generally use both "analog TV" and "V4L2" to refer to the same thing.

Quoted 3 lines

How about this:

[ ] Video (aka V4L2) support

DVB is also video. Also Radio is also V4L2 support. So, this seems confusing.

Quoted 1 line

[ ] Digital TV Tuner (aka DVB) support

On both above, I don't like the idea of using an acronym, as it limits the scope.

DVB, btw, is a bad name for the user interface, as users with other digital standards like ATSC may not select it, as they don't have "DVB" standard.

Also, calling it as "tuner" also limits the scope and, worse than that, enforces the idea to the user to call the entire device as "tuner" (ok, some manufacturers do that, but, for us, when someone reports a problem at the tuner, we genrally think about the PLL, and not about the entire device).

Quoted 6 lines

[ ] Analog TV Tuner support
[ ] Radio Tuner/Modulator support
[ ] Remote Controller support

I didn't like the term 'Webcams and video grabbers' as that description is never 100%. The help text can clarify this in more detail, of course.

At version 2, I renamed it to: "Cameras/video grabbers support". Maybe we can use "video capture devices" instead of "video grabbers" to be even more clearer.

Regards,
Mauro

#30 lore raw

Re: [RFC] file tree rearrangement - was: Re: [RFC PATCH 0/3] Improve Kconfig selection for media devices

In reply to Hans Verkuil

Em 27-05-2012 14:25, Hans Verkuil escreveu:

Quoted 39 lines · On Sun May 27 2012 19:13:38 Mauro Carvalho Chehab wrote:
Quoted 38 lines

Em 27-05-2012 13:56, Mauro Carvalho Chehab escreveu:

Quoted 10 lines

The Kconfig building system is improperly selecting some drivers, like analog TV tuners even when this is not required.

Rearrange the Kconfig in a way to prevent that.

Mauro Carvalho Chehab (3):
media: reorganize the main Kconfig items
media: Remove VIDEO_MEDIA Kconfig option
media: only show V4L devices based on device type selection

Quoted 11 lines
 drivers/media/Kconfig               |  114 +++++++++++++++++++++++------------
 drivers/media/common/tuners/Kconfig |   64 ++++++++++----------
 drivers/media/dvb/frontends/Kconfig |    1 +
 drivers/media/radio/Kconfig         |    1 +
 drivers/media/rc/Kconfig            |   29 ++++-----
 drivers/media/video/Kconfig         |   76 +++++++++++++++++------
 drivers/media/video/m5mols/Kconfig  |    1 +
 drivers/media/video/pvrusb2/Kconfig |    1 -
 drivers/media/video/smiapp/Kconfig  |    1 +
 9 files changed, 181 insertions(+), 107 deletions(-)

The organization between DVB only, V4L only and hybrid devices are somewhat confusing on our tree. From time to time, someone proposes changing one driver from one place to another or complains that "his device is DVB only but it is inside the V4L tree" (and other similar requests). This sometimes happen because the same driver can support analog only, digital only or hybrid devices.

Also, one driver may start as a DVB only or as a V4L only and then it can be latter be converted into an hybrid driver.

So, the better is to rearrange the drivers tree, in order to fix this issue, removing them from /video and /dvb, and storing them on a better place.

So, my proposal is to move all radio, analog TV, digital TV, webcams and grabber bridge drivers to this arrangement:

Quoted 6 lines
Quoted 4 lines

drivers/media/isa - ISA drivers
drivers/media/usb - USB drivers
drivers/media/pci - PCI/PCIe drivers
drivers/media/platform - platform drivers

drivers/media/parport

Ok.

Quoted 1 line

drivers/media/i2c

See below.

Quoted 7 lines

Also, if we do this then I would really like to separate the sub-device drivers from the main drivers. I find it very messy that those are mixed.

So: drivers/media/subdevs

We might subdivide /subdevs even further (sensors, encoders, decoders, etc.) but I am not sure if that is worthwhile.

I think all subdevs (being i2c or not) should be under the same directory. drivers/media/subdevs seems reasonable.

Sub-dividing them doesn't seem a good idea, as some subdevs may have more than one function.

Quoted 2 lines

Frankly, the current directory structure (other than the lack of a subdevs directory) doesn't bother me. But your proposal is a bit cleaner.

It doesn't bother me either[1], with regards to the existing drivers, but it is confusing for someone that wants to write a new driver.

[1] with exception to the saa7146 driver under media/common - that looks really weird.

Also, for example, Antti proposed to add V4L2 support for dvb-usb. I think he ended by discarding it for his GoC scope of work, but, anyway, with the current arrangement, that would mean that dvb-usb won't fit well at media/dvb (as all other hybrid cards aren't there).

So, as we're removing the explicit Kconfig logic for compiling V4L2 core/DVB core, it makes sense to rearrange the rest of the structure and improve the building system to better handle the media cards, removing the artificial and imperfect divisions that it is used there.

Regards,
Mauro

#31 lore raw

Re: [RFC] file tree rearrangement - was: Re: [RFC PATCH 0/3] Improve Kconfig selection for media devices

Quoted 56 lines · On Sun May 27 2012 21:54:58 Mauro Carvalho Chehab wrote:

Em 27-05-2012 14:25, Hans Verkuil escreveu:

Quoted 39 lines · On Sun May 27 2012 19:13:38 Mauro Carvalho Chehab wrote:
Quoted 38 lines

Em 27-05-2012 13:56, Mauro Carvalho Chehab escreveu:

Quoted 10 lines

The Kconfig building system is improperly selecting some drivers, like analog TV tuners even when this is not required.

Rearrange the Kconfig in a way to prevent that.

Mauro Carvalho Chehab (3):
media: reorganize the main Kconfig items
media: Remove VIDEO_MEDIA Kconfig option
media: only show V4L devices based on device type selection

Quoted 11 lines
 drivers/media/Kconfig               |  114 +++++++++++++++++++++++------------
 drivers/media/common/tuners/Kconfig |   64 ++++++++++----------
 drivers/media/dvb/frontends/Kconfig |    1 +
 drivers/media/radio/Kconfig         |    1 +
 drivers/media/rc/Kconfig            |   29 ++++-----
 drivers/media/video/Kconfig         |   76 +++++++++++++++++------
 drivers/media/video/m5mols/Kconfig  |    1 +
 drivers/media/video/pvrusb2/Kconfig |    1 -
 drivers/media/video/smiapp/Kconfig  |    1 +
 9 files changed, 181 insertions(+), 107 deletions(-)

The organization between DVB only, V4L only and hybrid devices are somewhat confusing on our tree. From time to time, someone proposes changing one driver from one place to another or complains that "his device is DVB only but it is inside the V4L tree" (and other similar requests). This sometimes happen because the same driver can support analog only, digital only or hybrid devices.

Also, one driver may start as a DVB only or as a V4L only and then it can be latter be converted into an hybrid driver.

So, the better is to rearrange the drivers tree, in order to fix this issue, removing them from /video and /dvb, and storing them on a better place.

So, my proposal is to move all radio, analog TV, digital TV, webcams and grabber bridge drivers to this arrangement:

Quoted 6 lines
Quoted 4 lines

drivers/media/isa - ISA drivers
drivers/media/usb - USB drivers
drivers/media/pci - PCI/PCIe drivers
drivers/media/platform - platform drivers

drivers/media/parport

Ok.

Quoted 1 line

drivers/media/i2c

See below.

Quoted 3 lines

Also, if we do this then I would really like to separate the sub-device drivers from the main drivers. I find it very messy that those are mixed.

Quoted 7 lines
Quoted 4 lines

So: drivers/media/subdevs

We might subdivide /subdevs even further (sensors, encoders, decoders, etc.) but I am not sure if that is worthwhile.

I think all subdevs (being i2c or not) should be under the same directory. drivers/media/subdevs seems reasonable.

What I meant with media/i2c was not for subdevices but for a few drivers that are pure i2c V4L drivers (radio-tea5764.c, radio-si470x-i2c.c).

I am not sure whether we should bother though. What might be more useful is to have a 'others' subdirectory containing 'odds 'n ends' like parport and i2c drivers, and also drivers like the radio-si470x which comes in a i2c (as I mentioned above) and a usb variant and so is hard to classify (and splitting it up doesn't seem useful).

Quoted 2 lines

Sub-dividing them doesn't seem a good idea, as some subdevs may have more than one function.

I agree (for now :-) ).

Quoted 8 lines
Quoted 2 lines

Frankly, the current directory structure (other than the lack of a subdevs directory) doesn't bother me. But your proposal is a bit cleaner.

It doesn't bother me either[1], with regards to the existing drivers, but it is confusing for someone that wants to write a new driver.

[1] with exception to the saa7146 driver under media/common - that looks really weird.

Things like saa7146, cx2341x, tveeprom, radio-isa are all helper modules for particular types of hardware. So they should go to a 'common' or 'helpers' directory.

Quoted 9 lines

Also, for example, Antti proposed to add V4L2 support for dvb-usb. I think he ended by discarding it for his GoC scope of work, but, anyway, with the current arrangement, that would mean that dvb-usb won't fit well at media/dvb (as all other hybrid cards aren't there).

So, as we're removing the explicit Kconfig logic for compiling V4L2 core/DVB core, it makes sense to rearrange the rest of the structure and improve the building system to better handle the media cards, removing the artificial and imperfect divisions that it is used there.

Go for it!

:-)

Regards,

Hans

#32 lore raw

Re: [RFC PATCH 0/3] Improve Kconfig selection for media devices

In reply to Mauro Carvalho Chehab
Quoted 9 lines · On May 27 Mauro Carvalho Chehab wrote:

The Kconfig building system is improperly selecting some drivers, like analog TV tuners even when this is not required.

Rearrange the Kconfig in a way to prevent that.

Mauro Carvalho Chehab (3):
media: reorganize the main Kconfig items
media: Remove VIDEO_MEDIA Kconfig option
media: only show V4L devices based on device type selection

On 1/3 "media: reorganize the main Kconfig items":

a) I agree with Sylvester that the MEDIA_WEBCAM_SUPP variable, prompt text, and help text should be worded a bit more general. Wouldn't this variable also cover industrial cameras and who knows what other kinds of video inputs? I also agree with Sylvester about the SUPP vs. SUPPORT thing.

b) Small typo in the MEDIA_ANALOG_TV_SUPP help text: of -> or.

c) The RC_CORE_SUPP help text gives the impression that RC core is always needed if there is hardware with an IR feature. But the firedtv driver is a case where the driver directly works on top of the input subsystem rather than on RC core. Maybe there are more such cases. (Currently we don't ask whether FireDTV owners want IR support; we silently build the IR part of firedtv in if CONFIG_INPUT is set, and silently omit the IR part of firedtv if CONFIG_INPUT was disabled, which requires CONFIG_EXPERT.)

How about turning the "Remote Controller support" option into merely a filter for standalone IR and RF receivers and transmitters, whereas Kconfig options in the analog and digital TV categories silently do "select RC_CORE if INPUT" for combined tuner + IR/RF rx/tx hardware?

Signature · 3 lines
Stefan Richter
-=====-===-- -=-= ===--
http://arcgraph.de/sr/
#33 lore raw

Re: [RFC PATCH 0/3] Improve Kconfig selection for media devices

Em 28-05-2012 06:48, Stefan Richter escreveu:

Quoted 13 lines · On May 27 Mauro Carvalho Chehab wrote:
Quoted 9 lines

The Kconfig building system is improperly selecting some drivers, like analog TV tuners even when this is not required.

Rearrange the Kconfig in a way to prevent that.

Mauro Carvalho Chehab (3):
media: reorganize the main Kconfig items
media: Remove VIDEO_MEDIA Kconfig option
media: only show V4L devices based on device type selection

On 1/3 "media: reorganize the main Kconfig items":

Quoted 7 lines

a) I agree with Sylvester that the MEDIA_WEBCAM_SUPP variable, prompt text, and help text should be worded a bit more general. Wouldn't this variable also cover industrial cameras and who knows what other kinds of video inputs? I also agree with Sylvester about the SUPP vs. SUPPORT thing.

b) Small typo in the MEDIA_ANALOG_TV_SUPP help text: of -> or.

Ok, fixed both above issues. I'll post a version 2 patch series soon.

Quoted 4 lines

c) The RC_CORE_SUPP help text gives the impression that RC core is always needed if there is hardware with an IR feature. But the firedtv driver is a case where the driver directly works on top of the input subsystem rather than on RC core. Maybe there are more such cases.

All other drivers use RC_CORE, as we've replaced the existing implementations to use it, removing bad/inconsistent IR code implementations everywhere. The only driver left is firedtv.

Quoted 9 lines

(Currently we don't ask whether FireDTV owners want IR support; we silently build the IR part of firedtv in if CONFIG_INPUT is set, and silently omit the IR part of firedtv if CONFIG_INPUT was disabled, which requires CONFIG_EXPERT.)

How about turning the "Remote Controller support" option into merely a filter for standalone IR and RF receivers and transmitters, whereas Kconfig options in the analog and digital TV categories silently do "select RC_CORE if INPUT" for combined tuner + IR/RF rx/tx hardware?

The right thing to do is to convert drivers/media/dvb/firewire/firedtv-rc.c to use rc-core. There are several issues with the current implementation:

- IR keycode tables are hardcoded;
- There is a "magic" to convert a 16 bits scancode (NEC protocol?) into a key;
- There's no way to replace the existing table to an user-provided one;
- The IR userspace tools won't work, as it doesn't export the needed sysfs nodes to report an IR.

If you want, I can write a patch doing that, but I can't test it here, as I don't have a firedtv device.

Regards,
Mauro

#34 lore raw

Re: [RFC PATCH 0/3] Improve Kconfig selection for media devices

Quoted 9 lines · On May 28 Mauro Carvalho Chehab wrote:

Em 28-05-2012 06:48, Stefan Richter escreveu:

Quoted 4 lines

c) The RC_CORE_SUPP help text gives the impression that RC core is always needed if there is hardware with an IR feature. But the firedtv driver is a case where the driver directly works on top of the input subsystem rather than on RC core. Maybe there are more such cases.

All other drivers use RC_CORE, as we've replaced the existing implementations to use it, removing bad/inconsistent IR code implementations everywhere. The only driver left is firedtv.

[...]

Quoted 8 lines

The right thing to do is to convert drivers/media/dvb/firewire/firedtv-rc.c to use rc-core. There are several issues with the current implementation:

- IR keycode tables are hardcoded;
- There is a "magic" to convert a 16 bits scancode (NEC protocol?) into a key;
- There's no way to replace the existing table to an user-provided one;

There are two tables: An old mapping and a new mapping. The new mapping is copied into a newly allocated writable array. It should be possible to overwrite this array by means of EVIOCSKEYCODE ioctls.

If I remember correctly, the firedtv driver sources came only with the old mapping table when they were submitted for upstream merge. When I helped to clean up the driver, I noticed that the two FireDTV C/CI and T/CI (which I newly purchased at the time as test devices) emitted entirely different scan codes than what the sources suggested. I suppose the original driver sources were written against older firmware or maybe older hardware revisions, possibly even prototype hardware. We would have to get hold of the original authors if we wanted to find out.

Anyway, I implemented the new scancode->keycode mapping in a way that followed Dimitry's (?) review advice at that time, but left the old immutable mapping in there as fallback if an old scancode was received.

If it is a burden, we could rip out the old table and see if anybody complains.

Quoted 2 lines

- The IR userspace tools won't work, as it doesn't export the needed sysfs nodes to report an IR.

But at least keypad/ keyboard related userspace should work.

Quoted 2 lines

If you want, I can write a patch doing that, but I can't test it here, as I don't have a firedtv device.

I can test such a patch as spare time permits if you point me to particular tools that I should test.

Signature · 3 lines
Stefan Richter
-=====-===-- -=-= ===--
http://arcgraph.de/sr/
#35 lore raw

Re: [RFC PATCH 0/3] Improve Kconfig selection for media devices

Em 28-05-2012 09:17, Stefan Richter escreveu:

Quoted 20 lines · On May 28 Mauro Carvalho Chehab wrote:
Quoted 9 lines

Em 28-05-2012 06:48, Stefan Richter escreveu:

Quoted 4 lines

c) The RC_CORE_SUPP help text gives the impression that RC core is always needed if there is hardware with an IR feature. But the firedtv driver is a case where the driver directly works on top of the input subsystem rather than on RC core. Maybe there are more such cases.

All other drivers use RC_CORE, as we've replaced the existing implementations to use it, removing bad/inconsistent IR code implementations everywhere. The only driver left is firedtv.

[...]

Quoted 8 lines

The right thing to do is to convert drivers/media/dvb/firewire/firedtv-rc.c to use rc-core. There are several issues with the current implementation:

- IR keycode tables are hardcoded;
- There is a "magic" to convert a 16 bits scancode (NEC protocol?) into a key;
- There's no way to replace the existing table to an user-provided one;

Quoted 3 lines

There are two tables: An old mapping and a new mapping. The new mapping is copied into a newly allocated writable array. It should be possible to overwrite this array by means of EVIOCSKEYCODE ioctls.

You can replace, but only if the keycode is inside the 0x0300-0x031f or 0x45xx range:

void fdtv_handle_rc(struct firedtv *fdtv, unsigned int code) {
...

	if (code >= 0x0300 && code <= 0x031f)
		code = keycode[code - 0x0300];
	else if (code >= 0x0340 && code <= 0x0354)
		code = keycode[code - 0x0320];
	else if (code >= 0x4501 && code <= 0x451f)
		code = oldtable[code - 0x4501];
	else if (code >= 0x4540 && code <= 0x4542)
		code = oldtable[code - 0x4521];
	else {
		printk(KERN_DEBUG "firedtv: invalid key code 0x%04x "
		       "from remote control\n", code);
		return;
	}

So, you can't, for example, get some other NEC remote controller and use it there.

Also, the userspace IR tool won't recognize it as an IR, so the existing tables at userspace can't be loaded.

Quoted 8 lines

If I remember correctly, the firedtv driver sources came only with the old mapping table when they were submitted for upstream merge. When I helped to clean up the driver, I noticed that the two FireDTV C/CI and T/CI (which I newly purchased at the time as test devices) emitted entirely different scan codes than what the sources suggested. I suppose the original driver sources were written against older firmware or maybe older hardware revisions, possibly even prototype hardware. We would have to get hold of the original authors if we wanted to find out.

It is very common to the vendors to replace the remote controllers that are shipped together with the device.

Also, several advanced users prefer to not use the IR provided by the vendor, but to use other IR's, assigning other keys to the driver to allow them to control more things on their systems.

Quoted 3 lines

Anyway, I implemented the new scancode->keycode mapping in a way that followed Dimitry's (?) review advice at that time, but left the old immutable mapping in there as fallback if an old scancode was received.

The newer way you used only works fine if the scancode table is not sparsed. That's why you needed to remove the higher bits on your RC handling code, generating a table with 34 elements.

The RC core dynamically allocates the scancode table in runtime, allowing users to use very big or very short scan tables. It also doesn't waste space with sparsed keycodes.

Users can even merge several different keytables together, in order to allow the device to be used by different remote controllers, at the same time.

Quoted 6 lines

If it is a burden, we could rip out the old table and see if anybody complains.

Quoted 2 lines

- The IR userspace tools won't work, as it doesn't export the needed sysfs nodes to report an IR.

Quoted 7 lines

But at least keypad/ keyboard related userspace should work.

Quoted 2 lines

If you want, I can write a patch doing that, but I can't test it here, as I don't have a firedtv device.

I can test such a patch as spare time permits if you point me to particular tools that I should test.

Ok, I'll write a patch for you to test.

Regards,
Mauro