media controller next gen patch series
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
Hi Mauro,
Quoted 2 lines · On Tue, 12 Jan 2016 08:43:28 -0200 Mauro Carvalho Chehab…
git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-mediatags/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.
Signature · 2 lines
Cheers, Stephen Rothwell [email protected]
Quoted 3 lines · Stephen Rothwell
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
Hi Linus,
Quoted 7 lines · On Tue, 12 Jan 2016 12:58:45 -0800 Linus Torvalds…
Quoted 3 lines · Stephen Rothwell
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.
Signature · 2 lines
Cheers, Stephen Rothwell [email protected]
Em Wed, 13 Jan 2016 08:07:16 +1100
Stephen Rothwell <[email protected]> escreveu:
Quoted 8 lines
Hi Linus,
Quoted 5 lines · On Tue, 12 Jan 2016 12:58:45 -0800 Linus Torvalds…
Quoted 3 lines · Stephen Rothwell
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 <[email protected]>
Date: Fri Dec 18 15:35:01 2015 -0200
Merge branch 'devel/media-controller-rc4' into to_next
Regards,
Mauro
Hello Mauro and Linus,
Quoted 12 lines · 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.
Quoted 11 lines
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.
Quoted 358 lines
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-2for 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 codeJavier Martinez Canillas (26):
[media] staging: omap4iss: get entity ID usingmedia_entity_id()[media] omap3isp: get entity ID usingmedia_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 inmedia_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 fromisp_create_pads_links()[media] omap3isp: rename single labels to just error [media] omap3isp: consistently usev4l2_devvar 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 fromuvc_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 registrationMauro Carvalho Chehab (123):
[media] au0828: Cache the decoder info at au0828 dev structure [media] media: get rid of unused "extra_links" param onmedia_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: usemedia_gobjinside entities
[media] media: usemedia_gobjinside pads
[media] media: usemedia_gobjinside 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: makemedia_linkmore 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 ofMEDIA_ENT_T_DEVNODE_V4L[media] replace all occurrences ofMEDIA_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 ofMEDIA_ENT_T_V4L2_SUBDEVabuse [media] s5c73m3: fix subdev type
[media] s5k5baf: fix subdev type
[media]davinci_vbpe: stopMEDIA_ENT_T_V4L2_SUBDEVabuse [media] omap4iss: change the logic that checks if an entity is a
subdev
[media] v4l2-subdev: useMEDIA_ENT_T_UNKNOWNfor 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: AddMEDIA_IOC_G_TOPOLOGYioctl [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 tomedia_device[media]media_device: add a topology version field
[media] media-device: add support forMEDIA_IOC_G_TOPOLOGYioctl [media] media-entity: unregister entity links
[media] remove interface links atmedia_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 toau0828_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 atG_TOPOLOGYioctl [media] v4l2 core: enable all interface links at init [media] dvb core: must checkdvb_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 checkmedia_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: removegfp_flagsargument
[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 tomedia_entity_pads_init()
[media]media-entity.h: get rid of revision andgroup_idfields [media] DocBook: Move media-framework.txt contents tomedia-device.h[media]media-entity.h: convertmedia_entity_cleanupto 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: renamemedia_objfunctions to*_create*_destroy[media]media-entity.h: move kernel-doc tags frommedia-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: moveMEDIA_LNK_FL_INTERFACE_LINKlogic 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: DocumentMEDIA_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: cachemedia_deviceon object removal [media] media-device: move media entity register/unregister functions [media] media-device: better lockmedia_device_unregister()[media] usb: check media device errors
[media] move documentation to the header files
[media] DocBook: documentmedia_entity_graph_walk_cleanup()[media]media-entity.hfix 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 atmedia_device_register_entity()[media]uapi/media.h: Use u32 for the number of graph objects [media] callmedia_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 ofmedia_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 ofMEDIA_IOC_G_TOPOLOGYRafael Lourenço de Lima Chehab (1):
[media] au0828: Add support for media controllerSakari Ailus (23):
[media] media: Enforce singleentity->pipein 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 structmedia_entity_graphdefinition up [media] media: Add KernelDoc documentation for structmedia_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: MoveMEDIA_ENTITY_MAX_PADSfrommedia-entity.htomedia-entity.cShuah Khan (2):
[media] media: new media controller API for device resource support [media] media: define Media Controller API whenCONFIG_MEDIA_CONTROLLERenabledDocumentation/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.xmlcreate mode 100644
Documentation/DocBook/media/v4l/media-types.xmldelete mode 100644Documentation/media-framework.txt
Signature · 3 lines
Regards, Laurent Pinchart
Em Wed, 13 Jan 2016 00:29:35 +0200
Laurent Pinchart <[email protected]> escreveu:
Quoted 45 lines
Hello Mauro and Linus,
Quoted 12 lines · 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.
Quoted 11 lines
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.
Quoted 6 lines
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.
Quoted 9 lines
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.
Quoted 3 lines
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).
Quoted 365 lines
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.
Quoted 358 lines
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-2for 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 codeJavier Martinez Canillas (26):
[media] staging: omap4iss: get entity ID usingmedia_entity_id()[media] omap3isp: get entity ID usingmedia_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 inmedia_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 fromisp_create_pads_links()[media] omap3isp: rename single labels to just error [media] omap3isp: consistently usev4l2_devvar 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 fromuvc_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 registrationMauro Carvalho Chehab (123):
[media] au0828: Cache the decoder info at au0828 dev structure [media] media: get rid of unused "extra_links" param onmedia_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: usemedia_gobjinside entities
[media] media: usemedia_gobjinside pads
[media] media: usemedia_gobjinside 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: makemedia_linkmore 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 ofMEDIA_ENT_T_DEVNODE_V4L[media] replace all occurrences ofMEDIA_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 ofMEDIA_ENT_T_V4L2_SUBDEVabuse [media] s5c73m3: fix subdev type
[media] s5k5baf: fix subdev type
[media]davinci_vbpe: stopMEDIA_ENT_T_V4L2_SUBDEVabuse [media] omap4iss: change the logic that checks if an entity is a
subdev
[media] v4l2-subdev: useMEDIA_ENT_T_UNKNOWNfor 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: AddMEDIA_IOC_G_TOPOLOGYioctl [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 tomedia_device[media]media_device: add a topology version field
[media] media-device: add support forMEDIA_IOC_G_TOPOLOGYioctl [media] media-entity: unregister entity links
[media] remove interface links atmedia_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 toau0828_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 atG_TOPOLOGYioctl [media] v4l2 core: enable all interface links at init [media] dvb core: must checkdvb_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 checkmedia_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: removegfp_flagsargument
[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 tomedia_entity_pads_init()
[media]media-entity.h: get rid of revision andgroup_idfields [media] DocBook: Move media-framework.txt contents tomedia-device.h[media]media-entity.h: convertmedia_entity_cleanupto 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: renamemedia_objfunctions to*_create*_destroy[media]media-entity.h: move kernel-doc tags frommedia-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: moveMEDIA_LNK_FL_INTERFACE_LINKlogic 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: DocumentMEDIA_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: cachemedia_deviceon object removal [media] media-device: move media entity register/unregister functions [media] media-device: better lockmedia_device_unregister()[media] usb: check media device errors
[media] move documentation to the header files
[media] DocBook: documentmedia_entity_graph_walk_cleanup()[media]media-entity.hfix 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 atmedia_device_register_entity()[media]uapi/media.h: Use u32 for the number of graph objects [media] callmedia_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 ofmedia_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 ofMEDIA_IOC_G_TOPOLOGYRafael Lourenço de Lima Chehab (1):
[media] au0828: Add support for media controllerSakari Ailus (23):
[media] media: Enforce singleentity->pipein 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 structmedia_entity_graphdefinition up [media] media: Add KernelDoc documentation for structmedia_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: MoveMEDIA_ENTITY_MAX_PADSfrommedia-entity.htomedia-entity.cShuah Khan (2):
[media] media: new media controller API for device resource support [media] media: define Media Controller API whenCONFIG_MEDIA_CONTROLLERenabledDocumentation/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.xmlcreate mode 100644
Documentation/DocBook/media/v4l/media-types.xmldelete mode 100644Documentation/media-framework.txt
Hi Mauro,
Quoted 29 lines · Mauro Carvalho Chehab
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,
MauroThe following changes since commit
768acf46e1320d6c41ed1b7c4952bab41c1cde79:[media] rc: sunxi-cir: Initialize the spinlock properly (2015-12-23 15:51:40 -0200)
Quoted 7 lines
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-mediatags/media/v4.5-2for 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 -- [email protected]
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
Em Tue, 19 Jan 2016 11:02:30 +0100
Geert Uytterhoeven <[email protected]> escreveu:
Quoted 37 lines
Hi Mauro,
Quoted 33 lines · Mauro Carvalho Chehab
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,
MauroThe 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-mediatags/media/v4.5-2
Quoted 7 lines
Quoted 3 lines
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 "vsp1BUG_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
Quoted 11 lines
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]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
Hello,
Quoted 44 lines · Mauro Carvalho Chehab
Em Tue, 19 Jan 2016 11:02:30 +0100
Geert Uytterhoeven <[email protected]> escreveu:Quoted 41 lines
Hi Mauro,
Quoted 36 lines · Mauro Carvalho Chehab
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,
MauroThe 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-mediatags/media/v4.5-2for you to fetch changes up to
be0270ec89e6b9b49de7e533dd1f3a89ad34d205:[media] Postpone the addition of MEDIA_IOC_G_TOPOLOGY (2016-01-11 12:35:17 -0200)
Quoted 8 lines
Quoted 3 lines
After merging this into mainline, I get the
BUG_ON()and crash I reported ca. one month ago in "vsp1BUG_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/
Quoted 3 lines
Regards,
Mauro
Best regards,
Signature · 3 lines
Javier Martinez Canillas Open Source Group Samsung Research America
Quoted 56 lines · Javier Martinez Canillas
Hello,
Quoted 44 lines · Mauro Carvalho Chehab
Em Tue, 19 Jan 2016 11:02:30 +0100
Geert Uytterhoeven <[email protected]> escreveu:Quoted 41 lines
Hi Mauro,
Quoted 36 lines · Mauro Carvalho Chehab
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,
MauroThe 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-mediatags/media/v4.5-2for you to fetch changes up to
be0270ec89e6b9b49de7e533dd1f3a89ad34d205:[media] Postpone the addition of
MEDIA_IOC_G_TOPOLOGY(2016-01-11 12:35:17 -0200)Quoted 8 lines
Quoted 3 lines
After merging this into mainline, I get the
BUG_ON()and crash I reported ca. one month ago in "vsp1BUG_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.
Quoted 4 lines
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:
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