The current implementation (incorrectly) passes the channel encoding
value to AFMT_CHANNEL(), which will always return 0, since the channel
number bits are masked out by AFMT_ENCODING().
Also add missing fmts initialization and aggregate encoding formats
into it directly.
Sponsored by: The FreeBSD Foundation
MFC after: 1 day