aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/imx
diff options
context:
space:
mode:
Diffstat (limited to 'sound/soc/imx')
-rw-r--r--sound/soc/imx/imx-audmux.c16
-rw-r--r--sound/soc/imx/imx-pcm-dma-mx2.c3
2 files changed, 8 insertions, 11 deletions
diff --git a/sound/soc/imx/imx-audmux.c b/sound/soc/imx/imx-audmux.c
index a839494c5ea8..1765a197acb0 100644
--- a/sound/soc/imx/imx-audmux.c
+++ b/sound/soc/imx/imx-audmux.c
@@ -40,12 +40,6 @@ static void __iomem *audmux_base;
40#ifdef CONFIG_DEBUG_FS 40#ifdef CONFIG_DEBUG_FS
41static struct dentry *audmux_debugfs_root; 41static struct dentry *audmux_debugfs_root;
42 42
43static int audmux_open_file(struct inode *inode, struct file *file)
44{
45 file->private_data = inode->i_private;
46 return 0;
47}
48
49/* There is an annoying discontinuity in the SSI numbering with regard 43/* There is an annoying discontinuity in the SSI numbering with regard
50 * to the Linux number of the devices */ 44 * to the Linux number of the devices */
51static const char *audmux_port_string(int port) 45static const char *audmux_port_string(int port)
@@ -80,13 +74,13 @@ static ssize_t audmux_read_file(struct file *file, char __user *user_buf,
80 return -ENOMEM; 74 return -ENOMEM;
81 75
82 if (audmux_clk) 76 if (audmux_clk)
83 clk_enable(audmux_clk); 77 clk_prepare_enable(audmux_clk);
84 78
85 ptcr = readl(audmux_base + IMX_AUDMUX_V2_PTCR(port)); 79 ptcr = readl(audmux_base + IMX_AUDMUX_V2_PTCR(port));
86 pdcr = readl(audmux_base + IMX_AUDMUX_V2_PDCR(port)); 80 pdcr = readl(audmux_base + IMX_AUDMUX_V2_PDCR(port));
87 81
88 if (audmux_clk) 82 if (audmux_clk)
89 clk_disable(audmux_clk); 83 clk_disable_unprepare(audmux_clk);
90 84
91 ret = snprintf(buf, PAGE_SIZE, "PDCR: %08x\nPTCR: %08x\n", 85 ret = snprintf(buf, PAGE_SIZE, "PDCR: %08x\nPTCR: %08x\n",
92 pdcr, ptcr); 86 pdcr, ptcr);
@@ -142,7 +136,7 @@ static ssize_t audmux_read_file(struct file *file, char __user *user_buf,
142} 136}
143 137
144static const struct file_operations audmux_debugfs_fops = { 138static const struct file_operations audmux_debugfs_fops = {
145 .open = audmux_open_file, 139 .open = simple_open,
146 .read = audmux_read_file, 140 .read = audmux_read_file,
147 .llseek = default_llseek, 141 .llseek = default_llseek,
148}; 142};
@@ -237,13 +231,13 @@ int imx_audmux_v2_configure_port(unsigned int port, unsigned int ptcr,
237 return -ENOSYS; 231 return -ENOSYS;
238 232
239 if (audmux_clk) 233 if (audmux_clk)
240 clk_enable(audmux_clk); 234 clk_prepare_enable(audmux_clk);
241 235
242 writel(ptcr, audmux_base + IMX_AUDMUX_V2_PTCR(port)); 236 writel(ptcr, audmux_base + IMX_AUDMUX_V2_PTCR(port));
243 writel(pdcr, audmux_base + IMX_AUDMUX_V2_PDCR(port)); 237 writel(pdcr, audmux_base + IMX_AUDMUX_V2_PDCR(port));
244 238
245 if (audmux_clk) 239 if (audmux_clk)
246 clk_disable(audmux_clk); 240 clk_disable_unprepare(audmux_clk);
247 241
248 return 0; 242 return 0;
249} 243}
diff --git a/sound/soc/imx/imx-pcm-dma-mx2.c b/sound/soc/imx/imx-pcm-dma-mx2.c
index e43c8fa2788b..6b818de2fc03 100644
--- a/sound/soc/imx/imx-pcm-dma-mx2.c
+++ b/sound/soc/imx/imx-pcm-dma-mx2.c
@@ -21,6 +21,7 @@
21#include <linux/platform_device.h> 21#include <linux/platform_device.h>
22#include <linux/slab.h> 22#include <linux/slab.h>
23#include <linux/dmaengine.h> 23#include <linux/dmaengine.h>
24#include <linux/types.h>
24 25
25#include <sound/core.h> 26#include <sound/core.h>
26#include <sound/initval.h> 27#include <sound/initval.h>
@@ -58,6 +59,8 @@ static int snd_imx_pcm_hw_params(struct snd_pcm_substream *substream,
58 if (ret) 59 if (ret)
59 return ret; 60 return ret;
60 61
62 slave_config.device_fc = false;
63
61 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) { 64 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
62 slave_config.dst_addr = dma_params->dma_addr; 65 slave_config.dst_addr = dma_params->dma_addr;
63 slave_config.dst_maxburst = dma_params->burstsize; 66 slave_config.dst_maxburst = dma_params->burstsize;