[Why]
The RAD of sideband message printed today is incorrect.
For RAD stored within MST branch
- If MST branch LCT is 1, it's RAD array is untouched and remained as 0.
- If MST branch LCT is larger than 1, use nibble to store the up facing
port number in cascaded sequence as illustrated below:
u8 RAD[0] = (LCT_2_UFP << 4) | LCT_3_UFP
RAD[1] = (LCT_4_UFP << 4) | LCT_5_UFP
...
In drm_dp_mst_rad_to_str(), it wrongly to use BIT_MASK(4) to fetch the port
number of one nibble.
[How]
Adjust the code by:
- RAD array items are valuable only for LCT >= 1.
- Use 0xF as the mask to replace BIT_MASK(4)
V2:
- Document how RAD is constructed (Imre)
V3:
- Adjust the comment for rad[] so kdoc formats it properly (Lyude)
Fixes:
|
||
|---|---|---|
| .. | ||
| drm_dp.h | ||
| drm_dp_aux_bus.h | ||
| drm_dp_dual_mode_helper.h | ||
| drm_dp_helper.h | ||
| drm_dp_mst_helper.h | ||
| drm_dp_tunnel.h | ||
| drm_dsc.h | ||
| drm_dsc_helper.h | ||
| drm_hdcp.h | ||
| drm_hdcp_helper.h | ||
| drm_hdmi_audio_helper.h | ||
| drm_hdmi_helper.h | ||
| drm_hdmi_state_helper.h | ||
| drm_scdc.h | ||
| drm_scdc_helper.h | ||