aboutsummaryrefslogtreecommitdiffstats
path: root/sound/core
diff options
context:
space:
mode:
authorMark Brown <broonie@kernel.org>2014-10-20 12:55:07 -0400
committerMark Brown <broonie@kernel.org>2014-10-20 13:27:32 -0400
commitb7a40242c82cd73cfcea305f23e67d068dd8401a (patch)
tree251b49d19cd7c371847ae1f951e1b537ca0e1c15 /sound/core
parentd26833bfce5e56017bea9f1f50838f20e18e7b7e (diff)
parent9c6de47d53a3ce8df1642ae67823688eb98a190a (diff)
Merge branch 'fix/dw' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi into spi-dw
Conflicts: drivers/spi/spi-dw-mid.c
Diffstat (limited to 'sound/core')
-rw-r--r--sound/core/info.c4
-rw-r--r--sound/core/pcm_lib.c8
-rw-r--r--sound/core/pcm_misc.c4
3 files changed, 9 insertions, 7 deletions
diff --git a/sound/core/info.c b/sound/core/info.c
index 051d55b05521..9f404e965ea2 100644
--- a/sound/core/info.c
+++ b/sound/core/info.c
@@ -684,7 +684,7 @@ int snd_info_card_free(struct snd_card *card)
684 * snd_info_get_line - read one line from the procfs buffer 684 * snd_info_get_line - read one line from the procfs buffer
685 * @buffer: the procfs buffer 685 * @buffer: the procfs buffer
686 * @line: the buffer to store 686 * @line: the buffer to store
687 * @len: the max. buffer size - 1 687 * @len: the max. buffer size
688 * 688 *
689 * Reads one line from the buffer and stores the string. 689 * Reads one line from the buffer and stores the string.
690 * 690 *
@@ -704,7 +704,7 @@ int snd_info_get_line(struct snd_info_buffer *buffer, char *line, int len)
704 buffer->stop = 1; 704 buffer->stop = 1;
705 if (c == '\n') 705 if (c == '\n')
706 break; 706 break;
707 if (len) { 707 if (len > 1) {
708 len--; 708 len--;
709 *line++ = c; 709 *line++ = c;
710 } 710 }
diff --git a/sound/core/pcm_lib.c b/sound/core/pcm_lib.c
index 9acc77eae487..0032278567ad 100644
--- a/sound/core/pcm_lib.c
+++ b/sound/core/pcm_lib.c
@@ -1782,14 +1782,16 @@ static int snd_pcm_lib_ioctl_fifo_size(struct snd_pcm_substream *substream,
1782{ 1782{
1783 struct snd_pcm_hw_params *params = arg; 1783 struct snd_pcm_hw_params *params = arg;
1784 snd_pcm_format_t format; 1784 snd_pcm_format_t format;
1785 int channels, width; 1785 int channels;
1786 ssize_t frame_size;
1786 1787
1787 params->fifo_size = substream->runtime->hw.fifo_size; 1788 params->fifo_size = substream->runtime->hw.fifo_size;
1788 if (!(substream->runtime->hw.info & SNDRV_PCM_INFO_FIFO_IN_FRAMES)) { 1789 if (!(substream->runtime->hw.info & SNDRV_PCM_INFO_FIFO_IN_FRAMES)) {
1789 format = params_format(params); 1790 format = params_format(params);
1790 channels = params_channels(params); 1791 channels = params_channels(params);
1791 width = snd_pcm_format_physical_width(format); 1792 frame_size = snd_pcm_format_size(format, channels);
1792 params->fifo_size /= width * channels; 1793 if (frame_size > 0)
1794 params->fifo_size /= (unsigned)frame_size;
1793 } 1795 }
1794 return 0; 1796 return 0;
1795} 1797}
diff --git a/sound/core/pcm_misc.c b/sound/core/pcm_misc.c
index 4560ca0e5651..2c6fd80e0bd1 100644
--- a/sound/core/pcm_misc.c
+++ b/sound/core/pcm_misc.c
@@ -142,11 +142,11 @@ static struct pcm_format_data pcm_formats[(INT)SNDRV_PCM_FORMAT_LAST+1] = {
142 }, 142 },
143 [SNDRV_PCM_FORMAT_DSD_U8] = { 143 [SNDRV_PCM_FORMAT_DSD_U8] = {
144 .width = 8, .phys = 8, .le = 1, .signd = 0, 144 .width = 8, .phys = 8, .le = 1, .signd = 0,
145 .silence = {}, 145 .silence = { 0x69 },
146 }, 146 },
147 [SNDRV_PCM_FORMAT_DSD_U16_LE] = { 147 [SNDRV_PCM_FORMAT_DSD_U16_LE] = {
148 .width = 16, .phys = 16, .le = 1, .signd = 0, 148 .width = 16, .phys = 16, .le = 1, .signd = 0,
149 .silence = {}, 149 .silence = { 0x69, 0x69 },
150 }, 150 },
151 /* FIXME: the following three formats are not defined properly yet */ 151 /* FIXME: the following three formats are not defined properly yet */
152 [SNDRV_PCM_FORMAT_MPEG] = { 152 [SNDRV_PCM_FORMAT_MPEG] = {