Sorry, in my haste, I mistakenly wrote:
For me, silence due to the wrong line takes the form of unheard output playback, while still working for input capture, so I'm not sure this has any bearing on your issue.
Output playback silence occurred in one device (Roland INTEGRA-7 on higher sample rates) which had the line IMPLICIT_FB_FIXED_DEV and needed IMPLICIT_FB_BOTH_DEV. So it's the opposite situation. Capture issues, such as yours, with arecord were exactly what I saw when a device used IMPLICIT_FB_BOTH_DEV while needing IMPLICIT_FB_FIXED_DEV instead.
Here's one of my previous examples of a device not compatible with IMPLICIT_FB_BOTH_DEV:
Roland VG-99 doesn't capture, but plays well: arecord -D hw:VG99 -f S24_3LE -r 44100 -c 2 ./file.wav Recording WAVE './file.wav' : Signed 24 bit Little Endian in 3bytes, Rate 44100 Hz, Stereo arecord: xrun:1672: read/write error, state = PREPARED
aplay -D hw:VG99 -f S24_3LE -r 44100 -c 2 ./other-file.wav Playing WAVE './other-file.wav' : Signed 24 bit Little Endian in 3bytes, Rate 44100 Hz, Stereo
I'm sorry if that caused confusion. It does seem your issue could be the very same as the VG-99's above. That is, a device without "Asynchronous" "Synch Type" for either of its "IN" or "OUT" endpoints. In that case, IMPLICIT_FB_FIXED_DEV should work.
Thanks, and sorry,
Lucas