Skip to content

Sharing media resources across ALSA and au0828 drivers

Shuah Khan alsa-devel linux-media lkml 3 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v3 Latest22 patches 30 repliesIn review
  2. v222 patches 22 repliesSuperseded
  3. v14 of 31 patches 6 repliesSuperseded

Changes in v3 from the cover letter

- Added documentation for uapi and new MC interfaces
1. Ran make for documentation and Mauro's doc script. Thanks for sharing the script.
- Updated commit logs as needed for clarity.
- media: v4l-core add enable/disable source common interfaces Addressed comments - added static inlines in header file
- media: dvb-frontend invoke enable/disable_source handlers Moved the patch after enable/disable handlers and left pipe in dvb_frontend_private
- media: au0828 video remove au0828_enable_analog_tuner() and
media: au0828 video change to use v4l_enable_media_source()
1. Collapsed these two patches - it doesn't make sense to keep them separate. Also added FIXME as per Mauro's suggestion.
- media: au0828 change to use Managed Media Controller API
1. Added comment explaining the need for using udev->product

Patches in v3 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/22Docbook: media-types.xml: Add ALSA Media Controller Intf typesDocumentation/DocBook/media/v4l/media-types.xml+40 -03 replies
2/22uapi/media.h: Declare interface types for ALSAdrivers/media/media-entity.c include/uapi/linux/media.h+26 -05 replies
3/22Docbook: media-types.xml: Add Audio Function EntitiesDocumentation/DocBook/media/v4l/media-types.xml+12 -04 replies
4/22media: Add ALSA Media Controller function entitiesinclude/uapi/linux/media.h+7 -02 replies
5/22media: Media Controller register/unregister entity_notify APIdrivers/media/media-device.c include/media/media-device.h+98 -00 replies
6/22media: Media Controller enable/disable source handler APIinclude/media/media-device.h+30 -05 replies
7/22media: Media Controller export non locking __media_entity_setup_link()drivers/media/media-entity.c+1 -00 replies
8/22media: Media Controller non-locking __media_entity_pipeline_start/stop()drivers/media/media-entity.c include/media/media-entity.h+43 -100 replies
9/22media: v4l-core add enable/disable source common interfacesdrivers/media/v4l2-core/Makefile drivers/media/v4l2-core/v4l2-mc.c include/media/v4l2-dev.h +1 more+119 -00 replies
10/22media: Move au8522_media_pads enum to au8522.h from au8522_priv.hdrivers/media/dvb-frontends/au8522.h drivers/media/dvb-frontends/au8522_priv.h+7 -80 replies
11/22media: au8522 change to create MC pad for ALSA Audio Outdrivers/media/dvb-frontends/au8522.h drivers/media/dvb-frontends/au8522_decoder.c+2 -00 replies
12/22media: au0828 Use au8522_media_pads enum for pad definesdrivers/media/usb/au0828/au0828-core.c+5 -20 replies
13/22media: Change v4l-core to check if source is freedrivers/media/v4l2-core/v4l2-fh.c drivers/media/v4l2-core/v4l2-ioctl.c drivers/media/v4l2-core/videobuf2-core.c+36 -03 replies
14/22media: au0828 change to use Managed Media Controller APIdrivers/media/usb/au0828/au0828-core.c+15 -140 replies
15/22media: au0828 handle media_init and media_register windowdrivers/media/usb/au0828/au0828-core.c+24 -20 replies
16/22media: au0828 create tuner to decoder link in disabled statedrivers/media/usb/au0828/au0828-core.c+2 -20 replies
17/22media: au0828 disable tuner to demod linkdrivers/media/usb/au0828/au0828-core.c+19 -10 replies
18/22media: au0828-core register entity_notify hookdrivers/media/usb/au0828/au0828-core.c drivers/media/usb/au0828/au0828.h+42 -20 replies
19/22media: au0828 add enable, disable source handlersdrivers/media/usb/au0828/au0828-core.c drivers/media/usb/au0828/au0828.h+207 -00 replies
20/22media: dvb-frontend invoke enable/disable_source handlersdrivers/media/dvb-core/dvb_frontend.c+21 -1140 replies
21/22media: au0828 video change to use v4l_enable_media_source()drivers/media/usb/au0828/au0828-video.c+39 -630 replies
22/22sound/usb: Use Media Controller API to share media resourcessound/usb/Kconfig sound/usb/Makefile sound/usb/card.c +8 more+448 -58 replies

Reviews trailers per patch

4 of 22 patches have a Reviewed-by or Acked-by.

PatchTakashi Iwai
1/22
2/22A-b
3/22A-b
4/22A-b
5/22
6/22
7/22
8/22
9/22
10/22
11/22
12/22
13/22
14/22
15/22
16/22
17/22
18/22
19/22
20/22
21/22
22/22A-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v3 thread

Cover letter [PATCH v3 00/22] Sharing media resources across ALSA and au0828 drivers

This patch series updates ALSA driver, and au0828 core driver to use Managed Media controller API and Media Controller API to share media resource (tuner).

This Patch v3 series is based on linux_media master. This work addresses Mauro and Takashi's comments on Patch v2 series.

Changes since Patch v2 series:
- Added documentation for uapi and new MC interfaces
1. Ran make for documentation and Mauro's doc script. Thanks for sharing the script.
- Updated commit logs as needed for clarity.
- media: v4l-core add enable/disable source common interfaces Addressed comments - added static inlines in header file
- media: dvb-frontend invoke enable/disable_source handlers Moved the patch after enable/disable handlers and left pipe in dvb_frontend_private
- media: au0828 video remove au0828_enable_analog_tuner() and
media: au0828 video change to use v4l_enable_media_source()
1. Collapsed these two patches - it doesn't make sense to keep them separate. Also added FIXME as per Mauro's suggestion.
- media: au0828 change to use Managed Media Controller API
1. Added comment explaining the need for using udev->product

     instead of dev->board.name

- media: au0828 add enable, disable source handlers
1. Changed to handle S-Video and Composite inputs.
2. Fixed a bug that lets Video in when ALSA holds the source.
3. Added comments to one FIXME for s_input changes. Fix is in progress and will send it in a day or two combined with other issues found in au0828 video in the way it handles input. Doesn't impact this routine, changes are all in au0828-video.
- sound/usb: Use Media Controller API to share media resources
1. Addressed comments from Mauro and Takashi about void pointer use.
2. Fixed kbuildbot error when MEDIA_SUPPORT=m
- Dropped media: Ensure media device unregister is done only once Device removal worked without any changes to media unregister path. This work isn't necessary.

Shuah Khan (22):
[media] Docbook: media-types.xml: Add ALSA Media Controller Intf types uapi/media.h: Declare interface types for ALSA
[media] Docbook: media-types.xml: Add Audio Function Entities
media: Add ALSA Media Controller function entities
media: Media Controller register/unregister entity_notify API
media: Media Controller enable/disable source handler API
media: Media Controller export non locking __media_entity_setup_link()
edia: Media Controller non-locking
__media_entity_pipeline_start/stop()
media: v4l-core add enable/disable source common interfaces
media: Move au8522_media_pads enum to au8522.h from au8522_priv.h
media: au8522 change to create MC pad for ALSA Audio Out
media: au0828 Use au8522_media_pads enum for pad defines
media: Change v4l-core to check if source is free
media: au0828 change to use Managed Media Controller API
media: au0828 handle media_init and media_register window
media: au0828 create tuner to decoder link in disabled state
media: au0828 disable tuner to demod link
media: au0828-core register entity_notify hook
media: au0828 add enable, disable source handlers
media: dvb-frontend invoke enable/disable_source handlers
media: au0828 video change to use v4l_enable_media_source() sound/usb: Use Media Controller API to share media resources

 Documentation/DocBook/media/v4l/media-types.xml |  52 ++++
 drivers/media/dvb-core/dvb_frontend.c           | 135 ++--------
 drivers/media/dvb-frontends/au8522.h            |   8 +
 drivers/media/dvb-frontends/au8522_decoder.c    |   1 +
 drivers/media/dvb-frontends/au8522_priv.h       |   8 -
 drivers/media/media-device.c                    |  42 +++
 drivers/media/media-entity.c                    |  51 +++-
 drivers/media/usb/au0828/au0828-core.c          | 325 ++++++++++++++++++++++--
 drivers/media/usb/au0828/au0828-video.c         | 102 +++-----
 drivers/media/usb/au0828/au0828.h               |   6 +
 drivers/media/v4l2-core/Makefile                |   1 +
 drivers/media/v4l2-core/v4l2-fh.c               |   2 +
 drivers/media/v4l2-core/v4l2-ioctl.c            |  30 +++
 drivers/media/v4l2-core/v4l2-mc.c               |  52 ++++
 drivers/media/v4l2-core/videobuf2-core.c        |   4 +
 include/media/media-device.h                    |  86 +++++++
 include/media/media-entity.h                    |  19 ++
 include/media/v4l2-dev.h                        |   1 +
 include/media/v4l2-mc.h                         |  65 +++++
 include/uapi/linux/media.h                      |  17 ++
 sound/usb/Kconfig                               |   4 +
 sound/usb/Makefile                              |   2 +
 sound/usb/card.c                                |  14 +
 sound/usb/card.h                                |   3 +
 sound/usb/media.c                               | 318 +++++++++++++++++++++++
 sound/usb/media.h                               |  72 ++++++
 sound/usb/mixer.h                               |   3 +
 sound/usb/pcm.c                                 |  28 +-
 sound/usb/quirks-table.h                        |   1 +
 sound/usb/stream.c                              |   2 +
 sound/usb/usbaudio.h                            |   6 +
 31 files changed, 1240 insertions(+), 220 deletions(-)
 create mode 100644 drivers/media/v4l2-core/v4l2-mc.c
 create mode 100644 sound/usb/media.c
 create mode 100644 sound/usb/media.h
Signature · 1 line
2.5.0