linux-media.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [GIT PULL for v4.5-rc1] media controller next gen patch series
@ 2016-01-12 10:43 Mauro Carvalho Chehab
  2016-01-12 20:54 ` Stephen Rothwell
                   ` (2 more replies)
  0 siblings, 3 replies; 11+ messages in thread
From: Mauro Carvalho Chehab @ 2016-01-12 10:43 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Andrew Morton, Linux Media Mailing List, Linux Kernel Mailing List

Hi Linus,

That's the second part of the media patches. It contains the media controller
next generation patches, with is the result of one year of discussions and
development. It also contains patches to enable media controller support
at the DVB subsystem.

The goal is to improve the media controller to allow proper support for
other types of Video4Linux devices (radio and TV ones) and to extend the
media controller functionality to allow it to be used by other subsystems
like DVB, ALSA and IIO.

In order to use the new functionality, a new ioctl is needed
(MEDIA_IOC_G_TOPOLOGY). As we're still discussing how to pack the struct
fields of this ioctl in order to avoid compat32 issues, I decided to add
a patch at the end of this series commenting out the new ioctl, in order
to postpone the addition of the new ioctl to the next Kernel version (4.6).
With that, no userspace visible changes should happen at the media
controller API, as the existing ioctls are untouched. Yet, it helps
DVB, ALSA and IIO developers to develop and test the patches adding media
controller support there, as the core will contain all required internal
changes to allow adding support for devices that belong to those
subsystems.

Regards,
Mauro

The following changes since commit 768acf46e1320d6c41ed1b7c4952bab41c1cde79:

  [media] rc: sunxi-cir: Initialize the spinlock properly (2015-12-23 15:51:40 -0200)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media tags/media/v4.5-2

for you to fetch changes up to be0270ec89e6b9b49de7e533dd1f3a89ad34d205:

  [media] Postpone the addition of MEDIA_IOC_G_TOPOLOGY (2016-01-11 12:35:17 -0200)

----------------------------------------------------------------
media updates for v4.5-rc1

----------------------------------------------------------------
Dan Carpenter (2):
      [media] media-device: copy_to/from_user() returns positive
      [media] v4l2-device: fix a missing error code

Javier Martinez Canillas (26):
      [media] staging: omap4iss: get entity ID using media_entity_id()
      [media] omap3isp: get entity ID using media_entity_id()
      [media] media: use entity.graph_obj.mdev instead of .parent
      [media] media: remove media entity .parent field
      [media] omap3isp: separate links creation from entities init
      [media] omap3isp: create links after all subdevs have been bound
      [media] staging: omap4iss: separate links creation from entities init
      [media] v4l: vsp1: create pad links after subdev registration
      [media] v4l: vsp1: separate links creation from entities init
      [media] uvcvideo: create pad links after subdev registration
      [media] smiapp: create pad links after subdev registration
      [media] media: don't try to empty links list in media_entity_cleanup()
      [media] media-entity: init pads on entity init if was registered before
      [media] omap3isp: remove per ISP module link creation functions
      [media] omap3isp: remove pads prefix from isp_create_pads_links()
      [media] omap3isp: rename single labels to just error
      [media] omap3isp: consistently use v4l2_dev var in complete notifier
      [media] staging: omap4iss: remove pads prefix from *_create_pads_links()
      [media] v4l: vsp1: remove pads prefix from *_create_pads_links()
      [media] v4l: vsp1: use else if instead of continue when creating links
      [media] uvcvideo: remove pads prefix from uvc_mc_create_pads_links()
      [media] uvcvideo: register entity subdev on init
      [media] media-entity: remove unneded enclosing parenthesis
      [media] media-device: check before unregister if mdev was registered
      [media] media-device: split media initialization and registration
      [media] media-device: set topology version 0 at media registration

Mauro Carvalho Chehab (123):
      [media] au0828: Cache the decoder info at au0828 dev structure
      [media] media: get rid of unused "extra_links" param on media_entity_init()
      [media] Kconfig: Re-enable Media controller support for DVB
      [media] au0828: Fix the logic that enables the analog demoder link
      [media] media: create a macro to get entity ID
      [media] media: add a common struct to be embed on media graph objects
      [media] media: use media_gobj inside entities
      [media] media: use media_gobj inside pads
      [media] media: use media_gobj inside links
      [media] media: add messages when media device gets (un)registered
      [media] media: add a debug message to warn about gobj creation/removal
      [media] media: rename the function that create pad links
      [media] uapi/media.h: Declare interface types for V4L2 and DVB
      [media] media: add functions to allow creating interfaces
      [media] media: Don't accept early-created links
      [media] media: convert links from array to list
      [media] media: make add link more generic
      [media] media: make media_link more generic to handle interace links
      [media] media: make link debug printk more generic
      [media] media: add support to link interfaces and entities
      [media] media-entity: add a helper function to create interface
      [media] dvbdev: add support for interfaces
      [media] media: add a linked list to track interfaces by mdev
      [media] dvbdev: add support for indirect interface links
      [media] uapi/media.h: Fix entity namespace
      [media] replace all occurrences of MEDIA_ENT_T_DEVNODE_V4L
      [media] replace all occurrences of MEDIA_ENT_T_DEVNODE_DVB
      [media] media: add macros to check if subdev or V4L2 DMA
      [media] media: use macros to check for V4L2 subdev entities
      [media] omap3/omap4/davinci: get rid of MEDIA_ENT_T_V4L2_SUBDEV abuse
      [media] s5c73m3: fix subdev type
      [media] s5k5baf: fix subdev type
      [media] davinci_vbpe: stop MEDIA_ENT_T_V4L2_SUBDEV abuse
      [media] omap4iss: change the logic that checks if an entity is a subdev
      [media] v4l2-subdev: use MEDIA_ENT_T_UNKNOWN for new subdevs
      [media] media controller: get rid of entity subtype on Kernel
      [media] media.h: don't use legacy entity macros at Kernel
      [media] DocBook: update descriptions for the media controller entities
      [media] dvb: modify core to implement interfaces/entities at MC new gen
      [media] media: report if a pad is sink or source at debug msg
      [media] uapi/media.h: Add MEDIA_IOC_G_TOPOLOGY ioctl
      [media] media: Use a macro to interate between all interfaces
      [media] media: move mdev list init to gobj
      [media] media-device: add pads and links to media_device
      [media] media_device: add a topology version field
      [media] media-device: add support for MEDIA_IOC_G_TOPOLOGY ioctl
      [media] media-entity: unregister entity links
      [media] remove interface links at media_entity_unregister()
      [media] media-device: remove interfaces and interface links
      [media] media-entity: protect object creation/removal using spin lock
      [media] tuner-core: add an input pad
      [media] dvbdev: enable all interface links at init
      [media] au0828: postpone call to au0828_unregister_media_device()
      [media] media-entity: fix backlink removal on __media_entity_remove_link()
      [media] dvbdev: returns error if graph object creation fails
      [media] v4l2-core: create MC interfaces for devnodes
      [media] media-entity.h: document all the structs
      [media] media.h: create connector entities for hybrid TV devices
      [media] au0828: add support for the connectors
      [media] au0828: Create connector links
      [media] media-device: supress backlinks at G_TOPOLOGY ioctl
      [media] v4l2 core: enable all interface links at init
      [media] dvb core: must check dvb_create_media_graph()
      [media] media-entity: enforce check of interface and links creation
      [media] cx231xx: enforce check for graph creation
      [media] au0828: enforce check for graph creation
      [media] media-entity: must check media_create_pad_link()
      [media] media-entity.h: rename entity.type to entity.function
      [media] media-device: export the entity function via new ioctl
      [media] uapi/media.h: Rename entities types to functions
      [media] DocBook: update entities documentation
      [media] dvbdev: move indirect links on dvr/demux to a separate function
      [media] dvbdev: Don't create indirect links
      [media] media_entity: remove gfp_flags argument
      [media] media-device: use unsigned ints on some places
      [media] media-device: put headers in alphabetic order
      [media] media-device: better name Kernelspace/Userspace links
      [media] media framework: rename pads init function to media_entity_pads_init()
      [media] media-entity.h: get rid of revision and group_id fields
      [media] DocBook: Move media-framework.txt contents to media-device.h
      [media] media-entity.h: convert media_entity_cleanup to inline
      [media] media-device.h: Improve documentation and update it
      [media] media: remove extra blank lines
      [media] media-entity: get rid of forward __media_entity_remove_link() declaration
      [media] media_entity: get rid of a unused var
      [media] media_entity: rename media_obj functions to *_create *_destroy
      [media] media-entity.h: move kernel-doc tags from media-entity.c
      [media] media: use unsigned for pad index
      [media] media-device.h: Let clearer that entity function must be initialized
      [media] media-device: Use u64 ints for pointers
      [media] media: move MEDIA_LNK_FL_INTERFACE_LINK logic to link creation
      [media] media.h: let be clear that tuners need to use connectors
      [media] dvbdev: Document the new MC-related fields
      [media] DocBook: MC: add the concept of interfaces
      [media] DocBook: move data types to a separate section
      [media] Docbook: media-types.xml: update the existing tables
      [media] DocBook: add a table for Media Controller interfaces
      [media] DocBook: Document MEDIA_IOC_G_TOPOLOGY
      [media] media-entity.h: Document some ancillary functions
      [media] media-device.h: document the last functions
      [media] media-devnode: move kernel-doc documentation to the header
      [media] media-devnode.h: document the remaining struct/functions
      [media] media-entity: use mutes for link setup
      [media] media-entity: cache media_device on object removal
      [media] media-device: move media entity register/unregister functions
      [media] media-device: better lock media_device_unregister()
      [media] usb: check media device errors
      [media] move documentation to the header files
      [media] DocBook: document media_entity_graph_walk_cleanup()
      [media] media-entity.h fix documentation for several parameters
      [media] media-device.h: use just one u32 counter for object ID
      [media] media-entity.h: document the remaining functions
      [media] media-entity: increase max number of PADs
      [media] media-entity: don't sleep at media_device_register_entity()
      [media] uapi/media.h: Use u32 for the number of graph objects
      [media] call media_device_init() before registering the V4L2 device
      [media] dvbdev: remove two dead functions if !CONFIG_MEDIA_CONTROLLER_DVB
      [media] dvbdev: Add RF connector if needed
      [media] dvb-usb-v2: postpone removal of media_device
      [media] media-entitiy: add a function to create multiple links
      [media] dvbdev: create links on devices with multiple frontends
      [media] mxl111sf: Add a tuner entity
      [media] Postpone the addition of MEDIA_IOC_G_TOPOLOGY

Rafael Lourenço de Lima Chehab (1):
      [media] au0828: Add support for media controller

Sakari Ailus (23):
      [media] media: Enforce single entity->pipe in a pipeline
      [media] v4l2-device: Register entity before calling subdev's registered ops
      [media] media: Introduce internal index for media entities
      [media] media: Add an API to manage entity enumerations
      [media] media: Move struct media_entity_graph definition up
      [media] media: Add KernelDoc documentation for struct media_entity_graph
      [media] media: Move media graph state for streamon/off to the pipeline
      [media] media: Amend media graph walk API by init and cleanup functions
      [media] media: Use the new media graph walk interface
      [media] v4l: omap3isp: Use the new media graph walk interface
      [media] v4l: exynos4-is: Use the new media graph walk interface
      [media] v4l: xilinx: Use the new media graph walk interface
      [media] v4l: vsp1: Use the new media graph walk interface
      [media] media: Use entity enums in graph walk
      [media] media: Keep using the same graph walk object for a given pipeline
      [media] v4l: omap3isp: Use media entity enumeration interface
      [media] v4l: vsp1: Use media entity enumeration interface
      [media] staging: v4l: omap4iss: Fix sub-device power management code
      [media] staging: v4l: omap4iss: Use media entity enumeration interface
      [media] staging: v4l: omap4iss: Use the new media graph walk interface
      [media] staging: v4l: davinci_vpbe: Use the new media graph walk interface
      [media] media: Remove pre-allocated entity enumeration bitmap
      [media] media: Move MEDIA_ENTITY_MAX_PADS from media-entity.h to media-entity.c

Shuah Khan (2):
      [media] media: new media controller API for device resource support
      [media] media: define Media Controller API when CONFIG_MEDIA_CONTROLLER enabled

 Documentation/DocBook/device-drivers.tmpl          |   1 +
 .../DocBook/media/v4l/media-controller.xml         |  44 +-
 .../DocBook/media/v4l/media-ioc-enum-entities.xml  | 104 +--
 .../DocBook/media/v4l/media-ioc-enum-links.xml     |  56 --
 .../DocBook/media/v4l/media-ioc-g-topology.xml     | 394 +++++++++
 Documentation/DocBook/media/v4l/media-types.xml    | 240 ++++++
 Documentation/media-framework.txt                  | 372 ---------
 Documentation/video4linux/v4l2-framework.txt       |  12 +-
 Documentation/zh_CN/video4linux/v4l2-framework.txt |   8 +-
 drivers/media/Kconfig                              |   1 -
 drivers/media/common/siano/smsdvb-main.c           |   7 +-
 drivers/media/dvb-core/dmxdev.c                    |   4 +-
 drivers/media/dvb-core/dvb_ca_en50221.c            |   2 +-
 drivers/media/dvb-core/dvb_frontend.c              |  11 +-
 drivers/media/dvb-core/dvb_net.c                   |   2 +-
 drivers/media/dvb-core/dvbdev.c                    | 488 +++++++++--
 drivers/media/dvb-core/dvbdev.h                    |  58 +-
 drivers/media/dvb-frontends/au8522_decoder.c       |  17 +
 drivers/media/dvb-frontends/au8522_priv.h          |  12 +
 drivers/media/firewire/firedtv-ci.c                |   2 +-
 drivers/media/i2c/ad9389b.c                        |   2 +-
 drivers/media/i2c/adp1653.c                        |   4 +-
 drivers/media/i2c/adv7180.c                        |   4 +-
 drivers/media/i2c/adv7511.c                        |   2 +-
 drivers/media/i2c/adv7604.c                        |   4 +-
 drivers/media/i2c/adv7842.c                        |   2 +-
 drivers/media/i2c/as3645a.c                        |   4 +-
 drivers/media/i2c/cx25840/cx25840-core.c           |   6 +-
 drivers/media/i2c/lm3560.c                         |   4 +-
 drivers/media/i2c/lm3646.c                         |   4 +-
 drivers/media/i2c/m5mols/m5mols_core.c             |   4 +-
 drivers/media/i2c/mt9m032.c                        |   2 +-
 drivers/media/i2c/mt9p031.c                        |   2 +-
 drivers/media/i2c/mt9t001.c                        |   2 +-
 drivers/media/i2c/mt9v032.c                        |   2 +-
 drivers/media/i2c/noon010pc30.c                    |   4 +-
 drivers/media/i2c/ov2659.c                         |   4 +-
 drivers/media/i2c/ov9650.c                         |   4 +-
 drivers/media/i2c/s5c73m3/s5c73m3-core.c           |  16 +-
 drivers/media/i2c/s5k4ecgx.c                       |   4 +-
 drivers/media/i2c/s5k5baf.c                        |  12 +-
 drivers/media/i2c/s5k6a3.c                         |   2 +-
 drivers/media/i2c/s5k6aa.c                         |   4 +-
 drivers/media/i2c/smiapp/smiapp-core.c             |  32 +-
 drivers/media/i2c/tc358743.c                       |   2 +-
 drivers/media/i2c/tvp514x.c                        |   4 +-
 drivers/media/i2c/tvp7002.c                        |   4 +-
 drivers/media/media-device.c                       | 441 ++++++++--
 drivers/media/media-devnode.c                      |  24 -
 drivers/media/media-entity.c                       | 724 +++++++++++------
 drivers/media/pci/bt8xx/dst_ca.c                   |   3 +-
 drivers/media/pci/ddbridge/ddbridge-core.c         |   2 +-
 drivers/media/pci/ngene/ngene-core.c               |   2 +-
 drivers/media/pci/ttpci/av7110.c                   |   2 +-
 drivers/media/pci/ttpci/av7110_av.c                |   4 +-
 drivers/media/pci/ttpci/av7110_ca.c                |   2 +-
 drivers/media/platform/exynos4-is/common.c         |   3 +-
 drivers/media/platform/exynos4-is/fimc-capture.c   |  11 +-
 drivers/media/platform/exynos4-is/fimc-isp-video.c |  11 +-
 drivers/media/platform/exynos4-is/fimc-isp.c       |   4 +-
 drivers/media/platform/exynos4-is/fimc-lite.c      |  24 +-
 drivers/media/platform/exynos4-is/fimc-m2m.c       |   2 +-
 drivers/media/platform/exynos4-is/media-dev.c      |  73 +-
 drivers/media/platform/exynos4-is/media-dev.h      |   9 +-
 drivers/media/platform/exynos4-is/mipi-csis.c      |   4 +-
 drivers/media/platform/omap3isp/isp.c              | 306 ++++---
 drivers/media/platform/omap3isp/isp.h              |   9 +-
 drivers/media/platform/omap3isp/ispccdc.c          |  31 +-
 drivers/media/platform/omap3isp/ispccp2.c          |  27 +-
 drivers/media/platform/omap3isp/ispcsi2.c          |  21 +-
 drivers/media/platform/omap3isp/isppreview.c       |  30 +-
 drivers/media/platform/omap3isp/ispresizer.c       |  28 +-
 drivers/media/platform/omap3isp/ispstat.c          |   2 +-
 drivers/media/platform/omap3isp/ispvideo.c         |  49 +-
 drivers/media/platform/omap3isp/ispvideo.h         |   5 +-
 drivers/media/platform/s3c-camif/camif-capture.c   |   8 +-
 drivers/media/platform/s3c-camif/camif-core.c      |  21 +-
 drivers/media/platform/vsp1/vsp1_drv.c             |  50 +-
 drivers/media/platform/vsp1/vsp1_entity.c          |   4 +-
 drivers/media/platform/vsp1/vsp1_rpf.c             |  29 +-
 drivers/media/platform/vsp1/vsp1_rwpf.h            |   5 +
 drivers/media/platform/vsp1/vsp1_video.c           |  64 +-
 drivers/media/platform/vsp1/vsp1_wpf.c             |  40 +-
 drivers/media/platform/xilinx/xilinx-dma.c         |  21 +-
 drivers/media/platform/xilinx/xilinx-tpg.c         |   2 +-
 drivers/media/platform/xilinx/xilinx-vipp.c        |  16 +-
 drivers/media/usb/au0828/au0828-cards.c            |   4 +
 drivers/media/usb/au0828/au0828-core.c             | 171 ++++
 drivers/media/usb/au0828/au0828-dvb.c              |  12 +
 drivers/media/usb/au0828/au0828-video.c            | 126 +++
 drivers/media/usb/au0828/au0828.h                  |  10 +-
 drivers/media/usb/cx231xx/cx231xx-cards.c          |  81 +-
 drivers/media/usb/cx231xx/cx231xx-dvb.c            |   6 +-
 drivers/media/usb/cx231xx/cx231xx-video.c          |  14 +-
 drivers/media/usb/dvb-usb-v2/dvb_usb_core.c        |  42 +-
 drivers/media/usb/dvb-usb-v2/mxl111sf.c            |  20 +
 drivers/media/usb/dvb-usb-v2/mxl111sf.h            |   5 +
 drivers/media/usb/dvb-usb/dvb-usb-dvb.c            |  43 +-
 drivers/media/usb/siano/smsusb.c                   |   5 +-
 drivers/media/usb/uvc/uvc_driver.c                 |  11 +-
 drivers/media/usb/uvc/uvc_entity.c                 |  38 +-
 drivers/media/v4l2-core/tuner-core.c               |  10 +-
 drivers/media/v4l2-core/v4l2-dev.c                 | 111 ++-
 drivers/media/v4l2-core/v4l2-device.c              |  39 +-
 drivers/media/v4l2-core/v4l2-flash-led-class.c     |   4 +-
 drivers/media/v4l2-core/v4l2-subdev.c              |   8 +-
 drivers/staging/media/davinci_vpfe/dm365_ipipe.c   |  11 +-
 drivers/staging/media/davinci_vpfe/dm365_ipipeif.c |  17 +-
 drivers/staging/media/davinci_vpfe/dm365_isif.c    |  17 +-
 drivers/staging/media/davinci_vpfe/dm365_resizer.c |  39 +-
 .../staging/media/davinci_vpfe/vpfe_mc_capture.c   |  10 +-
 drivers/staging/media/davinci_vpfe/vpfe_video.c    |  58 +-
 drivers/staging/media/davinci_vpfe/vpfe_video.h    |   1 +
 drivers/staging/media/omap4iss/iss.c               | 199 +++--
 drivers/staging/media/omap4iss/iss.h               |   8 +-
 drivers/staging/media/omap4iss/iss_csi2.c          |  48 +-
 drivers/staging/media/omap4iss/iss_csi2.h          |   1 +
 drivers/staging/media/omap4iss/iss_ipipe.c         |  11 +-
 drivers/staging/media/omap4iss/iss_ipipeif.c       |  44 +-
 drivers/staging/media/omap4iss/iss_ipipeif.h       |   1 +
 drivers/staging/media/omap4iss/iss_resizer.c       |  42 +-
 drivers/staging/media/omap4iss/iss_resizer.h       |   1 +
 drivers/staging/media/omap4iss/iss_video.c         |  61 +-
 drivers/staging/media/omap4iss/iss_video.h         |   5 +-
 include/media/media-device.h                       | 469 ++++++++++-
 include/media/media-devnode.h                      |  54 +-
 include/media/media-entity.h                       | 904 +++++++++++++++++++--
 include/media/tuner.h                              |   8 +
 include/media/v4l2-dev.h                           |   1 +
 include/uapi/linux/media.h                         | 228 +++++-
 130 files changed, 5237 insertions(+), 1849 deletions(-)
 create mode 100644 Documentation/DocBook/media/v4l/media-ioc-g-topology.xml
 create mode 100644 Documentation/DocBook/media/v4l/media-types.xml
 delete mode 100644 Documentation/media-framework.txt


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [GIT PULL for v4.5-rc1] media controller next gen patch series
  2016-01-12 10:43 [GIT PULL for v4.5-rc1] media controller next gen patch series Mauro Carvalho Chehab
@ 2016-01-12 20:54 ` Stephen Rothwell
  2016-01-12 20:58   ` Linus Torvalds
  2016-01-12 22:29 ` Laurent Pinchart
  2016-01-19 10:02 ` Geert Uytterhoeven
  2 siblings, 1 reply; 11+ messages in thread
From: Stephen Rothwell @ 2016-01-12 20:54 UTC (permalink / raw)
  To: Mauro Carvalho Chehab
  Cc: Linus Torvalds, Andrew Morton, Linux Media Mailing List,
	Linux Kernel Mailing List

Hi Mauro,

On Tue, 12 Jan 2016 08:43:28 -0200 Mauro Carvalho Chehab <mchehab@osg.samsung.com> wrote:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media tags/media/v4.5-2

This contains 117 commits (of 381) that only turned up in linux-next
yesterday, but I see that Linus has already merged it.
-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [GIT PULL for v4.5-rc1] media controller next gen patch series
  2016-01-12 20:54 ` Stephen Rothwell
@ 2016-01-12 20:58   ` Linus Torvalds
  2016-01-12 21:07     ` Stephen Rothwell
  0 siblings, 1 reply; 11+ messages in thread
From: Linus Torvalds @ 2016-01-12 20:58 UTC (permalink / raw)
  To: Stephen Rothwell
  Cc: Mauro Carvalho Chehab, Andrew Morton, Linux Media Mailing List,
	Linux Kernel Mailing List

On Tue, Jan 12, 2016 at 12:54 PM, Stephen Rothwell <sfr@canb.auug.org.au> wrote:
>
> This contains 117 commits (of 381) that only turned up in linux-next
> yesterday, but I see that Linus has already merged it.

I've so far merged media/v4.5-1, not yet this (media/v4.5-2)..

              Linus

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [GIT PULL for v4.5-rc1] media controller next gen patch series
  2016-01-12 20:58   ` Linus Torvalds
@ 2016-01-12 21:07     ` Stephen Rothwell
  2016-01-13  1:36       ` Mauro Carvalho Chehab
  0 siblings, 1 reply; 11+ messages in thread
From: Stephen Rothwell @ 2016-01-12 21:07 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Mauro Carvalho Chehab, Andrew Morton, Linux Media Mailing List,
	Linux Kernel Mailing List

Hi Linus,

On Tue, 12 Jan 2016 12:58:45 -0800 Linus Torvalds <torvalds@linux-foundation.org> wrote:
>
> On Tue, Jan 12, 2016 at 12:54 PM, Stephen Rothwell <sfr@canb.auug.org.au> wrote:
> >
> > This contains 117 commits (of 381) that only turned up in linux-next
> > yesterday, but I see that Linus has already merged it.  
> 
> I've so far merged media/v4.5-1, not yet this (media/v4.5-2)..

Ah, sorry, missed that.

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [GIT PULL for v4.5-rc1] media controller next gen patch series
  2016-01-12 10:43 [GIT PULL for v4.5-rc1] media controller next gen patch series Mauro Carvalho Chehab
  2016-01-12 20:54 ` Stephen Rothwell
@ 2016-01-12 22:29 ` Laurent Pinchart
  2016-01-13  2:46   ` Mauro Carvalho Chehab
  2016-01-19 10:02 ` Geert Uytterhoeven
  2 siblings, 1 reply; 11+ messages in thread
From: Laurent Pinchart @ 2016-01-12 22:29 UTC (permalink / raw)
  To: Mauro Carvalho Chehab
  Cc: Linus Torvalds, Andrew Morton, Linux Media Mailing List,
	Linux Kernel Mailing List

Hello Mauro and Linus,

On Tuesday 12 January 2016 08:43:28 Mauro Carvalho Chehab wrote:
> Hi Linus,
> 
> That's the second part of the media patches. It contains the media
> controller next generation patches, with is the result of one year of
> discussions and development. It also contains patches to enable media
> controller support at the DVB subsystem.
> 
> The goal is to improve the media controller to allow proper support for
> other types of Video4Linux devices (radio and TV ones) and to extend the
> media controller functionality to allow it to be used by other subsystems
> like DVB, ALSA and IIO.
> 
> In order to use the new functionality, a new ioctl is needed
> (MEDIA_IOC_G_TOPOLOGY). As we're still discussing how to pack the struct
> fields of this ioctl in order to avoid compat32 issues, I decided to add
> a patch at the end of this series commenting out the new ioctl, in order
> to postpone the addition of the new ioctl to the next Kernel version (4.6).
> With that, no userspace visible changes should happen at the media
> controller API, as the existing ioctls are untouched. Yet, it helps
> DVB, ALSA and IIO developers to develop and test the patches adding media
> controller support there, as the core will contain all required internal
> changes to allow adding support for devices that belong to those
> subsystems.

This should already be known to anyone who has followed the discussions 
regarding the media controller rework, but, hopefully without the full drama 
that "speak now or forever hold your peace" implies, I'd like to express my 
concern about this patch series to a wider audience.

First of all I agree, as I believe do all the Linux media developers involved 
in this work, that a rework of the media controller framework is needed. The 
effort was started by Mauro about a year ago and didn't get the attention it 
deserved for around the first six months. I certainly have my share of 
responsibility there for not taking enough time to review patches and actively 
work on the series.

We met twice face to face with core developers during the last six months to 
discuss the rework, both from an in-kernel framework point of view and from a 
userspace API point of view. The process was painful but significant 
agreements were reached and Mauro went back to the drawing board to rework his 
patches.

As Stephen pointed out the series is large, and I believe it hasn't reached 
the quality level it deserves. I have reviewed a large part of the initial 
patches, and at least part of my comments have been addressed. Unfortunately 
the way they were addressed was to pile fixes or rework commits on top of the 
series, instead of reworking the original in-development commits. The same 
strategy was used to fix build breakages or runtime bugs.

I understand that this strategy comes from a fear of introduces breakages when 
rebasing the code and folding fixes in the right locations. However, the end 
result is a very large series that (at least last time I checked) breaks 
bisection. That alone is a serious issue, as such a large series is bound to 
introduce bugs, and making it unbisectable will hurt. Furthermore adding 
patches on top of the branch has resulted in a very difficult to review 
series. Patches can't be reviewed independently anymore as the base patches 
are known to be broken and are fixed later. The only possible strategy to 
review such a patch series is to read the overall diff. And with a diffstat 
such as "130 files changed, 5237 insertions(+), 1849 deletions(-)" I think we 
will all agree that this isn't feasible.

I won't formally nack this pull request as I don't want to send a nuke bomb 
and watch the bridges collapse. As someone told me recently, nuke bombs are 
only effective if your goal is destruction and fire, and I hope to be more 
constructive than that. I would like to restate that the offer I made of 
helping with rebasing the series still holds.

> The following changes since commit 768acf46e1320d6c41ed1b7c4952bab41c1cde79:
> 
>   [media] rc: sunxi-cir: Initialize the spinlock properly (2015-12-23
> 15:51:40 -0200)
> 
> are available in the git repository at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
> tags/media/v4.5-2
> 
> for you to fetch changes up to be0270ec89e6b9b49de7e533dd1f3a89ad34d205:
> 
>   [media] Postpone the addition of MEDIA_IOC_G_TOPOLOGY (2016-01-11 12:35:17
> -0200)
> 
> ----------------------------------------------------------------
> media updates for v4.5-rc1
> 
> ----------------------------------------------------------------
> Dan Carpenter (2):
>       [media] media-device: copy_to/from_user() returns positive
>       [media] v4l2-device: fix a missing error code
> 
> Javier Martinez Canillas (26):
>       [media] staging: omap4iss: get entity ID using media_entity_id()
>       [media] omap3isp: get entity ID using media_entity_id()
>       [media] media: use entity.graph_obj.mdev instead of .parent
>       [media] media: remove media entity .parent field
>       [media] omap3isp: separate links creation from entities init
>       [media] omap3isp: create links after all subdevs have been bound
>       [media] staging: omap4iss: separate links creation from entities init
>       [media] v4l: vsp1: create pad links after subdev registration
>       [media] v4l: vsp1: separate links creation from entities init
>       [media] uvcvideo: create pad links after subdev registration
>       [media] smiapp: create pad links after subdev registration
>       [media] media: don't try to empty links list in media_entity_cleanup()
>       [media] media-entity: init pads on entity init if was registered
>       before
>       [media] omap3isp: remove per ISP module link creation functions
>       [media] omap3isp: remove pads prefix from isp_create_pads_links()
>       [media] omap3isp: rename single labels to just error
>       [media] omap3isp: consistently use v4l2_dev var in complete notifier
>       [media] staging: omap4iss: remove pads prefix from
> *_create_pads_links()
>       [media] v4l: vsp1: remove pads prefix from *_create_pads_links()
>       [media] v4l: vsp1: use else if instead of continue when creating links
>       [media] uvcvideo: remove pads prefix from uvc_mc_create_pads_links()
>       [media] uvcvideo: register entity subdev on init
>       [media] media-entity: remove unneded enclosing parenthesis
>       [media] media-device: check before unregister if mdev was registered
>       [media] media-device: split media initialization and registration
>       [media] media-device: set topology version 0 at media registration
> 
> Mauro Carvalho Chehab (123):
>       [media] au0828: Cache the decoder info at au0828 dev structure
>       [media] media: get rid of unused "extra_links" param on
> media_entity_init() [media] Kconfig: Re-enable Media controller support for
> DVB
>       [media] au0828: Fix the logic that enables the analog demoder link
>       [media] media: create a macro to get entity ID
>       [media] media: add a common struct to be embed on media graph objects
>       [media] media: use media_gobj inside entities
>       [media] media: use media_gobj inside pads
>       [media] media: use media_gobj inside links
>       [media] media: add messages when media device gets (un)registered
>       [media] media: add a debug message to warn about gobj creation/removal
>       [media] media: rename the function that create pad links
>       [media] uapi/media.h: Declare interface types for V4L2 and DVB
>       [media] media: add functions to allow creating interfaces
>       [media] media: Don't accept early-created links
>       [media] media: convert links from array to list
>       [media] media: make add link more generic
>       [media] media: make media_link more generic to handle interace links
>       [media] media: make link debug printk more generic
>       [media] media: add support to link interfaces and entities
>       [media] media-entity: add a helper function to create interface
>       [media] dvbdev: add support for interfaces
>       [media] media: add a linked list to track interfaces by mdev
>       [media] dvbdev: add support for indirect interface links
>       [media] uapi/media.h: Fix entity namespace
>       [media] replace all occurrences of MEDIA_ENT_T_DEVNODE_V4L
>       [media] replace all occurrences of MEDIA_ENT_T_DEVNODE_DVB
>       [media] media: add macros to check if subdev or V4L2 DMA
>       [media] media: use macros to check for V4L2 subdev entities
>       [media] omap3/omap4/davinci: get rid of MEDIA_ENT_T_V4L2_SUBDEV abuse
>       [media] s5c73m3: fix subdev type
>       [media] s5k5baf: fix subdev type
>       [media] davinci_vbpe: stop MEDIA_ENT_T_V4L2_SUBDEV abuse
>       [media] omap4iss: change the logic that checks if an entity is a
> subdev
>       [media] v4l2-subdev: use MEDIA_ENT_T_UNKNOWN for new subdevs
>       [media] media controller: get rid of entity subtype on Kernel
>       [media] media.h: don't use legacy entity macros at Kernel
>       [media] DocBook: update descriptions for the media controller entities
>       [media] dvb: modify core to implement interfaces/entities at MC new
> gen
>       [media] media: report if a pad is sink or source at debug msg
>       [media] uapi/media.h: Add MEDIA_IOC_G_TOPOLOGY ioctl
>       [media] media: Use a macro to interate between all interfaces
>       [media] media: move mdev list init to gobj
>       [media] media-device: add pads and links to media_device
>       [media] media_device: add a topology version field
>       [media] media-device: add support for MEDIA_IOC_G_TOPOLOGY ioctl
>       [media] media-entity: unregister entity links
>       [media] remove interface links at media_entity_unregister()
>       [media] media-device: remove interfaces and interface links
>       [media] media-entity: protect object creation/removal using spin lock
>       [media] tuner-core: add an input pad
>       [media] dvbdev: enable all interface links at init
>       [media] au0828: postpone call to au0828_unregister_media_device()
>       [media] media-entity: fix backlink removal on
> __media_entity_remove_link()
>       [media] dvbdev: returns error if graph object creation fails
>       [media] v4l2-core: create MC interfaces for devnodes
>       [media] media-entity.h: document all the structs
>       [media] media.h: create connector entities for hybrid TV devices
>       [media] au0828: add support for the connectors
>       [media] au0828: Create connector links
>       [media] media-device: supress backlinks at G_TOPOLOGY ioctl
>       [media] v4l2 core: enable all interface links at init
>       [media] dvb core: must check dvb_create_media_graph()
>       [media] media-entity: enforce check of interface and links creation
>       [media] cx231xx: enforce check for graph creation
>       [media] au0828: enforce check for graph creation
>       [media] media-entity: must check media_create_pad_link()
>       [media] media-entity.h: rename entity.type to entity.function
>       [media] media-device: export the entity function via new ioctl
>       [media] uapi/media.h: Rename entities types to functions
>       [media] DocBook: update entities documentation
>       [media] dvbdev: move indirect links on dvr/demux to a separate
> function 
>       [media] dvbdev: Don't create indirect links
>       [media] media_entity: remove gfp_flags argument
>       [media] media-device: use unsigned ints on some places
>       [media] media-device: put headers in alphabetic order
>       [media] media-device: better name Kernelspace/Userspace links
>       [media] media framework: rename pads init function to
> media_entity_pads_init()
>       [media] media-entity.h: get rid of revision and group_id fields
>       [media] DocBook: Move media-framework.txt contents to media-device.h
>       [media] media-entity.h: convert media_entity_cleanup to inline
>       [media] media-device.h: Improve documentation and update it
>       [media] media: remove extra blank lines
>       [media] media-entity: get rid of forward __media_entity_remove_link()
> declaration
>       [media] media_entity: get rid of a unused var
>       [media] media_entity: rename media_obj functions to *_create *_destroy
>       [media] media-entity.h: move kernel-doc tags from media-entity.c
>       [media] media: use unsigned for pad index
>       [media] media-device.h: Let clearer that entity function must be
> initialized
>       [media] media-device: Use u64 ints for pointers
>       [media] media: move MEDIA_LNK_FL_INTERFACE_LINK logic to link creation
>       [media] media.h: let be clear that tuners need to use connectors
>       [media] dvbdev: Document the new MC-related fields
>       [media] DocBook: MC: add the concept of interfaces
>       [media] DocBook: move data types to a separate section
>       [media] Docbook: media-types.xml: update the existing tables
>       [media] DocBook: add a table for Media Controller interfaces
>       [media] DocBook: Document MEDIA_IOC_G_TOPOLOGY
>       [media] media-entity.h: Document some ancillary functions
>       [media] media-device.h: document the last functions
>       [media] media-devnode: move kernel-doc documentation to the header
>       [media] media-devnode.h: document the remaining struct/functions
>       [media] media-entity: use mutes for link setup
>       [media] media-entity: cache media_device on object removal
>       [media] media-device: move media entity register/unregister functions
>       [media] media-device: better lock media_device_unregister()
>       [media] usb: check media device errors
>       [media] move documentation to the header files
>       [media] DocBook: document media_entity_graph_walk_cleanup()
>       [media] media-entity.h fix documentation for several parameters
>       [media] media-device.h: use just one u32 counter for object ID
>       [media] media-entity.h: document the remaining functions
>       [media] media-entity: increase max number of PADs
>       [media] media-entity: don't sleep at media_device_register_entity()
>       [media] uapi/media.h: Use u32 for the number of graph objects
>       [media] call media_device_init() before registering the V4L2 device
>       [media] dvbdev: remove two dead functions if
> !CONFIG_MEDIA_CONTROLLER_DVB [media] dvbdev: Add RF connector if needed
>       [media] dvb-usb-v2: postpone removal of media_device
>       [media] media-entitiy: add a function to create multiple links
>       [media] dvbdev: create links on devices with multiple frontends
>       [media] mxl111sf: Add a tuner entity
>       [media] Postpone the addition of MEDIA_IOC_G_TOPOLOGY
> 
> Rafael Lourenço de Lima Chehab (1):
>       [media] au0828: Add support for media controller
> 
> Sakari Ailus (23):
>       [media] media: Enforce single entity->pipe in a pipeline
>       [media] v4l2-device: Register entity before calling subdev's
> registered ops [media] media: Introduce internal index for media entities
>       [media] media: Add an API to manage entity enumerations
>       [media] media: Move struct media_entity_graph definition up
>       [media] media: Add KernelDoc documentation for struct
> media_entity_graph
>       [media] media: Move media graph state for streamon/off to the pipeline
>       [media] media: Amend media graph walk API by init and cleanup
> functions
>       [media] media: Use the new media graph walk interface
>       [media] v4l: omap3isp: Use the new media graph walk interface
>       [media] v4l: exynos4-is: Use the new media graph walk interface
>       [media] v4l: xilinx: Use the new media graph walk interface
>       [media] v4l: vsp1: Use the new media graph walk interface
>       [media] media: Use entity enums in graph walk
>       [media] media: Keep using the same graph walk object for a given
> pipeline
>       [media] v4l: omap3isp: Use media entity enumeration interface
>       [media] v4l: vsp1: Use media entity enumeration interface
>       [media] staging: v4l: omap4iss: Fix sub-device power management code
>       [media] staging: v4l: omap4iss: Use media entity enumeration interface
>       [media] staging: v4l: omap4iss: Use the new media graph walk interface
>       [media] staging: v4l: davinci_vpbe: Use the new media graph walk
> interface
>       [media] media: Remove pre-allocated entity enumeration bitmap
>       [media] media: Move MEDIA_ENTITY_MAX_PADS from media-entity.h to
> media-entity.c
> 
> Shuah Khan (2):
>       [media] media: new media controller API for device resource support
>       [media] media: define Media Controller API when
> CONFIG_MEDIA_CONTROLLER enabled
> 
>  Documentation/DocBook/device-drivers.tmpl          |   1 +
>  .../DocBook/media/v4l/media-controller.xml         |  44 +-
>  .../DocBook/media/v4l/media-ioc-enum-entities.xml  | 104 +--
>  .../DocBook/media/v4l/media-ioc-enum-links.xml     |  56 --
>  .../DocBook/media/v4l/media-ioc-g-topology.xml     | 394 +++++++++
>  Documentation/DocBook/media/v4l/media-types.xml    | 240 ++++++
>  Documentation/media-framework.txt                  | 372 ---------
>  Documentation/video4linux/v4l2-framework.txt       |  12 +-
>  Documentation/zh_CN/video4linux/v4l2-framework.txt |   8 +-
>  drivers/media/Kconfig                              |   1 -
>  drivers/media/common/siano/smsdvb-main.c           |   7 +-
>  drivers/media/dvb-core/dmxdev.c                    |   4 +-
>  drivers/media/dvb-core/dvb_ca_en50221.c            |   2 +-
>  drivers/media/dvb-core/dvb_frontend.c              |  11 +-
>  drivers/media/dvb-core/dvb_net.c                   |   2 +-
>  drivers/media/dvb-core/dvbdev.c                    | 488 +++++++++--
>  drivers/media/dvb-core/dvbdev.h                    |  58 +-
>  drivers/media/dvb-frontends/au8522_decoder.c       |  17 +
>  drivers/media/dvb-frontends/au8522_priv.h          |  12 +
>  drivers/media/firewire/firedtv-ci.c                |   2 +-
>  drivers/media/i2c/ad9389b.c                        |   2 +-
>  drivers/media/i2c/adp1653.c                        |   4 +-
>  drivers/media/i2c/adv7180.c                        |   4 +-
>  drivers/media/i2c/adv7511.c                        |   2 +-
>  drivers/media/i2c/adv7604.c                        |   4 +-
>  drivers/media/i2c/adv7842.c                        |   2 +-
>  drivers/media/i2c/as3645a.c                        |   4 +-
>  drivers/media/i2c/cx25840/cx25840-core.c           |   6 +-
>  drivers/media/i2c/lm3560.c                         |   4 +-
>  drivers/media/i2c/lm3646.c                         |   4 +-
>  drivers/media/i2c/m5mols/m5mols_core.c             |   4 +-
>  drivers/media/i2c/mt9m032.c                        |   2 +-
>  drivers/media/i2c/mt9p031.c                        |   2 +-
>  drivers/media/i2c/mt9t001.c                        |   2 +-
>  drivers/media/i2c/mt9v032.c                        |   2 +-
>  drivers/media/i2c/noon010pc30.c                    |   4 +-
>  drivers/media/i2c/ov2659.c                         |   4 +-
>  drivers/media/i2c/ov9650.c                         |   4 +-
>  drivers/media/i2c/s5c73m3/s5c73m3-core.c           |  16 +-
>  drivers/media/i2c/s5k4ecgx.c                       |   4 +-
>  drivers/media/i2c/s5k5baf.c                        |  12 +-
>  drivers/media/i2c/s5k6a3.c                         |   2 +-
>  drivers/media/i2c/s5k6aa.c                         |   4 +-
>  drivers/media/i2c/smiapp/smiapp-core.c             |  32 +-
>  drivers/media/i2c/tc358743.c                       |   2 +-
>  drivers/media/i2c/tvp514x.c                        |   4 +-
>  drivers/media/i2c/tvp7002.c                        |   4 +-
>  drivers/media/media-device.c                       | 441 ++++++++--
>  drivers/media/media-devnode.c                      |  24 -
>  drivers/media/media-entity.c                       | 724 +++++++++++------
>  drivers/media/pci/bt8xx/dst_ca.c                   |   3 +-
>  drivers/media/pci/ddbridge/ddbridge-core.c         |   2 +-
>  drivers/media/pci/ngene/ngene-core.c               |   2 +-
>  drivers/media/pci/ttpci/av7110.c                   |   2 +-
>  drivers/media/pci/ttpci/av7110_av.c                |   4 +-
>  drivers/media/pci/ttpci/av7110_ca.c                |   2 +-
>  drivers/media/platform/exynos4-is/common.c         |   3 +-
>  drivers/media/platform/exynos4-is/fimc-capture.c   |  11 +-
>  drivers/media/platform/exynos4-is/fimc-isp-video.c |  11 +-
>  drivers/media/platform/exynos4-is/fimc-isp.c       |   4 +-
>  drivers/media/platform/exynos4-is/fimc-lite.c      |  24 +-
>  drivers/media/platform/exynos4-is/fimc-m2m.c       |   2 +-
>  drivers/media/platform/exynos4-is/media-dev.c      |  73 +-
>  drivers/media/platform/exynos4-is/media-dev.h      |   9 +-
>  drivers/media/platform/exynos4-is/mipi-csis.c      |   4 +-
>  drivers/media/platform/omap3isp/isp.c              | 306 ++++---
>  drivers/media/platform/omap3isp/isp.h              |   9 +-
>  drivers/media/platform/omap3isp/ispccdc.c          |  31 +-
>  drivers/media/platform/omap3isp/ispccp2.c          |  27 +-
>  drivers/media/platform/omap3isp/ispcsi2.c          |  21 +-
>  drivers/media/platform/omap3isp/isppreview.c       |  30 +-
>  drivers/media/platform/omap3isp/ispresizer.c       |  28 +-
>  drivers/media/platform/omap3isp/ispstat.c          |   2 +-
>  drivers/media/platform/omap3isp/ispvideo.c         |  49 +-
>  drivers/media/platform/omap3isp/ispvideo.h         |   5 +-
>  drivers/media/platform/s3c-camif/camif-capture.c   |   8 +-
>  drivers/media/platform/s3c-camif/camif-core.c      |  21 +-
>  drivers/media/platform/vsp1/vsp1_drv.c             |  50 +-
>  drivers/media/platform/vsp1/vsp1_entity.c          |   4 +-
>  drivers/media/platform/vsp1/vsp1_rpf.c             |  29 +-
>  drivers/media/platform/vsp1/vsp1_rwpf.h            |   5 +
>  drivers/media/platform/vsp1/vsp1_video.c           |  64 +-
>  drivers/media/platform/vsp1/vsp1_wpf.c             |  40 +-
>  drivers/media/platform/xilinx/xilinx-dma.c         |  21 +-
>  drivers/media/platform/xilinx/xilinx-tpg.c         |   2 +-
>  drivers/media/platform/xilinx/xilinx-vipp.c        |  16 +-
>  drivers/media/usb/au0828/au0828-cards.c            |   4 +
>  drivers/media/usb/au0828/au0828-core.c             | 171 ++++
>  drivers/media/usb/au0828/au0828-dvb.c              |  12 +
>  drivers/media/usb/au0828/au0828-video.c            | 126 +++
>  drivers/media/usb/au0828/au0828.h                  |  10 +-
>  drivers/media/usb/cx231xx/cx231xx-cards.c          |  81 +-
>  drivers/media/usb/cx231xx/cx231xx-dvb.c            |   6 +-
>  drivers/media/usb/cx231xx/cx231xx-video.c          |  14 +-
>  drivers/media/usb/dvb-usb-v2/dvb_usb_core.c        |  42 +-
>  drivers/media/usb/dvb-usb-v2/mxl111sf.c            |  20 +
>  drivers/media/usb/dvb-usb-v2/mxl111sf.h            |   5 +
>  drivers/media/usb/dvb-usb/dvb-usb-dvb.c            |  43 +-
>  drivers/media/usb/siano/smsusb.c                   |   5 +-
>  drivers/media/usb/uvc/uvc_driver.c                 |  11 +-
>  drivers/media/usb/uvc/uvc_entity.c                 |  38 +-
>  drivers/media/v4l2-core/tuner-core.c               |  10 +-
>  drivers/media/v4l2-core/v4l2-dev.c                 | 111 ++-
>  drivers/media/v4l2-core/v4l2-device.c              |  39 +-
>  drivers/media/v4l2-core/v4l2-flash-led-class.c     |   4 +-
>  drivers/media/v4l2-core/v4l2-subdev.c              |   8 +-
>  drivers/staging/media/davinci_vpfe/dm365_ipipe.c   |  11 +-
>  drivers/staging/media/davinci_vpfe/dm365_ipipeif.c |  17 +-
>  drivers/staging/media/davinci_vpfe/dm365_isif.c    |  17 +-
>  drivers/staging/media/davinci_vpfe/dm365_resizer.c |  39 +-
>  .../staging/media/davinci_vpfe/vpfe_mc_capture.c   |  10 +-
>  drivers/staging/media/davinci_vpfe/vpfe_video.c    |  58 +-
>  drivers/staging/media/davinci_vpfe/vpfe_video.h    |   1 +
>  drivers/staging/media/omap4iss/iss.c               | 199 +++--
>  drivers/staging/media/omap4iss/iss.h               |   8 +-
>  drivers/staging/media/omap4iss/iss_csi2.c          |  48 +-
>  drivers/staging/media/omap4iss/iss_csi2.h          |   1 +
>  drivers/staging/media/omap4iss/iss_ipipe.c         |  11 +-
>  drivers/staging/media/omap4iss/iss_ipipeif.c       |  44 +-
>  drivers/staging/media/omap4iss/iss_ipipeif.h       |   1 +
>  drivers/staging/media/omap4iss/iss_resizer.c       |  42 +-
>  drivers/staging/media/omap4iss/iss_resizer.h       |   1 +
>  drivers/staging/media/omap4iss/iss_video.c         |  61 +-
>  drivers/staging/media/omap4iss/iss_video.h         |   5 +-
>  include/media/media-device.h                       | 469 ++++++++++-
>  include/media/media-devnode.h                      |  54 +-
>  include/media/media-entity.h                       | 904 ++++++++++++++++--
>  include/media/tuner.h                              |   8 +
>  include/media/v4l2-dev.h                           |   1 +
>  include/uapi/linux/media.h                         | 228 +++++-
>  130 files changed, 5237 insertions(+), 1849 deletions(-)
>  create mode 100644 Documentation/DocBook/media/v4l/media-ioc-g-topology.xml
> create mode 100644 Documentation/DocBook/media/v4l/media-types.xml delete
> mode 100644 Documentation/media-framework.txt

-- 
Regards,

Laurent Pinchart


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [GIT PULL for v4.5-rc1] media controller next gen patch series
  2016-01-12 21:07     ` Stephen Rothwell
@ 2016-01-13  1:36       ` Mauro Carvalho Chehab
  0 siblings, 0 replies; 11+ messages in thread
From: Mauro Carvalho Chehab @ 2016-01-13  1:36 UTC (permalink / raw)
  To: Stephen Rothwell
  Cc: Linus Torvalds, Andrew Morton, Linux Media Mailing List,
	Linux Kernel Mailing List

Em Wed, 13 Jan 2016 08:07:16 +1100
Stephen Rothwell <sfr@canb.auug.org.au> escreveu:

> Hi Linus,
> 
> On Tue, 12 Jan 2016 12:58:45 -0800 Linus Torvalds <torvalds@linux-foundation.org> wrote:
> >
> > On Tue, Jan 12, 2016 at 12:54 PM, Stephen Rothwell <sfr@canb.auug.org.au> wrote:  
> > >
> > > This contains 117 commits (of 381) that only turned up in linux-next
> > > yesterday, but I see that Linus has already merged it.    

The patches were actually merged earlier at -next, but it was rebased in
order to merge some patches that would otherwise cause compilation
breakages if MEDIA_CONTROLLER is not defined, as requested:
	https://lkml.org/lkml/2015/12/22/660

The version that was previously at next (next-20151223) is this one:

commit f9139b43c2ee637b0ec9258716d221abdf94ffeb
Merge: abb5032f9258 40e950dbb6a3
Author: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
Date:   Fri Dec 18 15:35:01 2015 -0200

    Merge branch 'devel/media-controller-rc4' into to_next

Regards,
Mauro

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [GIT PULL for v4.5-rc1] media controller next gen patch series
  2016-01-12 22:29 ` Laurent Pinchart
@ 2016-01-13  2:46   ` Mauro Carvalho Chehab
  0 siblings, 0 replies; 11+ messages in thread
From: Mauro Carvalho Chehab @ 2016-01-13  2:46 UTC (permalink / raw)
  To: Laurent Pinchart
  Cc: Linus Torvalds, Andrew Morton, Linux Media Mailing List,
	Linux Kernel Mailing List

Em Wed, 13 Jan 2016 00:29:35 +0200
Laurent Pinchart <laurent.pinchart@ideasonboard.com> escreveu:

> Hello Mauro and Linus,
> 
> On Tuesday 12 January 2016 08:43:28 Mauro Carvalho Chehab wrote:
> > Hi Linus,
> > 
> > That's the second part of the media patches. It contains the media
> > controller next generation patches, with is the result of one year of
> > discussions and development. It also contains patches to enable media
> > controller support at the DVB subsystem.
> > 
> > The goal is to improve the media controller to allow proper support for
> > other types of Video4Linux devices (radio and TV ones) and to extend the
> > media controller functionality to allow it to be used by other subsystems
> > like DVB, ALSA and IIO.
> > 
> > In order to use the new functionality, a new ioctl is needed
> > (MEDIA_IOC_G_TOPOLOGY). As we're still discussing how to pack the struct
> > fields of this ioctl in order to avoid compat32 issues, I decided to add
> > a patch at the end of this series commenting out the new ioctl, in order
> > to postpone the addition of the new ioctl to the next Kernel version (4.6).
> > With that, no userspace visible changes should happen at the media
> > controller API, as the existing ioctls are untouched. Yet, it helps
> > DVB, ALSA and IIO developers to develop and test the patches adding media
> > controller support there, as the core will contain all required internal
> > changes to allow adding support for devices that belong to those
> > subsystems.  
> 
> This should already be known to anyone who has followed the discussions 
> regarding the media controller rework, but, hopefully without the full drama 
> that "speak now or forever hold your peace" implies, I'd like to express my 
> concern about this patch series to a wider audience.
> 
> First of all I agree, as I believe do all the Linux media developers involved 
> in this work, that a rework of the media controller framework is needed. The 
> effort was started by Mauro about a year ago and didn't get the attention it 
> deserved for around the first six months. I certainly have my share of 
> responsibility there for not taking enough time to review patches and actively 
> work on the series.
> 
> We met twice face to face with core developers during the last six months to 
> discuss the rework, both from an in-kernel framework point of view and from a 
> userspace API point of view. The process was painful but significant 
> agreements were reached and Mauro went back to the drawing board to rework his 
> patches.
> 
> As Stephen pointed out the series is large, and I believe it hasn't reached 
> the quality level it deserves. I have reviewed a large part of the initial 
> patches, and at least part of my comments have been addressed. Unfortunately 
> the way they were addressed was to pile fixes or rework commits on top of the 
> series, instead of reworking the original in-development commits. The same 
> strategy was used to fix build breakages or runtime bugs.

No. All known build breakage fixes were folded to the patch that caused 
compilation breakages. That's basically the reason for the rebase that
Stephen noticed. Are you aware of anything else? If so, please pinpoint
to the patch that need to be fixed.

On such rebase, I compiled the Kernel for every single patch in this series on
both x86 and x86_64, with allmodconfig. I also tested compiling them without
CONFIG_MEDIA_CONTROLLER on the relevant patches to be sure that build 
breakages wouldn't happen. 

I also did a runtime test on a NUC i7-core with an au0828, for every patch
I wrote in order to check against runtime bugs. Everything looks ok.

> I understand that this strategy comes from a fear of introduces breakages when 
> rebasing the code and folding fixes in the right locations. However, the end 
> result is a very large series that (at least last time I checked) breaks 
> bisection. That alone is a serious issue, as such a large series is bound to 
> introduce bugs, and making it unbisectable will hurt. Furthermore adding 
> patches on top of the branch has resulted in a very difficult to review 
> series. Patches can't be reviewed independently anymore as the base patches 
> are known to be broken and are fixed later. The only possible strategy to 
> review such a patch series is to read the overall diff. 

Other developers reviewed and acked those patches, sending their
reviews timely, but your reviews happened several months after the
other reviews. Granted, it is fine if you want to do a late review 
on a patch series, but you should not expect people redo their
entire work every time you decide to do this.

If I changed the patches due to your late review, I would need to strip the
already existing reviewed-by tags on several core patches. People would also
need to re-test the entire patch series in order to check against compilation
and runtime breakages. Also, to send a very large patch series like that to
the mailing list is painful for other developers and users that aren't working
with the media controller.

In addition, the extra patches due to your review are self contained, and
don't actually fix bugs, but do some cleanups, like, for example:
	https://git.linuxtv.org/mchehab/experimental.git/commit/?h=media-controller-rc6&id=07d4151c3bba40db4c594f4ec8a8c676b3bffa99
	https://git.linuxtv.org/mchehab/experimental.git/commit/?h=media-controller-rc6&id=8bd2c8a9cb60a2e67de49c0e86cafe99ca3cbacd
	https://git.linuxtv.org/mchehab/experimental.git/commit/?h=media-controller-rc6&id=7e6c8ba21bcb0402b5dadabe422fd10a7d0367e9

It is perfectly fine to do such cleanups later in the patch series.

On the cases where a bug were found by the reviews, the patch that caused
the trouble got fixed.

> And with a diffstat 
> such as "130 files changed, 5237 insertions(+), 1849 deletions(-)" I think we 
> will all agree that this isn't feasible.

Actually, the changes that you late-reviewed are mainly (if not all)
on the MC core:

  drivers/media/media-device.c                       | 441 ++++++++--
  drivers/media/media-devnode.c                      |  24 -
  drivers/media/media-entity.c                       | 724 +++++++++++------
  include/media/media-device.h                       | 469 ++++++++++-
  include/media/media-devnode.h                      |  54 +-
  include/media/media-entity.h                       | 904 ++++++++++++++++--
  include/uapi/linux/media.h                         | 228 +++++-

The remaining "130 files" are either documentation and some driver
changes needed by the kABI changes (plus DVB patches). Most of those
other changes are trivial ones (like macro renames).

> I won't formally nack this pull request as I don't want to send a nuke bomb 
> and watch the bridges collapse. As someone told me recently, nuke bombs are 
> only effective if your goal is destruction and fire, and I hope to be more 
> constructive than that. I would like to restate that the offer I made of 
> helping with rebasing the series still holds.
> 
> > The following changes since commit 768acf46e1320d6c41ed1b7c4952bab41c1cde79:
> > 
> >   [media] rc: sunxi-cir: Initialize the spinlock properly (2015-12-23
> > 15:51:40 -0200)
> > 
> > are available in the git repository at:
> > 
> >   git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
> > tags/media/v4.5-2
> > 
> > for you to fetch changes up to be0270ec89e6b9b49de7e533dd1f3a89ad34d205:
> > 
> >   [media] Postpone the addition of MEDIA_IOC_G_TOPOLOGY (2016-01-11 12:35:17
> > -0200)
> > 
> > ----------------------------------------------------------------
> > media updates for v4.5-rc1
> > 
> > ----------------------------------------------------------------
> > Dan Carpenter (2):
> >       [media] media-device: copy_to/from_user() returns positive
> >       [media] v4l2-device: fix a missing error code
> > 
> > Javier Martinez Canillas (26):
> >       [media] staging: omap4iss: get entity ID using media_entity_id()
> >       [media] omap3isp: get entity ID using media_entity_id()
> >       [media] media: use entity.graph_obj.mdev instead of .parent
> >       [media] media: remove media entity .parent field
> >       [media] omap3isp: separate links creation from entities init
> >       [media] omap3isp: create links after all subdevs have been bound
> >       [media] staging: omap4iss: separate links creation from entities init
> >       [media] v4l: vsp1: create pad links after subdev registration
> >       [media] v4l: vsp1: separate links creation from entities init
> >       [media] uvcvideo: create pad links after subdev registration
> >       [media] smiapp: create pad links after subdev registration
> >       [media] media: don't try to empty links list in media_entity_cleanup()
> >       [media] media-entity: init pads on entity init if was registered
> >       before
> >       [media] omap3isp: remove per ISP module link creation functions
> >       [media] omap3isp: remove pads prefix from isp_create_pads_links()
> >       [media] omap3isp: rename single labels to just error
> >       [media] omap3isp: consistently use v4l2_dev var in complete notifier
> >       [media] staging: omap4iss: remove pads prefix from
> > *_create_pads_links()
> >       [media] v4l: vsp1: remove pads prefix from *_create_pads_links()
> >       [media] v4l: vsp1: use else if instead of continue when creating links
> >       [media] uvcvideo: remove pads prefix from uvc_mc_create_pads_links()
> >       [media] uvcvideo: register entity subdev on init
> >       [media] media-entity: remove unneded enclosing parenthesis
> >       [media] media-device: check before unregister if mdev was registered
> >       [media] media-device: split media initialization and registration
> >       [media] media-device: set topology version 0 at media registration
> > 
> > Mauro Carvalho Chehab (123):
> >       [media] au0828: Cache the decoder info at au0828 dev structure
> >       [media] media: get rid of unused "extra_links" param on
> > media_entity_init() [media] Kconfig: Re-enable Media controller support for
> > DVB
> >       [media] au0828: Fix the logic that enables the analog demoder link
> >       [media] media: create a macro to get entity ID
> >       [media] media: add a common struct to be embed on media graph objects
> >       [media] media: use media_gobj inside entities
> >       [media] media: use media_gobj inside pads
> >       [media] media: use media_gobj inside links
> >       [media] media: add messages when media device gets (un)registered
> >       [media] media: add a debug message to warn about gobj creation/removal
> >       [media] media: rename the function that create pad links
> >       [media] uapi/media.h: Declare interface types for V4L2 and DVB
> >       [media] media: add functions to allow creating interfaces
> >       [media] media: Don't accept early-created links
> >       [media] media: convert links from array to list
> >       [media] media: make add link more generic
> >       [media] media: make media_link more generic to handle interace links
> >       [media] media: make link debug printk more generic
> >       [media] media: add support to link interfaces and entities
> >       [media] media-entity: add a helper function to create interface
> >       [media] dvbdev: add support for interfaces
> >       [media] media: add a linked list to track interfaces by mdev
> >       [media] dvbdev: add support for indirect interface links
> >       [media] uapi/media.h: Fix entity namespace
> >       [media] replace all occurrences of MEDIA_ENT_T_DEVNODE_V4L
> >       [media] replace all occurrences of MEDIA_ENT_T_DEVNODE_DVB
> >       [media] media: add macros to check if subdev or V4L2 DMA
> >       [media] media: use macros to check for V4L2 subdev entities
> >       [media] omap3/omap4/davinci: get rid of MEDIA_ENT_T_V4L2_SUBDEV abuse
> >       [media] s5c73m3: fix subdev type
> >       [media] s5k5baf: fix subdev type
> >       [media] davinci_vbpe: stop MEDIA_ENT_T_V4L2_SUBDEV abuse
> >       [media] omap4iss: change the logic that checks if an entity is a
> > subdev
> >       [media] v4l2-subdev: use MEDIA_ENT_T_UNKNOWN for new subdevs
> >       [media] media controller: get rid of entity subtype on Kernel
> >       [media] media.h: don't use legacy entity macros at Kernel
> >       [media] DocBook: update descriptions for the media controller entities
> >       [media] dvb: modify core to implement interfaces/entities at MC new
> > gen
> >       [media] media: report if a pad is sink or source at debug msg
> >       [media] uapi/media.h: Add MEDIA_IOC_G_TOPOLOGY ioctl
> >       [media] media: Use a macro to interate between all interfaces
> >       [media] media: move mdev list init to gobj
> >       [media] media-device: add pads and links to media_device
> >       [media] media_device: add a topology version field
> >       [media] media-device: add support for MEDIA_IOC_G_TOPOLOGY ioctl
> >       [media] media-entity: unregister entity links
> >       [media] remove interface links at media_entity_unregister()
> >       [media] media-device: remove interfaces and interface links
> >       [media] media-entity: protect object creation/removal using spin lock
> >       [media] tuner-core: add an input pad
> >       [media] dvbdev: enable all interface links at init
> >       [media] au0828: postpone call to au0828_unregister_media_device()
> >       [media] media-entity: fix backlink removal on
> > __media_entity_remove_link()
> >       [media] dvbdev: returns error if graph object creation fails
> >       [media] v4l2-core: create MC interfaces for devnodes
> >       [media] media-entity.h: document all the structs
> >       [media] media.h: create connector entities for hybrid TV devices
> >       [media] au0828: add support for the connectors
> >       [media] au0828: Create connector links
> >       [media] media-device: supress backlinks at G_TOPOLOGY ioctl
> >       [media] v4l2 core: enable all interface links at init
> >       [media] dvb core: must check dvb_create_media_graph()
> >       [media] media-entity: enforce check of interface and links creation
> >       [media] cx231xx: enforce check for graph creation
> >       [media] au0828: enforce check for graph creation
> >       [media] media-entity: must check media_create_pad_link()
> >       [media] media-entity.h: rename entity.type to entity.function
> >       [media] media-device: export the entity function via new ioctl
> >       [media] uapi/media.h: Rename entities types to functions
> >       [media] DocBook: update entities documentation
> >       [media] dvbdev: move indirect links on dvr/demux to a separate
> > function 
> >       [media] dvbdev: Don't create indirect links
> >       [media] media_entity: remove gfp_flags argument
> >       [media] media-device: use unsigned ints on some places
> >       [media] media-device: put headers in alphabetic order
> >       [media] media-device: better name Kernelspace/Userspace links
> >       [media] media framework: rename pads init function to
> > media_entity_pads_init()
> >       [media] media-entity.h: get rid of revision and group_id fields
> >       [media] DocBook: Move media-framework.txt contents to media-device.h
> >       [media] media-entity.h: convert media_entity_cleanup to inline
> >       [media] media-device.h: Improve documentation and update it
> >       [media] media: remove extra blank lines
> >       [media] media-entity: get rid of forward __media_entity_remove_link()
> > declaration
> >       [media] media_entity: get rid of a unused var
> >       [media] media_entity: rename media_obj functions to *_create *_destroy
> >       [media] media-entity.h: move kernel-doc tags from media-entity.c
> >       [media] media: use unsigned for pad index
> >       [media] media-device.h: Let clearer that entity function must be
> > initialized
> >       [media] media-device: Use u64 ints for pointers
> >       [media] media: move MEDIA_LNK_FL_INTERFACE_LINK logic to link creation
> >       [media] media.h: let be clear that tuners need to use connectors
> >       [media] dvbdev: Document the new MC-related fields
> >       [media] DocBook: MC: add the concept of interfaces
> >       [media] DocBook: move data types to a separate section
> >       [media] Docbook: media-types.xml: update the existing tables
> >       [media] DocBook: add a table for Media Controller interfaces
> >       [media] DocBook: Document MEDIA_IOC_G_TOPOLOGY
> >       [media] media-entity.h: Document some ancillary functions
> >       [media] media-device.h: document the last functions
> >       [media] media-devnode: move kernel-doc documentation to the header
> >       [media] media-devnode.h: document the remaining struct/functions
> >       [media] media-entity: use mutes for link setup
> >       [media] media-entity: cache media_device on object removal
> >       [media] media-device: move media entity register/unregister functions
> >       [media] media-device: better lock media_device_unregister()
> >       [media] usb: check media device errors
> >       [media] move documentation to the header files
> >       [media] DocBook: document media_entity_graph_walk_cleanup()
> >       [media] media-entity.h fix documentation for several parameters
> >       [media] media-device.h: use just one u32 counter for object ID
> >       [media] media-entity.h: document the remaining functions
> >       [media] media-entity: increase max number of PADs
> >       [media] media-entity: don't sleep at media_device_register_entity()
> >       [media] uapi/media.h: Use u32 for the number of graph objects
> >       [media] call media_device_init() before registering the V4L2 device
> >       [media] dvbdev: remove two dead functions if
> > !CONFIG_MEDIA_CONTROLLER_DVB [media] dvbdev: Add RF connector if needed
> >       [media] dvb-usb-v2: postpone removal of media_device
> >       [media] media-entitiy: add a function to create multiple links
> >       [media] dvbdev: create links on devices with multiple frontends
> >       [media] mxl111sf: Add a tuner entity
> >       [media] Postpone the addition of MEDIA_IOC_G_TOPOLOGY
> > 
> > Rafael Lourenço de Lima Chehab (1):
> >       [media] au0828: Add support for media controller
> > 
> > Sakari Ailus (23):
> >       [media] media: Enforce single entity->pipe in a pipeline
> >       [media] v4l2-device: Register entity before calling subdev's
> > registered ops [media] media: Introduce internal index for media entities
> >       [media] media: Add an API to manage entity enumerations
> >       [media] media: Move struct media_entity_graph definition up
> >       [media] media: Add KernelDoc documentation for struct
> > media_entity_graph
> >       [media] media: Move media graph state for streamon/off to the pipeline
> >       [media] media: Amend media graph walk API by init and cleanup
> > functions
> >       [media] media: Use the new media graph walk interface
> >       [media] v4l: omap3isp: Use the new media graph walk interface
> >       [media] v4l: exynos4-is: Use the new media graph walk interface
> >       [media] v4l: xilinx: Use the new media graph walk interface
> >       [media] v4l: vsp1: Use the new media graph walk interface
> >       [media] media: Use entity enums in graph walk
> >       [media] media: Keep using the same graph walk object for a given
> > pipeline
> >       [media] v4l: omap3isp: Use media entity enumeration interface
> >       [media] v4l: vsp1: Use media entity enumeration interface
> >       [media] staging: v4l: omap4iss: Fix sub-device power management code
> >       [media] staging: v4l: omap4iss: Use media entity enumeration interface
> >       [media] staging: v4l: omap4iss: Use the new media graph walk interface
> >       [media] staging: v4l: davinci_vpbe: Use the new media graph walk
> > interface
> >       [media] media: Remove pre-allocated entity enumeration bitmap
> >       [media] media: Move MEDIA_ENTITY_MAX_PADS from media-entity.h to
> > media-entity.c
> > 
> > Shuah Khan (2):
> >       [media] media: new media controller API for device resource support
> >       [media] media: define Media Controller API when
> > CONFIG_MEDIA_CONTROLLER enabled
> > 
> >  Documentation/DocBook/device-drivers.tmpl          |   1 +
> >  .../DocBook/media/v4l/media-controller.xml         |  44 +-
> >  .../DocBook/media/v4l/media-ioc-enum-entities.xml  | 104 +--
> >  .../DocBook/media/v4l/media-ioc-enum-links.xml     |  56 --
> >  .../DocBook/media/v4l/media-ioc-g-topology.xml     | 394 +++++++++
> >  Documentation/DocBook/media/v4l/media-types.xml    | 240 ++++++
> >  Documentation/media-framework.txt                  | 372 ---------
> >  Documentation/video4linux/v4l2-framework.txt       |  12 +-
> >  Documentation/zh_CN/video4linux/v4l2-framework.txt |   8 +-
> >  drivers/media/Kconfig                              |   1 -
> >  drivers/media/common/siano/smsdvb-main.c           |   7 +-
> >  drivers/media/dvb-core/dmxdev.c                    |   4 +-
> >  drivers/media/dvb-core/dvb_ca_en50221.c            |   2 +-
> >  drivers/media/dvb-core/dvb_frontend.c              |  11 +-
> >  drivers/media/dvb-core/dvb_net.c                   |   2 +-
> >  drivers/media/dvb-core/dvbdev.c                    | 488 +++++++++--
> >  drivers/media/dvb-core/dvbdev.h                    |  58 +-
> >  drivers/media/dvb-frontends/au8522_decoder.c       |  17 +
> >  drivers/media/dvb-frontends/au8522_priv.h          |  12 +
> >  drivers/media/firewire/firedtv-ci.c                |   2 +-
> >  drivers/media/i2c/ad9389b.c                        |   2 +-
> >  drivers/media/i2c/adp1653.c                        |   4 +-
> >  drivers/media/i2c/adv7180.c                        |   4 +-
> >  drivers/media/i2c/adv7511.c                        |   2 +-
> >  drivers/media/i2c/adv7604.c                        |   4 +-
> >  drivers/media/i2c/adv7842.c                        |   2 +-
> >  drivers/media/i2c/as3645a.c                        |   4 +-
> >  drivers/media/i2c/cx25840/cx25840-core.c           |   6 +-
> >  drivers/media/i2c/lm3560.c                         |   4 +-
> >  drivers/media/i2c/lm3646.c                         |   4 +-
> >  drivers/media/i2c/m5mols/m5mols_core.c             |   4 +-
> >  drivers/media/i2c/mt9m032.c                        |   2 +-
> >  drivers/media/i2c/mt9p031.c                        |   2 +-
> >  drivers/media/i2c/mt9t001.c                        |   2 +-
> >  drivers/media/i2c/mt9v032.c                        |   2 +-
> >  drivers/media/i2c/noon010pc30.c                    |   4 +-
> >  drivers/media/i2c/ov2659.c                         |   4 +-
> >  drivers/media/i2c/ov9650.c                         |   4 +-
> >  drivers/media/i2c/s5c73m3/s5c73m3-core.c           |  16 +-
> >  drivers/media/i2c/s5k4ecgx.c                       |   4 +-
> >  drivers/media/i2c/s5k5baf.c                        |  12 +-
> >  drivers/media/i2c/s5k6a3.c                         |   2 +-
> >  drivers/media/i2c/s5k6aa.c                         |   4 +-
> >  drivers/media/i2c/smiapp/smiapp-core.c             |  32 +-
> >  drivers/media/i2c/tc358743.c                       |   2 +-
> >  drivers/media/i2c/tvp514x.c                        |   4 +-
> >  drivers/media/i2c/tvp7002.c                        |   4 +-
> >  drivers/media/media-device.c                       | 441 ++++++++--
> >  drivers/media/media-devnode.c                      |  24 -
> >  drivers/media/media-entity.c                       | 724 +++++++++++------
> >  drivers/media/pci/bt8xx/dst_ca.c                   |   3 +-
> >  drivers/media/pci/ddbridge/ddbridge-core.c         |   2 +-
> >  drivers/media/pci/ngene/ngene-core.c               |   2 +-
> >  drivers/media/pci/ttpci/av7110.c                   |   2 +-
> >  drivers/media/pci/ttpci/av7110_av.c                |   4 +-
> >  drivers/media/pci/ttpci/av7110_ca.c                |   2 +-
> >  drivers/media/platform/exynos4-is/common.c         |   3 +-
> >  drivers/media/platform/exynos4-is/fimc-capture.c   |  11 +-
> >  drivers/media/platform/exynos4-is/fimc-isp-video.c |  11 +-
> >  drivers/media/platform/exynos4-is/fimc-isp.c       |   4 +-
> >  drivers/media/platform/exynos4-is/fimc-lite.c      |  24 +-
> >  drivers/media/platform/exynos4-is/fimc-m2m.c       |   2 +-
> >  drivers/media/platform/exynos4-is/media-dev.c      |  73 +-
> >  drivers/media/platform/exynos4-is/media-dev.h      |   9 +-
> >  drivers/media/platform/exynos4-is/mipi-csis.c      |   4 +-
> >  drivers/media/platform/omap3isp/isp.c              | 306 ++++---
> >  drivers/media/platform/omap3isp/isp.h              |   9 +-
> >  drivers/media/platform/omap3isp/ispccdc.c          |  31 +-
> >  drivers/media/platform/omap3isp/ispccp2.c          |  27 +-
> >  drivers/media/platform/omap3isp/ispcsi2.c          |  21 +-
> >  drivers/media/platform/omap3isp/isppreview.c       |  30 +-
> >  drivers/media/platform/omap3isp/ispresizer.c       |  28 +-
> >  drivers/media/platform/omap3isp/ispstat.c          |   2 +-
> >  drivers/media/platform/omap3isp/ispvideo.c         |  49 +-
> >  drivers/media/platform/omap3isp/ispvideo.h         |   5 +-
> >  drivers/media/platform/s3c-camif/camif-capture.c   |   8 +-
> >  drivers/media/platform/s3c-camif/camif-core.c      |  21 +-
> >  drivers/media/platform/vsp1/vsp1_drv.c             |  50 +-
> >  drivers/media/platform/vsp1/vsp1_entity.c          |   4 +-
> >  drivers/media/platform/vsp1/vsp1_rpf.c             |  29 +-
> >  drivers/media/platform/vsp1/vsp1_rwpf.h            |   5 +
> >  drivers/media/platform/vsp1/vsp1_video.c           |  64 +-
> >  drivers/media/platform/vsp1/vsp1_wpf.c             |  40 +-
> >  drivers/media/platform/xilinx/xilinx-dma.c         |  21 +-
> >  drivers/media/platform/xilinx/xilinx-tpg.c         |   2 +-
> >  drivers/media/platform/xilinx/xilinx-vipp.c        |  16 +-
> >  drivers/media/usb/au0828/au0828-cards.c            |   4 +
> >  drivers/media/usb/au0828/au0828-core.c             | 171 ++++
> >  drivers/media/usb/au0828/au0828-dvb.c              |  12 +
> >  drivers/media/usb/au0828/au0828-video.c            | 126 +++
> >  drivers/media/usb/au0828/au0828.h                  |  10 +-
> >  drivers/media/usb/cx231xx/cx231xx-cards.c          |  81 +-
> >  drivers/media/usb/cx231xx/cx231xx-dvb.c            |   6 +-
> >  drivers/media/usb/cx231xx/cx231xx-video.c          |  14 +-
> >  drivers/media/usb/dvb-usb-v2/dvb_usb_core.c        |  42 +-
> >  drivers/media/usb/dvb-usb-v2/mxl111sf.c            |  20 +
> >  drivers/media/usb/dvb-usb-v2/mxl111sf.h            |   5 +
> >  drivers/media/usb/dvb-usb/dvb-usb-dvb.c            |  43 +-
> >  drivers/media/usb/siano/smsusb.c                   |   5 +-
> >  drivers/media/usb/uvc/uvc_driver.c                 |  11 +-
> >  drivers/media/usb/uvc/uvc_entity.c                 |  38 +-
> >  drivers/media/v4l2-core/tuner-core.c               |  10 +-
> >  drivers/media/v4l2-core/v4l2-dev.c                 | 111 ++-
> >  drivers/media/v4l2-core/v4l2-device.c              |  39 +-
> >  drivers/media/v4l2-core/v4l2-flash-led-class.c     |   4 +-
> >  drivers/media/v4l2-core/v4l2-subdev.c              |   8 +-
> >  drivers/staging/media/davinci_vpfe/dm365_ipipe.c   |  11 +-
> >  drivers/staging/media/davinci_vpfe/dm365_ipipeif.c |  17 +-
> >  drivers/staging/media/davinci_vpfe/dm365_isif.c    |  17 +-
> >  drivers/staging/media/davinci_vpfe/dm365_resizer.c |  39 +-
> >  .../staging/media/davinci_vpfe/vpfe_mc_capture.c   |  10 +-
> >  drivers/staging/media/davinci_vpfe/vpfe_video.c    |  58 +-
> >  drivers/staging/media/davinci_vpfe/vpfe_video.h    |   1 +
> >  drivers/staging/media/omap4iss/iss.c               | 199 +++--
> >  drivers/staging/media/omap4iss/iss.h               |   8 +-
> >  drivers/staging/media/omap4iss/iss_csi2.c          |  48 +-
> >  drivers/staging/media/omap4iss/iss_csi2.h          |   1 +
> >  drivers/staging/media/omap4iss/iss_ipipe.c         |  11 +-
> >  drivers/staging/media/omap4iss/iss_ipipeif.c       |  44 +-
> >  drivers/staging/media/omap4iss/iss_ipipeif.h       |   1 +
> >  drivers/staging/media/omap4iss/iss_resizer.c       |  42 +-
> >  drivers/staging/media/omap4iss/iss_resizer.h       |   1 +
> >  drivers/staging/media/omap4iss/iss_video.c         |  61 +-
> >  drivers/staging/media/omap4iss/iss_video.h         |   5 +-
> >  include/media/media-device.h                       | 469 ++++++++++-
> >  include/media/media-devnode.h                      |  54 +-
> >  include/media/media-entity.h                       | 904 ++++++++++++++++--
> >  include/media/tuner.h                              |   8 +
> >  include/media/v4l2-dev.h                           |   1 +
> >  include/uapi/linux/media.h                         | 228 +++++-
> >  130 files changed, 5237 insertions(+), 1849 deletions(-)
> >  create mode 100644 Documentation/DocBook/media/v4l/media-ioc-g-topology.xml
> > create mode 100644 Documentation/DocBook/media/v4l/media-types.xml delete
> > mode 100644 Documentation/media-framework.txt  
> 

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [GIT PULL for v4.5-rc1] media controller next gen patch series
  2016-01-12 10:43 [GIT PULL for v4.5-rc1] media controller next gen patch series Mauro Carvalho Chehab
  2016-01-12 20:54 ` Stephen Rothwell
  2016-01-12 22:29 ` Laurent Pinchart
@ 2016-01-19 10:02 ` Geert Uytterhoeven
  2016-01-19 10:20   ` Mauro Carvalho Chehab
  2 siblings, 1 reply; 11+ messages in thread
From: Geert Uytterhoeven @ 2016-01-19 10:02 UTC (permalink / raw)
  To: Mauro Carvalho Chehab
  Cc: Linus Torvalds, Andrew Morton, Laurent Pinchart,
	Linux Media Mailing List, Linux Kernel Mailing List,
	linux-renesas-soc

Hi Mauro,

On Tue, Jan 12, 2016 at 11:43 AM, Mauro Carvalho Chehab
<mchehab@osg.samsung.com> wrote:
> That's the second part of the media patches. It contains the media controller
> next generation patches, with is the result of one year of discussions and
> development. It also contains patches to enable media controller support
> at the DVB subsystem.
>
> The goal is to improve the media controller to allow proper support for
> other types of Video4Linux devices (radio and TV ones) and to extend the
> media controller functionality to allow it to be used by other subsystems
> like DVB, ALSA and IIO.
>
> In order to use the new functionality, a new ioctl is needed
> (MEDIA_IOC_G_TOPOLOGY). As we're still discussing how to pack the struct
> fields of this ioctl in order to avoid compat32 issues, I decided to add
> a patch at the end of this series commenting out the new ioctl, in order
> to postpone the addition of the new ioctl to the next Kernel version (4.6).
> With that, no userspace visible changes should happen at the media
> controller API, as the existing ioctls are untouched. Yet, it helps
> DVB, ALSA and IIO developers to develop and test the patches adding media
> controller support there, as the core will contain all required internal
> changes to allow adding support for devices that belong to those
> subsystems.
>
> Regards,
> Mauro
>
> The following changes since commit 768acf46e1320d6c41ed1b7c4952bab41c1cde79:
>
>   [media] rc: sunxi-cir: Initialize the spinlock properly (2015-12-23 15:51:40 -0200)
>
> are available in the git repository at:
>
>   git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media tags/media/v4.5-2
>
> for you to fetch changes up to be0270ec89e6b9b49de7e533dd1f3a89ad34d205:
>
>   [media] Postpone the addition of MEDIA_IOC_G_TOPOLOGY (2016-01-11 12:35:17 -0200)

After merging this into mainline, I get the BUG_ON() and crash I reported ca.
one month ago in "vsp1 BUG_ON() and crash (Re: [PATCH v9 03/12] media:
Entities, pads and links)" ( https://lkml.org/lkml/2015/12/14/373).

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [GIT PULL for v4.5-rc1] media controller next gen patch series
  2016-01-19 10:02 ` Geert Uytterhoeven
@ 2016-01-19 10:20   ` Mauro Carvalho Chehab
  2016-01-19 13:53     ` Javier Martinez Canillas
  0 siblings, 1 reply; 11+ messages in thread
From: Mauro Carvalho Chehab @ 2016-01-19 10:20 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Linus Torvalds, Andrew Morton, Laurent Pinchart,
	Linux Media Mailing List, Linux Kernel Mailing List,
	linux-renesas-soc, Javier Martinez Canillas

Em Tue, 19 Jan 2016 11:02:30 +0100
Geert Uytterhoeven <geert@linux-m68k.org> escreveu:

> Hi Mauro,
> 
> On Tue, Jan 12, 2016 at 11:43 AM, Mauro Carvalho Chehab
> <mchehab@osg.samsung.com> wrote:
> > That's the second part of the media patches. It contains the media controller
> > next generation patches, with is the result of one year of discussions and
> > development. It also contains patches to enable media controller support
> > at the DVB subsystem.
> >
> > The goal is to improve the media controller to allow proper support for
> > other types of Video4Linux devices (radio and TV ones) and to extend the
> > media controller functionality to allow it to be used by other subsystems
> > like DVB, ALSA and IIO.
> >
> > In order to use the new functionality, a new ioctl is needed
> > (MEDIA_IOC_G_TOPOLOGY). As we're still discussing how to pack the struct
> > fields of this ioctl in order to avoid compat32 issues, I decided to add
> > a patch at the end of this series commenting out the new ioctl, in order
> > to postpone the addition of the new ioctl to the next Kernel version (4.6).
> > With that, no userspace visible changes should happen at the media
> > controller API, as the existing ioctls are untouched. Yet, it helps
> > DVB, ALSA and IIO developers to develop and test the patches adding media
> > controller support there, as the core will contain all required internal
> > changes to allow adding support for devices that belong to those
> > subsystems.
> >
> > Regards,
> > Mauro
> >
> > The following changes since commit 768acf46e1320d6c41ed1b7c4952bab41c1cde79:
> >
> >   [media] rc: sunxi-cir: Initialize the spinlock properly (2015-12-23 15:51:40 -0200)
> >
> > are available in the git repository at:
> >
> >   git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media tags/media/v4.5-2
> >
> > for you to fetch changes up to be0270ec89e6b9b49de7e533dd1f3a89ad34d205:
> >
> >   [media] Postpone the addition of MEDIA_IOC_G_TOPOLOGY (2016-01-11 12:35:17 -0200)  
> 
> After merging this into mainline, I get the BUG_ON() and crash I reported ca.
> one month ago in "vsp1 BUG_ON() and crash (Re: [PATCH v9 03/12] media:
> Entities, pads and links)" ( https://lkml.org/lkml/2015/12/14/373).

Not sure what happened here, as this was supposed to have fixed already.
I'll ask Javier to take a look into it and work with you for us to get it
fixed ASAP.

Regards,
Mauro

> 
> Gr{oetje,eeting}s,
> 
>                         Geert
> 
> --
> Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
> 
> In personal conversations with technical people, I call myself a hacker. But
> when I'm talking to journalists I just say "programmer" or something like that.
>                                 -- Linus Torvalds

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [GIT PULL for v4.5-rc1] media controller next gen patch series
  2016-01-19 10:20   ` Mauro Carvalho Chehab
@ 2016-01-19 13:53     ` Javier Martinez Canillas
  2016-01-21  9:01       ` Sudip Mukherjee
  0 siblings, 1 reply; 11+ messages in thread
From: Javier Martinez Canillas @ 2016-01-19 13:53 UTC (permalink / raw)
  To: Mauro Carvalho Chehab, Geert Uytterhoeven
  Cc: Linus Torvalds, Andrew Morton, Laurent Pinchart,
	Linux Media Mailing List, Linux Kernel Mailing List,
	linux-renesas-soc

Hello,

On 01/19/2016 07:20 AM, Mauro Carvalho Chehab wrote:
> Em Tue, 19 Jan 2016 11:02:30 +0100
> Geert Uytterhoeven <geert@linux-m68k.org> escreveu:
>
>> Hi Mauro,
>>
>> On Tue, Jan 12, 2016 at 11:43 AM, Mauro Carvalho Chehab
>> <mchehab@osg.samsung.com> wrote:
>>> That's the second part of the media patches. It contains the media controller
>>> next generation patches, with is the result of one year of discussions and
>>> development. It also contains patches to enable media controller support
>>> at the DVB subsystem.
>>>
>>> The goal is to improve the media controller to allow proper support for
>>> other types of Video4Linux devices (radio and TV ones) and to extend the
>>> media controller functionality to allow it to be used by other subsystems
>>> like DVB, ALSA and IIO.
>>>
>>> In order to use the new functionality, a new ioctl is needed
>>> (MEDIA_IOC_G_TOPOLOGY). As we're still discussing how to pack the struct
>>> fields of this ioctl in order to avoid compat32 issues, I decided to add
>>> a patch at the end of this series commenting out the new ioctl, in order
>>> to postpone the addition of the new ioctl to the next Kernel version (4.6).
>>> With that, no userspace visible changes should happen at the media
>>> controller API, as the existing ioctls are untouched. Yet, it helps
>>> DVB, ALSA and IIO developers to develop and test the patches adding media
>>> controller support there, as the core will contain all required internal
>>> changes to allow adding support for devices that belong to those
>>> subsystems.
>>>
>>> Regards,
>>> Mauro
>>>
>>> The following changes since commit 768acf46e1320d6c41ed1b7c4952bab41c1cde79:
>>>
>>>    [media] rc: sunxi-cir: Initialize the spinlock properly (2015-12-23 15:51:40 -0200)
>>>
>>> are available in the git repository at:
>>>
>>>    git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media tags/media/v4.5-2
>>>
>>> for you to fetch changes up to be0270ec89e6b9b49de7e533dd1f3a89ad34d205:
>>>
>>>    [media] Postpone the addition of MEDIA_IOC_G_TOPOLOGY (2016-01-11 12:35:17 -0200)
>>
>> After merging this into mainline, I get the BUG_ON() and crash I reported ca.
>> one month ago in "vsp1 BUG_ON() and crash (Re: [PATCH v9 03/12] media:
>> Entities, pads and links)" ( https://lkml.org/lkml/2015/12/14/373).
>
> Not sure what happened here, as this was supposed to have fixed already.
> I'll ask Javier to take a look into it and work with you for us to get it
> fixed ASAP.
>

There was a bug in my patch that split the entities registration and links
creation. I posted a fix that was already been tested by Geert:

https://patchwork.linuxtv.org/patch/32675/

> Regards,
> Mauro
>

Best regards,
-- 
Javier Martinez Canillas
Open Source Group
Samsung Research America

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [GIT PULL for v4.5-rc1] media controller next gen patch series
  2016-01-19 13:53     ` Javier Martinez Canillas
@ 2016-01-21  9:01       ` Sudip Mukherjee
  0 siblings, 0 replies; 11+ messages in thread
From: Sudip Mukherjee @ 2016-01-21  9:01 UTC (permalink / raw)
  To: Javier Martinez Canillas
  Cc: Mauro Carvalho Chehab, Geert Uytterhoeven, Linus Torvalds,
	Andrew Morton, Laurent Pinchart, Linux Media Mailing List,
	Linux Kernel Mailing List, linux-renesas-soc

On Tue, Jan 19, 2016 at 10:53:05AM -0300, Javier Martinez Canillas wrote:
> Hello,
> 
> On 01/19/2016 07:20 AM, Mauro Carvalho Chehab wrote:
> >Em Tue, 19 Jan 2016 11:02:30 +0100
> >Geert Uytterhoeven <geert@linux-m68k.org> escreveu:
> >
> >>Hi Mauro,
> >>
> >>On Tue, Jan 12, 2016 at 11:43 AM, Mauro Carvalho Chehab
> >><mchehab@osg.samsung.com> wrote:
> >>>That's the second part of the media patches. It contains the media controller
> >>>next generation patches, with is the result of one year of discussions and
> >>>development. It also contains patches to enable media controller support
> >>>at the DVB subsystem.
> >>>
> >>>The goal is to improve the media controller to allow proper support for
> >>>other types of Video4Linux devices (radio and TV ones) and to extend the
> >>>media controller functionality to allow it to be used by other subsystems
> >>>like DVB, ALSA and IIO.
> >>>
> >>>In order to use the new functionality, a new ioctl is needed
> >>>(MEDIA_IOC_G_TOPOLOGY). As we're still discussing how to pack the struct
> >>>fields of this ioctl in order to avoid compat32 issues, I decided to add
> >>>a patch at the end of this series commenting out the new ioctl, in order
> >>>to postpone the addition of the new ioctl to the next Kernel version (4.6).
> >>>With that, no userspace visible changes should happen at the media
> >>>controller API, as the existing ioctls are untouched. Yet, it helps
> >>>DVB, ALSA and IIO developers to develop and test the patches adding media
> >>>controller support there, as the core will contain all required internal
> >>>changes to allow adding support for devices that belong to those
> >>>subsystems.
> >>>
> >>>Regards,
> >>>Mauro
> >>>
> >>>The following changes since commit 768acf46e1320d6c41ed1b7c4952bab41c1cde79:
> >>>
> >>>   [media] rc: sunxi-cir: Initialize the spinlock properly (2015-12-23 15:51:40 -0200)
> >>>
> >>>are available in the git repository at:
> >>>
> >>>   git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media tags/media/v4.5-2
> >>>
> >>>for you to fetch changes up to be0270ec89e6b9b49de7e533dd1f3a89ad34d205:
> >>>
> >>>   [media] Postpone the addition of MEDIA_IOC_G_TOPOLOGY (2016-01-11 12:35:17 -0200)
> >>
> >>After merging this into mainline, I get the BUG_ON() and crash I reported ca.
> >>one month ago in "vsp1 BUG_ON() and crash (Re: [PATCH v9 03/12] media:
> >>Entities, pads and links)" ( https://lkml.org/lkml/2015/12/14/373).
> >
> >Not sure what happened here, as this was supposed to have fixed already.
> >I'll ask Javier to take a look into it and work with you for us to get it
> >fixed ASAP.
> >
> 
> There was a bug in my patch that split the entities registration and links
> creation. I posted a fix that was already been tested by Geert:
> 
> https://patchwork.linuxtv.org/patch/32675/

I will also request you to have a look at
https://patchwork.linuxtv.org/patch/32425/

without it m32r allmodconfig will be broken for rc1.

regards
sudip

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2016-01-21  9:01 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-01-12 10:43 [GIT PULL for v4.5-rc1] media controller next gen patch series Mauro Carvalho Chehab
2016-01-12 20:54 ` Stephen Rothwell
2016-01-12 20:58   ` Linus Torvalds
2016-01-12 21:07     ` Stephen Rothwell
2016-01-13  1:36       ` Mauro Carvalho Chehab
2016-01-12 22:29 ` Laurent Pinchart
2016-01-13  2:46   ` Mauro Carvalho Chehab
2016-01-19 10:02 ` Geert Uytterhoeven
2016-01-19 10:20   ` Mauro Carvalho Chehab
2016-01-19 13:53     ` Javier Martinez Canillas
2016-01-21  9:01       ` Sudip Mukherjee

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).