Message ID | 20230829184735.2841739-4-swboyd@chromium.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/msm/dp: Simplify DPCD related code with helpers | expand |
On 8/29/2023 11:47 AM, Stephen Boyd wrote: > We read the downstream port count and capability info but never use it > anywhere. Remove 'ds_port_cnt' and 'ds_cap_info' and any associated code > from this driver. Fold the check for 'dfp_present' into a call to > drm_dp_is_branch() at the one place it is used to get rid of any member > storage related to downstream ports. > > Cc: Vinod Polimera <quic_vpolimer@quicinc.com> > Cc: Kuogee Hsieh <quic_khsieh@quicinc.com> > Signed-off-by: Stephen Boyd <swboyd@chromium.org> Tested-by: Kuogee Hsieh <quic_khsieh@quicinc.com> Reviewed-by: Kuogee Hsieh <quic_khsieh@quicinc.com> > --- > drivers/gpu/drm/msm/dp/dp_panel.c | 25 +++---------------------- > drivers/gpu/drm/msm/dp/dp_panel.h | 6 ------ > 2 files changed, 3 insertions(+), 28 deletions(-) > > diff --git a/drivers/gpu/drm/msm/dp/dp_panel.c b/drivers/gpu/drm/msm/dp/dp_panel.c > index a0523b18b9e9..9fb4e963fefb 100644 > --- a/drivers/gpu/drm/msm/dp/dp_panel.c > +++ b/drivers/gpu/drm/msm/dp/dp_panel.c > @@ -43,9 +43,7 @@ static void dp_panel_read_psr_cap(struct dp_panel_private *panel) > > static int dp_panel_read_dpcd(struct dp_panel *dp_panel) > { > - int rc = 0; > - size_t len; > - ssize_t rlen; > + int rc; > struct dp_panel_private *panel; > struct dp_link_info *link_info; > u8 *dpcd, major, minor; > @@ -79,25 +77,8 @@ static int dp_panel_read_dpcd(struct dp_panel *dp_panel) > if (drm_dp_enhanced_frame_cap(dpcd)) > link_info->capabilities |= DP_LINK_CAP_ENHANCED_FRAMING; > > - dp_panel->dfp_present = dpcd[DP_DOWNSTREAMPORT_PRESENT]; > - dp_panel->dfp_present &= DP_DWN_STRM_PORT_PRESENT; > - > - if (dp_panel->dfp_present && (dpcd[DP_DPCD_REV] > 0x10)) { > - dp_panel->ds_port_cnt = dpcd[DP_DOWN_STREAM_PORT_COUNT]; > - dp_panel->ds_port_cnt &= DP_PORT_COUNT_MASK; > - len = DP_DOWNSTREAM_PORTS * DP_DOWNSTREAM_CAP_SIZE; > - > - rlen = drm_dp_dpcd_read(panel->aux, > - DP_DOWNSTREAM_PORT_0, dp_panel->ds_cap_info, len); > - if (rlen < len) { > - DRM_ERROR("ds port status failed, rlen=%zd\n", rlen); > - rc = -EINVAL; > - goto end; > - } > - } > - > dp_panel_read_psr_cap(panel); > -end: > + > return rc; > } > > @@ -173,7 +154,7 @@ int dp_panel_read_sink_caps(struct dp_panel *dp_panel, > return -EINVAL; > } > > - if (dp_panel->dfp_present) { > + if (drm_dp_is_branch(dp_panel->dpcd)) { > count = drm_dp_read_sink_count(panel->aux); > if (!count) { > DRM_ERROR("no downstream ports connected\n"); > diff --git a/drivers/gpu/drm/msm/dp/dp_panel.h b/drivers/gpu/drm/msm/dp/dp_panel.h > index 6d733480a62d..3cb1f8dcfd3b 100644 > --- a/drivers/gpu/drm/msm/dp/dp_panel.h > +++ b/drivers/gpu/drm/msm/dp/dp_panel.h > @@ -13,9 +13,6 @@ > > struct edid; > > -#define DP_DOWNSTREAM_PORTS 4 > -#define DP_DOWNSTREAM_CAP_SIZE 4 > - > struct dp_display_mode { > struct drm_display_mode drm_mode; > u32 capabilities; > @@ -39,9 +36,6 @@ struct dp_panel_psr { > struct dp_panel { > /* dpcd raw data */ > u8 dpcd[DP_RECEIVER_CAP_SIZE]; > - u8 ds_cap_info[DP_DOWNSTREAM_PORTS * DP_DOWNSTREAM_CAP_SIZE]; > - u32 ds_port_cnt; > - u32 dfp_present; > > struct dp_link_info link_info; > struct drm_dp_desc desc;
On 8/29/2023 11:47 AM, Stephen Boyd wrote: > We read the downstream port count and capability info but never use it > anywhere. Remove 'ds_port_cnt' and 'ds_cap_info' and any associated code > from this driver. Fold the check for 'dfp_present' into a call to > drm_dp_is_branch() at the one place it is used to get rid of any member > storage related to downstream ports. > > Cc: Vinod Polimera <quic_vpolimer@quicinc.com> > Cc: Kuogee Hsieh <quic_khsieh@quicinc.com> > Signed-off-by: Stephen Boyd <swboyd@chromium.org> Tested-by: Kuogee Hsieh <quic_khsieh@quicinc.com> Reviewed-by: Kuogee Hsieh <quic_khsieh@quicinc.com> > --- > drivers/gpu/drm/msm/dp/dp_panel.c | 25 +++---------------------- > drivers/gpu/drm/msm/dp/dp_panel.h | 6 ------ > 2 files changed, 3 insertions(+), 28 deletions(-) > > diff --git a/drivers/gpu/drm/msm/dp/dp_panel.c b/drivers/gpu/drm/msm/dp/dp_panel.c > index a0523b18b9e9..9fb4e963fefb 100644 > --- a/drivers/gpu/drm/msm/dp/dp_panel.c > +++ b/drivers/gpu/drm/msm/dp/dp_panel.c > @@ -43,9 +43,7 @@ static void dp_panel_read_psr_cap(struct dp_panel_private *panel) > > static int dp_panel_read_dpcd(struct dp_panel *dp_panel) > { > - int rc = 0; > - size_t len; > - ssize_t rlen; > + int rc; > struct dp_panel_private *panel; > struct dp_link_info *link_info; > u8 *dpcd, major, minor; > @@ -79,25 +77,8 @@ static int dp_panel_read_dpcd(struct dp_panel *dp_panel) > if (drm_dp_enhanced_frame_cap(dpcd)) > link_info->capabilities |= DP_LINK_CAP_ENHANCED_FRAMING; > > - dp_panel->dfp_present = dpcd[DP_DOWNSTREAMPORT_PRESENT]; > - dp_panel->dfp_present &= DP_DWN_STRM_PORT_PRESENT; > - > - if (dp_panel->dfp_present && (dpcd[DP_DPCD_REV] > 0x10)) { > - dp_panel->ds_port_cnt = dpcd[DP_DOWN_STREAM_PORT_COUNT]; > - dp_panel->ds_port_cnt &= DP_PORT_COUNT_MASK; > - len = DP_DOWNSTREAM_PORTS * DP_DOWNSTREAM_CAP_SIZE; > - > - rlen = drm_dp_dpcd_read(panel->aux, > - DP_DOWNSTREAM_PORT_0, dp_panel->ds_cap_info, len); > - if (rlen < len) { > - DRM_ERROR("ds port status failed, rlen=%zd\n", rlen); > - rc = -EINVAL; > - goto end; > - } > - } > - > dp_panel_read_psr_cap(panel); > -end: > + > return rc; > } > > @@ -173,7 +154,7 @@ int dp_panel_read_sink_caps(struct dp_panel *dp_panel, > return -EINVAL; > } > > - if (dp_panel->dfp_present) { > + if (drm_dp_is_branch(dp_panel->dpcd)) { > count = drm_dp_read_sink_count(panel->aux); > if (!count) { > DRM_ERROR("no downstream ports connected\n"); > diff --git a/drivers/gpu/drm/msm/dp/dp_panel.h b/drivers/gpu/drm/msm/dp/dp_panel.h > index 6d733480a62d..3cb1f8dcfd3b 100644 > --- a/drivers/gpu/drm/msm/dp/dp_panel.h > +++ b/drivers/gpu/drm/msm/dp/dp_panel.h > @@ -13,9 +13,6 @@ > > struct edid; > > -#define DP_DOWNSTREAM_PORTS 4 > -#define DP_DOWNSTREAM_CAP_SIZE 4 > - > struct dp_display_mode { > struct drm_display_mode drm_mode; > u32 capabilities; > @@ -39,9 +36,6 @@ struct dp_panel_psr { > struct dp_panel { > /* dpcd raw data */ > u8 dpcd[DP_RECEIVER_CAP_SIZE]; > - u8 ds_cap_info[DP_DOWNSTREAM_PORTS * DP_DOWNSTREAM_CAP_SIZE]; > - u32 ds_port_cnt; > - u32 dfp_present; > > struct dp_link_info link_info; > struct drm_dp_desc desc;
On 29/08/2023 21:47, Stephen Boyd wrote: > We read the downstream port count and capability info but never use it > anywhere. Remove 'ds_port_cnt' and 'ds_cap_info' and any associated code > from this driver. Fold the check for 'dfp_present' into a call to > drm_dp_is_branch() at the one place it is used to get rid of any member > storage related to downstream ports. > > Cc: Vinod Polimera <quic_vpolimer@quicinc.com> > Cc: Kuogee Hsieh <quic_khsieh@quicinc.com> > Signed-off-by: Stephen Boyd <swboyd@chromium.org> > --- > drivers/gpu/drm/msm/dp/dp_panel.c | 25 +++---------------------- > drivers/gpu/drm/msm/dp/dp_panel.h | 6 ------ > 2 files changed, 3 insertions(+), 28 deletions(-) Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
diff --git a/drivers/gpu/drm/msm/dp/dp_panel.c b/drivers/gpu/drm/msm/dp/dp_panel.c index a0523b18b9e9..9fb4e963fefb 100644 --- a/drivers/gpu/drm/msm/dp/dp_panel.c +++ b/drivers/gpu/drm/msm/dp/dp_panel.c @@ -43,9 +43,7 @@ static void dp_panel_read_psr_cap(struct dp_panel_private *panel) static int dp_panel_read_dpcd(struct dp_panel *dp_panel) { - int rc = 0; - size_t len; - ssize_t rlen; + int rc; struct dp_panel_private *panel; struct dp_link_info *link_info; u8 *dpcd, major, minor; @@ -79,25 +77,8 @@ static int dp_panel_read_dpcd(struct dp_panel *dp_panel) if (drm_dp_enhanced_frame_cap(dpcd)) link_info->capabilities |= DP_LINK_CAP_ENHANCED_FRAMING; - dp_panel->dfp_present = dpcd[DP_DOWNSTREAMPORT_PRESENT]; - dp_panel->dfp_present &= DP_DWN_STRM_PORT_PRESENT; - - if (dp_panel->dfp_present && (dpcd[DP_DPCD_REV] > 0x10)) { - dp_panel->ds_port_cnt = dpcd[DP_DOWN_STREAM_PORT_COUNT]; - dp_panel->ds_port_cnt &= DP_PORT_COUNT_MASK; - len = DP_DOWNSTREAM_PORTS * DP_DOWNSTREAM_CAP_SIZE; - - rlen = drm_dp_dpcd_read(panel->aux, - DP_DOWNSTREAM_PORT_0, dp_panel->ds_cap_info, len); - if (rlen < len) { - DRM_ERROR("ds port status failed, rlen=%zd\n", rlen); - rc = -EINVAL; - goto end; - } - } - dp_panel_read_psr_cap(panel); -end: + return rc; } @@ -173,7 +154,7 @@ int dp_panel_read_sink_caps(struct dp_panel *dp_panel, return -EINVAL; } - if (dp_panel->dfp_present) { + if (drm_dp_is_branch(dp_panel->dpcd)) { count = drm_dp_read_sink_count(panel->aux); if (!count) { DRM_ERROR("no downstream ports connected\n"); diff --git a/drivers/gpu/drm/msm/dp/dp_panel.h b/drivers/gpu/drm/msm/dp/dp_panel.h index 6d733480a62d..3cb1f8dcfd3b 100644 --- a/drivers/gpu/drm/msm/dp/dp_panel.h +++ b/drivers/gpu/drm/msm/dp/dp_panel.h @@ -13,9 +13,6 @@ struct edid; -#define DP_DOWNSTREAM_PORTS 4 -#define DP_DOWNSTREAM_CAP_SIZE 4 - struct dp_display_mode { struct drm_display_mode drm_mode; u32 capabilities; @@ -39,9 +36,6 @@ struct dp_panel_psr { struct dp_panel { /* dpcd raw data */ u8 dpcd[DP_RECEIVER_CAP_SIZE]; - u8 ds_cap_info[DP_DOWNSTREAM_PORTS * DP_DOWNSTREAM_CAP_SIZE]; - u32 ds_port_cnt; - u32 dfp_present; struct dp_link_info link_info; struct drm_dp_desc desc;
We read the downstream port count and capability info but never use it anywhere. Remove 'ds_port_cnt' and 'ds_cap_info' and any associated code from this driver. Fold the check for 'dfp_present' into a call to drm_dp_is_branch() at the one place it is used to get rid of any member storage related to downstream ports. Cc: Vinod Polimera <quic_vpolimer@quicinc.com> Cc: Kuogee Hsieh <quic_khsieh@quicinc.com> Signed-off-by: Stephen Boyd <swboyd@chromium.org> --- drivers/gpu/drm/msm/dp/dp_panel.c | 25 +++---------------------- drivers/gpu/drm/msm/dp/dp_panel.h | 6 ------ 2 files changed, 3 insertions(+), 28 deletions(-)