disp: msm: dp: add debug node to capture source and sink crc
This change adds a debug node named 'crc' to drm_dp to read the frame CRC values for DP controller and DP Sink. In order to facilitate the immediate read of the CRC values when accessed, it enables the CRC calculation on the controller and sink automatically when the stream is enabled. In addition to the frame CRC values it also reads the MISR values from controller and PHY to validate the data flow from controller to PHY. Change-Id: I1acee2dba931e4635caf4a400e336a72c86e88bf Signed-off-by: Rajkumar Subbiah <quic_rsubbia@quicinc.com>
This commit is contained in:

zatwierdzone przez
Gerrit - the friendly Code Review server

rodzic
51775dd093
commit
7eef92843d
@@ -1308,6 +1308,7 @@ static int dp_ctrl_stream_on(struct dp_ctrl *dp_ctrl, struct dp_panel *panel)
|
||||
/* wait for link training completion before fec config as per spec */
|
||||
dp_ctrl_fec_setup(ctrl);
|
||||
dp_ctrl_dsc_setup(ctrl, panel);
|
||||
panel->sink_crc_enable(panel, true);
|
||||
|
||||
return rc;
|
||||
}
|
||||
@@ -1515,6 +1516,30 @@ void dp_ctrl_set_sim_mode(struct dp_ctrl *dp_ctrl, bool en)
|
||||
DP_INFO("sim_mode=%d\n", ctrl->sim_mode);
|
||||
}
|
||||
|
||||
int dp_ctrl_setup_misr(struct dp_ctrl *dp_ctrl)
|
||||
{
|
||||
struct dp_ctrl_private *ctrl;
|
||||
|
||||
if (!dp_ctrl)
|
||||
return -EINVAL;
|
||||
|
||||
ctrl = container_of(dp_ctrl, struct dp_ctrl_private, dp_ctrl);
|
||||
|
||||
return ctrl->catalog->setup_misr(ctrl->catalog);
|
||||
}
|
||||
|
||||
int dp_ctrl_read_misr(struct dp_ctrl *dp_ctrl, struct dp_misr40_data *data)
|
||||
{
|
||||
struct dp_ctrl_private *ctrl;
|
||||
|
||||
if (!dp_ctrl)
|
||||
return -EINVAL;
|
||||
|
||||
ctrl = container_of(dp_ctrl, struct dp_ctrl_private, dp_ctrl);
|
||||
|
||||
return ctrl->catalog->read_misr(ctrl->catalog, data);
|
||||
}
|
||||
|
||||
struct dp_ctrl *dp_ctrl_get(struct dp_ctrl_in *in)
|
||||
{
|
||||
int rc = 0;
|
||||
@@ -1565,6 +1590,8 @@ struct dp_ctrl *dp_ctrl_get(struct dp_ctrl_in *in)
|
||||
dp_ctrl->stream_pre_off = dp_ctrl_stream_pre_off;
|
||||
dp_ctrl->set_mst_channel_info = dp_ctrl_set_mst_channel_info;
|
||||
dp_ctrl->set_sim_mode = dp_ctrl_set_sim_mode;
|
||||
dp_ctrl->setup_misr = dp_ctrl_setup_misr;
|
||||
dp_ctrl->read_misr = dp_ctrl_read_misr;
|
||||
|
||||
return dp_ctrl;
|
||||
error:
|
||||
|
Reference in New Issue
Block a user