summaryrefslogtreecommitdiffstats
path: root/drivers/media/video/cx18
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/video/cx18')
-rw-r--r--drivers/media/video/cx18/cx18-alsa-mixer.c24
-rw-r--r--drivers/media/video/cx18/cx18-alsa.h16
2 files changed, 20 insertions, 20 deletions
diff --git a/drivers/media/video/cx18/cx18-alsa-mixer.c b/drivers/media/video/cx18/cx18-alsa-mixer.c
index 4251a72f11a8..ef21114309fe 100644
--- a/drivers/media/video/cx18/cx18-alsa-mixer.c
+++ b/drivers/media/video/cx18/cx18-alsa-mixer.c
@@ -36,22 +36,6 @@
#include "cx18-driver.h"
/*
- * Mixer manipulations are like v4l2 ioctl() calls to manipulate controls,
- * just use the same lock we use for ioctl()s for now
- */
-static inline void snd_cx18_mixer_lock(struct snd_cx18_card *cxsc)
-{
- struct cx18 *cx = to_cx18(cxsc->v4l2_dev);
- mutex_lock(&cx->serialize_lock);
-}
-
-static inline void snd_cx18_mixer_unlock(struct snd_cx18_card *cxsc)
-{
- struct cx18 *cx = to_cx18(cxsc->v4l2_dev);
- mutex_unlock(&cx->serialize_lock);
-}
-
-/*
* Note the cx18-av-core volume scale is funny, due to the alignment of the
* scale with another chip's range:
*
@@ -108,9 +92,9 @@ static int snd_cx18_mixer_tv_vol_get(struct snd_kcontrol *kctl,
vctrl.id = V4L2_CID_AUDIO_VOLUME;
vctrl.value = dB_to_cx18_av_vol(uctl->value.integer.value[0]);
- snd_cx18_mixer_lock(cxsc);
+ snd_cx18_lock(cxsc);
ret = v4l2_subdev_call(cx->sd_av, core, g_ctrl, &vctrl);
- snd_cx18_mixer_unlock(cxsc);
+ snd_cx18_unlock(cxsc);
if (!ret)
uctl->value.integer.value[0] = cx18_av_vol_to_dB(vctrl.value);
@@ -128,7 +112,7 @@ static int snd_cx18_mixer_tv_vol_put(struct snd_kcontrol *kctl,
vctrl.id = V4L2_CID_AUDIO_VOLUME;
vctrl.value = dB_to_cx18_av_vol(uctl->value.integer.value[0]);
- snd_cx18_mixer_lock(cxsc);
+ snd_cx18_lock(cxsc);
/* Fetch current state */
ret = v4l2_subdev_call(cx->sd_av, core, g_ctrl, &vctrl);
@@ -142,7 +126,7 @@ static int snd_cx18_mixer_tv_vol_put(struct snd_kcontrol *kctl,
if (!ret)
ret = 1; /* Indicate control was changed w/o error */
}
- snd_cx18_mixer_unlock(cxsc);
+ snd_cx18_unlock(cxsc);
return ret;
}
diff --git a/drivers/media/video/cx18/cx18-alsa.h b/drivers/media/video/cx18/cx18-alsa.h
index 2546779b7313..88a1cde7540b 100644
--- a/drivers/media/video/cx18/cx18-alsa.h
+++ b/drivers/media/video/cx18/cx18-alsa.h
@@ -32,6 +32,22 @@ struct snd_cx18_card {
extern int cx18_alsa_debug;
+/*
+ * File operations that manipulate the encoder or video or audio subdevices
+ * need to be serialized. Use the same lock we use for v4l2 file ops.
+ */
+static inline void snd_cx18_lock(struct snd_cx18_card *cxsc)
+{
+ struct cx18 *cx = to_cx18(cxsc->v4l2_dev);
+ mutex_lock(&cx->serialize_lock);
+}
+
+static inline void snd_cx18_unlock(struct snd_cx18_card *cxsc)
+{
+ struct cx18 *cx = to_cx18(cxsc->v4l2_dev);
+ mutex_unlock(&cx->serialize_lock);
+}
+
#define CX18_ALSA_DBGFLG_WARN (1 << 0)
#define CX18_ALSA_DBGFLG_WARN (1 << 0)
#define CX18_ALSA_DBGFLG_INFO (1 << 1)