From patchwork Tue Apr 6 19:21:17 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leandro Ribeiro X-Patchwork-Id: 12185777 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 21B91C433B4 for ; Tue, 6 Apr 2021 19:33:32 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id D2C02613CD for ; Tue, 6 Apr 2021 19:33:31 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D2C02613CD Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=collabora.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 5B64E89994; Tue, 6 Apr 2021 19:33:27 +0000 (UTC) Received: from bhuna.collabora.co.uk (bhuna.collabora.co.uk [IPv6:2a00:1098:0:82:1000:25:2eeb:e3e3]) by gabe.freedesktop.org (Postfix) with ESMTPS id 55CFD6E030 for ; Tue, 6 Apr 2021 19:21:40 +0000 (UTC) Received: from localhost.localdomain (unknown [IPv6:2804:431:e7dc:9ef6:7b41:f88b:5bc5:8ea5]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: leandrohrb) by bhuna.collabora.co.uk (Postfix) with ESMTPSA id 9CF301F44D86; Tue, 6 Apr 2021 20:21:37 +0100 (BST) From: Leandro Ribeiro To: dri-devel@lists.freedesktop.org Subject: [PATCH 1/2] drm/doc: document drm_mode_get_plane Date: Tue, 6 Apr 2021 16:21:17 -0300 Message-Id: <20210406192118.12313-2-leandro.ribeiro@collabora.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210406192118.12313-1-leandro.ribeiro@collabora.com> References: <20210406192118.12313-1-leandro.ribeiro@collabora.com> MIME-Version: 1.0 X-Mailman-Approved-At: Tue, 06 Apr 2021 19:33:23 +0000 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: airlied@linux.ie, pekka.paalanen@collabora.co.uk, kernel@collabora.com Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Add a small description and document struct fields of drm_mode_get_plane. Signed-off-by: Leandro Ribeiro --- include/uapi/drm/drm_mode.h | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/include/uapi/drm/drm_mode.h b/include/uapi/drm/drm_mode.h index d1a93d2a85f9..96fc9a6da608 100644 --- a/include/uapi/drm/drm_mode.h +++ b/include/uapi/drm/drm_mode.h @@ -312,16 +312,35 @@ struct drm_mode_set_plane { __u32 src_w; }; +/** + * struct drm_mode_get_plane - Get plane metadata. + * + * Userspace can perform a GETPLANE ioctl to retrieve information about a + * plane. + */ struct drm_mode_get_plane { + /** @plane_id: Object ID of the plane. */ __u32 plane_id; + /** @crtc_id: Object ID of the current CRTC. */ __u32 crtc_id; + /** @fb_id: Object ID of the current fb. */ __u32 fb_id; + /** + * @possible_crtcs: Pointer to ``__u32`` array of CRTC's that are + * compatible with the plane. + */ __u32 possible_crtcs; + /** @gamma_size: Size of the legacy gamma table. */ __u32 gamma_size; + /** @count_format_types: Number of formats. */ __u32 count_format_types; + /** + * @format_type_ptr: Pointer to ``__u32`` array of formats that are + * supported by the plane. These formats do not require modifiers. + */ __u64 format_type_ptr; }; From patchwork Tue Apr 6 19:21:18 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leandro Ribeiro X-Patchwork-Id: 12185773 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B197CC433B4 for ; Tue, 6 Apr 2021 19:33:25 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 1B8A1613CD for ; Tue, 6 Apr 2021 19:33:25 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1B8A1613CD Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=collabora.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 566BD890B1; Tue, 6 Apr 2021 19:33:24 +0000 (UTC) Received: from bhuna.collabora.co.uk (bhuna.collabora.co.uk [IPv6:2a00:1098:0:82:1000:25:2eeb:e3e3]) by gabe.freedesktop.org (Postfix) with ESMTPS id C57916E88B for ; Tue, 6 Apr 2021 19:21:42 +0000 (UTC) Received: from localhost.localdomain (unknown [IPv6:2804:431:e7dc:9ef6:7b41:f88b:5bc5:8ea5]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: leandrohrb) by bhuna.collabora.co.uk (Postfix) with ESMTPSA id 856061F44BA6; Tue, 6 Apr 2021 20:21:39 +0100 (BST) From: Leandro Ribeiro To: dri-devel@lists.freedesktop.org Subject: [PATCH 2/2] drm/doc: emphasize difference between plane formats and IN_FORMATS blob Date: Tue, 6 Apr 2021 16:21:18 -0300 Message-Id: <20210406192118.12313-3-leandro.ribeiro@collabora.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210406192118.12313-1-leandro.ribeiro@collabora.com> References: <20210406192118.12313-1-leandro.ribeiro@collabora.com> MIME-Version: 1.0 X-Mailman-Approved-At: Tue, 06 Apr 2021 19:33:23 +0000 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: airlied@linux.ie, pekka.paalanen@collabora.co.uk, kernel@collabora.com Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Emphasize how userspace should use the plane format list (format_type_ptr) and the IN_FORMATS blob property. Formats exposed in the plane format list (format_type_ptr) do not require modifiers, and formats that are present in the IN_FORMATS blob property support modifiers. Note that these are not disjoint sets. If a format supports modifiers but the driver can also handle it without a modifier, it should be present in both the IN_FORMATS blob property and the plane format list. Signed-off-by: Leandro Ribeiro --- drivers/gpu/drm/drm_plane.c | 4 ++++ include/uapi/drm/drm_mode.h | 3 +++ 2 files changed, 7 insertions(+) diff --git a/drivers/gpu/drm/drm_plane.c b/drivers/gpu/drm/drm_plane.c index 0dd43882fe7c..b48d9bd81a59 100644 --- a/drivers/gpu/drm/drm_plane.c +++ b/drivers/gpu/drm/drm_plane.c @@ -128,6 +128,10 @@ * pairs supported by this plane. The blob is a struct * drm_format_modifier_blob. Without this property the plane doesn't * support buffers with modifiers. Userspace cannot change this property. + * + * To find out the list of buffer formats which are supported without a + * modifier, userspace should not look at this blob property, but at the + * formats list of the plane: &drm_mode_get_plane.format_type_ptr. */ static unsigned int drm_num_planes(struct drm_device *dev) diff --git a/include/uapi/drm/drm_mode.h b/include/uapi/drm/drm_mode.h index 96fc9a6da608..4293800ec095 100644 --- a/include/uapi/drm/drm_mode.h +++ b/include/uapi/drm/drm_mode.h @@ -340,6 +340,9 @@ struct drm_mode_get_plane { /** * @format_type_ptr: Pointer to ``__u32`` array of formats that are * supported by the plane. These formats do not require modifiers. + * + * To find out the list of formats that support modifiers, userspace + * must use the plane IN_FORMATS blob property. */ __u64 format_type_ptr; };