diff mbox

drivers/gpu/drm/i915/intel_pm.c:4467: bad comparison ?

Message ID a79d1142-6a97-dba6-0652-0258488c789c@linux.intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Maarten Lankhorst July 17, 2017, 10:31 a.m. UTC
Op 17-07-17 om 12:32 schreef Mahesh Kumar:
> Hi,
>
>
> On Monday 17 July 2017 03:22 PM, Jani Nikula wrote:
>> On Mon, 17 Jul 2017, David Binderman <dcb314@hotmail.com> wrote:
>>> Hello there,
>> Hello. No need to include LKML for stuff like this. But Cc'd the folks
>> from the broken commit.
>>
>>> drivers/gpu/drm/i915/intel_pm.c:4467]: (warning) Comparison of a boolean expression with an integer other than 0 or 1.
>>>
>>> Source code is
>>>
>>>          else if ((ddb_allocation && ddb_allocation /
>>>              fixed_16_16_to_u32_round_up(plane_blocks_per_line)) >= 1)
> ddb_allocation being integer was intentional.
> Other than that code has improper parentheses as well.
> intention was if ddb_allocation is not 0 & (ddb_allocation / plane_blocks_per_line >= 1) then execute the condition.
> it should have been
>     else if (ddb_allocation && (ddb_allocation / fixed_16_16_to_u32_round_up(plane_blocks_per_line) >= 1))
>
> will post a fix.
>
> thanks.
>
> -Mahesh
>> Broken by
>>
>> commit d555cb5827d603244969e08444340e3db78c8a37
>> Author: Kumar, Mahesh <mahesh1.kumar@intel.com>
>> Date:   Wed May 17 17:28:29 2017 +0530
>>
>>      drm/i915/skl+: use linetime latency if ddb size is not available
>>
>> The broken code has since been removed by bb9d85f6e9de ("drm/i915/skl:
>> New ddb allocation algorithm") but restored by 9a30a26122c3 ("Revert
>> "drm/i915/skl: New ddb allocation algorithm""). *sigh*.
>>
>> Mahesh et al, please figure it out.
>>
>>
>> BR,
>> Jani.
>>
>>
>
Would this work?

Comments

Kumar, Mahesh July 17, 2017, 10:40 a.m. UTC | #1
Hi,


On Monday 17 July 2017 04:01 PM, Maarten Lankhorst wrote:
> Op 17-07-17 om 12:32 schreef Mahesh Kumar:
>> Hi,
>>
>>
>> On Monday 17 July 2017 03:22 PM, Jani Nikula wrote:
>>> On Mon, 17 Jul 2017, David Binderman <dcb314@hotmail.com> wrote:
>>>> Hello there,
>>> Hello. No need to include LKML for stuff like this. But Cc'd the folks
>>> from the broken commit.
>>>
>>>> drivers/gpu/drm/i915/intel_pm.c:4467]: (warning) Comparison of a boolean expression with an integer other than 0 or 1.
>>>>
>>>> Source code is
>>>>
>>>>           else if ((ddb_allocation && ddb_allocation /
>>>>               fixed_16_16_to_u32_round_up(plane_blocks_per_line)) >= 1)
>> ddb_allocation being integer was intentional.
>> Other than that code has improper parentheses as well.
>> intention was if ddb_allocation is not 0 & (ddb_allocation / plane_blocks_per_line >= 1) then execute the condition.
>> it should have been
>>      else if (ddb_allocation && (ddb_allocation / fixed_16_16_to_u32_round_up(plane_blocks_per_line) >= 1))
>>
>> will post a fix.
>>
>> thanks.
>>
>> -Mahesh
>>> Broken by
>>>
>>> commit d555cb5827d603244969e08444340e3db78c8a37
>>> Author: Kumar, Mahesh <mahesh1.kumar@intel.com>
>>> Date:   Wed May 17 17:28:29 2017 +0530
>>>
>>>       drm/i915/skl+: use linetime latency if ddb size is not available
>>>
>>> The broken code has since been removed by bb9d85f6e9de ("drm/i915/skl:
>>> New ddb allocation algorithm") but restored by 9a30a26122c3 ("Revert
>>> "drm/i915/skl: New ddb allocation algorithm""). *sigh*.
>>>
>>> Mahesh et al, please figure it out.
>>>
>>>
>>> BR,
>>> Jani.
>>>
>>>
> Would this work?
>
> diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
> index 78b9acfc64c0..b9b3d8d45016 100644
> --- a/drivers/gpu/drm/i915/intel_pm.c
> +++ b/drivers/gpu/drm/i915/intel_pm.c
> @@ -4681,8 +4681,8 @@ static int skl_compute_plane_wm(const struct drm_i915_private *dev_priv,
>   		if ((cpp * cstate->base.adjusted_mode.crtc_htotal / 512 < 1) &&
>   		    (plane_bytes_per_line / 512 < 1))
>   			selected_result = method2;
> -		else if ((ddb_allocation && ddb_allocation /
> -			fixed_16_16_to_u32_round_up(plane_blocks_per_line)) >= 1)
> +		else if (ddb_allocation >=
> +			 fixed_16_16_to_u32_round_up(plane_blocks_per_line))
yes, this would even simplify the condition :)
-Mahesh
>   			selected_result = min_fixed_16_16(method1, method2);
>   		else if (latency >= linetime_us)
>   			selected_result = min_fixed_16_16(method1, method2);
>
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index 78b9acfc64c0..b9b3d8d45016 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -4681,8 +4681,8 @@  static int skl_compute_plane_wm(const struct drm_i915_private *dev_priv,
 		if ((cpp * cstate->base.adjusted_mode.crtc_htotal / 512 < 1) &&
 		    (plane_bytes_per_line / 512 < 1))
 			selected_result = method2;
-		else if ((ddb_allocation && ddb_allocation /
-			fixed_16_16_to_u32_round_up(plane_blocks_per_line)) >= 1)
+		else if (ddb_allocation >=
+			 fixed_16_16_to_u32_round_up(plane_blocks_per_line))
 			selected_result = min_fixed_16_16(method1, method2);
 		else if (latency >= linetime_us)
 			selected_result = min_fixed_16_16(method1, method2);