All of 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, sakari.ailus@linux.intel.com,
	tiwai@suse.de, pawel@osciak.com, m.szyprowski@samsung.com,
	kyungmin.park@samsung.com, perex@perex.cz,
	stefanr@s5r6.in-berlin.de, crope@iki.fi,
	dan.carpenter@oracle.com, tskd08@gmail.com,
	ruchandani.tina@gmail.com, arnd@arndb.de, chehabrafael@gmail.com,
	prabhakar.csengg@gmail.com, Julia.Lawall@lip6.fr,
	elfring@users.sourceforge.net, ricardo.ribalda@gmail.com,
	chris.j.arges@canonical.com,
	pierre-louis.bossart@linux.intel.com, gtmkramer@xs4all.nl,
	clemens@ladisch.de, misterpib@gmail.com, takamichiho@gmail.com,
	pmatilai@laiskiainen.org, damien@zamaudio.com, daniel@zonque.org,
	vladcatoi@gmail.com, normalperson@yhbt.net, joe@oampo.co.uk,
	bugzilla.frnkcg@spamgourmet.com, jussi@sonarnerd.net
Cc: Shuah Khan <shuahkh@osg.samsung.com>,
	linux-media@vger.kernel.org, alsa-devel@alsa-project.org
Subject: [PATCH v3 08/21] media: v4l-core add v4l_enable/disable_media_tuner() helper functions
Date: Tue, 22 Sep 2015 11:19:27 -0600	[thread overview]
Message-ID: <c1664f811e8e0fe10aed69fe2d2d24efbe9353fb.1442937669.git.shuahkh@osg.samsung.com> (raw)
In-Reply-To: <cover.1442937669.git.shuahkh@osg.samsung.com>
In-Reply-To: <cover.1442937669.git.shuahkh@osg.samsung.com>

Add a new interfaces to be used by v4l-core to invoke enable
source and disable_source handlers in the media_device. The
enable_source helper function invokes the enable_source handler
to find tuner entity connected to the decoder and check is it
is available or busy. If tuner is available, link is activated
and pipeline is started. The disable_source helper function
invokes the disable_source handler to deactivate and stop the
pipeline.

Signed-off-by: Shuah Khan <shuahkh@osg.samsung.com>
---
 drivers/media/v4l2-core/v4l2-dev.c | 27 +++++++++++++++++++++++++++
 include/media/v4l2-dev.h           |  4 ++++
 2 files changed, 31 insertions(+)

diff --git a/drivers/media/v4l2-core/v4l2-dev.c b/drivers/media/v4l2-core/v4l2-dev.c
index 71a1b93..8e93c99 100644
--- a/drivers/media/v4l2-core/v4l2-dev.c
+++ b/drivers/media/v4l2-core/v4l2-dev.c
@@ -230,6 +230,33 @@ struct video_device *video_devdata(struct file *file)
 }
 EXPORT_SYMBOL(video_devdata);
 
+int v4l_enable_media_tuner(struct video_device *vdev)
+{
+#ifdef CONFIG_MEDIA_CONTROLLER
+	struct media_device *mdev = vdev->entity.parent;
+	int ret;
+
+	if (!mdev || !mdev->enable_source)
+			return 0;
+	ret = mdev->enable_source(&vdev->entity, &vdev->pipe);
+	if (ret)
+		return -EBUSY;
+	return 0;
+#endif /* CONFIG_MEDIA_CONTROLLER */
+	return 0;
+}
+EXPORT_SYMBOL_GPL(v4l_enable_media_tuner);
+
+void v4l_disable_media_tuner(struct video_device *vdev)
+{
+#ifdef CONFIG_MEDIA_CONTROLLER
+	struct media_device *mdev = vdev->entity.parent;
+
+	if (mdev && mdev->disable_source)
+		mdev->disable_source(&vdev->entity);
+#endif /* CONFIG_MEDIA_CONTROLLER */
+}
+EXPORT_SYMBOL_GPL(v4l_disable_media_tuner);
 
 /* Priority handling */
 
diff --git a/include/media/v4l2-dev.h b/include/media/v4l2-dev.h
index acbcd2f..8f1884f 100644
--- a/include/media/v4l2-dev.h
+++ b/include/media/v4l2-dev.h
@@ -86,6 +86,7 @@ struct video_device
 {
 #if defined(CONFIG_MEDIA_CONTROLLER)
 	struct media_entity entity;
+	struct media_pipeline pipe;
 #endif
 	/* device ops */
 	const struct v4l2_file_operations *fops;
@@ -178,6 +179,9 @@ struct video_device * __must_check video_device_alloc(void);
 /* this release function frees the vdev pointer */
 void video_device_release(struct video_device *vdev);
 
+int v4l_enable_media_tuner(struct video_device *vdev);
+void v4l_disable_media_tuner(struct video_device *vdev);
+
 /* this release function does nothing, use when the video_device is a
    static global struct. Note that having a static video_device is
    a dubious construction at best. */
-- 
2.1.4


  parent reply	other threads:[~2015-09-22 17:28 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-22 17:19 [PATCH v3 00/21] Update ALSA, and au0828 drivers to use Managed Media Controller API Shuah Khan
2015-09-22 17:19 ` [PATCH v3 01/21] Revert "[media] media: media controller entity framework enhancements for ALSA" Shuah Khan
2015-09-22 17:19 ` [PATCH v3 02/21] media: Media Controller register/unregister entity_notify API Shuah Khan
2015-09-22 17:19 ` [PATCH v3 03/21] media: Add ALSA Media Controller devnodes Shuah Khan
2015-09-22 17:19 ` [PATCH v3 04/21] media: Media Controller enable/disable source handler API Shuah Khan
2015-09-22 17:19 ` [PATCH v3 05/21] media: Media Controller fix to not let stream_count go negative Shuah Khan
2015-09-22 17:19 ` [PATCH v3 06/21] media: Media Controller export non locking __media_entity_setup_link() Shuah Khan
2015-09-22 17:19 ` [PATCH v3 07/21] media: Media Controller non-locking __media_entity_pipeline_start/stop() Shuah Khan
2015-09-22 17:19 ` Shuah Khan [this message]
2015-09-22 17:19 ` [PATCH v3 09/21] media: Move au8522_media_pads enum to au8522.h from au8522_priv.h Shuah Khan
2015-09-22 17:19 ` [PATCH v3 10/21] media: au8522 change to create MC pad for ALSA Audio Out Shuah Khan
2015-09-22 17:19 ` [PATCH v3 11/21] media: au0828 Use au8522_media_pads enum for pad defines Shuah Khan
2015-09-22 17:19 ` [PATCH v3 12/21] media: au0828 fix au0828_create_media_graph() entity checks Shuah Khan
2015-09-22 17:19 ` [PATCH v3 13/21] media: Change v4l-core to check for tuner availability Shuah Khan
2015-09-22 17:19 ` [PATCH v3 14/21] media: dvb-frontend invoke enable/disable_source handlers Shuah Khan
2015-09-22 17:19 ` [PATCH v3 15/21] media: au0828 video remove au0828_enable_analog_tuner() Shuah Khan
2015-09-22 17:19 ` [PATCH v3 16/21] media: au0828 video change to use v4l_enable_media_tuner() Shuah Khan
2015-09-22 17:19 ` [PATCH v3 17/21] media: au0828 change to use Managed Media Controller API Shuah Khan
2015-09-22 17:19 ` [PATCH v3 18/21] media: au0828 change to register/unregister entity_notify hook Shuah Khan
2015-09-22 17:19 ` [PATCH v3 19/21] media: au0828 implement enable_source and disable_source handlers Shuah Khan
2015-09-22 17:19 ` [PATCH v3 20/21] media: media: dvb-frontend fix enable_source error legs Shuah Khan
2015-09-22 17:19 ` [PATCH v3 21/21] sound/usb: Update ALSA driver to use Managed Media Controller API 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=c1664f811e8e0fe10aed69fe2d2d24efbe9353fb.1442937669.git.shuahkh@osg.samsung.com \
    --to=shuahkh@osg.samsung.com \
    --cc=Julia.Lawall@lip6.fr \
    --cc=alsa-devel@alsa-project.org \
    --cc=arnd@arndb.de \
    --cc=bugzilla.frnkcg@spamgourmet.com \
    --cc=chehabrafael@gmail.com \
    --cc=chris.j.arges@canonical.com \
    --cc=clemens@ladisch.de \
    --cc=crope@iki.fi \
    --cc=damien@zamaudio.com \
    --cc=dan.carpenter@oracle.com \
    --cc=daniel@zonque.org \
    --cc=elfring@users.sourceforge.net \
    --cc=gtmkramer@xs4all.nl \
    --cc=hans.verkuil@cisco.com \
    --cc=joe@oampo.co.uk \
    --cc=jussi@sonarnerd.net \
    --cc=kyungmin.park@samsung.com \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-media@vger.kernel.org \
    --cc=m.szyprowski@samsung.com \
    --cc=mchehab@osg.samsung.com \
    --cc=misterpib@gmail.com \
    --cc=normalperson@yhbt.net \
    --cc=pawel@osciak.com \
    --cc=perex@perex.cz \
    --cc=pierre-louis.bossart@linux.intel.com \
    --cc=pmatilai@laiskiainen.org \
    --cc=prabhakar.csengg@gmail.com \
    --cc=ricardo.ribalda@gmail.com \
    --cc=ruchandani.tina@gmail.com \
    --cc=sakari.ailus@linux.intel.com \
    --cc=stefanr@s5r6.in-berlin.de \
    --cc=takamichiho@gmail.com \
    --cc=tiwai@suse.de \
    --cc=tskd08@gmail.com \
    --cc=vladcatoi@gmail.com \
    /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.