Wrong usage of BMM cache flushing

Wrong usage of flushing API.
Instead of using the dmac_map_area, dmac_flush_range must be used since the first is restricted to kernel space only and the latter can accept both kernel and user area.
The reason is the BMM allocates and maps buffers into a user area where the addresses that can be used are not kernel.

This fixes an issue that cache flushing BMM buffers allocated to vmeta makes a kernel panic

Signed-off-by: Rabeeh Khoury <rabeeh@solid-run.com>
Enable PCM format S24_LE
Enforce PCM mode when not sending a bitstream
Disable I2S on channel 1 and SPDIF on channel 0
Always set SPDIF channel status bits
Return error code when CEC device in bad state
Don't set HDMI audio rate when not plugged