ALSA: pcm: Minor refactoring
Make a common helper for validating the format type. This reduces the number of cast in the code that are needed for suppressing sparse warnings. No functional changes, just minor refactoring. Link: https://lore.kernel.org/r/20200206163945.6797-9-tiwai@suse.de Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
89e0b9a060
commit
49d9e43f36
@ -42,6 +42,11 @@ struct pcm_format_data {
|
|||||||
/* we do lots of calculations on snd_pcm_format_t; shut up sparse */
|
/* we do lots of calculations on snd_pcm_format_t; shut up sparse */
|
||||||
#define INT __force int
|
#define INT __force int
|
||||||
|
|
||||||
|
static bool valid_format(snd_pcm_format_t format)
|
||||||
|
{
|
||||||
|
return (INT)format >= 0 && (INT)format <= (INT)SNDRV_PCM_FORMAT_LAST;
|
||||||
|
}
|
||||||
|
|
||||||
static const struct pcm_format_data pcm_formats[(INT)SNDRV_PCM_FORMAT_LAST+1] = {
|
static const struct pcm_format_data pcm_formats[(INT)SNDRV_PCM_FORMAT_LAST+1] = {
|
||||||
[SNDRV_PCM_FORMAT_S8] = {
|
[SNDRV_PCM_FORMAT_S8] = {
|
||||||
.width = 8, .phys = 8, .le = -1, .signd = 1,
|
.width = 8, .phys = 8, .le = -1, .signd = 1,
|
||||||
@ -259,7 +264,7 @@ static const struct pcm_format_data pcm_formats[(INT)SNDRV_PCM_FORMAT_LAST+1] =
|
|||||||
int snd_pcm_format_signed(snd_pcm_format_t format)
|
int snd_pcm_format_signed(snd_pcm_format_t format)
|
||||||
{
|
{
|
||||||
int val;
|
int val;
|
||||||
if ((INT)format < 0 || (INT)format > (INT)SNDRV_PCM_FORMAT_LAST)
|
if (!valid_format(format))
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
if ((val = pcm_formats[(INT)format].signd) < 0)
|
if ((val = pcm_formats[(INT)format].signd) < 0)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
@ -307,7 +312,7 @@ EXPORT_SYMBOL(snd_pcm_format_linear);
|
|||||||
int snd_pcm_format_little_endian(snd_pcm_format_t format)
|
int snd_pcm_format_little_endian(snd_pcm_format_t format)
|
||||||
{
|
{
|
||||||
int val;
|
int val;
|
||||||
if ((INT)format < 0 || (INT)format > (INT)SNDRV_PCM_FORMAT_LAST)
|
if (!valid_format(format))
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
if ((val = pcm_formats[(INT)format].le) < 0)
|
if ((val = pcm_formats[(INT)format].le) < 0)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
@ -343,7 +348,7 @@ EXPORT_SYMBOL(snd_pcm_format_big_endian);
|
|||||||
int snd_pcm_format_width(snd_pcm_format_t format)
|
int snd_pcm_format_width(snd_pcm_format_t format)
|
||||||
{
|
{
|
||||||
int val;
|
int val;
|
||||||
if ((INT)format < 0 || (INT)format > (INT)SNDRV_PCM_FORMAT_LAST)
|
if (!valid_format(format))
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
if ((val = pcm_formats[(INT)format].width) == 0)
|
if ((val = pcm_formats[(INT)format].width) == 0)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
@ -361,7 +366,7 @@ EXPORT_SYMBOL(snd_pcm_format_width);
|
|||||||
int snd_pcm_format_physical_width(snd_pcm_format_t format)
|
int snd_pcm_format_physical_width(snd_pcm_format_t format)
|
||||||
{
|
{
|
||||||
int val;
|
int val;
|
||||||
if ((INT)format < 0 || (INT)format > (INT)SNDRV_PCM_FORMAT_LAST)
|
if (!valid_format(format))
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
if ((val = pcm_formats[(INT)format].phys) == 0)
|
if ((val = pcm_formats[(INT)format].phys) == 0)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
@ -394,7 +399,7 @@ EXPORT_SYMBOL(snd_pcm_format_size);
|
|||||||
*/
|
*/
|
||||||
const unsigned char *snd_pcm_format_silence_64(snd_pcm_format_t format)
|
const unsigned char *snd_pcm_format_silence_64(snd_pcm_format_t format)
|
||||||
{
|
{
|
||||||
if ((INT)format < 0 || (INT)format > (INT)SNDRV_PCM_FORMAT_LAST)
|
if (!valid_format(format))
|
||||||
return NULL;
|
return NULL;
|
||||||
if (! pcm_formats[(INT)format].phys)
|
if (! pcm_formats[(INT)format].phys)
|
||||||
return NULL;
|
return NULL;
|
||||||
@ -418,7 +423,7 @@ int snd_pcm_format_set_silence(snd_pcm_format_t format, void *data, unsigned int
|
|||||||
unsigned char *dst;
|
unsigned char *dst;
|
||||||
const unsigned char *pat;
|
const unsigned char *pat;
|
||||||
|
|
||||||
if ((INT)format < 0 || (INT)format > (INT)SNDRV_PCM_FORMAT_LAST)
|
if (!valid_format(format))
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
if (samples == 0)
|
if (samples == 0)
|
||||||
return 0;
|
return 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user