alsa-lib: use get32_labels for multi-source
The PCM route plugin can assign the destination value from average of
multiple sources with attenuation. This requires the read of each
channel value, sums and writes the resultant value in the requested
format.
get_labels gives the value as is only with endianness and signedness
conversions, but put32_labels assumes that the value is normalized to
32bit int and it shifts down to the dest format. In addition, the
current code lacks get_labels entries for the 24bit formats.
For fixing these bugs, this patch replaces the read with get32_labels
and use always 64bit int for sum.
(From OE-Core rev:
aef6f71e68c3ef1d662cda237d85307142a997be)
Signed-off-by: Wang Zidan <b50113@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>