[Intel-gfx] [PATCH 0/4] drm/i915: Clean up crtc state flag checks

Jani Nikula jani.nikula at linux.intel.com
Thu Oct 20 15:02:06 UTC 2022


On Thu, 20 Oct 2022, Ville Syrjälä <ville.syrjala at linux.intel.com> wrote:
> On Thu, Oct 20, 2022 at 04:45:55PM +0300, Jani Nikula wrote:
>> On Thu, 20 Oct 2022, Ville Syrjala <ville.syrjala at linux.intel.com> wrote:
>> > From: Ville Syrjälä <ville.syrjala at linux.intel.com>
>> >
>> > Some cleanups for checking whether the crtc was flagged for
>> > modesets/fastsets/color update.
>> 
>> I wish we could avoid piling more static inlines in
>> intel_display_types.h, but the clarity added here is great.
>
> I mainly put them there since the first one was already there.
> Dunno if the function call overhead would really be measurable,
> even though we do use these a lot. Should measure it on some
> real slouch of a machine I guess.

Well, I think some things can be static inlines just fine. In
particular, static inlines that don't require pulling in *extra* headers
are largely just fine. But as soon as you need to look at e.g. struct
drm_i915_private, you're toast. The ones added here only need the
definition of struct intel_crtc_state which is right there.

In this case, I'm more worried about the general bloating of
intel_display_types.h. And it's not even all that bad with these
patches, just piling more stuff little by little.

So I wonder if we could have intel_crtc_state.h defining just struct
intel_crtc_state and maybe some things only contained within it.

I've found one of the biggest obstacles to splitting more stuff is
actually the enums. A lot of places need the last _MAX and _NUM
enumerators for defining member array sizes. Ditto with
intel_crtc_state.

I've toyed with having intel_display_limits.h with just the limits as
#defines and separate build checks to match the enum max. I've also
toyed with having intel_display_enums.h with just the enums, so we keep
single point of truth but avoid including a lot of unnecessary stuff
from intel_display.h and intel_display_types.h. Got some patches, but
didn't get too far.

A lot of random rambling here, but does not impact the patches at hand.


BR,
Jani.




>
>> 
>> On the series,
>> 
>> Reviewed-by: Jani Nikula <jani.nikula at intel.com>
>
> Thanks.
>
>> 
>> >
>> > Ville Syrjälä (4):
>> >   drm/i915: Introduce intel_crtc_needs_fastset()
>> >   drm/i915: Remove some local 'mode_changed' bools
>> >   drm/i915: Don't flag both full modeset and fastset at the same time
>> >   drm/i915: Introduce intel_crtc_needs_color_update()
>> >
>> >  drivers/gpu/drm/i915/display/hsw_ips.c        |  8 ++--
>> >  drivers/gpu/drm/i915/display/intel_crtc.c     |  3 +-
>> >  drivers/gpu/drm/i915/display/intel_cursor.c   |  6 ++-
>> >  drivers/gpu/drm/i915/display/intel_display.c  | 46 +++++++++----------
>> >  .../drm/i915/display/intel_display_types.h    | 14 ++++++
>> >  .../drm/i915/display/intel_modeset_verify.c   |  3 +-
>> >  6 files changed, 46 insertions(+), 34 deletions(-)
>> 
>> -- 
>> Jani Nikula, Intel Open Source Graphics Center

-- 
Jani Nikula, Intel Open Source Graphics Center


More information about the Intel-gfx mailing list