Quoting Mark Brown:
Could you please rebuild ASoC with debug enabled and send the kernel output produced from a failing record? Depending on your kernel
version
I'm sorry, It seems to be the switch connecting MICN to negative PGA terminal that does not stay on (register 0x2c bit 1)
Here's the result with my remarks inline:
$ amixer sget 'Mic PGA'
Simple mixer control 'Mic PGA',0 Capabilities: switch Playback channels: Mono Capture channels: Mono Mono: [on]
$ arecord -c 1 --rate=48000 --format=S16_LE |aplay
asoc: WM8510 HiFi <-> at91-ssc1 info: asoc: rate mask 0xde asoc: min ch 1 max ch 2 asoc: min rate 8000 max rate 48000 asoc: WM8510 HiFi <-> at91-ssc1 info: asoc: rate mask 0xde asoc: min ch 1 max ch 2 asoc: min rate 8000 max rate 48000 Recording WAVE 'stdin' : Signed 16 bit Little Endian, Rate 48000 Hz, Mono WM8510 register write: 0x04: 10 WM8510 register write: 0x06: d WM8510 register write: 0x06: d WM8510 register write: 0x24: 8 WM8510 register write: 0x25: c WM8510 register write: 0x26: 93 WM8510 register write: 0x27: e9 WM8510 register write: 0x01: 3a WM8510 register write: 0x06: 10d WM8510 register write: 0x06: d WM8510 register write: 0x04: 10 WM8510 register write: 0x07: 0 WM8510 register write: 0x01: 39 WM8510 register write: 0x02: 10 WM8510 register write: 0x02: 14 WM8510 register write: 0x2c: 2 <-- This line missing right after bootup! WM8510 register write: 0x02: 15 WM8510 register write: 0x01: 39 WM8510 register write: 0x0a: 0 Playing WAVE 'stdin' : Signed 16 bit Little Endian, Rate 48000 Hz, Mono WM8510 register write: 0x04: 10 WM8510 register write: 0x06: d WM8510 register write: 0x06: d WM8510 register write: 0x24: 8 WM8510 register write: 0x25: c WM8510 register write: 0x26: 93 WM8510 register write: 0x27: e9 WM8510 register write: 0x01: 39 WM8510 register write: 0x06: 10d WM8510 register write: 0x06: d WM8510 register write: 0x04: 10 WM8510 register write: 0x07: 0 WM8510 register write: 0x03: 1 WM8510 register write: 0x03: 9 WM8510 register write: 0x03: d WM8510 register write: 0x03: 8d WM8510 register write: 0x03: cd WM8510 register write: 0x03: ed WM8510 register write: 0x0a: 0 Aborted by signal Interrupt... <-- Pressed ctrl-c WM8510 register write: 0x02: 14 WM8510 register write: 0x02: 10 WM8510 register write: 0x02: 0 WM8510 register write: 0x01: 29 Aborted by signal Interrupt...
$ pop wq checking: Playback status: inactive waiting: yes
pop wq D1 WM8510 Playback WM8510 register write: 0x01: 29 WM8510 register write: 0x03: 6d WM8510 register write: 0x03: 2d WM8510 register write: 0x03: d WM8510 register write: 0x03: 5 WM8510 register write: 0x03: 1 WM8510 register write: 0x03: 0 pop wq D3 WM8510 Playback WM8510 register write: 0x01: 3a
$