Message ID | 20190822095653.7200-2-srinivas.kandagatla@linaro.org |
---|---|
State | New |
Headers | show |
Series | ALSA: pcm: add support for 352.8KHz and 384KHz sample rate | expand |
On Thu, 22 Aug 2019 11:56:50 +0200, Srinivas Kandagatla wrote: > > From: Vidyakumar Athota <vathota@codeaurora.org> > > Most of the modern codecs supports 352.8KHz and 384KHz sample rates. > Currenlty HW params fails to set 352.8Kz and 384KHz sample rate > as these are not in known rates list. > Add these new rates to known list to allow them. > > This patch also adds defines in pcm.h so that drivers can use it. > > Signed-off-by: Vidyakumar Athota <vathota@codeaurora.org> > Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org> > Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> About this API change: Reviewed-by: Takashi Iwai <tiwai@suse.de> thanks, Takashi > --- > include/sound/pcm.h | 5 +++++ > sound/core/pcm_native.c | 2 +- > 2 files changed, 6 insertions(+), 1 deletion(-) > > diff --git a/include/sound/pcm.h b/include/sound/pcm.h > index 1e9bb1c91770..bbe6eb1ff5d2 100644 > --- a/include/sound/pcm.h > +++ b/include/sound/pcm.h > @@ -117,6 +117,8 @@ struct snd_pcm_ops { > #define SNDRV_PCM_RATE_96000 (1<<10) /* 96000Hz */ > #define SNDRV_PCM_RATE_176400 (1<<11) /* 176400Hz */ > #define SNDRV_PCM_RATE_192000 (1<<12) /* 192000Hz */ > +#define SNDRV_PCM_RATE_352800 (1<<13) /* 352800Hz */ > +#define SNDRV_PCM_RATE_384000 (1<<14) /* 384000Hz */ > > #define SNDRV_PCM_RATE_CONTINUOUS (1<<30) /* continuous range */ > #define SNDRV_PCM_RATE_KNOT (1<<31) /* supports more non-continuos rates */ > @@ -129,6 +131,9 @@ struct snd_pcm_ops { > SNDRV_PCM_RATE_88200|SNDRV_PCM_RATE_96000) > #define SNDRV_PCM_RATE_8000_192000 (SNDRV_PCM_RATE_8000_96000|SNDRV_PCM_RATE_176400|\ > SNDRV_PCM_RATE_192000) > +#define SNDRV_PCM_RATE_8000_384000 (SNDRV_PCM_RATE_8000_192000|\ > + SNDRV_PCM_RATE_352800|\ > + SNDRV_PCM_RATE_384000) > #define _SNDRV_PCM_FMTBIT(fmt) (1ULL << (__force int)SNDRV_PCM_FORMAT_##fmt) > #define SNDRV_PCM_FMTBIT_S8 _SNDRV_PCM_FMTBIT(S8) > #define SNDRV_PCM_FMTBIT_U8 _SNDRV_PCM_FMTBIT(U8) > diff --git a/sound/core/pcm_native.c b/sound/core/pcm_native.c > index 703857aab00f..11e653c8aa0e 100644 > --- a/sound/core/pcm_native.c > +++ b/sound/core/pcm_native.c > @@ -2170,7 +2170,7 @@ static int snd_pcm_hw_rule_sample_bits(struct snd_pcm_hw_params *params, > > static const unsigned int rates[] = { > 5512, 8000, 11025, 16000, 22050, 32000, 44100, > - 48000, 64000, 88200, 96000, 176400, 192000 > + 48000, 64000, 88200, 96000, 176400, 192000, 352800, 384000 > }; > > const struct snd_pcm_hw_constraint_list snd_pcm_known_rates = { > -- > 2.21.0 >
diff --git a/include/sound/pcm.h b/include/sound/pcm.h index 1e9bb1c91770..bbe6eb1ff5d2 100644 --- a/include/sound/pcm.h +++ b/include/sound/pcm.h @@ -117,6 +117,8 @@ struct snd_pcm_ops { #define SNDRV_PCM_RATE_96000 (1<<10) /* 96000Hz */ #define SNDRV_PCM_RATE_176400 (1<<11) /* 176400Hz */ #define SNDRV_PCM_RATE_192000 (1<<12) /* 192000Hz */ +#define SNDRV_PCM_RATE_352800 (1<<13) /* 352800Hz */ +#define SNDRV_PCM_RATE_384000 (1<<14) /* 384000Hz */ #define SNDRV_PCM_RATE_CONTINUOUS (1<<30) /* continuous range */ #define SNDRV_PCM_RATE_KNOT (1<<31) /* supports more non-continuos rates */ @@ -129,6 +131,9 @@ struct snd_pcm_ops { SNDRV_PCM_RATE_88200|SNDRV_PCM_RATE_96000) #define SNDRV_PCM_RATE_8000_192000 (SNDRV_PCM_RATE_8000_96000|SNDRV_PCM_RATE_176400|\ SNDRV_PCM_RATE_192000) +#define SNDRV_PCM_RATE_8000_384000 (SNDRV_PCM_RATE_8000_192000|\ + SNDRV_PCM_RATE_352800|\ + SNDRV_PCM_RATE_384000) #define _SNDRV_PCM_FMTBIT(fmt) (1ULL << (__force int)SNDRV_PCM_FORMAT_##fmt) #define SNDRV_PCM_FMTBIT_S8 _SNDRV_PCM_FMTBIT(S8) #define SNDRV_PCM_FMTBIT_U8 _SNDRV_PCM_FMTBIT(U8) diff --git a/sound/core/pcm_native.c b/sound/core/pcm_native.c index 703857aab00f..11e653c8aa0e 100644 --- a/sound/core/pcm_native.c +++ b/sound/core/pcm_native.c @@ -2170,7 +2170,7 @@ static int snd_pcm_hw_rule_sample_bits(struct snd_pcm_hw_params *params, static const unsigned int rates[] = { 5512, 8000, 11025, 16000, 22050, 32000, 44100, - 48000, 64000, 88200, 96000, 176400, 192000 + 48000, 64000, 88200, 96000, 176400, 192000, 352800, 384000 }; const struct snd_pcm_hw_constraint_list snd_pcm_known_rates = {