Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

drm/i915: Expose the IN_FORMATS_ASYNC blob for all planes

Since old kernel versions wouldn't expose the IN_FORMATS_ASYNC blob,
userspace can't really use the absence of the blob to determine
that async flips aren't supported. Thus it seems better to always
expose the blob on all planes, whether they support async flips
or not. The blob will simply not indicate any format+modifier
combinations as supported on planes that aren't async flip capable.

Currently we expose the blob for all skl+ universal planes (even
though we implement async flips only for the first plane on each
pipe), and i9xx primary planes (for ilk+ we have async flips support,
for pre-ilk we do not). Complete the full set by also expsosing
the blob on pre-skl sprite planes, and cursors.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patch.msgid.link/20251112233030.24117-3-ville.syrjala@linux.intel.com
Reviewed-by: Jouni Högander <jouni.hogander@intel.com>

+4
+1
drivers/gpu/drm/i915/display/intel_cursor.c
··· 974 974 .atomic_duplicate_state = intel_plane_duplicate_state, 975 975 .atomic_destroy_state = intel_plane_destroy_state, 976 976 .format_mod_supported = intel_cursor_format_mod_supported, 977 + .format_mod_supported_async = intel_plane_format_mod_supported_async, 977 978 }; 978 979 979 980 static void intel_cursor_add_size_hints_property(struct intel_plane *plane)
+3
drivers/gpu/drm/i915/display/intel_sprite.c
··· 1567 1567 .atomic_duplicate_state = intel_plane_duplicate_state, 1568 1568 .atomic_destroy_state = intel_plane_destroy_state, 1569 1569 .format_mod_supported = g4x_sprite_format_mod_supported, 1570 + .format_mod_supported_async = intel_plane_format_mod_supported_async, 1570 1571 }; 1571 1572 1572 1573 static const struct drm_plane_funcs snb_sprite_funcs = { ··· 1577 1576 .atomic_duplicate_state = intel_plane_duplicate_state, 1578 1577 .atomic_destroy_state = intel_plane_destroy_state, 1579 1578 .format_mod_supported = snb_sprite_format_mod_supported, 1579 + .format_mod_supported_async = intel_plane_format_mod_supported_async, 1580 1580 }; 1581 1581 1582 1582 static const struct drm_plane_funcs vlv_sprite_funcs = { ··· 1587 1585 .atomic_duplicate_state = intel_plane_duplicate_state, 1588 1586 .atomic_destroy_state = intel_plane_destroy_state, 1589 1587 .format_mod_supported = vlv_sprite_format_mod_supported, 1588 + .format_mod_supported_async = intel_plane_format_mod_supported_async, 1590 1589 }; 1591 1590 1592 1591 struct intel_plane *