mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 22:21:40 +00:00
[media] ivtv-alsa: Add index to specify device number
When using multiple capture cards, it might be necessary to identify a specific device with an ALSA one. If not, the order of the ALSA devices might have no relation to the id of the radio or video device. Signed-off-by: Nicolas Sugino <nsugino@3way.com.ar> Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
This commit is contained in:
parent
a1f8c0cff0
commit
27315059e2
@ -41,6 +41,7 @@
|
||||
#include "ivtv-alsa-pcm.h"
|
||||
|
||||
int ivtv_alsa_debug;
|
||||
static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX;
|
||||
|
||||
#define IVTV_DEBUG_ALSA_INFO(fmt, arg...) \
|
||||
do { \
|
||||
@ -54,6 +55,10 @@ MODULE_PARM_DESC(debug,
|
||||
"\t\t\t 1/0x0001: warning\n"
|
||||
"\t\t\t 2/0x0002: info\n");
|
||||
|
||||
module_param_array(index, int, NULL, 0444);
|
||||
MODULE_PARM_DESC(index,
|
||||
"Index value for IVTV ALSA capture interface(s).\n");
|
||||
|
||||
MODULE_AUTHOR("Andy Walls");
|
||||
MODULE_DESCRIPTION("CX23415/CX23416 ALSA Interface");
|
||||
MODULE_SUPPORTED_DEVICE("CX23415/CX23416 MPEG2 encoder");
|
||||
@ -137,7 +142,7 @@ static int snd_ivtv_init(struct v4l2_device *v4l2_dev)
|
||||
struct ivtv *itv = to_ivtv(v4l2_dev);
|
||||
struct snd_card *sc = NULL;
|
||||
struct snd_ivtv_card *itvsc;
|
||||
int ret;
|
||||
int ret, idx;
|
||||
|
||||
/* Numbrs steps from "Writing an ALSA Driver" by Takashi Iwai */
|
||||
|
||||
@ -145,8 +150,10 @@ static int snd_ivtv_init(struct v4l2_device *v4l2_dev)
|
||||
/* This is a no-op for us. We'll use the itv->instance */
|
||||
|
||||
/* (2) Create a card instance */
|
||||
/* use first available id if not specified otherwise*/
|
||||
idx = index[itv->instance] == -1 ? SNDRV_DEFAULT_IDX1 : index[itv->instance];
|
||||
ret = snd_card_new(&itv->pdev->dev,
|
||||
SNDRV_DEFAULT_IDX1, /* use first available id */
|
||||
idx,
|
||||
SNDRV_DEFAULT_STR1, /* xid from end of shortname*/
|
||||
THIS_MODULE, 0, &sc);
|
||||
if (ret) {
|
||||
@ -196,6 +203,9 @@ static int snd_ivtv_init(struct v4l2_device *v4l2_dev)
|
||||
goto err_exit_free;
|
||||
}
|
||||
|
||||
IVTV_ALSA_INFO("%s: Instance %d registered as ALSA card %d\n",
|
||||
__func__, itv->instance, sc->number);
|
||||
|
||||
return 0;
|
||||
|
||||
err_exit_free:
|
||||
|
Loading…
Reference in New Issue
Block a user