Quoting Kuogee Hsieh (2022-01-06 12:44:54) > DP CTS test case 4.2.2.6 has valid edid with bad checksum on purpose > and expect DP source return correct checksum. During drm edid read, > correct edid checksum is calculated and stored at > connector::real_edid_checksum. > > The problem is struct dp_panel::connector never be assigned, instead the > connector is stored in struct msm_dp::connector. When we run compliance > testing test case 4.2.2.6 dp_panel_handle_sink_request() won't have a valid > edid set in struct dp_panel::edid so we'll try to use the connectors > real_edid_checksum and hit a NULL pointer dereference error because the > connector pointer is never assigned. > > Changes in V2: > -- populate panel connector at msm_dp_modeset_init() instead of at dp_panel_read_sink_caps() > > Changes in V3: > -- remove unhelpful kernel crash trace commit text > -- remove renaming dp_display parameter to dp > > Changes in V4: > -- add more details to commit text > > Fixes: 7948fe12d47 ("drm/msm/dp: return correct edid checksum after corrupted edid checksum read") > Signee-off-by: Kuogee Hsieh <quic_khsieh@xxxxxxxxxxx> > --- Reviewed-by: Stephen Boyd <swboyd@xxxxxxxxxxxx>