diff options
Diffstat (limited to 'sound/core')
| -rw-r--r-- | sound/core/oss/pcm_oss.c | 7 | ||||
| -rw-r--r-- | sound/core/pcm.c | 2 | ||||
| -rw-r--r-- | sound/core/pcm_native.c | 6 |
3 files changed, 9 insertions, 6 deletions
diff --git a/sound/core/oss/pcm_oss.c b/sound/core/oss/pcm_oss.c index 91114c7aeff5..c5978d6c6080 100644 --- a/sound/core/oss/pcm_oss.c +++ b/sound/core/oss/pcm_oss.c | |||
| @@ -1682,7 +1682,7 @@ static void snd_pcm_oss_init_substream(struct snd_pcm_substream *substream, | |||
| 1682 | substream->oss.setup = *setup; | 1682 | substream->oss.setup = *setup; |
| 1683 | if (setup->nonblock) | 1683 | if (setup->nonblock) |
| 1684 | substream->ffile->f_flags |= O_NONBLOCK; | 1684 | substream->ffile->f_flags |= O_NONBLOCK; |
| 1685 | else | 1685 | else if (setup->block) |
| 1686 | substream->ffile->f_flags &= ~O_NONBLOCK; | 1686 | substream->ffile->f_flags &= ~O_NONBLOCK; |
| 1687 | runtime = substream->runtime; | 1687 | runtime = substream->runtime; |
| 1688 | runtime->oss.params = 1; | 1688 | runtime->oss.params = 1; |
| @@ -1757,10 +1757,11 @@ static int snd_pcm_oss_open_file(struct file *file, | |||
| 1757 | } | 1757 | } |
| 1758 | 1758 | ||
| 1759 | pcm_oss_file->streams[idx] = substream; | 1759 | pcm_oss_file->streams[idx] = substream; |
| 1760 | substream->file = pcm_oss_file; | ||
| 1760 | snd_pcm_oss_init_substream(substream, &setup[idx], minor); | 1761 | snd_pcm_oss_init_substream(substream, &setup[idx], minor); |
| 1761 | } | 1762 | } |
| 1762 | 1763 | ||
| 1763 | if (! pcm_oss_file->streams[0] && pcm_oss_file->streams[1]) { | 1764 | if (!pcm_oss_file->streams[0] && !pcm_oss_file->streams[1]) { |
| 1764 | snd_pcm_oss_release_file(pcm_oss_file); | 1765 | snd_pcm_oss_release_file(pcm_oss_file); |
| 1765 | return -EINVAL; | 1766 | return -EINVAL; |
| 1766 | } | 1767 | } |
| @@ -1809,7 +1810,7 @@ static int snd_pcm_oss_open(struct inode *inode, struct file *file) | |||
| 1809 | err = -EFAULT; | 1810 | err = -EFAULT; |
| 1810 | goto __error; | 1811 | goto __error; |
| 1811 | } | 1812 | } |
| 1812 | memset(setup, 0, sizeof(*setup)); | 1813 | memset(setup, 0, sizeof(setup)); |
| 1813 | if (file->f_mode & FMODE_WRITE) | 1814 | if (file->f_mode & FMODE_WRITE) |
| 1814 | snd_pcm_oss_look_for_setup(pcm, SNDRV_PCM_STREAM_PLAYBACK, | 1815 | snd_pcm_oss_look_for_setup(pcm, SNDRV_PCM_STREAM_PLAYBACK, |
| 1815 | task_name, &setup[0]); | 1816 | task_name, &setup[0]); |
diff --git a/sound/core/pcm.c b/sound/core/pcm.c index 5d7eb123b999..122e10a61ab9 100644 --- a/sound/core/pcm.c +++ b/sound/core/pcm.c | |||
| @@ -196,7 +196,7 @@ static char *snd_pcm_format_names[] = { | |||
| 196 | FORMAT(U18_3BE), | 196 | FORMAT(U18_3BE), |
| 197 | }; | 197 | }; |
| 198 | 198 | ||
| 199 | const char *snd_pcm_format_name(snd_pcm_format_t format) | 199 | static const char *snd_pcm_format_name(snd_pcm_format_t format) |
| 200 | { | 200 | { |
| 201 | return snd_pcm_format_names[format]; | 201 | return snd_pcm_format_names[format]; |
| 202 | } | 202 | } |
diff --git a/sound/core/pcm_native.c b/sound/core/pcm_native.c index 964e4c47a7f1..0860c5a84502 100644 --- a/sound/core/pcm_native.c +++ b/sound/core/pcm_native.c | |||
| @@ -2007,14 +2007,16 @@ static void pcm_release_private(struct snd_pcm_substream *substream) | |||
| 2007 | void snd_pcm_release_substream(struct snd_pcm_substream *substream) | 2007 | void snd_pcm_release_substream(struct snd_pcm_substream *substream) |
| 2008 | { | 2008 | { |
| 2009 | snd_pcm_drop(substream); | 2009 | snd_pcm_drop(substream); |
| 2010 | if (substream->pcm_release) | ||
| 2011 | substream->pcm_release(substream); | ||
| 2012 | if (substream->hw_opened) { | 2010 | if (substream->hw_opened) { |
| 2013 | if (substream->ops->hw_free != NULL) | 2011 | if (substream->ops->hw_free != NULL) |
| 2014 | substream->ops->hw_free(substream); | 2012 | substream->ops->hw_free(substream); |
| 2015 | substream->ops->close(substream); | 2013 | substream->ops->close(substream); |
| 2016 | substream->hw_opened = 0; | 2014 | substream->hw_opened = 0; |
| 2017 | } | 2015 | } |
| 2016 | if (substream->pcm_release) { | ||
| 2017 | substream->pcm_release(substream); | ||
| 2018 | substream->pcm_release = NULL; | ||
| 2019 | } | ||
| 2018 | snd_pcm_detach_substream(substream); | 2020 | snd_pcm_detach_substream(substream); |
| 2019 | } | 2021 | } |
| 2020 | 2022 | ||
