Re:Re: [PATCH] drm/amd/display: optimize code runtime a bit
From: Alex Deucher Date: 2020-09-22 03:33:20 To: Bernard Zhao Cc: Harry Wentland ,Leo Li ,Alex Deucher ,"Christian König" ,David Airlie ,Daniel Vetter ,Rodrigo Siqueira ,Jun Lei ,Aric Cyr ,Wenjing Liu ,abdoulaye berthe ,Michael Strauss ,Brandon Syu ,Martin Leung ,amd-gfx list ,Maling list - DRI developers ,LKML ,opensource.ker...@vivo.com Subject: Re: [PATCH] drm/amd/display: optimize code runtime a bit>On Mon, Sep 21, 2020 at 9:14 AM Bernard Zhao wrote: >> >> Static function dal_ddc_i2c_payloads_destroy is only called >> in dal_ddc_service_query_ddc_data, the parameter is &payloads >> , there is no point NULL risk, so no need to check. >> This change is to make the code run a bit fast. >> > >How about just getting rid of dal_ddc_i2c_payloads_destroy() and just >call dal_vector_destruct() directly. Good idea, I will resubmit a patch, thanks! BR//Bernard >Alex > > >> Signed-off-by: Bernard Zhao >> --- >> drivers/gpu/drm/amd/display/dc/core/dc_link_ddc.c | 3 --- >> 1 file changed, 3 deletions(-) >> >> diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link_ddc.c >> b/drivers/gpu/drm/amd/display/dc/core/dc_link_ddc.c >> index b984eecca58b..6dcc666738fc 100644 >> --- a/drivers/gpu/drm/amd/display/dc/core/dc_link_ddc.c >> +++ b/drivers/gpu/drm/amd/display/dc/core/dc_link_ddc.c >> @@ -150,9 +150,6 @@ static uint32_t dal_ddc_i2c_payloads_get_count(struct >> i2c_payloads *p) >> >> static void dal_ddc_i2c_payloads_destroy(struct i2c_payloads *p) >> { >> - if (!p) >> - return; >> - >> dal_vector_destruct(&p->payloads); >> } >> >> -- >> 2.28.0 >> >> ___ >> amd-gfx mailing list >> amd-...@lists.freedesktop.org >> https://lists.freedesktop.org/mailman/listinfo/amd-gfx ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
[PATCH] drm/amd/display: optimize code runtime a bit
Static function dal_ddc_i2c_payloads_destroy is only called in dal_ddc_service_query_ddc_data, the parameter is &payloads , there is no point NULL risk, so no need to check. This change is to make the code run a bit fast. Signed-off-by: Bernard Zhao --- drivers/gpu/drm/amd/display/dc/core/dc_link_ddc.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link_ddc.c b/drivers/gpu/drm/amd/display/dc/core/dc_link_ddc.c index b984eecca58b..6dcc666738fc 100644 --- a/drivers/gpu/drm/amd/display/dc/core/dc_link_ddc.c +++ b/drivers/gpu/drm/amd/display/dc/core/dc_link_ddc.c @@ -150,9 +150,6 @@ static uint32_t dal_ddc_i2c_payloads_get_count(struct i2c_payloads *p) static void dal_ddc_i2c_payloads_destroy(struct i2c_payloads *p) { - if (!p) - return; - dal_vector_destruct(&p->payloads); } -- 2.28.0 ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH] drm/amd/display: optimize code runtime a bit
On Mon, Sep 21, 2020 at 9:14 AM Bernard Zhao wrote: > > Static function dal_ddc_i2c_payloads_destroy is only called > in dal_ddc_service_query_ddc_data, the parameter is &payloads > , there is no point NULL risk, so no need to check. > This change is to make the code run a bit fast. > How about just getting rid of dal_ddc_i2c_payloads_destroy() and just call dal_vector_destruct() directly. Alex > Signed-off-by: Bernard Zhao > --- > drivers/gpu/drm/amd/display/dc/core/dc_link_ddc.c | 3 --- > 1 file changed, 3 deletions(-) > > diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link_ddc.c > b/drivers/gpu/drm/amd/display/dc/core/dc_link_ddc.c > index b984eecca58b..6dcc666738fc 100644 > --- a/drivers/gpu/drm/amd/display/dc/core/dc_link_ddc.c > +++ b/drivers/gpu/drm/amd/display/dc/core/dc_link_ddc.c > @@ -150,9 +150,6 @@ static uint32_t dal_ddc_i2c_payloads_get_count(struct > i2c_payloads *p) > > static void dal_ddc_i2c_payloads_destroy(struct i2c_payloads *p) > { > - if (!p) > - return; > - > dal_vector_destruct(&p->payloads); > } > > -- > 2.28.0 > > ___ > amd-gfx mailing list > amd-...@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/amd-gfx ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH] drm/amd/display: optimize code runtime a bit
Applied. Thanks! Alex On Thu, Sep 10, 2020 at 3:23 AM Bernard Zhao wrote: > > In fnction is_cr_done & is_ch_eq_done, when done = false > happened once, no need to circle left ln_count. > This change is to make the code run a bit fast. > > Signed-off-by: Bernard Zhao > --- > drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c | 14 +- > 1 file changed, 5 insertions(+), 9 deletions(-) > > diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c > b/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c > index b2be6ad5101d..53e30be8b66a 100644 > --- a/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c > +++ b/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c > @@ -373,34 +373,30 @@ static void dpcd_set_lt_pattern_and_lane_settings( > static bool is_cr_done(enum dc_lane_count ln_count, > union lane_status *dpcd_lane_status) > { > - bool done = true; > uint32_t lane; > /*LANEx_CR_DONE bits All 1's?*/ > for (lane = 0; lane < (uint32_t)(ln_count); lane++) { > if (!dpcd_lane_status[lane].bits.CR_DONE_0) > - done = false; > + return false; > } > - return done; > - > + return true; > } > > static bool is_ch_eq_done(enum dc_lane_count ln_count, > union lane_status *dpcd_lane_status, > union lane_align_status_updated *lane_status_updated) > { > - bool done = true; > uint32_t lane; > if (!lane_status_updated->bits.INTERLANE_ALIGN_DONE) > - done = false; > + return false; > else { > for (lane = 0; lane < (uint32_t)(ln_count); lane++) { > if (!dpcd_lane_status[lane].bits.SYMBOL_LOCKED_0 || > > !dpcd_lane_status[lane].bits.CHANNEL_EQ_DONE_0) > - done = false; > + return false; > } > } > - return done; > - > + return true; > } > > static void update_drive_settings( > -- > 2.28.0 > > ___ > dri-devel mailing list > dri-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
[PATCH] drm/amd/display: optimize code runtime a bit
In fnction is_cr_done & is_ch_eq_done, when done = false happened once, no need to circle left ln_count. This change is to make the code run a bit fast. Signed-off-by: Bernard Zhao --- drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c | 14 +- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c b/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c index b2be6ad5101d..53e30be8b66a 100644 --- a/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c +++ b/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c @@ -373,34 +373,30 @@ static void dpcd_set_lt_pattern_and_lane_settings( static bool is_cr_done(enum dc_lane_count ln_count, union lane_status *dpcd_lane_status) { - bool done = true; uint32_t lane; /*LANEx_CR_DONE bits All 1's?*/ for (lane = 0; lane < (uint32_t)(ln_count); lane++) { if (!dpcd_lane_status[lane].bits.CR_DONE_0) - done = false; + return false; } - return done; - + return true; } static bool is_ch_eq_done(enum dc_lane_count ln_count, union lane_status *dpcd_lane_status, union lane_align_status_updated *lane_status_updated) { - bool done = true; uint32_t lane; if (!lane_status_updated->bits.INTERLANE_ALIGN_DONE) - done = false; + return false; else { for (lane = 0; lane < (uint32_t)(ln_count); lane++) { if (!dpcd_lane_status[lane].bits.SYMBOL_LOCKED_0 || !dpcd_lane_status[lane].bits.CHANNEL_EQ_DONE_0) - done = false; + return false; } } - return done; - + return true; } static void update_drive_settings( -- 2.28.0 ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel