The latest version of this patch series is at: http://git.linuxtv.org/cgit.cgi/mchehab/experimental.git/log/?h=mc_next_gen The latest version of the userspace tool to test it is at: http://git.linuxtv.org/cgit.cgi/mchehab/experimental-v4l-utils.git/log/?h=mc-next-gen The initial patches of this series are the same as the ones at the "[PATCH v6 0/8] MC preparation patches" plus Javier patch series: "[PATCH 0/4] [media] Media entity cleanups and build fixes" Addressing some of the concerns from Laurent: Javier media_entity_id() patches got reordered; all "elements" occurrences were replaced by "objects" The patches of this part are: media: create a macro to get entity ID staging: omap4iss: get entity ID using media_entity_id() omap3isp: get entity ID using media_entity_id() media: add a common struct to be embed on media graph objects media: use media_gobj inside entities media: use media_gobj inside pads media: use media_gobj inside links media: add messages when media device gets (un)registered media: add a debug message to warn about gobj creation/removal media: rename the function that create pad links media: use entity.graph_obj.mdev instead of .parent media: remove media entity .parent field The next set of patches add the interface types as defined by Hans Verkuil "[RFC] Media Controller, the next generation" proposal: uapi/media.h: Declare interface types media: add functions to allow creating interfaces media: get rid of an unused code media: convert links from array to list media: make add link more generic media: make media_link more generic to handle interace links media: make link debug printk more generic media: add support to link interfaces and entities dvbdev: add support for interfaces media: add a linked list to track interfaces by mdev dvbdev: add support for indirect interface links The next part in this series fix the API namespace, making them to match what it was defined by Hans Verkuil's: "[RFC] Media Controller, the next generation" It basically contains most of the changes that was done on my RFC patch series: "[PATCH 00/18] Remove media controller entity subtypes and rename types" And constitutes on the following patches: uapi/media.h: Fix entity namespace replace all occurrences of MEDIA_ENT_T_DEVNODE_V4L replace all occurrences of MEDIA_ENT_T_DEVNODE_DVB media: add macros to check if subdev or V4L2 DMA media: use macros to check for V4L2 subdev entities omap3/omap4/davinci: get rid of MEDIA_ENT_T_V4L2_SUBDEV abuse s5c73m3: fix subdev type s5k5baf: fix subdev type davinci_vbpe: stop MEDIA_ENT_T_V4L2_SUBDEV abuse omap4iss: stop MEDIA_ENT_T_V4L2_SUBDEV abuse v4l2-subdev: use MEDIA_ENT_T_UNKNOWN for new subdevs media controller: get rid of entity subtype on Kernel DocBook: update descriptions for the media controller entities dvb: modify core to implement interfaces/entities at MC new gen media: report if a pad is sink or source at debug msg It is basically renaming stuff, plus some fixups for some driver abuses of the legacy namespace. Finally, the final series introduce the MEDIA_IOC_G_TOPOLOGY ioctl at the media.h header, and do the needed changes at the drivers side to implement support for it: uapi/media.h: Add MEDIA_IOC_G_TOPOLOGY ioctl media: Use a macro to interate between all interfaces media: move mdev list init to gobj media-device: add pads and links to media_device media_device: add a topology version field The new API can be tested using the 3 patch series I made for v4l-utils. TODO: - Add interfaces for V4L2 capture and output; - Add interfaces for subdevs; - Remove lots of fields from media_entity that will become obsolete with the new API addition (major, minor, group_id, num_links, num_pads, num_backlinks) - Address dynamic support for entities/interfaces/links. I suspect that not much is needed here, but locks need to be checked. - Add dynamic support for PADs. This should be the harder pending item, I think. Javier Martinez Canillas (4): [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 Mauro Carvalho Chehab (40): [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 [media] media: add functions to allow creating interfaces [media] media: get rid of an unused code [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] 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: stop MEDIA_ENT_T_V4L2_SUBDEV abuse [media] v4l2-subdev: use MEDIA_ENT_T_UNKNOWN for new subdevs [media] media controller: get rid of entity subtype on 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 .../DocBook/media/v4l/media-ioc-enum-entities.xml | 57 ++- Documentation/media-framework.txt | 2 +- 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 | 274 ++++++++++--- drivers/media/dvb-core/dvbdev.h | 10 +- drivers/media/firewire/firedtv-ci.c | 2 +- drivers/media/i2c/s5c73m3/s5c73m3-core.c | 8 +- drivers/media/i2c/s5k5baf.c | 4 +- drivers/media/i2c/smiapp/smiapp-core.c | 4 +- drivers/media/media-device.c | 207 ++++++++-- drivers/media/media-entity.c | 439 ++++++++++++++++----- 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 | 5 +- drivers/media/platform/exynos4-is/fimc-isp-video.c | 9 +- drivers/media/platform/exynos4-is/fimc-lite.c | 18 +- drivers/media/platform/exynos4-is/media-dev.c | 25 +- drivers/media/platform/exynos4-is/media-dev.h | 8 +- drivers/media/platform/omap3isp/isp.c | 43 +- drivers/media/platform/omap3isp/ispccdc.c | 19 +- drivers/media/platform/omap3isp/ispccp2.c | 15 +- drivers/media/platform/omap3isp/ispcsi2.c | 13 +- drivers/media/platform/omap3isp/isppreview.c | 19 +- drivers/media/platform/omap3isp/ispresizer.c | 17 +- drivers/media/platform/omap3isp/ispvideo.c | 17 +- drivers/media/platform/s3c-camif/camif-capture.c | 2 +- drivers/media/platform/s3c-camif/camif-core.c | 4 +- drivers/media/platform/vsp1/vsp1_drv.c | 4 +- drivers/media/platform/vsp1/vsp1_rpf.c | 2 +- drivers/media/platform/vsp1/vsp1_video.c | 15 +- drivers/media/platform/vsp1/vsp1_wpf.c | 2 +- drivers/media/platform/xilinx/xilinx-dma.c | 10 +- drivers/media/platform/xilinx/xilinx-vipp.c | 4 +- drivers/media/usb/au0828/au0828-core.c | 14 +- drivers/media/usb/au0828/au0828-video.c | 8 +- drivers/media/usb/cx231xx/cx231xx-cards.c | 6 +- drivers/media/usb/cx231xx/cx231xx-video.c | 8 +- drivers/media/usb/uvc/uvc_entity.c | 2 +- drivers/media/v4l2-core/v4l2-dev.c | 2 +- drivers/media/v4l2-core/v4l2-subdev.c | 6 +- drivers/staging/media/davinci_vpfe/dm365_ipipe.c | 9 +- drivers/staging/media/davinci_vpfe/dm365_ipipeif.c | 15 +- drivers/staging/media/davinci_vpfe/dm365_isif.c | 15 +- drivers/staging/media/davinci_vpfe/dm365_resizer.c | 30 +- .../staging/media/davinci_vpfe/vpfe_mc_capture.c | 10 +- drivers/staging/media/davinci_vpfe/vpfe_video.c | 17 +- drivers/staging/media/omap4iss/iss.c | 32 +- drivers/staging/media/omap4iss/iss_csi2.c | 13 +- drivers/staging/media/omap4iss/iss_ipipe.c | 7 +- drivers/staging/media/omap4iss/iss_ipipeif.c | 15 +- drivers/staging/media/omap4iss/iss_resizer.c | 13 +- drivers/staging/media/omap4iss/iss_video.c | 9 +- include/media/media-device.h | 34 +- include/media/media-entity.h | 199 +++++++++- include/uapi/linux/media.h | 192 ++++++++- 63 files changed, 1466 insertions(+), 485 deletions(-) -- 2.4.3 -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html