usb: gadget: u_audio: Add capture/playback srate getter
UAC1/UAC2 functions will need to query u_audio about the currently set srate. Add the getter functions. Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com> Link: https://lore.kernel.org/r/20220121155308.48794-5-pavel.hofman@ivitera.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
8722a949e6
commit
eb3a1ce6f5
@ -515,6 +515,20 @@ int u_audio_set_capture_srate(struct g_audio *audio_dev, int srate)
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(u_audio_set_capture_srate);
|
||||
|
||||
int u_audio_get_capture_srate(struct g_audio *audio_dev, u32 *val)
|
||||
{
|
||||
struct snd_uac_chip *uac = audio_dev->uac;
|
||||
struct uac_rtd_params *prm;
|
||||
unsigned long flags;
|
||||
|
||||
prm = &uac->c_prm;
|
||||
spin_lock_irqsave(&prm->lock, flags);
|
||||
*val = prm->srate;
|
||||
spin_unlock_irqrestore(&prm->lock, flags);
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(u_audio_get_capture_srate);
|
||||
|
||||
int u_audio_set_playback_srate(struct g_audio *audio_dev, int srate)
|
||||
{
|
||||
struct uac_params *params = &audio_dev->params;
|
||||
@ -540,6 +554,20 @@ int u_audio_set_playback_srate(struct g_audio *audio_dev, int srate)
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(u_audio_set_playback_srate);
|
||||
|
||||
int u_audio_get_playback_srate(struct g_audio *audio_dev, u32 *val)
|
||||
{
|
||||
struct snd_uac_chip *uac = audio_dev->uac;
|
||||
struct uac_rtd_params *prm;
|
||||
unsigned long flags;
|
||||
|
||||
prm = &uac->p_prm;
|
||||
spin_lock_irqsave(&prm->lock, flags);
|
||||
*val = prm->srate;
|
||||
spin_unlock_irqrestore(&prm->lock, flags);
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(u_audio_get_playback_srate);
|
||||
|
||||
int u_audio_start_capture(struct g_audio *audio_dev)
|
||||
{
|
||||
struct snd_uac_chip *uac = audio_dev->uac;
|
||||
|
@ -120,7 +120,9 @@ void u_audio_stop_capture(struct g_audio *g_audio);
|
||||
int u_audio_start_playback(struct g_audio *g_audio);
|
||||
void u_audio_stop_playback(struct g_audio *g_audio);
|
||||
|
||||
int u_audio_get_capture_srate(struct g_audio *audio_dev, u32 *val);
|
||||
int u_audio_set_capture_srate(struct g_audio *audio_dev, int srate);
|
||||
int u_audio_get_playback_srate(struct g_audio *audio_dev, u32 *val);
|
||||
int u_audio_set_playback_srate(struct g_audio *audio_dev, int srate);
|
||||
|
||||
int u_audio_get_volume(struct g_audio *g_audio, int playback, s16 *val);
|
||||
|
Loading…
Reference in New Issue
Block a user