[alsa-devel] [PATCH v2 00/22] Sharing media resources across ALSA and au0828 drivers

Mauro Carvalho Chehab mchehab at osg.samsung.com
Thu Feb 4 11:54:19 CET 2016


Em Wed, 03 Feb 2016 21:03:32 -0700
Shuah Khan <shuahkh at osg.samsung.com> escreveu:

> 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).

Please see my comments to patch 20. I guess this series break support
for the digital-only boards below (where .has_analog is not set):

	[AU0828_BOARD_HAUPPAUGE_HVR950Q_MXL] = {
		.name	= "Hauppauge HVR950Q rev xxF8",
		.tuner_type = TUNER_XC5000,
		.tuner_addr = 0x61,
		.i2c_clk_divider = AU0828_I2C_CLK_250KHZ,
	},
	[AU0828_BOARD_DVICO_FUSIONHDTV7] = {
		.name	= "DViCO FusionHDTV USB",
		.tuner_type = TUNER_XC5000,
		.tuner_addr = 0x61,
		.i2c_clk_divider = AU0828_I2C_CLK_250KHZ,
	},
	[AU0828_BOARD_HAUPPAUGE_WOODBURY] = {
		.name = "Hauppauge Woodbury",
		.tuner_type = TUNER_NXP_TDA18271,
		.tuner_addr = 0x60,
		.i2c_clk_divider = AU0828_I2C_CLK_250KHZ,
	},

None of this boards have V4L2. So, only the DVB part of the driver
should be enabled. Well, the DVB core won't be creating a tuner
subdev. So, calling au0828_enable_source() (and disable source) would
return -ENODEV, causing the driver to fail.

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

It is in a way better shape, but there are still several things I
noticed :)

Please see my per-patch review.

> 
> Composite or S-Video connector is the input case
> is still under discussion and isn't addressed in
> this series.

You need at least address pure DVB boards at patch 20 and
add there a FIXME for the composite/svideo connector pending 
issue.

> 
> Patches 3 and 4 need documentation updates and will
> be sent later this week.

Please send documentation at the same series. Nobody wants to see the
documentation warnings when checking at the main media development
branch or at -next. Also, it helps to better understand the changes.

Regards,
Mauro

> 
> Shuah Khan (22):
>   uapi/media.h: Declare interface types for ALSA
>   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()
>   media: 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: Change v4l-core to check if source is free
>   media: dvb-frontend invoke enable/disable_source handlers
>   media: au0828 video remove au0828_enable_analog_tuner()
>   media: au0828 video change to use v4l_enable_media_source()
>   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 Use au8522_media_pads enum for pad defines
>   media: au0828-core register entity_notify hook
>   media: au0828 add enable, disable source handlers
>   sound/usb: Use Media Controller API to share media resources
>   media: Ensure media device unregister is done only once
> 
>  drivers/media/dvb-core/dvb_frontend.c        | 139 ++----------
>  drivers/media/dvb-core/dvb_frontend.h        |   3 +
>  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                 |  73 +++++-
>  drivers/media/media-devnode.c                |  15 +-
>  drivers/media/media-entity.c                 |  51 ++++-
>  drivers/media/usb/au0828/au0828-core.c       | 272 +++++++++++++++++++++--
>  drivers/media/usb/au0828/au0828-video.c      |  75 +------
>  drivers/media/usb/au0828/au0828.h            |   4 +
>  drivers/media/v4l2-core/Makefile             |   2 +-
>  drivers/media/v4l2-core/v4l2-fh.c            |   2 +
>  drivers/media/v4l2-core/v4l2-ioctl.c         |  30 +++
>  drivers/media/v4l2-core/v4l2-mc.c            |  60 +++++
>  drivers/media/v4l2-core/videobuf2-core.c     |   4 +
>  include/media/media-device.h                 |  44 ++++
>  include/media/media-devnode.h                |  17 ++
>  include/media/media-entity.h                 |  12 +
>  include/media/v4l2-dev.h                     |   1 +
>  include/media/v4l2-mc.h                      |  52 +++++
>  include/uapi/linux/media.h                   |  33 +++
>  sound/usb/Kconfig                            |   4 +
>  sound/usb/Makefile                           |   2 +
>  sound/usb/card.c                             |  14 ++
>  sound/usb/card.h                             |   1 +
>  sound/usb/media.c                            | 319 +++++++++++++++++++++++++++
>  sound/usb/media.h                            |  72 ++++++
>  sound/usb/mixer.h                            |   1 +
>  sound/usb/pcm.c                              |  28 ++-
>  sound/usb/quirks-table.h                     |   1 +
>  sound/usb/stream.c                           |   2 +
>  sound/usb/usbaudio.h                         |   3 +
>  33 files changed, 1117 insertions(+), 236 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
> 


More information about the Alsa-devel mailing list