All the mail mirrored from lore.kernel.org
 help / color / mirror / Atom feed
From: Shuah Khan <shuahkh@osg.samsung.com>
To: mchehab@osg.samsung.com, hans.verkuil@cisco.com,
	laurent.pinchart@ideasonboard.com, tiwai@suse.de,
	sakari.ailus@linux.intel.com
Cc: Shuah Khan <shuahkh@osg.samsung.com>, linux-media@vger.kernel.org
Subject: [PATCH] media-ctl: Update to add support for ALSA devices
Date: Tue, 14 Jul 2015 18:33:59 -0600	[thread overview]
Message-ID: <1436920452-7548-1-git-send-email-shuahkh@osg.samsung.com> (raw)
In-Reply-To: <cover.1436917513.git.shuahkh@osg.samsung.com>

Add support to recognize ALSA media nodes and generate
media graph that includes ALSA pcm and mixer devices.
This patch depends on kernel Media Controller changes
to support ALSA.

Signed-off-by: Shuah Khan <shuahkh@osg.samsung.com>
---
 utils/media-ctl/libmediactl.c | 18 ++++++++++++------
 utils/media-ctl/media-ctl.c   |  3 +++
 utils/media-ctl/mediactl.h    |  4 +++-
 3 files changed, 18 insertions(+), 7 deletions(-)

diff --git a/utils/media-ctl/libmediactl.c b/utils/media-ctl/libmediactl.c
index dce8eeb..329a41a 100644
--- a/utils/media-ctl/libmediactl.c
+++ b/utils/media-ctl/libmediactl.c
@@ -153,7 +153,9 @@ struct media_entity *media_get_default_entity(struct media_device *media,
 		return media->def.v4l;
 	case MEDIA_ENT_T_DEVNODE_FB:
 		return media->def.fb;
-	case MEDIA_ENT_T_DEVNODE_ALSA:
+	case MEDIA_ENT_T_DEVNODE_ALSA_CAPTURE:
+	case MEDIA_ENT_T_DEVNODE_ALSA_PLAYBACK:
+	case MEDIA_ENT_T_DEVNODE_ALSA_MIXER:
 		return media->def.alsa;
 	case MEDIA_ENT_T_DEVNODE_DVB_FE:
 	case MEDIA_ENT_T_DEVNODE_DVB_DEMUX:
@@ -481,7 +483,6 @@ static int media_get_devname_sysfs(struct media_entity *entity)
 	if (p == NULL)
 		return -EINVAL;
 
-	sprintf(devname, "/dev/%s", p + 1);
 	if (strstr(p + 1, "dvb")) {
 		char *s = p + 1;
 
@@ -493,6 +494,8 @@ static int media_get_devname_sysfs(struct media_entity *entity)
 			return -EINVAL;
 		*p = '/';
 		sprintf(devname, "/dev/dvb/adapter%s", s);
+	} else if (strstr(p + 1, "pcm") || strstr(p + 1, "control")) {
+		sprintf(devname, "/dev/snd/%s", p + 1);
 	} else {
 		sprintf(devname, "/dev/%s", p + 1);
 	}
@@ -562,7 +565,9 @@ static int media_enum_entities(struct media_device *media)
 			case MEDIA_ENT_T_DEVNODE_FB:
 				media->def.fb = entity;
 				break;
-			case MEDIA_ENT_T_DEVNODE_ALSA:
+			case MEDIA_ENT_T_DEVNODE_ALSA_CAPTURE:
+			case MEDIA_ENT_T_DEVNODE_ALSA_PLAYBACK:
+			case MEDIA_ENT_T_DEVNODE_ALSA_MIXER:
 				media->def.alsa = entity;
 				break;
 			case MEDIA_ENT_T_DEVNODE_DVB_FE:
@@ -577,8 +582,7 @@ static int media_enum_entities(struct media_device *media)
 
 		/* Find the corresponding device name. */
 		if (media_entity_type(entity) != MEDIA_ENT_T_DEVNODE &&
-		    media_entity_type(entity) != MEDIA_ENT_T_V4L2_SUBDEV &&
-		    entity->info.type == MEDIA_ENT_T_DEVNODE_ALSA)
+		    media_entity_type(entity) != MEDIA_ENT_T_V4L2_SUBDEV)
 			continue;
 
 		/* Try to get the device name via udev */
@@ -774,7 +778,9 @@ int media_device_add_entity(struct media_device *media,
 		defent = &media->def.fb;
 		entity->info.fb = desc->fb;
 		break;
-	case MEDIA_ENT_T_DEVNODE_ALSA:
+	case MEDIA_ENT_T_DEVNODE_ALSA_CAPTURE:
+	case MEDIA_ENT_T_DEVNODE_ALSA_PLAYBACK:
+	case MEDIA_ENT_T_DEVNODE_ALSA_MIXER:
 		defent = &media->def.alsa;
 		entity->info.alsa = desc->alsa;
 		break;
diff --git a/utils/media-ctl/media-ctl.c b/utils/media-ctl/media-ctl.c
index 602486f..85151b5 100644
--- a/utils/media-ctl/media-ctl.c
+++ b/utils/media-ctl/media-ctl.c
@@ -290,6 +290,9 @@ static const char *media_entity_subtype_to_string(unsigned type)
 		"DVB DVR",
 		"DVB CA",
 		"DVB NET",
+		"ALSA CAPTURE",
+		"ALSA PLAYBACK",
+		"ALSA MIXER",
 	};
 	static const char *subdev_types[] = {
 		"Unknown",
diff --git a/utils/media-ctl/mediactl.h b/utils/media-ctl/mediactl.h
index 03d9f70..3ac91eb 100644
--- a/utils/media-ctl/mediactl.h
+++ b/utils/media-ctl/mediactl.h
@@ -305,7 +305,9 @@ struct media_entity *media_get_entity(struct media_device *media, unsigned int i
  *
  *	MEDIA_ENT_T_DEVNODE_V4L
  *	MEDIA_ENT_T_DEVNODE_FB
- *	MEDIA_ENT_T_DEVNODE_ALSA
+ *	MEDIA_ENT_T_DEVNODE_ALSA_CAPTURE
+ *	MEDIA_ENT_T_DEVNODE_ALSA_PLAYBACK
+ *	MEDIA_ENT_T_DEVNODE_ALSA_MIXER
  *	MEDIA_ENT_T_DEVNODE_DVB_FE
  *	MEDIA_ENT_T_DEVNODE_DVB_DEMUX
  *	MEDIA_ENT_T_DEVNODE_DVB_DVR
-- 
2.1.4


  reply	other threads:[~2015-07-15  0:34 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-07-15  0:33 [PATCH 0/7] Update ALSA, and au0828 drivers to use Managed Media Controller API Shuah Khan
2015-07-15  0:33 ` Shuah Khan [this message]
2015-07-15  0:34 ` [PATCH 1/7] Revert "[media] media: media controller entity framework enhancements for ALSA" Shuah Khan
2015-07-15  0:34 ` [PATCH 2/7] media: Media Controller register/unregister entity_notify API Shuah Khan
2015-07-15  0:34 ` [PATCH 3/7] media: Add ALSA Media Controller devnodes Shuah Khan
2015-07-15  0:34 ` [PATCH 4/7] media: change dvb-frontend to honor MC tuner enable error Shuah Khan
2015-07-15  0:34 ` [PATCH 5/7] media: au8522 change to create MC pad for ALSA Audio Out Shuah Khan
2015-07-15  0:34 ` [PATCH 6/7] media: au0828 change to use Managed Media Controller API Shuah Khan
2015-07-20  8:42   ` Dan Carpenter
2015-07-20 15:55     ` Shuah Khan
2015-07-20 19:01       ` Dan Carpenter
2015-07-20 19:10         ` Shuah Khan
2015-07-15  0:34 ` [PATCH 7/7] sound/usb: Update ALSA driver " Shuah Khan
2015-07-20  8:47   ` Dan Carpenter
2015-07-20  9:00     ` Takashi Iwai
2015-07-20 14:22       ` Shuah Khan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1436920452-7548-1-git-send-email-shuahkh@osg.samsung.com \
    --to=shuahkh@osg.samsung.com \
    --cc=hans.verkuil@cisco.com \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-media@vger.kernel.org \
    --cc=mchehab@osg.samsung.com \
    --cc=sakari.ailus@linux.intel.com \
    --cc=tiwai@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.