Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp1378876ybz; Thu, 16 Apr 2020 08:09:36 -0700 (PDT) X-Google-Smtp-Source: APiQypLnadee8kVVP/hjVRTb9VovlDhgmznFHTbBelb34fTv6+2iJQX5gDwIzbhjSK5XA8TzN6QB X-Received: by 2002:a17:906:4f83:: with SMTP id o3mr10246632eju.14.1587049775984; Thu, 16 Apr 2020 08:09:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587049775; cv=none; d=google.com; s=arc-20160816; b=DvzQebQ+Rwx/uB2ck+HOMi9dELISkjoc5704PMS1LeoYtnIxvsDAE3MG+JAxnYoKIE zyh/D5EHLdnnBdRnG3pvevm4wi+eeSmh40fPPqVdUBy9jfeGbj4fGCbfAFfOkWZAQ8jD 7WB2r2nhdXTB3CX5pdVEY9Bd3eUrJq7sU6OoP7iqrFLhbWIAIB1HMIsSpPXn1c96SU9z ACPoaDTI3NxVDFroxlMsxiOepn4xMPEaPIHE9CcBKJDvpfetEu8534pNMd+9UPu7Taae uj+90f+kem5pqjglK/mKJBUVZG3ajD9OG4yQvIwFV5vCNIYccWdZBeHj5D1pUCnpnWfx 40hA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:date:cc:to:from:subject :message-id:dkim-signature; bh=p72sMrzpjiFBe093N4lGaIhYqi5PDODmXWZRAmXL3do=; b=hQwTSTaoav3pA6vQ8iSMn/1IUpHFWxN7yub6BwRJFmVu7Ez/tgN4rXxEbyPizNSA4I D4R9qk4bu4oYx/ShD/QQcE++T6ukzTZoSwwrQ6y1fKhi8tnfwyi30GQ6G6pAf9V1KeIk Zfn5R2vPvX2nybZNG9FbRyeKSWENKHRKx8iNgDuwWx91QQPZhNJFvA0OifYeRLSqHcqc VDo53bblgCZ5g5Dz5AkT0MvggADT9hQ1EgR9FSFsGcaudrcI96YZcmgEuwM69nQeD5bz 0GIiFuLGClOyu/AkX8Dq+8xnVLimGzAg8knFrZUQFXdS5K0ZWrbq94CVze5gAr4oFI+l 89GA== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@pp3345.net header.s=saul header.b=LPvAOFTH; 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; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=pp3345.net Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id p5si12827080edd.220.2020.04.16.08.09.12; Thu, 16 Apr 2020 08:09:35 -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=fail header.i=@pp3345.net header.s=saul header.b=LPvAOFTH; 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; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=pp3345.net Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2502072AbgDPPGa (ORCPT + 99 others); Thu, 16 Apr 2020 11:06:30 -0400 Received: from saul.pp3345.net ([163.172.111.124]:53468 "EHLO saul.pp3345.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2392443AbgDPNwM (ORCPT ); Thu, 16 Apr 2020 09:52:12 -0400 Received: from localhost (localhost [127.0.0.1]) (Authenticated sender: dev@pp3345.net) by saul.pp3345.net (Postcow) with ESMTPSA id 90B299A4642; Thu, 16 Apr 2020 15:51:38 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pp3345.net; s=saul; t=1587045100; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:openpgp:autocrypt; bh=p72sMrzpjiFBe093N4lGaIhYqi5PDODmXWZRAmXL3do=; b=LPvAOFTHvmx2f6lB1iTk8U8tLB6dV9w5XwqI7PJuJaYAwrda2p7+AiHFfT3/PhQQzDYjDP oPxW4oVvEGSuJ0qS6/XkwSD/o7Z8N+mjBfqQbkCc2YRcHuY0A5D7BxZyjynC2WdSyKBt2n fBpqBRrq94kWjSoEoG9Q3NqfI8iG400Dd9g2Egy2dvd36Yih+uTDewxdd4AQWXuZxA2Emo //TVSphDSFvYpJmaxFI/giDgAoSBjvgeUA3pq9MF4bek4K2uzIdxlnMPiLdSL+XNRrVXGR VR0LhnxS6k24xrcs/h68mw/rC2ZYj9P66mQfOmcPHX6CakBpfSHwpXAnT6AkEA== Message-ID: Subject: Re: [PATCH 1/5] drm/modes: Indicate CEA-861 CE modes to user-space From: Yussuf Khalil To: Daniel Vetter Cc: Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Date: Thu, 16 Apr 2020 15:51:36 +0200 In-Reply-To: <20200414124132.GV3456981@phenom.ffwll.local> References: <20200413214024.46500-1-dev@pp3345.net> <20200413214024.46500-2-dev@pp3345.net> <20200414124132.GV3456981@phenom.ffwll.local> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.36.1 (3.36.1-1.fc32) MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, 2020-04-14 at 14:41 +0200, Daniel Vetter wrote: > On Mon, Apr 13, 2020 at 11:40:22PM +0200, Yussuf Khalil wrote: > > Add a new flag to mark modes that are considered a CE mode > > according to the > > CEA-861 specification. Modes without this flag are implicitly > > considered to > > be IT modes. > > > > User-space applications may use this flag to determine possible > > implications of using a CE mode (e.g., limited RGB range). > > > > There is no use for this flag inside the kernel, so we set it only > > when > > communicating a mode to user-space. > > > > Signed-off-by: Yussuf Khalil > > Do we have userspace for this? > > If we go with the existing quant range property you don't need new > userspace for the property itself. But this flag here is new uapi, so > needs userspace per > > https://dri.freedesktop.org/docs/drm/gpu/drm-uapi.html#open-source-userspace-requirements > > Also since this standardizes kms uapi, we need testcases per > > https://dri.freedesktop.org/docs/drm/gpu/drm-uapi.html#testing-requirements-for-userspace-api > > Cheers, Daniel > > > --- > > drivers/gpu/drm/drm_modes.c | 14 ++++++++++++++ > > include/uapi/drm/drm_mode.h | 2 ++ > > 2 files changed, 16 insertions(+) > > > > diff --git a/drivers/gpu/drm/drm_modes.c > > b/drivers/gpu/drm/drm_modes.c > > index d4d64518e11b..0d8a032f437d 100644 > > --- a/drivers/gpu/drm/drm_modes.c > > +++ b/drivers/gpu/drm/drm_modes.c > > @@ -1973,6 +1973,14 @@ void drm_mode_convert_to_umode(struct > > drm_mode_modeinfo *out, > > break; > > } > > > > + if (drm_match_cea_mode(in) > 1) { > > + /* > > + * All modes in CTA-861-G Table 1 are CE modes, except > > 640x480p > > + * (VIC 1). > > + */ > > + out->flags |= DRM_MODE_FLAG_CEA_861_CE_MODE; > > + } > > + > > strncpy(out->name, in->name, DRM_DISPLAY_MODE_LEN); > > out->name[DRM_DISPLAY_MODE_LEN-1] = 0; > > } > > @@ -2045,6 +2053,12 @@ int drm_mode_convert_umode(struct drm_device > > *dev, > > return -EINVAL; > > } > > > > + /* > > + * The CEA-861 CE mode flag is purely informational and > > intended for > > + * userspace only. > > + */ > > + out->flags &= ~DRM_MODE_FLAG_CEA_861_CE_MODE; > > + > > out->status = drm_mode_validate_driver(dev, out); > > if (out->status != MODE_OK) > > return -EINVAL; > > diff --git a/include/uapi/drm/drm_mode.h > > b/include/uapi/drm/drm_mode.h > > index 735c8cfdaaa1..5e78b350b2e2 100644 > > --- a/include/uapi/drm/drm_mode.h > > +++ b/include/uapi/drm/drm_mode.h > > @@ -124,6 +124,8 @@ extern "C" { > > #define DRM_MODE_FLAG_PIC_AR_256_135 \ > > (DRM_MODE_PICTURE_ASPECT_256_135<<19) > > > > +#define DRM_MODE_FLAG_CEA_861_CE_MODE (1<<23) > > + > > #define DRM_MODE_FLAG_ALL (DRM_MODE_FLAG_PHSYNC | \ > > DRM_MODE_FLAG_NHSYNC | \ > > DRM_MODE_FLAG_PVSYNC | \ > > -- > > 2.26.0 > > Sorry, I wasn't aware DRM had these additional requirements. I do have a user- space implementation in mutter and gnome-control-center that makes use of the new property and this flag on my local machine. I'll try to propose the branch upstream before sending in the next revision of this patchset. Do I understand it correctly that this will require test cases for both the property itself and the new flag? I'll write a patch for IGT then. Regards Yussuf