mirror of
https://github.com/torvalds/linux.git
synced 2026-06-07 22:14:04 +02:00
drm/bridge: synopsys: dw-hdmi: audio software reset after setup
When playing NLPCM audio, such as AC3, HDMI is pluged in, it's better to reset audio fifo and sync audio clock by reselect audio input interface. Or sink may not recognize NLPCM format. Change-Id: I9112bc9aa1f57041e15b5be563ecb96c44644807 Signed-off-by: Zheng Yang <zhengyang@rock-chips.com>
This commit is contained in:
parent
2c300d471c
commit
e514e77bdc
|
|
@ -2171,6 +2171,19 @@ static void dw_hdmi_clear_overflow(struct dw_hdmi *hdmi)
|
|||
val = hdmi_readb(hdmi, HDMI_FC_INVIDCONF);
|
||||
for (i = 0; i < count; i++)
|
||||
hdmi_writeb(hdmi, val, HDMI_FC_INVIDCONF);
|
||||
|
||||
/* Audio software reset */
|
||||
if (hdmi->sink_has_audio) {
|
||||
val = hdmi_readb(hdmi, HDMI_AUD_CONF0);
|
||||
val &= HDMI_AUD_CONF0_I2S_SELECT_MASK;
|
||||
hdmi_modb(hdmi, ~val, HDMI_AUD_CONF0_I2S_SELECT_MASK,
|
||||
HDMI_AUD_CONF0);
|
||||
udelay(10);
|
||||
hdmi_modb(hdmi, val | HDMI_AUD_CONF0_SW_RESET,
|
||||
HDMI_AUD_CONF0_SW_RESET |
|
||||
HDMI_AUD_CONF0_I2S_SELECT_MASK,
|
||||
HDMI_AUD_CONF0);
|
||||
}
|
||||
}
|
||||
|
||||
static void hdmi_enable_overflow_interrupts(struct dw_hdmi *hdmi)
|
||||
|
|
|
|||
|
|
@ -976,6 +976,7 @@ enum {
|
|||
|
||||
/* AUD_CONF0 field values */
|
||||
HDMI_AUD_CONF0_SW_RESET = 0x80,
|
||||
HDMI_AUD_CONF0_I2S_SELECT_MASK = 0x20,
|
||||
HDMI_AUD_CONF0_I2S_2CHANNEL_ENABLE = 0x21,
|
||||
HDMI_AUD_CONF0_I2S_4CHANNEL_ENABLE = 0x23,
|
||||
HDMI_AUD_CONF0_I2S_6CHANNEL_ENABLE = 0x27,
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user