]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
ALSA: pcm: move fixup of info flag after selecting single parameters
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Fri, 9 Jun 2017 00:34:40 +0000 (09:34 +0900)
committerTakashi Iwai <tiwai@suse.de>
Fri, 9 Jun 2017 07:18:26 +0000 (09:18 +0200)
When drivers register no flags about information of PCM hardware, ALSA
PCM core fixups it roughly. Currently, this operation places in a
function snd_pcm_hw_refine(). It can be moved to a function
fixup_unreferenced_params() because it doesn't affects operations
between these two functions.

This idea is better to bundle codes with similar purposes and this commit
achieves it.

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/core/pcm_native.c

index dfe6113a6a608c28a1dd86535faef54b270792aa..3293db0172db5e66cad03ab0e68fab632a564ce2 100644 (file)
@@ -472,13 +472,21 @@ static int fixup_unreferenced_params(struct snd_pcm_substream *substream,
                }
        }
 
+       if (!params->info) {
+               params->info = substream->runtime->hw.info;
+               params->info &= ~(SNDRV_PCM_INFO_FIFO_IN_FRAMES |
+                                 SNDRV_PCM_INFO_DRAIN_TRIGGER);
+               if (!hw_support_mmap(substream))
+                       params->info &= ~(SNDRV_PCM_INFO_MMAP |
+                                         SNDRV_PCM_INFO_MMAP_VALID);
+       }
+
        return 0;
 }
 
 int snd_pcm_hw_refine(struct snd_pcm_substream *substream,
                      struct snd_pcm_hw_params *params)
 {
-       struct snd_pcm_hardware *hw;
        int err;
 
        params->info = 0;
@@ -502,16 +510,8 @@ int snd_pcm_hw_refine(struct snd_pcm_substream *substream,
        if (err < 0)
                return err;
 
-       hw = &substream->runtime->hw;
-       if (!params->info) {
-               params->info = hw->info & ~(SNDRV_PCM_INFO_FIFO_IN_FRAMES |
-                                           SNDRV_PCM_INFO_DRAIN_TRIGGER);
-               if (!hw_support_mmap(substream))
-                       params->info &= ~(SNDRV_PCM_INFO_MMAP |
-                                         SNDRV_PCM_INFO_MMAP_VALID);
-       }
-
        params->rmask = 0;
+
        return 0;
 }
 EXPORT_SYMBOL(snd_pcm_hw_refine);