mirror of https://gitee.com/openkylin/linux.git
drm/bridge: dw-hdmi-i2s: enable only the required i2s lanes
Enable the i2s lanes depending on the number of channel in the stream Reviewed-by: Jonas Karlman <jonas@kwiboo.se> Signed-off-by: Jerome Brunet <jbrunet@baylibre.com> Reviewed-by: Neil Armstrong <narmstrong@baylibre.com> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com> Link: https://patchwork.freedesktop.org/patch/msgid/20190812120726.1528-8-jbrunet@baylibre.com
This commit is contained in:
parent
46cecde310
commit
43e88f670a
|
@ -54,7 +54,20 @@ static int dw_hdmi_i2s_hw_params(struct device *dev, void *data,
|
|||
hdmi_write(audio, (u8)~HDMI_MC_SWRSTZ_I2SSWRST_REQ, HDMI_MC_SWRSTZ);
|
||||
|
||||
inputclkfs = HDMI_AUD_INPUTCLKFS_64FS;
|
||||
conf0 = HDMI_AUD_CONF0_I2S_ALL_ENABLE;
|
||||
conf0 = (HDMI_AUD_CONF0_I2S_SELECT | HDMI_AUD_CONF0_I2S_EN0);
|
||||
|
||||
/* Enable the required i2s lanes */
|
||||
switch (hparms->channels) {
|
||||
case 7 ... 8:
|
||||
conf0 |= HDMI_AUD_CONF0_I2S_EN3;
|
||||
/* Fall-thru */
|
||||
case 5 ... 6:
|
||||
conf0 |= HDMI_AUD_CONF0_I2S_EN2;
|
||||
/* Fall-thru */
|
||||
case 3 ... 4:
|
||||
conf0 |= HDMI_AUD_CONF0_I2S_EN1;
|
||||
/* Fall-thru */
|
||||
}
|
||||
|
||||
switch (hparms->sample_width) {
|
||||
case 16:
|
||||
|
|
|
@ -865,7 +865,11 @@ enum {
|
|||
|
||||
/* AUD_CONF0 field values */
|
||||
HDMI_AUD_CONF0_SW_RESET = 0x80,
|
||||
HDMI_AUD_CONF0_I2S_ALL_ENABLE = 0x2F,
|
||||
HDMI_AUD_CONF0_I2S_SELECT = 0x20,
|
||||
HDMI_AUD_CONF0_I2S_EN3 = 0x08,
|
||||
HDMI_AUD_CONF0_I2S_EN2 = 0x04,
|
||||
HDMI_AUD_CONF0_I2S_EN1 = 0x02,
|
||||
HDMI_AUD_CONF0_I2S_EN0 = 0x01,
|
||||
|
||||
/* AUD_CONF1 field values */
|
||||
HDMI_AUD_CONF1_MODE_I2S = 0x00,
|
||||
|
|
Loading…
Reference in New Issue