From: Arun R Murthy <arun.r.murthy@intel.com>
To: dri-devel@lists.freedesktop.org, intel-gfx@lists.freedesktop.org,
intel-xe@lists.freedesktop.org
Cc: chaitanya.kumar.borah@intel.com, ville.syrjala@intel.com,
Arun R Murthy <arun.r.murthy@intel.com>
Subject: [PATCH v5 2/3] drm/plane: modify create_in_formats to accommodate async
Date: Wed, 12 Feb 2025 21:48:23 +0530 [thread overview]
Message-ID: <20250212-asyn-v5-2-dc182281dca3@intel.com> (raw)
In-Reply-To: <20250212-asyn-v5-0-dc182281dca3@intel.com>
create_in_formats creates the list of supported format/modifiers for
synchronous flips, modify the same function so as to take the
format_mod_supported as argument and create list of format/modifier for
async as well.
v5: create_in_formats can return -ve value in failure case, correct the
if condition to check the creation of blob <Chaitanya>
Dont add the modifier for which none of the formats is not supported.
Signed-off-by: Arun R Murthy <arun.r.murthy@intel.com>
---
drivers/gpu/drm/drm_plane.c | 46 +++++++++++++++++++++++++++++++++------------
1 file changed, 34 insertions(+), 12 deletions(-)
diff --git a/drivers/gpu/drm/drm_plane.c b/drivers/gpu/drm/drm_plane.c
index c9d8871417722186d2b6f87197c9e15a70924b4f..01f67f1f5f29e37b8d0e0793c58bbe1bba337eb2 100644
--- a/drivers/gpu/drm/drm_plane.c
+++ b/drivers/gpu/drm/drm_plane.c
@@ -190,9 +190,12 @@ modifiers_ptr(struct drm_format_modifier_blob *blob)
return (struct drm_format_modifier *)(((char *)blob) + blob->modifiers_offset);
}
-static int create_in_format_blob(struct drm_device *dev, struct drm_plane *plane)
+static int create_in_format_blob(struct drm_device *dev, struct drm_plane *plane,
+ bool (*format_mod_supported)
+ (struct drm_plane *plane,
+ uint32_t format,
+ uint64_t modifier))
{
- const struct drm_mode_config *config = &dev->mode_config;
struct drm_property_blob *blob;
struct drm_format_modifier *mod;
size_t blob_size, formats_size, modifiers_size;
@@ -234,24 +237,26 @@ static int create_in_format_blob(struct drm_device *dev, struct drm_plane *plane
mod = modifiers_ptr(blob_data);
for (i = 0; i < plane->modifier_count; i++) {
for (j = 0; j < plane->format_count; j++) {
- if (!plane->funcs->format_mod_supported ||
- plane->funcs->format_mod_supported(plane,
- plane->format_types[j],
- plane->modifiers[i])) {
+ if (!format_mod_supported || format_mod_supported
+ (plane,
+ plane->format_types[j],
+ plane->modifiers[i])) {
mod->formats |= 1ULL << j;
}
}
+ if (!mod->formats) {
+ mod->modifier = 0;
+ blob_data->count_modifiers--;
+ continue;
+ }
mod->modifier = plane->modifiers[i];
mod->offset = 0;
mod->pad = 0;
mod++;
}
- drm_object_attach_property(&plane->base, config->modifiers_property,
- blob->base.id);
-
- return 0;
+ return blob->base.id;
}
/**
@@ -368,6 +373,7 @@ static int __drm_universal_plane_init(struct drm_device *dev,
};
unsigned int format_modifier_count = 0;
int ret;
+ int blob_id;
/* plane index is used with 32bit bitmasks */
if (WARN_ON(config->num_total_plane >= 32))
@@ -474,8 +480,24 @@ static int __drm_universal_plane_init(struct drm_device *dev,
drm_plane_create_hotspot_properties(plane);
}
- if (format_modifier_count)
- create_in_format_blob(dev, plane);
+ if (format_modifier_count) {
+ blob_id = create_in_format_blob(dev, plane,
+ plane->funcs->format_mod_supported);
+ if (blob_id > 0)
+ drm_object_attach_property(&plane->base,
+ config->modifiers_property,
+ blob_id);
+ }
+
+ if (plane->funcs->format_mod_supported_async) {
+ blob_id = create_in_format_blob(dev, plane,
+ plane->funcs->format_mod_supported_async);
+ if (blob_id > 0)
+ drm_object_attach_property(&plane->base,
+ config->async_modifiers_property,
+ blob_id);
+ }
+
return 0;
}
--
2.25.1
next prev parent reply other threads:[~2025-02-12 16:33 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-02-12 16:18 [PATCH v5 0/3] Expose modifiers/formats supported by async flips Arun R Murthy
2025-02-12 16:18 ` [PATCH v5 1/3] drm/plane: Add new plane property IN_FORMATS_ASYNC Arun R Murthy
2025-02-14 8:26 ` Borah, Chaitanya Kumar
2025-02-12 16:18 ` Arun R Murthy [this message]
2025-02-13 9:55 ` [PATCH v5 2/3] drm/plane: modify create_in_formats to accommodate async Borah, Chaitanya Kumar
2025-02-14 18:32 ` Borah, Chaitanya Kumar
2025-02-12 16:18 ` [PATCH v5 3/3] drm/i915/display: Add i915 hook for format_mod_supported_async Arun R Murthy
2025-02-17 5:28 ` Borah, Chaitanya Kumar
2025-02-12 19:43 ` ✓ CI.Patch_applied: success for Expose modifiers/formats supported by async flips (rev4) Patchwork
2025-02-12 19:43 ` ✗ CI.checkpatch: warning " Patchwork
2025-02-12 19:44 ` ✓ CI.KUnit: success " Patchwork
2025-02-12 20:01 ` ✓ CI.Build: " Patchwork
2025-02-12 20:03 ` ✓ CI.Hooks: " Patchwork
2025-02-12 20:05 ` ✗ CI.checksparse: warning " Patchwork
2025-02-12 20:18 ` ✗ Fi.CI.CHECKPATCH: " Patchwork
2025-02-12 20:18 ` ✗ Fi.CI.SPARSE: " Patchwork
2025-02-12 20:25 ` ✓ Xe.CI.BAT: success " Patchwork
2025-02-12 20:34 ` ✗ i915.CI.BAT: failure " Patchwork
2025-02-13 5:00 ` ✗ Xe.CI.Full: " Patchwork
-- strict thread matches above, loose matches on Subject: below --
2025-02-18 9:02 [PATCH v5 0/3] Expose modifiers/formats supported by async flips Arun R Murthy
2025-02-18 9:02 ` [PATCH v5 2/3] drm/plane: modify create_in_formats to accommodate async Arun R Murthy
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250212-asyn-v5-2-dc182281dca3@intel.com \
--to=arun.r.murthy@intel.com \
--cc=chaitanya.kumar.borah@intel.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=intel-gfx@lists.freedesktop.org \
--cc=intel-xe@lists.freedesktop.org \
--cc=ville.syrjala@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.