linux/sound
Peter Rosin eb58960e9e ASoC: atmel_ssc_dai: Match the CMR divider only in full duplex.
The CMR divider register is shared by playback and capture. The SSC driver
therefore tries to enforce rules so that the needed register content do
not conflict during simultaneous playback/capture. However, the
implementation also prevents changing the register content in
half-duplex scenarios, which is needed when using the OSS API.

Thus, only lock the divider if there is a stream in the other direction.

Fixes the below program to not fail with the atmel ssc dai in master mode.

int
main(void)
{
	int fd;
	int format;
	int channels;
	int speed;

	if ((fd = open("/dev/dsp", O_WRONLY, 0)) == -1) {
		perror("open");
		return 1;
	}
	format = AFMT_S16_LE;
	if (ioctl(fd, SNDCTL_DSP_SETFMT, &format) == -1) {
		perror("SNDCTL_DSP_SETFMT");
		return 1;
	}
	channels = 2;
	if (ioctl(fd, SNDCTL_DSP_CHANNELS, &channels) == -1) {
		perror("SNDCTL_DSP_CHANNELS");
		return 1;
	}
	speed = 22025;
	if (ioctl(fd, SNDCTL_DSP_SPEED, &speed) == -1) {
		perror("SNDCTL_DSP_SPEED");
		return 1;
	}
	return 0;
}

Signed-off-by: Peter Rosin <peda@axentia.se>
Acked-by: Bo Shen <voice.shen@atmel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2014-11-03 12:45:27 +00:00
..
aoa ALSA: Use dma_zalloc_coherent 2014-06-16 11:39:45 +02:00
arm ASoC: pxa2xx-ac97: prepare and unprepare the clocks 2014-06-09 21:11:18 +01:00
atmel dmaengine: dw: split dma-dw.h to platform and private parts 2014-10-15 20:31:04 +05:30
core ALSA: pcm: Fix referred substream in snd_pcm_action_group() unlock loop 2014-10-14 09:14:48 +02:00
drivers ALSA: vx: Use nonatomic PCM ops 2014-09-15 15:52:03 +02:00
firewire ALSA: bebob: Fix failure to detect source of clock for Terratec Phase 88 2014-10-10 17:25:30 +02:00
i2c ALSA: cs8427: separate HW initialization 2014-04-03 14:59:48 +02:00
isa ALSA: gus: remove checks for CONFIG_SND_DEBUG_ROM 2014-05-30 10:12:10 +02:00
mips ALSA: au1x00: Use resource_size instead of computation 2014-05-28 17:50:57 +02:00
oss sound fixes for 3.17-rc1 2014-08-15 18:06:56 -06:00
parisc ALSA: parisc: Convert to snd_card_new() with a device pointer 2014-02-14 08:14:05 +01:00
pci ALSA: hda_intel: Add Device IDs for Intel Sunrise Point PCH 2014-10-15 11:39:58 +02:00
pcmcia ALSA: pdaudiocf: Use nonatomic PCM ops 2014-09-15 15:52:38 +02:00
ppc of: Migrate of_find_node_by_name() users to for_each_node_by_name() 2014-06-26 17:12:24 +01:00
sh ALSA: sh: Convert to snd_card_new() with a device pointer 2014-02-14 08:14:07 +01:00
soc ASoC: atmel_ssc_dai: Match the CMR divider only in full duplex. 2014-11-03 12:45:27 +00:00
sparc ALSA: Use dma_zalloc_coherent 2014-06-16 11:39:45 +02:00
spi ALSA: spi: Convert to snd_card_new() with a device pointer 2014-02-14 08:14:08 +01:00
synth ALSA: synth: emux: soundfont.c: Cleaning up memory leak 2014-06-01 14:33:09 +02:00
usb sound updates for 3.18-rc1 2014-10-10 22:13:25 -04:00
ac97_bus.c
Kconfig
last.c
Makefile
sound_core.c consolidate the reassignments of ->f_op in ->open() instances 2013-10-24 23:34:53 -04:00
sound_firmware.c