Received: by 2002:a05:6a10:5bc5:0:0:0:0 with SMTP id os5csp2159732pxb; Thu, 28 Oct 2021 17:44:54 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyQIBRKVhtL6dF2LPJWUmkUpf7twjcCdukSAUBWMfXW+6vqxhwQOWjeEEj63TuvRVDG9lVR X-Received: by 2002:a17:902:70c5:b0:13f:f941:9ad6 with SMTP id l5-20020a17090270c500b0013ff9419ad6mr7012483plt.28.1635468294442; Thu, 28 Oct 2021 17:44:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1635468294; cv=none; d=google.com; s=arc-20160816; b=yZXW9qi7e9gZ7rKhZtLwNvX6KAFMWnGvyystZjyWo8y8tH4O6ZtGd9jr5yzMyGP/Mv qSKESnYtALD38nafqluniT+FMHBXElJHRgqdS7qmxJsPmMBm1Zp+xjwLx9GQOyamz6v8 2CO9k4Ax/Kv0x0Pkd5HZXILDwwSii8ene5RQEmDVz5/1sYvkXYBb+8U6/3ne7ckdbyh2 BxBzuuRSSnwlvZIAO9XLKjo3en9uEN32gBSAiL75G/kwabbynm8eN5cW4dPLR1ihcm/n 7LmVidqy31QCu3h7Wtvt+jnT0828GCYlVpsL+Hca8A2/s3BLFfG0gnu00OkDtplVsrGo S1YQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=wk10kPylzBJAVzPjmuOajrIPnS3gajWmticxWTOdCuY=; b=tlY34j0sKEAfmKZnyTP6Cd0XlGx2eioYAdtXle+k2zg2Tt1FxI3OJvJP81qedr69+U tCVTv9KSXAYPsUz6G8uGO5cm9yuttkYx8PpJpXgRFK8/o6H8QiGBUGUmm8b9S5PYnYOU rrDk4iudl3v8mUe8uYOFgY0Lm+02BAbK4txArizncJHeqZs4m7yJ2IcCrISI2zTevn9F cwJXxUCis/dl8Uhe4RRSv1RBG6uG9nMJ1B0GydgT8z8zxC/1fStwxN52oHQT6Ov1KjTu 7RWWJIVrWefMWZejvbKACHPs+Rnguy48HuegLIQTy+C8A0oa50hQ3WYRcdv7UCqMVIVX 03nw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@poorly.run header.s=google header.b=UbAcK1rA; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id t6si6239959pgv.458.2021.10.28.17.44.41; Thu, 28 Oct 2021 17:44:54 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@poorly.run header.s=google header.b=UbAcK1rA; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231500AbhJ2Aov (ORCPT + 99 others); Thu, 28 Oct 2021 20:44:51 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58276 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231424AbhJ2Aou (ORCPT ); Thu, 28 Oct 2021 20:44:50 -0400 Received: from mail-qk1-x72d.google.com (mail-qk1-x72d.google.com [IPv6:2607:f8b0:4864:20::72d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B66EEC061570 for ; Thu, 28 Oct 2021 17:42:22 -0700 (PDT) Received: by mail-qk1-x72d.google.com with SMTP id bj31so7739172qkb.2 for ; Thu, 28 Oct 2021 17:42:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=poorly.run; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=wk10kPylzBJAVzPjmuOajrIPnS3gajWmticxWTOdCuY=; b=UbAcK1rAc/ZIqWaaPEXhVFTwgPW8BtT5uQ8dGUkH61jG8rRp5vvh4wNS5S4TYbaKTl M2cp+j9/QV33S23r0odikBILIduyC+WGtPUiWYgiCBq7mGbHifDzz1rZZ4uE9wDE1gnw q4GuSwKQ6o8lhL6CFTKh7LIqeVwAVOj/hPPC45mDJtkVEtRo7Ci7rcgtEVPaj+nu0TY+ STgzmS9/UzOCMwr7QuN217+UUyfZKxYr0TQcRFLPNacVmrZHBEVuLDjI4cLkUUnPE8nf NaenDDVwI9G8L5qfwzzAnP8z/eCS2vuHm6Q5Z9012iopBJOVnb/rnaWloXy6WXgxbpSg 8/aQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=wk10kPylzBJAVzPjmuOajrIPnS3gajWmticxWTOdCuY=; b=IuDT1uf6mXwP27EDLMaWNKCX6PVRKgZ0J0aFOl3JLkPdSvrU+9mjYFi36WX++qtCtb QEChioOQXJopPE0WQOwxvnFWcm926NYufD154UKEFAVH2hXhonrIaR48f214K7G+C7qV aqixK3//W2z1qKt2U12EQTmiWAzcAbYakU3LlrFwWi8U2kC5bXZHbJ3ZXMG93Oq7sccQ IdWcpzFmkflkbsFwE9ymYaO3nUiDqmjDiSmbxXyex7WVBKtfEDcyn+rV+Imr6nlrCP+h 4bqcLhU1aDw2WsBTjTfT7sBmJQAbi2U7KW43x6wuaZqyNGanZtS1hV3llD1dUJJBxC+f pLBg== X-Gm-Message-State: AOAM533p6hYBql9r6drpidrZ4tkz9wzaIFYc/+YwP056qsYVIjjQQx4x rLsfunGoaco5ddnvUZRYuvxrpuaMhlmVpQ== X-Received: by 2002:a37:8244:: with SMTP id e65mr6246239qkd.141.1635468141844; Thu, 28 Oct 2021 17:42:21 -0700 (PDT) Received: from localhost ([167.100.64.199]) by smtp.gmail.com with ESMTPSA id bs34sm3043788qkb.97.2021.10.28.17.42.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 28 Oct 2021 17:42:21 -0700 (PDT) Date: Thu, 28 Oct 2021 20:42:20 -0400 From: Sean Paul To: Mark Yacoub Cc: seanpaul@chromium.org, pmenzel@molgen.mpg.de, Mark Yacoub , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Daniel Vetter , Jani Nikula , Joonas Lahtinen , Rodrigo Vivi , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, intel-gfx@lists.freedesktop.org Subject: Re: [Intel-gfx] [PATCH v3 1/3] drm: Rename lut check functions to lut channel checks Message-ID: <20211029004220.GA10475@art_vandelay> References: <20211026192104.1860504-1-markyacoub@chromium.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20211026192104.1860504-1-markyacoub@chromium.org> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Oct 26, 2021 at 03:21:00PM -0400, Mark Yacoub wrote: > From: Mark Yacoub > > [Why] > This function and enum do not do generic checking on the luts but they > test color channels in the LUTs. I'm not sure there's anything inherently specific to channels, it seems like one could add a new test to reflect a HW limitation and it would fit pretty well in the lut check function. I wonder if it would be better to expose the types of tests required by the crtc such that the atomic_check could also do the test? Sean > Keeping the name explicit as more generic LUT checks will follow. > > Tested on Eldrid ChromeOS (TGL). > > Signed-off-by: Mark Yacoub > --- > drivers/gpu/drm/drm_color_mgmt.c | 12 ++++++------ > drivers/gpu/drm/i915/display/intel_color.c | 10 +++++----- > include/drm/drm_color_mgmt.h | 7 ++++--- > 3 files changed, 15 insertions(+), 14 deletions(-) > > diff --git a/drivers/gpu/drm/drm_color_mgmt.c b/drivers/gpu/drm/drm_color_mgmt.c > index bb14f488c8f6c..6f4e04746d90f 100644 > --- a/drivers/gpu/drm/drm_color_mgmt.c > +++ b/drivers/gpu/drm/drm_color_mgmt.c > @@ -585,17 +585,17 @@ int drm_plane_create_color_properties(struct drm_plane *plane, > EXPORT_SYMBOL(drm_plane_create_color_properties); > > /** > - * drm_color_lut_check - check validity of lookup table > + * drm_color_lut_channels_check - check validity of the channels in the lookup table > * @lut: property blob containing LUT to check > * @tests: bitmask of tests to run > * > - * Helper to check whether a userspace-provided lookup table is valid and > - * satisfies hardware requirements. Drivers pass a bitmask indicating which of > - * the tests in &drm_color_lut_tests should be performed. > + * Helper to check whether each color channel of userspace-provided lookup table is valid and > + * satisfies hardware requirements. Drivers pass a bitmask indicating which of in > + * &drm_color_lut_channels_tests should be performed. > * > * Returns 0 on success, -EINVAL on failure. > */ > -int drm_color_lut_check(const struct drm_property_blob *lut, u32 tests) > +int drm_color_lut_channels_check(const struct drm_property_blob *lut, u32 tests) > { > const struct drm_color_lut *entry; > int i; > @@ -625,4 +625,4 @@ int drm_color_lut_check(const struct drm_property_blob *lut, u32 tests) > > return 0; > } > -EXPORT_SYMBOL(drm_color_lut_check); > +EXPORT_SYMBOL(drm_color_lut_channels_check); > diff --git a/drivers/gpu/drm/i915/display/intel_color.c b/drivers/gpu/drm/i915/display/intel_color.c > index dab892d2251ba..4bb1bc76c4de9 100644 > --- a/drivers/gpu/drm/i915/display/intel_color.c > +++ b/drivers/gpu/drm/i915/display/intel_color.c > @@ -1285,7 +1285,7 @@ static int check_luts(const struct intel_crtc_state *crtc_state) > const struct drm_property_blob *gamma_lut = crtc_state->hw.gamma_lut; > const struct drm_property_blob *degamma_lut = crtc_state->hw.degamma_lut; > int gamma_length, degamma_length; > - u32 gamma_tests, degamma_tests; > + u32 gamma_channels_tests, degamma_channels_tests; > > /* Always allow legacy gamma LUT with no further checking. */ > if (crtc_state_is_legacy_gamma(crtc_state)) > @@ -1300,15 +1300,15 @@ static int check_luts(const struct intel_crtc_state *crtc_state) > > degamma_length = INTEL_INFO(dev_priv)->color.degamma_lut_size; > gamma_length = INTEL_INFO(dev_priv)->color.gamma_lut_size; > - degamma_tests = INTEL_INFO(dev_priv)->color.degamma_lut_tests; > - gamma_tests = INTEL_INFO(dev_priv)->color.gamma_lut_tests; > + degamma_channels_tests = INTEL_INFO(dev_priv)->color.degamma_lut_tests; > + gamma_channels_tests = INTEL_INFO(dev_priv)->color.gamma_lut_tests; > > if (check_lut_size(degamma_lut, degamma_length) || > check_lut_size(gamma_lut, gamma_length)) > return -EINVAL; > > - if (drm_color_lut_check(degamma_lut, degamma_tests) || > - drm_color_lut_check(gamma_lut, gamma_tests)) > + if (drm_color_lut_channels_check(degamma_lut, degamma_channels_tests) || > + drm_color_lut_channels_check(gamma_lut, gamma_channels_tests)) > return -EINVAL; > > return 0; > diff --git a/include/drm/drm_color_mgmt.h b/include/drm/drm_color_mgmt.h > index 81c298488b0c8..cb1bf361ad3e3 100644 > --- a/include/drm/drm_color_mgmt.h > +++ b/include/drm/drm_color_mgmt.h > @@ -94,12 +94,12 @@ int drm_plane_create_color_properties(struct drm_plane *plane, > enum drm_color_range default_range); > > /** > - * enum drm_color_lut_tests - hw-specific LUT tests to perform > + * enum drm_color_lut_channels_tests - hw-specific LUT tests to perform > * > * The drm_color_lut_check() function takes a bitmask of the values here to > * determine which tests to apply to a userspace-provided LUT. > */ > -enum drm_color_lut_tests { > +enum drm_color_lut_channels_tests { > /** > * @DRM_COLOR_LUT_EQUAL_CHANNELS: > * > @@ -119,5 +119,6 @@ enum drm_color_lut_tests { > DRM_COLOR_LUT_NON_DECREASING = BIT(1), > }; > > -int drm_color_lut_check(const struct drm_property_blob *lut, u32 tests); > +int drm_color_lut_channels_check(const struct drm_property_blob *lut, > + u32 tests); > #endif > -- > 2.33.0.1079.g6e70778dc9-goog > -- Sean Paul, Software Engineer, Google / Chromium OS