From patchwork Wed Apr 17 14:03:22 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Sharma, Swati2" X-Patchwork-Id: 10905369 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id BF74114DB for ; Wed, 17 Apr 2019 14:08:14 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A9EE327BA5 for ; Wed, 17 Apr 2019 14:08:14 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 9DFF727F8C; Wed, 17 Apr 2019 14:08:14 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 323B627BA5 for ; Wed, 17 Apr 2019 14:08:14 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 9AFD76E05F; Wed, 17 Apr 2019 14:08:11 +0000 (UTC) X-Original-To: intel-gfx@lists.freedesktop.org Delivered-To: intel-gfx@lists.freedesktop.org Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id C3F586E059 for ; Wed, 17 Apr 2019 14:08:09 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 17 Apr 2019 07:08:09 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.60,362,1549958400"; d="scan'208";a="150172523" Received: from genxfsim-shark-bay-client-platform.iind.intel.com ([10.223.74.155]) by FMSMGA003.fm.intel.com with ESMTP; 17 Apr 2019 07:08:06 -0700 From: Swati Sharma To: intel-gfx@lists.freedesktop.org Date: Wed, 17 Apr 2019 19:33:22 +0530 Message-Id: <1555509813-9021-1-git-send-email-swati2.sharma@intel.com> X-Mailer: git-send-email 1.9.1 Subject: [Intel-gfx] [PATCH 00/11] drm/i915: adding state checker for gamma lut values X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: jani.nikula@intel.com, daniel.vetter@ffwll.ch, ankit.k.nautiyal@intel.com MIME-Version: 1.0 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" X-Virus-Scanned: ClamAV using ClamSMTP Thanks to Jani N, Matt and Ville for the review comments. Hopefully I have addressed all the current review comments and ready to receive more :) In this patch series, added state checker to validate gamma_lut values. This reads hardware state, and compares the originally requested state to the state read from hardware. v1: -Implementation done for legacy platforms (removed all the placeholders) (Jani) -Added inverse function of drm_color_lut_extract to convert hardware read values back to user values (code written by Jani) -Renamed get_config() to color_config() (Jani) -Placed all platform specific shifts and masks in i915_reg.h (Jani) -Renamed i9xx_get_config to i9xx_color_config and all related functions (Jani) -Removed debug logs from compare function (Jani) -Renamed intel_compare_blob to intel_compare_lut and added platform specific bit precision of the readout into the function (Jani) -Renamed macro PIPE_CONF_CHECK_BLOB to PIPE_CONF_CHECK_COLOR_LUT (Jani) -Added check if blobs can be NULL (Jani) -Added function in intel_color.c that returns the bit precision (Jani), didn't add in device info since its gonna die soon (Ville) v2: -Moved intel_compare_lut() from intel_display.c to intel_color.c (Jani) -Changed color_config() func names to get_color_config() and same for gamma func too (Jani) -Removed blank line in i915_reg.h and aligned MASK with their register name (Jani) -Mask definition code indented and defined using REG_GENMASK() and used using REG_FIELD_GET() (Jani) -Made bit_precision func inline (Jani/Matt) -Assigned bit_precision according to GAMMA_MODE (Matt/Ville) -Changed IS_ERR(blob) condition to (!blob) (Jani) -Rearranged blob check and lut_size conditions (Jani) -Used inline function for the comparison (Jani) -Separated the get config part from the state checker part to another patch (Jani) -Retained "internal" i9xx_internal_gamma_config for consistency (Matt) -Removed crtc_state_is_legacy_gamma check and replaced with GAMMA_MODE (Matt) -Created whole platform specific patch series as submitted by Ville for clean up intel_color_check() -Rebased on top of Ville's changes v3: -Rebase v4: -Renamed intel_get_color_config to intel_color_get_config (Jani) -Wrapped get_color_config() (Jani) -Added the user early on such that support for get_color_config() can be added platform by platform incrementally (Jani) -Few changes in get_config_func (Jani) -Renamed intel_compare_color_lut() to intel_color_lut_equal() (Jani) -Corrected smatch warn "variable dereferenced before check" (Dan Carpenter) TODO: -Matt suggested to rename get_gamma_config to get_gamma_lut or i9xx_read_out_gamma_lut, Ville also named functions like i9xx_read_lut_8(), i9xx_read_lut_10(). Should we follow this? -Answering Matt's query regarding intension to read and compare degamma/ctm". Degamma will be my first priority after this and later ctm. Should we have combined func or separate func for gamma/degamma val? -Add separate func to log errors. I am not sure, what needs to be printed here? Mismatched RGB value? -Will make changes in next rev for changes made by Ville for cherryview_load_luts() Swati Sharma (11): [v4] drm/i915: Introduce vfunc intel_get_color_config to create hw lut [v4] drm/i915: Enable intel_color_get_config() [v4] drm/i915: Extract i9xx_get_color_config() [v4] drm/i915: Extract cherryview_get_color_config() [v4] drm/i915: Extract i965_get_color_config() [v4] drm/i915: Extract icl_get_color_config() [v4] drm/i915: Extract glk_get_color_config() [v4] drm/i915: Extract bdw_get_color_config() [v4] drm/i915: Extract ivb_get_color_config() [v4] drm/i915: Extract ilk_get_color_config() [v4] drm/i915: Add intel_color_lut_equal() to compare hw and sw gamma lut values drivers/gpu/drm/i915/i915_drv.h | 1 + drivers/gpu/drm/i915/i915_reg.h | 15 ++ drivers/gpu/drm/i915/intel_color.c | 343 ++++++++++++++++++++++++++++++++++- drivers/gpu/drm/i915/intel_color.h | 8 + drivers/gpu/drm/i915/intel_display.c | 13 ++ 5 files changed, 375 insertions(+), 5 deletions(-)