Merge "msm: mdss: dp: fix programming of DisplayPort SDP registers"
This commit is contained in:
commit
ac25624726
1 changed files with 15 additions and 1 deletions
|
@ -1233,6 +1233,7 @@ static void mdss_dp_audio_setup_audio_stream_sdp(struct dss_io_data *ctrl_io,
|
||||||
|
|
||||||
/* Config header and parity byte 1 */
|
/* Config header and parity byte 1 */
|
||||||
value = readl_relaxed(ctrl_io->base + MMSS_DP_AUDIO_STREAM_0);
|
value = readl_relaxed(ctrl_io->base + MMSS_DP_AUDIO_STREAM_0);
|
||||||
|
value &= 0x0000ffff;
|
||||||
new_value = 0x02;
|
new_value = 0x02;
|
||||||
parity_byte = mdss_dp_calculate_parity_byte(new_value);
|
parity_byte = mdss_dp_calculate_parity_byte(new_value);
|
||||||
value |= ((new_value << HEADER_BYTE_1_BIT)
|
value |= ((new_value << HEADER_BYTE_1_BIT)
|
||||||
|
@ -1243,7 +1244,8 @@ static void mdss_dp_audio_setup_audio_stream_sdp(struct dss_io_data *ctrl_io,
|
||||||
|
|
||||||
/* Config header and parity byte 2 */
|
/* Config header and parity byte 2 */
|
||||||
value = readl_relaxed(ctrl_io->base + MMSS_DP_AUDIO_STREAM_1);
|
value = readl_relaxed(ctrl_io->base + MMSS_DP_AUDIO_STREAM_1);
|
||||||
new_value = value;
|
value &= 0xffff0000;
|
||||||
|
new_value = 0x00;
|
||||||
parity_byte = mdss_dp_calculate_parity_byte(new_value);
|
parity_byte = mdss_dp_calculate_parity_byte(new_value);
|
||||||
value |= ((new_value << HEADER_BYTE_2_BIT)
|
value |= ((new_value << HEADER_BYTE_2_BIT)
|
||||||
| (parity_byte << PARITY_BYTE_2_BIT));
|
| (parity_byte << PARITY_BYTE_2_BIT));
|
||||||
|
@ -1253,6 +1255,7 @@ static void mdss_dp_audio_setup_audio_stream_sdp(struct dss_io_data *ctrl_io,
|
||||||
|
|
||||||
/* Config header and parity byte 3 */
|
/* Config header and parity byte 3 */
|
||||||
value = readl_relaxed(ctrl_io->base + MMSS_DP_AUDIO_STREAM_1);
|
value = readl_relaxed(ctrl_io->base + MMSS_DP_AUDIO_STREAM_1);
|
||||||
|
value &= 0x0000ffff;
|
||||||
new_value = num_of_channels - 1;
|
new_value = num_of_channels - 1;
|
||||||
parity_byte = mdss_dp_calculate_parity_byte(new_value);
|
parity_byte = mdss_dp_calculate_parity_byte(new_value);
|
||||||
value |= ((new_value << HEADER_BYTE_3_BIT)
|
value |= ((new_value << HEADER_BYTE_3_BIT)
|
||||||
|
@ -1271,6 +1274,7 @@ static void mdss_dp_audio_setup_audio_timestamp_sdp(struct dss_io_data *ctrl_io)
|
||||||
|
|
||||||
/* Config header and parity byte 1 */
|
/* Config header and parity byte 1 */
|
||||||
value = readl_relaxed(ctrl_io->base + MMSS_DP_AUDIO_TIMESTAMP_0);
|
value = readl_relaxed(ctrl_io->base + MMSS_DP_AUDIO_TIMESTAMP_0);
|
||||||
|
value &= 0x0000ffff;
|
||||||
new_value = 0x1;
|
new_value = 0x1;
|
||||||
parity_byte = mdss_dp_calculate_parity_byte(new_value);
|
parity_byte = mdss_dp_calculate_parity_byte(new_value);
|
||||||
value |= ((new_value << HEADER_BYTE_1_BIT)
|
value |= ((new_value << HEADER_BYTE_1_BIT)
|
||||||
|
@ -1281,6 +1285,7 @@ static void mdss_dp_audio_setup_audio_timestamp_sdp(struct dss_io_data *ctrl_io)
|
||||||
|
|
||||||
/* Config header and parity byte 2 */
|
/* Config header and parity byte 2 */
|
||||||
value = readl_relaxed(ctrl_io->base + MMSS_DP_AUDIO_TIMESTAMP_1);
|
value = readl_relaxed(ctrl_io->base + MMSS_DP_AUDIO_TIMESTAMP_1);
|
||||||
|
value &= 0xffff0000;
|
||||||
new_value = 0x17;
|
new_value = 0x17;
|
||||||
parity_byte = mdss_dp_calculate_parity_byte(new_value);
|
parity_byte = mdss_dp_calculate_parity_byte(new_value);
|
||||||
value |= ((new_value << HEADER_BYTE_2_BIT)
|
value |= ((new_value << HEADER_BYTE_2_BIT)
|
||||||
|
@ -1291,6 +1296,7 @@ static void mdss_dp_audio_setup_audio_timestamp_sdp(struct dss_io_data *ctrl_io)
|
||||||
|
|
||||||
/* Config header and parity byte 3 */
|
/* Config header and parity byte 3 */
|
||||||
value = readl_relaxed(ctrl_io->base + MMSS_DP_AUDIO_TIMESTAMP_1);
|
value = readl_relaxed(ctrl_io->base + MMSS_DP_AUDIO_TIMESTAMP_1);
|
||||||
|
value &= 0x0000ffff;
|
||||||
new_value = (0x0 | (0x11 << 2));
|
new_value = (0x0 | (0x11 << 2));
|
||||||
parity_byte = mdss_dp_calculate_parity_byte(new_value);
|
parity_byte = mdss_dp_calculate_parity_byte(new_value);
|
||||||
value |= ((new_value << HEADER_BYTE_3_BIT)
|
value |= ((new_value << HEADER_BYTE_3_BIT)
|
||||||
|
@ -1308,6 +1314,7 @@ static void mdss_dp_audio_setup_audio_infoframe_sdp(struct dss_io_data *ctrl_io)
|
||||||
|
|
||||||
/* Config header and parity byte 1 */
|
/* Config header and parity byte 1 */
|
||||||
value = readl_relaxed(ctrl_io->base + MMSS_DP_AUDIO_INFOFRAME_0);
|
value = readl_relaxed(ctrl_io->base + MMSS_DP_AUDIO_INFOFRAME_0);
|
||||||
|
value &= 0x0000ffff;
|
||||||
new_value = 0x84;
|
new_value = 0x84;
|
||||||
parity_byte = mdss_dp_calculate_parity_byte(new_value);
|
parity_byte = mdss_dp_calculate_parity_byte(new_value);
|
||||||
value |= ((new_value << HEADER_BYTE_1_BIT)
|
value |= ((new_value << HEADER_BYTE_1_BIT)
|
||||||
|
@ -1318,6 +1325,7 @@ static void mdss_dp_audio_setup_audio_infoframe_sdp(struct dss_io_data *ctrl_io)
|
||||||
|
|
||||||
/* Config header and parity byte 2 */
|
/* Config header and parity byte 2 */
|
||||||
value = readl_relaxed(ctrl_io->base + MMSS_DP_AUDIO_INFOFRAME_1);
|
value = readl_relaxed(ctrl_io->base + MMSS_DP_AUDIO_INFOFRAME_1);
|
||||||
|
value &= 0xffff0000;
|
||||||
new_value = 0x1b;
|
new_value = 0x1b;
|
||||||
parity_byte = mdss_dp_calculate_parity_byte(new_value);
|
parity_byte = mdss_dp_calculate_parity_byte(new_value);
|
||||||
value |= ((new_value << HEADER_BYTE_2_BIT)
|
value |= ((new_value << HEADER_BYTE_2_BIT)
|
||||||
|
@ -1328,6 +1336,7 @@ static void mdss_dp_audio_setup_audio_infoframe_sdp(struct dss_io_data *ctrl_io)
|
||||||
|
|
||||||
/* Config header and parity byte 3 */
|
/* Config header and parity byte 3 */
|
||||||
value = readl_relaxed(ctrl_io->base + MMSS_DP_AUDIO_INFOFRAME_1);
|
value = readl_relaxed(ctrl_io->base + MMSS_DP_AUDIO_INFOFRAME_1);
|
||||||
|
value &= 0x0000ffff;
|
||||||
new_value = (0x0 | (0x11 << 2));
|
new_value = (0x0 | (0x11 << 2));
|
||||||
parity_byte = mdss_dp_calculate_parity_byte(new_value);
|
parity_byte = mdss_dp_calculate_parity_byte(new_value);
|
||||||
value |= ((new_value << HEADER_BYTE_3_BIT)
|
value |= ((new_value << HEADER_BYTE_3_BIT)
|
||||||
|
@ -1349,6 +1358,7 @@ static void mdss_dp_audio_setup_copy_management_sdp(struct dss_io_data *ctrl_io)
|
||||||
/* Config header and parity byte 1 */
|
/* Config header and parity byte 1 */
|
||||||
value = readl_relaxed(ctrl_io->base +
|
value = readl_relaxed(ctrl_io->base +
|
||||||
MMSS_DP_AUDIO_COPYMANAGEMENT_0);
|
MMSS_DP_AUDIO_COPYMANAGEMENT_0);
|
||||||
|
value &= 0x0000ffff;
|
||||||
new_value = 0x05;
|
new_value = 0x05;
|
||||||
parity_byte = mdss_dp_calculate_parity_byte(new_value);
|
parity_byte = mdss_dp_calculate_parity_byte(new_value);
|
||||||
value |= ((new_value << HEADER_BYTE_1_BIT)
|
value |= ((new_value << HEADER_BYTE_1_BIT)
|
||||||
|
@ -1361,6 +1371,7 @@ static void mdss_dp_audio_setup_copy_management_sdp(struct dss_io_data *ctrl_io)
|
||||||
/* Config header and parity byte 2 */
|
/* Config header and parity byte 2 */
|
||||||
value = readl_relaxed(ctrl_io->base +
|
value = readl_relaxed(ctrl_io->base +
|
||||||
MMSS_DP_AUDIO_COPYMANAGEMENT_1);
|
MMSS_DP_AUDIO_COPYMANAGEMENT_1);
|
||||||
|
value &= 0xffff0000;
|
||||||
new_value = 0x0F;
|
new_value = 0x0F;
|
||||||
parity_byte = mdss_dp_calculate_parity_byte(new_value);
|
parity_byte = mdss_dp_calculate_parity_byte(new_value);
|
||||||
value |= ((new_value << HEADER_BYTE_2_BIT)
|
value |= ((new_value << HEADER_BYTE_2_BIT)
|
||||||
|
@ -1373,6 +1384,7 @@ static void mdss_dp_audio_setup_copy_management_sdp(struct dss_io_data *ctrl_io)
|
||||||
/* Config header and parity byte 3 */
|
/* Config header and parity byte 3 */
|
||||||
value = readl_relaxed(ctrl_io->base +
|
value = readl_relaxed(ctrl_io->base +
|
||||||
MMSS_DP_AUDIO_COPYMANAGEMENT_1);
|
MMSS_DP_AUDIO_COPYMANAGEMENT_1);
|
||||||
|
value &= 0x0000ffff;
|
||||||
new_value = 0x0;
|
new_value = 0x0;
|
||||||
parity_byte = mdss_dp_calculate_parity_byte(new_value);
|
parity_byte = mdss_dp_calculate_parity_byte(new_value);
|
||||||
value |= ((new_value << HEADER_BYTE_3_BIT)
|
value |= ((new_value << HEADER_BYTE_3_BIT)
|
||||||
|
@ -1398,6 +1410,7 @@ static void mdss_dp_audio_setup_isrc_sdp(struct dss_io_data *ctrl_io)
|
||||||
|
|
||||||
/* Config header and parity byte 1 */
|
/* Config header and parity byte 1 */
|
||||||
value = readl_relaxed(ctrl_io->base + MMSS_DP_AUDIO_ISRC_0);
|
value = readl_relaxed(ctrl_io->base + MMSS_DP_AUDIO_ISRC_0);
|
||||||
|
value &= 0x0000ffff;
|
||||||
new_value = 0x06;
|
new_value = 0x06;
|
||||||
parity_byte = mdss_dp_calculate_parity_byte(new_value);
|
parity_byte = mdss_dp_calculate_parity_byte(new_value);
|
||||||
value |= ((new_value << HEADER_BYTE_1_BIT)
|
value |= ((new_value << HEADER_BYTE_1_BIT)
|
||||||
|
@ -1408,6 +1421,7 @@ static void mdss_dp_audio_setup_isrc_sdp(struct dss_io_data *ctrl_io)
|
||||||
|
|
||||||
/* Config header and parity byte 2 */
|
/* Config header and parity byte 2 */
|
||||||
value = readl_relaxed(ctrl_io->base + MMSS_DP_AUDIO_ISRC_1);
|
value = readl_relaxed(ctrl_io->base + MMSS_DP_AUDIO_ISRC_1);
|
||||||
|
value &= 0xffff0000;
|
||||||
new_value = 0x0F;
|
new_value = 0x0F;
|
||||||
parity_byte = mdss_dp_calculate_parity_byte(new_value);
|
parity_byte = mdss_dp_calculate_parity_byte(new_value);
|
||||||
value |= ((new_value << HEADER_BYTE_2_BIT)
|
value |= ((new_value << HEADER_BYTE_2_BIT)
|
||||||
|
|
Loading…
Add table
Reference in a new issue