[PATCH 05/12] drm/amd/display: Fix bunch of warnings in DC

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> -----Original Message-----
> From: amd-gfx [mailto:amd-gfx-bounces at lists.freedesktop.org] On Behalf
> Of Kai Wasserbäch
> Sent: Thursday, December 08, 2016 2:52 PM
> To: Wentland, Harry; amd-gfx at lists.freedesktop.org; Cheng, Tony
> Subject: Re: [PATCH 05/12] drm/amd/display: Fix bunch of warnings in DC
> 
> Harry Wentland wrote on 08.12.2016 19:58:
> > On 2016-12-08 11:58 AM, Kai Wasserbäch wrote:
> >> Harry Wentland wrote on 08.12.2016 17:36:
> >>> On 2016-12-08 11:22 AM, Kai Wasserbäch wrote:
> >>>> [Please CC me on all replies, I'm not subscribed to the list.]
> >>>>
> >>>> Harry Wentland wrote on 08.12.2016 02:26:
> >>>>> Some of those are potential bugs
> >>>> Are they related? If not: maybe split the changes up?
> >>>>
> >>>>> Change-Id: I53b2c663e18b57013e1b891fc2ecf1fb2d7d3a08
> >>>>> Signed-off-by: Harry Wentland <harry.wentland at amd.com>
> >>>>> Reviewed-by: Tony Cheng <Tony.Cheng at amd.com>
> >>>> It'd be nice to see these reviews on list... (applies to all patches here)
> >>> These patches currently start out in our internal tree with a whole lot of
> stuff
> >>> that we can't open up, like new IP, so unfortunately can't be done in a
> public
> >>> forum. I pull the r-b from our internal review system for reference when
> I
> >>> prepare the patches for public review.
> >> Hm, not nice, but not my place to tell you to change this. That's Dave's and
> >> Linus' job. ;-)
> >>
> >>>>> Acked-by: Harry Wentland <Harry.Wentland at amd.com>
> >>>>> ---
> >>>>>    .../gpu/drm/amd/display/dc/calcs/bandwidth_calcs.c |  2 +-
> >>>>>    drivers/gpu/drm/amd/display/dc/core/dc_resource.c  |  5 +--
> >>>>>    .../gpu/drm/amd/display/dc/dce/dce_clock_source.c  |  5 ---
> >>>>>    drivers/gpu/drm/amd/display/dc/dce/dce_clocks.c    | 43
> >>>>> +---------------------
> >>>>>    drivers/gpu/drm/amd/display/dc/dce/dce_transform.c |  2 -
> >>>>>    .../drm/amd/display/dc/dce110/dce110_transform_v.c |  3 +-
> >>>>>    6 files changed, 6 insertions(+), 54 deletions(-)
> >>>>>
> >>>>> diff --git a/drivers/gpu/drm/amd/display/dc/calcs/bandwidth_calcs.c
> >>>>> b/drivers/gpu/drm/amd/display/dc/calcs/bandwidth_calcs.c
> >>>>> index 0b2bb3992f1a..3b0710ef4716 100644
> >>>>> --- a/drivers/gpu/drm/amd/display/dc/calcs/bandwidth_calcs.c
> >>>>> +++ b/drivers/gpu/drm/amd/display/dc/calcs/bandwidth_calcs.c
> >>>>> @@ -1709,7 +1709,7 @@ static void calculate_bandwidth(
> >>>>>                else {
> >>>>>                    data->blackout_recovery_time =
> >>>>> bw_max2(data->blackout_recovery_time,
> bw_add(bw_mul(bw_int_to_fixed(2),
> >>>>> vbios->mcifwrmc_urgent_latency),
> >>>>> data->mcifwr_burst_time[data->y_clk_level][data->sclk_level]));
> >>>>>                    if (bw_ltn(data->adjusted_data_buffer_size[k],
> >>>>> bw_mul(bw_div(bw_mul(data->display_bandwidth[k],
> >>>>> data->useful_bytes_per_request[k]), data->bytes_per_request[k]),
> >>>>> (bw_add(vbios->blackout_duration,
> bw_add(bw_mul(bw_int_to_fixed(2),
> >>>>> vbios->mcifwrmc_urgent_latency),
> >>>>> data->mcifwr_burst_time[data->y_clk_level][data->sclk_level])))))) {
> >>>>> -                    data->blackout_recovery_time =
> >>>>> bw_max2(data->blackout_recovery_time,
> >>>>> bw_div((bw_add(bw_mul(bw_div(bw_mul(data-
> >display_bandwidth[k],
> >>>>> data->useful_bytes_per_request[k]), data->bytes_per_request[k]),
> >>>>> vbios->blackout_duration),
> >>>>>
> bw_sub(bw_div(bw_mul(bw_mul(bw_mul((bw_add(bw_add(bw_mul(bw_i
> nt_to_fixed(2),
> >>>>> vbios->mcifwrmc_urgent_latency), data->dmif_burst_time[i][j]),
> >>>>> data->mcifwr_burst_time[data->y_clk_level][data->sclk_level])),
> >>>>> data->dispclk), bw_int_to_fixed(data->bytes_per_pixel[k])),
> >>>>> data->lines_interleaved_in_mem_access[k]), data-
> >latency_hiding_lines[k]),
> >>>>> data->adjusted_data_buffer_size[k]))),
> >>>>> (bw_sub(bw_div(bw_mul(bw_mul(data->dispclk,
> >>>>> bw_int_to_fixed(data->bytes_per_pixel[k])),
> >>>>> data->lines_interleaved_in_mem_access[k]), data-
> >latency_hiding_lines[k]),
> >>>>> bw_div(bw_mul(data->display_bandwidth[k], data-
> >useful_bytes_per_request[k]),
> >>>>> data->bytes_per_request[k])))));
> >>>>> +                    data->blackout_recovery_time =
> >>>>> bw_max2(data->blackout_recovery_time,
> >>>>> bw_div((bw_add(bw_mul(bw_div(bw_mul(data-
> >display_bandwidth[k],
> >>>>> data->useful_bytes_per_request[k]), data->bytes_per_request[k]),
> >>>>> vbios->blackout_duration),
> >>>>>
> bw_sub(bw_div(bw_mul(bw_mul(bw_mul((bw_add(bw_add(bw_mul(bw_i
> nt_to_fixed(2),
> >>>>> vbios->mcifwrmc_urgent_latency),
> >>>>> data->dmif_burst_time[data->y_clk_level][data->sclk_level]),
> >>>>> data->mcifwr_burst_time[data->y_clk_level][data->sclk_level])),
> >>>>> data->dispclk), bw_int_to_fixed(data->bytes_per_pixel[k])),
> >>>>> data->lines_interleaved_in_mem_access[k]), data-
> >latency_hiding_lines[k]),
> >>>>> data->adjusted_data_buffer_size[k]))),
> >>>>> (bw_sub(bw_div(bw_mul(bw_mul(data->dispclk,
> >>>>> bw_int_to_fixed(data->bytes_per_pixel[k])),
> >>>>> data->lines_interleaved_in_mem_access[k]), data-
> >latency_hiding_lines[k]),
> >>>>> bw_div(bw_mul(data->display_bandwidth[k], data-
> >useful_bytes_per_request[k]),
> >>>>> data->bytes_per_request[k])))));
> >>>> Uhg, can this be wrapped/split up somehow? Seeing the changes is
> nigh
> >>>> impossible
> >>>> and I suspect it might even be impossible for you to check internally.
> >>> I believe this comes straight from some complicated code HW gives us
> and we use
> >>> directly. I'll see if we can somehow make this more readable or at least
> add a
> >>> comment, as you mention below.
> >> That would be really appreciated. I mean, I'm in no way able to review
> >> DAL/Display thoroughly (huge code base I'm not familiar with and where I
> might
> >> easily miss interactions), but this is just not reviewable/verifiable at all for
> >> any person outside your inner circle.
> > I followed up with Tony, who's been working with HW guys to get them to
> share
> > this code with us. Unfortunately there isn't much we can do in the way of
> > changing this code.
> 
> That's rather unfortunate, that not even reformatting into an easier to read
> format is possible (though I do not really understand why, beyond "it takes
> work"); maybe the comment showing the formula in an easier to read form
> can be
> done then?

IIRC, this code is machine generated by the hw team.  We've been down this road with them before.  Unfortunately, it hasn't been a high enough priority for them to get around to it.  We don't really have insight into it at the moment to know how much work it would be.

Alex



[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux