kirkwood-i2s.c (af64d7341ab51335eeb03453180cf200b120ec43) | kirkwood-i2s.c (db43b16fa0e913582b63c971848e08151d50d952) |
---|---|
1/* 2 * kirkwood-i2s.c 3 * 4 * (c) 2010 Arnaud Patard <apatard@mandriva.com> 5 * (c) 2010 Arnaud Patard <arnaud.patard@rtp-net.org> 6 * 7 * This program is free software; you can redistribute it and/or modify it 8 * under the terms of the GNU General Public License as published by the --- 184 unchanged lines hidden (view full) --- 193 194 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) { 195 if (params_channels(params) == 1) 196 ctl_play |= KIRKWOOD_PLAYCTL_MONO_BOTH; 197 else 198 ctl_play |= KIRKWOOD_PLAYCTL_MONO_OFF; 199 200 priv->ctl_play &= ~(KIRKWOOD_PLAYCTL_MONO_MASK | | 1/* 2 * kirkwood-i2s.c 3 * 4 * (c) 2010 Arnaud Patard <apatard@mandriva.com> 5 * (c) 2010 Arnaud Patard <arnaud.patard@rtp-net.org> 6 * 7 * This program is free software; you can redistribute it and/or modify it 8 * under the terms of the GNU General Public License as published by the --- 184 unchanged lines hidden (view full) --- 193 194 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) { 195 if (params_channels(params) == 1) 196 ctl_play |= KIRKWOOD_PLAYCTL_MONO_BOTH; 197 else 198 ctl_play |= KIRKWOOD_PLAYCTL_MONO_OFF; 199 200 priv->ctl_play &= ~(KIRKWOOD_PLAYCTL_MONO_MASK | |
201 KIRKWOOD_PLAYCTL_I2S_EN | 202 KIRKWOOD_PLAYCTL_SPDIF_EN | | 201 KIRKWOOD_PLAYCTL_ENABLE_MASK | |
203 KIRKWOOD_PLAYCTL_SIZE_MASK); 204 priv->ctl_play |= ctl_play; 205 } else { 206 priv->ctl_rec &= ~KIRKWOOD_RECCTL_SIZE_MASK; 207 priv->ctl_rec |= ctl_rec; 208 } 209 210 writel(i2s_value, priv->io+i2s_reg); --- 27 unchanged lines hidden (view full) --- 238 dev_notice(dai->dev, "timed out waiting for busy to deassert: %08x\n", 239 ctl); 240 } 241 242 switch (cmd) { 243 case SNDRV_PCM_TRIGGER_START: 244 /* configure */ 245 ctl = priv->ctl_play; | 202 KIRKWOOD_PLAYCTL_SIZE_MASK); 203 priv->ctl_play |= ctl_play; 204 } else { 205 priv->ctl_rec &= ~KIRKWOOD_RECCTL_SIZE_MASK; 206 priv->ctl_rec |= ctl_rec; 207 } 208 209 writel(i2s_value, priv->io+i2s_reg); --- 27 unchanged lines hidden (view full) --- 237 dev_notice(dai->dev, "timed out waiting for busy to deassert: %08x\n", 238 ctl); 239 } 240 241 switch (cmd) { 242 case SNDRV_PCM_TRIGGER_START: 243 /* configure */ 244 ctl = priv->ctl_play; |
246 value = ctl & ~(KIRKWOOD_PLAYCTL_I2S_EN | 247 KIRKWOOD_PLAYCTL_SPDIF_EN); | 245 value = ctl & ~KIRKWOOD_PLAYCTL_ENABLE_MASK; |
248 writel(value, priv->io + KIRKWOOD_PLAYCTL); 249 250 /* enable interrupts */ 251 value = readl(priv->io + KIRKWOOD_INT_MASK); 252 value |= KIRKWOOD_INT_CAUSE_PLAY_BYTES; 253 writel(value, priv->io + KIRKWOOD_INT_MASK); 254 255 /* enable playback */ --- 5 unchanged lines hidden (view full) --- 261 ctl |= KIRKWOOD_PLAYCTL_PAUSE | KIRKWOOD_PLAYCTL_I2S_MUTE; 262 writel(ctl, priv->io + KIRKWOOD_PLAYCTL); 263 264 value = readl(priv->io + KIRKWOOD_INT_MASK); 265 value &= ~KIRKWOOD_INT_CAUSE_PLAY_BYTES; 266 writel(value, priv->io + KIRKWOOD_INT_MASK); 267 268 /* disable all playbacks */ | 246 writel(value, priv->io + KIRKWOOD_PLAYCTL); 247 248 /* enable interrupts */ 249 value = readl(priv->io + KIRKWOOD_INT_MASK); 250 value |= KIRKWOOD_INT_CAUSE_PLAY_BYTES; 251 writel(value, priv->io + KIRKWOOD_INT_MASK); 252 253 /* enable playback */ --- 5 unchanged lines hidden (view full) --- 259 ctl |= KIRKWOOD_PLAYCTL_PAUSE | KIRKWOOD_PLAYCTL_I2S_MUTE; 260 writel(ctl, priv->io + KIRKWOOD_PLAYCTL); 261 262 value = readl(priv->io + KIRKWOOD_INT_MASK); 263 value &= ~KIRKWOOD_INT_CAUSE_PLAY_BYTES; 264 writel(value, priv->io + KIRKWOOD_INT_MASK); 265 266 /* disable all playbacks */ |
269 ctl &= ~(KIRKWOOD_PLAYCTL_I2S_EN | KIRKWOOD_PLAYCTL_SPDIF_EN); | 267 ctl &= ~KIRKWOOD_PLAYCTL_ENABLE_MASK; |
270 writel(ctl, priv->io + KIRKWOOD_PLAYCTL); 271 break; 272 273 case SNDRV_PCM_TRIGGER_PAUSE_PUSH: 274 case SNDRV_PCM_TRIGGER_SUSPEND: 275 ctl |= KIRKWOOD_PLAYCTL_PAUSE | KIRKWOOD_PLAYCTL_I2S_MUTE; 276 writel(ctl, priv->io + KIRKWOOD_PLAYCTL); 277 break; --- 103 unchanged lines hidden (view full) --- 381 382 reg_data = readl(priv->io + 0x1200); 383 reg_data &= (~(0x333FF8)); 384 reg_data |= 0x111D18; 385 writel(reg_data, priv->io + 0x1200); 386 387 /* disable playback/record */ 388 value = readl(priv->io + KIRKWOOD_PLAYCTL); | 268 writel(ctl, priv->io + KIRKWOOD_PLAYCTL); 269 break; 270 271 case SNDRV_PCM_TRIGGER_PAUSE_PUSH: 272 case SNDRV_PCM_TRIGGER_SUSPEND: 273 ctl |= KIRKWOOD_PLAYCTL_PAUSE | KIRKWOOD_PLAYCTL_I2S_MUTE; 274 writel(ctl, priv->io + KIRKWOOD_PLAYCTL); 275 break; --- 103 unchanged lines hidden (view full) --- 379 380 reg_data = readl(priv->io + 0x1200); 381 reg_data &= (~(0x333FF8)); 382 reg_data |= 0x111D18; 383 writel(reg_data, priv->io + 0x1200); 384 385 /* disable playback/record */ 386 value = readl(priv->io + KIRKWOOD_PLAYCTL); |
389 value &= ~(KIRKWOOD_PLAYCTL_I2S_EN|KIRKWOOD_PLAYCTL_SPDIF_EN); | 387 value &= ~KIRKWOOD_PLAYCTL_ENABLE_MASK; |
390 writel(value, priv->io + KIRKWOOD_PLAYCTL); 391 392 value = readl(priv->io + KIRKWOOD_RECCTL); 393 value &= ~(KIRKWOOD_RECCTL_I2S_EN | KIRKWOOD_RECCTL_SPDIF_EN); 394 writel(value, priv->io + KIRKWOOD_RECCTL); 395 396 return 0; 397 --- 164 unchanged lines hidden --- | 388 writel(value, priv->io + KIRKWOOD_PLAYCTL); 389 390 value = readl(priv->io + KIRKWOOD_RECCTL); 391 value &= ~(KIRKWOOD_RECCTL_I2S_EN | KIRKWOOD_RECCTL_SPDIF_EN); 392 writel(value, priv->io + KIRKWOOD_RECCTL); 393 394 return 0; 395 --- 164 unchanged lines hidden --- |