From patchwork Thu Dec 3 11:36:38 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Sharma, Shashank" X-Patchwork-Id: 7758531 Return-Path: X-Original-To: patchwork-dri-devel@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 08E1D9F39D for ; Thu, 3 Dec 2015 11:27:45 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 3159920592 for ; Thu, 3 Dec 2015 11:27:44 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by mail.kernel.org (Postfix) with ESMTP id D913920499 for ; Thu, 3 Dec 2015 11:27:42 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id DB9F86EBD5; Thu, 3 Dec 2015 03:27:41 -0800 (PST) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 1C2D56EBD5; Thu, 3 Dec 2015 03:27:41 -0800 (PST) Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga103.fm.intel.com with ESMTP; 03 Dec 2015 03:27:40 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.20,378,1444719600"; d="scan'208";a="6789842" Received: from shashanks-desktop.iind.intel.com ([10.223.26.81]) by fmsmga004.fm.intel.com with ESMTP; 03 Dec 2015 03:27:38 -0800 From: Shashank Sharma To: dri-devel@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, jim.bish@intel.com, robert.bradford@intel.com, matthew.d.roper@intel.com Subject: [PATCH v8 02/25] drm: Create Color Management query properties Date: Thu, 3 Dec 2015 17:06:38 +0530 Message-Id: <1449142621-16602-3-git-send-email-shashank.sharma@intel.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1449142621-16602-1-git-send-email-shashank.sharma@intel.com> References: <1449142621-16602-1-git-send-email-shashank.sharma@intel.com> Cc: avinash.reddy.palleti@intel.com, emil.l.velikov@gmail.com, kausalmalladi@gmail.com, =gary.k.smith@intel.com, daniel.vetter@intel.com, kiran.s.kumar@intel.com X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_MED, T_RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP DRM color management is written to extract the color correction capabilities of various platforms, and every platform can showcase its capabilities using the query properties. Different hardwares can have different no of coefficients for palette correction. Also the correction can be applied after/before color transformation (CTM) unit in the display pipeline. This patch adds two new read-only properties, - cm_coeff_before_ctm_property: A platform driver should use this property to show supported no_of_coefficients for palette correction, which gets applied before ctm correction. - cm_coeff_after_ctm_property: A platform driver should use this property to show supported no_of_coefficients for palette correction, which gets applied after ctm correction. Signed-off-by: Shashank Sharma --- drivers/gpu/drm/drm_crtc.c | 13 +++++++++++++ include/drm/drm_crtc.h | 6 ++++++ 2 files changed, 19 insertions(+) diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c index dd6fb86..7a639db 100644 --- a/drivers/gpu/drm/drm_crtc.c +++ b/drivers/gpu/drm/drm_crtc.c @@ -1489,6 +1489,19 @@ static int drm_mode_create_standard_properties(struct drm_device *dev) return -ENOMEM; dev->mode_config.cm_ctm_property = prop; + /* DRM properties to query color capabilities */ + prop = drm_property_create(dev, DRM_MODE_PROP_IMMUTABLE, + "COEFFICIENTS_BEFORE_CTM", 0); + if (!prop) + return -ENOMEM; + dev->mode_config.cm_coeff_before_ctm_property = prop; + + prop = drm_property_create(dev, DRM_MODE_PROP_IMMUTABLE, + "COEFFICIENTS_AFTER_CTM", 0); + if (!prop) + return -ENOMEM; + dev->mode_config.cm_coeff_after_ctm_property = prop; + return 0; } diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h index 78756c1..cc29df7 100644 --- a/include/drm/drm_crtc.h +++ b/include/drm/drm_crtc.h @@ -1045,6 +1045,8 @@ struct drm_mode_config_funcs { * @cm_palette_before_ctm_property: color corrections before CTM block * @cm_palette_after_ctm_property: color corrections after CTM block * @cm_ctm_property: color transformation matrix correction + * @cm_coeff_before_ctm_property: query no of correction coeffi before CTM + * @cm_coeff_after_ctm_property: query no of correction coeffi after CTM * @preferred_depth: preferred RBG pixel depth, used by fb helpers * @prefer_shadow: hint to userspace to prefer shadow-fb rendering * @async_page_flip: does this device support async flips on the primary plane? @@ -1155,6 +1157,10 @@ struct drm_mode_config { struct drm_property *cm_palette_after_ctm_property; struct drm_property *cm_ctm_property; + /* Color correction query */ + struct drm_property *cm_coeff_before_ctm_property; + struct drm_property *cm_coeff_after_ctm_property; + /* dumb ioctl parameters */ uint32_t preferred_depth, prefer_shadow;