From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1BB322E84E for ; Thu, 18 Jan 2024 21:21:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.129.124 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1705612874; cv=none; b=cQRHJYVMszd0wmw0F7zM4mdRbUD5HoEdeFZQedsQ+LxKAMCc0Ou6RzXDmx0Qy6YwXVTrvmGSPWxRSDHC8Z1solg/63oqAgG6lSqc/40rhp4yIpY1TLp3BiRAXDZMDw95ILi1RTbIEL5QIjo1SHN/41EH91D3ziiG9/Vng309FgY= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1705612874; c=relaxed/simple; bh=D2v9kjg29KrNflvmoqwSf7FSU3tVTEXEJL9yrS99Ea8=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=dtuVUVL9pmxth1f+DzyW4W5I5eZoNSy0pr6yPzqq2fy/oSxlcqzAQoToQ0mkx0mAdiSE9kL7slQfiJgCTTyYbTxaDPDy+bpEhe3sOyUJeakRSHPtfXQwFejwd/z1qzOXVaqxFcRzpXZzg+Z/OVPOnVv3mGI5RxqQECQlcUkJSmA= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=redhat.com; spf=pass smtp.mailfrom=redhat.com; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b=WFCZ7QyE; arc=none smtp.client-ip=170.10.129.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=redhat.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="WFCZ7QyE" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1705612871; h=from:from: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; bh=l/RFuMwXFGgnLzX+gQ+7Eyl0Fns+nyjhizUJ9hMdtGQ=; b=WFCZ7QyEopp8GjFucHta7Cehrv/wunE11RbZtP3oqhdsSVhgmll4cM3VMhZEW+TrtLS4vP FGiIvRagutwpbcdSnB0RJyi3OsRvRnx6pDEKdRQf5U2QOMITgjMfu/oizujuOfOTh/rTyu v2fqkiDi+97PEJuxeoDLa66kgyEN134= Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-31-Ai_5M8k0P0yXbRxScelaqw-1; Thu, 18 Jan 2024 16:21:09 -0500 X-MC-Unique: Ai_5M8k0P0yXbRxScelaqw-1 Received: by mail-wm1-f70.google.com with SMTP id 5b1f17b1804b1-40e6668d9e1so609425e9.1 for ; Thu, 18 Jan 2024 13:21:09 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705612868; x=1706217668; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=l/RFuMwXFGgnLzX+gQ+7Eyl0Fns+nyjhizUJ9hMdtGQ=; b=sauqJiRym+SlwXi4Awlfg9n5pzklt4DnF3hX2Rl669/eI184xIdNdpNXqvAF+02TWV sG+mNifkfvK0oSTDRfOQ4qp6vOf4+wOltxWeBDWnNzcNS1w8CPVEJoGvJSjeiIpPHpfU FX+nVAt/xhs+15jzLW53wkr/aF7wtXmLB3yT5ZHn8jMRhQX5+4gWH+P6s31j8fX/zBfn ZakmD07RwKqsS0500Q/ZyYlRTgmsXyXGXSfBa8nNsdamHPkUsAYobCrPlgKZ6RpzRL9d 2iqdn+Y+v4HFDSqZ0KzMfwxx1dopAZQHLv9mFY/3cn94VHFDz8wJ8wcBJ48SY65JFbuy ANFw== X-Gm-Message-State: AOJu0Yx/nrjoeJnmXr6mGjeMtgHggQ98fhNkTBmeOrwpH24YvBq4h3oj gfvbJhJHrFx5DnzUTsoQ8DT1cHRwORuFPqEuMDOVSlEABPrOWa4/z2vnSZ8dyL4gz0LkA8Bd12M w5mlY6l73jMCjytDPm1PqyzuXdHJOnpzIQm0DfUfZJYNO31V3xluMwUJy4Q== X-Received: by 2002:a05:600c:4fd0:b0:40e:7485:daee with SMTP id o16-20020a05600c4fd000b0040e7485daeemr889523wmq.90.1705612868218; Thu, 18 Jan 2024 13:21:08 -0800 (PST) X-Google-Smtp-Source: AGHT+IEbMdqyiktrO4MfePrGAzXbNxUb85rIEKPcPE1jD7jmO2KFaepfrTeZH0nCka73fDv9zyB9iQ== X-Received: by 2002:a05:600c:4fd0:b0:40e:7485:daee with SMTP id o16-20020a05600c4fd000b0040e7485daeemr889513wmq.90.1705612867823; Thu, 18 Jan 2024 13:21:07 -0800 (PST) Received: from toolbox ([2001:9e8:89aa:f00:af88:d221:94de:a009]) by smtp.gmail.com with ESMTPSA id p9-20020a05600c1d8900b0040e95632357sm2223810wms.26.2024.01.18.13.21.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 18 Jan 2024 13:21:07 -0800 (PST) Date: Thu, 18 Jan 2024 22:21:05 +0100 From: Sebastian Wick To: Maxime Ripard Cc: Thomas Zimmermann , Emma Anholt , Jonathan Corbet , linux-kernel@vger.kernel.org, Samuel Holland , Sandy Huang , Jernej Skrabec , linux-doc@vger.kernel.org, Hans Verkuil , linux-rockchip@lists.infradead.org, Chen-Yu Tsai , dri-devel@lists.freedesktop.org, linux-media@vger.kernel.org, David Airlie , linux-sunxi@lists.linux.dev, linux-arm-kernel@lists.infradead.org Subject: Re: Re: [PATCH v5 08/44] drm/connector: hdmi: Add Broadcast RGB property Message-ID: <20240118212105.GA30589@toolbox> References: <20231207-kms-hdmi-connector-state-v5-0-6538e19d634d@kernel.org> <20231207-kms-hdmi-connector-state-v5-8-6538e19d634d@kernel.org> <20240115143308.GA159345@toolbox> Precedence: bulk X-Mailing-List: linux-doc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: On Mon, Jan 15, 2024 at 04:25:41PM +0100, Maxime Ripard wrote: > On Mon, Jan 15, 2024 at 03:33:08PM +0100, Sebastian Wick wrote: > > On Thu, Dec 07, 2023 at 04:49:31PM +0100, Maxime Ripard wrote: > > > The i915 driver has a property to force the RGB range of an HDMI output. > > > The vc4 driver then implemented the same property with the same > > > semantics. KWin has support for it, and a PR for mutter is also there to > > > support it. > > > > > > Both drivers implementing the same property with the same semantics, > > > plus the userspace having support for it, is proof enough that it's > > > pretty much a de-facto standard now and we can provide helpers for it. > > > > > > Let's plumb it into the newly created HDMI connector. > > > > > > Signed-off-by: Maxime Ripard > > > --- > > > Documentation/gpu/kms-properties.csv | 1 - > > > drivers/gpu/drm/drm_atomic.c | 5 + > > > drivers/gpu/drm/drm_atomic_state_helper.c | 17 + > > > drivers/gpu/drm/drm_atomic_uapi.c | 4 + > > > drivers/gpu/drm/drm_connector.c | 76 +++++ > > > drivers/gpu/drm/tests/Makefile | 1 + > > > .../gpu/drm/tests/drm_atomic_state_helper_test.c | 376 +++++++++++++++++++++ > > > drivers/gpu/drm/tests/drm_connector_test.c | 117 ++++++- > > > drivers/gpu/drm/tests/drm_kunit_edid.h | 106 ++++++ > > > include/drm/drm_connector.h | 36 ++ > > > 10 files changed, 737 insertions(+), 2 deletions(-) > > > > > > diff --git a/Documentation/gpu/kms-properties.csv b/Documentation/gpu/kms-properties.csv > > > index 0f9590834829..caef14c532d4 100644 > > > --- a/Documentation/gpu/kms-properties.csv > > > +++ b/Documentation/gpu/kms-properties.csv > > > @@ -17,7 +17,6 @@ Owner Module/Drivers,Group,Property Name,Type,Property Values,Object attached,De > > > ,Virtual GPU,“suggested X”,RANGE,"Min=0, Max=0xffffffff",Connector,property to suggest an X offset for a connector > > > ,,“suggested Y”,RANGE,"Min=0, Max=0xffffffff",Connector,property to suggest an Y offset for a connector > > > ,Optional,"""aspect ratio""",ENUM,"{ ""None"", ""4:3"", ""16:9"" }",Connector,TDB > > > -i915,Generic,"""Broadcast RGB""",ENUM,"{ ""Automatic"", ""Full"", ""Limited 16:235"" }",Connector,"When this property is set to Limited 16:235 and CTM is set, the hardware will be programmed with the result of the multiplication of CTM by the limited range matrix to ensure the pixels normally in the range 0..1.0 are remapped to the range 16/255..235/255." > > > ,,“audio”,ENUM,"{ ""force-dvi"", ""off"", ""auto"", ""on"" }",Connector,TBD > > > ,SDVO-TV,“mode”,ENUM,"{ ""NTSC_M"", ""NTSC_J"", ""NTSC_443"", ""PAL_B"" } etc.",Connector,TBD > > > ,,"""left_margin""",RANGE,"Min=0, Max= SDVO dependent",Connector,TBD > > > diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c > > > index c31fc0b48c31..1465a7f09a0b 100644 > > > --- a/drivers/gpu/drm/drm_atomic.c > > > +++ b/drivers/gpu/drm/drm_atomic.c > > > @@ -1142,6 +1142,11 @@ static void drm_atomic_connector_print_state(struct drm_printer *p, > > > drm_printf(p, "\tmax_requested_bpc=%d\n", state->max_requested_bpc); > > > drm_printf(p, "\tcolorspace=%s\n", drm_get_colorspace_name(state->colorspace)); > > > > > > + if (connector->connector_type == DRM_MODE_CONNECTOR_HDMIA || > > > + connector->connector_type == DRM_MODE_CONNECTOR_HDMIB) > > > + drm_printf(p, "\tbroadcast_rgb=%s\n", > > > + drm_hdmi_connector_get_broadcast_rgb_name(state->hdmi.broadcast_rgb)); > > > + > > > if (connector->connector_type == DRM_MODE_CONNECTOR_WRITEBACK) > > > if (state->writeback_job && state->writeback_job->fb) > > > drm_printf(p, "\tfb=%d\n", state->writeback_job->fb->base.id); > > > diff --git a/drivers/gpu/drm/drm_atomic_state_helper.c b/drivers/gpu/drm/drm_atomic_state_helper.c > > > index e69c0cc1c6da..10d98620a358 100644 > > > --- a/drivers/gpu/drm/drm_atomic_state_helper.c > > > +++ b/drivers/gpu/drm/drm_atomic_state_helper.c > > > @@ -583,6 +583,7 @@ EXPORT_SYMBOL(drm_atomic_helper_connector_tv_reset); > > > void __drm_atomic_helper_connector_hdmi_reset(struct drm_connector *connector, > > > struct drm_connector_state *new_state) > > > { > > > + new_state->hdmi.broadcast_rgb = DRM_HDMI_BROADCAST_RGB_AUTO; > > > } > > > EXPORT_SYMBOL(__drm_atomic_helper_connector_hdmi_reset); > > > > > > @@ -650,6 +651,22 @@ EXPORT_SYMBOL(drm_atomic_helper_connector_tv_check); > > > int drm_atomic_helper_connector_hdmi_check(struct drm_connector *connector, > > > struct drm_atomic_state *state) > > > { > > > + struct drm_connector_state *old_state = > > > + drm_atomic_get_old_connector_state(state, connector); > > > + struct drm_connector_state *new_state = > > > + drm_atomic_get_new_connector_state(state, connector); > > > + > > > + if (old_state->hdmi.broadcast_rgb != new_state->hdmi.broadcast_rgb) { > > > + struct drm_crtc *crtc = new_state->crtc; > > > + struct drm_crtc_state *crtc_state; > > > + > > > + crtc_state = drm_atomic_get_crtc_state(state, crtc); > > > + if (IS_ERR(crtc_state)) > > > + return PTR_ERR(crtc_state); > > > + > > > + crtc_state->mode_changed = true; > > > + } > > > + > > > return 0; > > > } > > > EXPORT_SYMBOL(drm_atomic_helper_connector_hdmi_check); > > > diff --git a/drivers/gpu/drm/drm_atomic_uapi.c b/drivers/gpu/drm/drm_atomic_uapi.c > > > index aee4a65d4959..3eb4f4bc8b71 100644 > > > --- a/drivers/gpu/drm/drm_atomic_uapi.c > > > +++ b/drivers/gpu/drm/drm_atomic_uapi.c > > > @@ -818,6 +818,8 @@ static int drm_atomic_connector_set_property(struct drm_connector *connector, > > > state->max_requested_bpc = val; > > > } else if (property == connector->privacy_screen_sw_state_property) { > > > state->privacy_screen_sw_state = val; > > > + } else if (property == connector->broadcast_rgb_property) { > > > + state->hdmi.broadcast_rgb = val; > > > } else if (connector->funcs->atomic_set_property) { > > > return connector->funcs->atomic_set_property(connector, > > > state, property, val); > > > @@ -901,6 +903,8 @@ drm_atomic_connector_get_property(struct drm_connector *connector, > > > *val = state->max_requested_bpc; > > > } else if (property == connector->privacy_screen_sw_state_property) { > > > *val = state->privacy_screen_sw_state; > > > + } else if (property == connector->broadcast_rgb_property) { > > > + *val = state->hdmi.broadcast_rgb; > > > } else if (connector->funcs->atomic_get_property) { > > > return connector->funcs->atomic_get_property(connector, > > > state, property, val); > > > diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c > > > index d9961cce8245..929b0a911f62 100644 > > > --- a/drivers/gpu/drm/drm_connector.c > > > +++ b/drivers/gpu/drm/drm_connector.c > > > @@ -1183,6 +1183,29 @@ static const u32 dp_colorspaces = > > > BIT(DRM_MODE_COLORIMETRY_BT2020_CYCC) | > > > BIT(DRM_MODE_COLORIMETRY_BT2020_YCC); > > > > > > +static const struct drm_prop_enum_list broadcast_rgb_names[] = { > > > + { DRM_HDMI_BROADCAST_RGB_AUTO, "Automatic" }, > > > + { DRM_HDMI_BROADCAST_RGB_FULL, "Full" }, > > > + { DRM_HDMI_BROADCAST_RGB_LIMITED, "Limited 16:235" }, > > > +}; > > > + > > > +/* > > > + * drm_hdmi_connector_get_broadcast_rgb_name - Return a string for HDMI connector RGB broadcast selection > > > + * @broadcast_rgb: Broadcast RGB selection to compute name of > > > + * > > > + * Returns: the name of the Broadcast RGB selection, or NULL if the type > > > + * is not valid. > > > + */ > > > +const char * > > > +drm_hdmi_connector_get_broadcast_rgb_name(enum drm_hdmi_broadcast_rgb broadcast_rgb) > > > +{ > > > + if (broadcast_rgb > DRM_HDMI_BROADCAST_RGB_LIMITED) > > > + return NULL; > > > + > > > + return broadcast_rgb_names[broadcast_rgb].name; > > > +} > > > +EXPORT_SYMBOL(drm_hdmi_connector_get_broadcast_rgb_name); > > > + > > > /** > > > * DOC: standard connector properties > > > * > > > @@ -1655,6 +1678,26 @@ EXPORT_SYMBOL(drm_connector_attach_dp_subconnector_property); > > > /** > > > * DOC: HDMI connector properties > > > * > > > + * Broadcast RGB > > > + * Indicates the RGB Quantization Range (Full vs Limited) used. > > > + * Infoframes will be generated according to that value. > > > + * > > > + * The value of this property can be one of the following: > > > + * > > > + * Automatic: > > > + * RGB Range is selected automatically based on the mode > > > + * according to the HDMI specifications. > > > + * > > > + * Full: > > > + * Full RGB Range is forced. > > > + * > > > + * Limited 16:235: > > > + * Limited RGB Range is forced. Unlike the name suggests, > > > + * this works for any number of bits-per-component. > > > + * > > > + * Drivers can set up this property by calling > > > + * drm_connector_attach_broadcast_rgb_property(). > > > + * > > > > This is a good time to document this in more detail. > > I have the feeling that it already is documented in more detail. But > anyway, last time we discussed it the answer was basically to not bother > and just merge the thing. So I'm getting some mixed signals here. I'm all for merging and not trying to improve the property but documenting it in more detail is definitely something I want to see. > > There might be two different things being affected: > > > > 1. The signalling (InfoFrame/SDP/...) > > 2. The color pipeline processing > > > > All values of Broadcast RGB always affect the color pipeline processing > > such that a full-range input to the CRTC is converted to either full- or > > limited-range, depending on what the monitor is supposed to accept. > > > > When automatic is selected, does that mean that there is no signalling, > > or that the signalling matches what the monitor is supposed to accept > > according to the spec? > > The doc states that "Infoframes will be generated according to that > value". Is it ambiguous? > > > Also, is this really HDMI specific? > > Probably not, but it can easily be expanded to other connector types > when needs be. > > > When full or limited is selected and the monitor doesn't support the > > signalling, what happens? > > I would expect colors to be off > > Maxime From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id A8890C47DAF for ; Thu, 18 Jan 2024 21:21:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=uqBGGg5MKxqYGyO0r4eUx0iKlgmoE1ZgUWX+VYID/Vo=; b=iKMrukiCx/LxyK yUqcMRS0cELWx2kcstLeQjT0l7tUozMCvHHUv48YNwAb30YNpdhsBNhyOYkSqUO6beous4HHr9rNG xS5XifPEIBhrgCiJvP2lyPNNyv0RUTC/OLuHlzTZqqTYH/ZogLkGh0WXouST5LuMCF75IEqxMW/3r Or7O5ZEJ5DDF5s9YU7AOIg4ih4uW6bOhlw85AER7MPJCa3/koLZFaRn+VTORLHSuSyRTmgpL4v2jl /0pf5wiwE6bsew8CbHtHyS8/im8Ze0qQvO1fOD5DX59zOrEbR9TTl3OL62UM4JB7DET6J7c5nwbbC P3BPSVShp/9QInfO2Ldw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1rQZpA-003tZq-2A; Thu, 18 Jan 2024 21:21:20 +0000 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1rQZp4-003tXs-3B for linux-rockchip@lists.infradead.org; Thu, 18 Jan 2024 21:21:16 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1705612870; h=from:from: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; bh=l/RFuMwXFGgnLzX+gQ+7Eyl0Fns+nyjhizUJ9hMdtGQ=; b=JEorMaSM4ImwsX1w/rc8EpRzoeLCZXHnvnN4sAj9Dm7csCfYwjjIQ2T+QSnEmOicINmJXj nT0sADbYZQT55bCpaQLfZxi6CzMwiRkFCtpHbQWcrSQhh6Uw5KNSWAz09XJV3+gJxUnphT dpkHtI6M5ss9CAnucRlowN8Z+kIKMW0= Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-638-GOEhYvrwP_S_DieWHNLjNQ-1; Thu, 18 Jan 2024 16:21:09 -0500 X-MC-Unique: GOEhYvrwP_S_DieWHNLjNQ-1 Received: by mail-wm1-f71.google.com with SMTP id 5b1f17b1804b1-40e419b52d5so563305e9.3 for ; Thu, 18 Jan 2024 13:21:09 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705612868; x=1706217668; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=l/RFuMwXFGgnLzX+gQ+7Eyl0Fns+nyjhizUJ9hMdtGQ=; b=f7C6iW3CoUMctQNEORAURc404+KAZJQL2+Wqb9FbbYhpOOpEm6iQ4GT1+96Q8LbSKZ M6gmQ6t69RcCbCmW3dkRUKk94AvWehVbqZMELO8oK/0x4EbE0uTFOyRgCA2I1+0GEDFd r1VQhRTNSZ/M46q+L3lWPh2Yw56i8ySilA9lbnMTUfMX8vnt8VAfYParBrx7SvhT33IL EEgYM7F42Iv8HY4MvnElJFh8jnI7PMVReIdn1ek7E5jsk3zyx0Us8XWSxwp+kEQP1MAq 6W6GHrDRggabz98KsfXE2myszqBMY2JTEogm0wJpnqhvzLg5TXzbqepYnQnn4ypMbp9e 4x/w== X-Gm-Message-State: AOJu0YxM4n2eigCVEr4UhwcFlr6F1Nya4R3Jr1cNPsK0Th+xdTVB+uMF 8Buepvr4WzqMQiLyRa9YUhLjKourEHqyX6vp3aF87PnDhkaG4xC6NkuHoPp1T+OvC+MdDzwwkQQ uNuWSgXpFm1hJEYUNE8XXceBSlQQivFk35YyB6YM7RcjD+yfvWCs7Rl9FZUEInbILPccAWQ== X-Received: by 2002:a05:600c:4fd0:b0:40e:7485:daee with SMTP id o16-20020a05600c4fd000b0040e7485daeemr889516wmq.90.1705612868215; Thu, 18 Jan 2024 13:21:08 -0800 (PST) X-Google-Smtp-Source: AGHT+IEbMdqyiktrO4MfePrGAzXbNxUb85rIEKPcPE1jD7jmO2KFaepfrTeZH0nCka73fDv9zyB9iQ== X-Received: by 2002:a05:600c:4fd0:b0:40e:7485:daee with SMTP id o16-20020a05600c4fd000b0040e7485daeemr889513wmq.90.1705612867823; Thu, 18 Jan 2024 13:21:07 -0800 (PST) Received: from toolbox ([2001:9e8:89aa:f00:af88:d221:94de:a009]) by smtp.gmail.com with ESMTPSA id p9-20020a05600c1d8900b0040e95632357sm2223810wms.26.2024.01.18.13.21.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 18 Jan 2024 13:21:07 -0800 (PST) Date: Thu, 18 Jan 2024 22:21:05 +0100 From: Sebastian Wick To: Maxime Ripard Cc: Thomas Zimmermann , Emma Anholt , Jonathan Corbet , linux-kernel@vger.kernel.org, Samuel Holland , Sandy Huang , Jernej Skrabec , linux-doc@vger.kernel.org, Hans Verkuil , linux-rockchip@lists.infradead.org, Chen-Yu Tsai , dri-devel@lists.freedesktop.org, linux-media@vger.kernel.org, David Airlie , linux-sunxi@lists.linux.dev, linux-arm-kernel@lists.infradead.org Subject: Re: Re: [PATCH v5 08/44] drm/connector: hdmi: Add Broadcast RGB property Message-ID: <20240118212105.GA30589@toolbox> References: <20231207-kms-hdmi-connector-state-v5-0-6538e19d634d@kernel.org> <20231207-kms-hdmi-connector-state-v5-8-6538e19d634d@kernel.org> <20240115143308.GA159345@toolbox> MIME-Version: 1.0 In-Reply-To: X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Disposition: inline X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240118_132115_192656_7211C051 X-CRM114-Status: GOOD ( 50.38 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org T24gTW9uLCBKYW4gMTUsIDIwMjQgYXQgMDQ6MjU6NDFQTSArMDEwMCwgTWF4aW1lIFJpcGFyZCB3 cm90ZToKPiBPbiBNb24sIEphbiAxNSwgMjAyNCBhdCAwMzozMzowOFBNICswMTAwLCBTZWJhc3Rp YW4gV2ljayB3cm90ZToKPiA+IE9uIFRodSwgRGVjIDA3LCAyMDIzIGF0IDA0OjQ5OjMxUE0gKzAx MDAsIE1heGltZSBSaXBhcmQgd3JvdGU6Cj4gPiA+IFRoZSBpOTE1IGRyaXZlciBoYXMgYSBwcm9w ZXJ0eSB0byBmb3JjZSB0aGUgUkdCIHJhbmdlIG9mIGFuIEhETUkgb3V0cHV0Lgo+ID4gPiBUaGUg dmM0IGRyaXZlciB0aGVuIGltcGxlbWVudGVkIHRoZSBzYW1lIHByb3BlcnR5IHdpdGggdGhlIHNh bWUKPiA+ID4gc2VtYW50aWNzLiBLV2luIGhhcyBzdXBwb3J0IGZvciBpdCwgYW5kIGEgUFIgZm9y IG11dHRlciBpcyBhbHNvIHRoZXJlIHRvCj4gPiA+IHN1cHBvcnQgaXQuCj4gPiA+IAo+ID4gPiBC b3RoIGRyaXZlcnMgaW1wbGVtZW50aW5nIHRoZSBzYW1lIHByb3BlcnR5IHdpdGggdGhlIHNhbWUg c2VtYW50aWNzLAo+ID4gPiBwbHVzIHRoZSB1c2Vyc3BhY2UgaGF2aW5nIHN1cHBvcnQgZm9yIGl0 LCBpcyBwcm9vZiBlbm91Z2ggdGhhdCBpdCdzCj4gPiA+IHByZXR0eSBtdWNoIGEgZGUtZmFjdG8g c3RhbmRhcmQgbm93IGFuZCB3ZSBjYW4gcHJvdmlkZSBoZWxwZXJzIGZvciBpdC4KPiA+ID4gCj4g PiA+IExldCdzIHBsdW1iIGl0IGludG8gdGhlIG5ld2x5IGNyZWF0ZWQgSERNSSBjb25uZWN0b3Iu Cj4gPiA+IAo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBNYXhpbWUgUmlwYXJkIDxtcmlwYXJkQGtlcm5l bC5vcmc+Cj4gPiA+IC0tLQo+ID4gPiAgRG9jdW1lbnRhdGlvbi9ncHUva21zLXByb3BlcnRpZXMu Y3N2ICAgICAgICAgICAgICAgfCAgIDEgLQo+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2RybV9hdG9t aWMuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgIDUgKwo+ID4gPiAgZHJpdmVycy9ncHUvZHJt L2RybV9hdG9taWNfc3RhdGVfaGVscGVyLmMgICAgICAgICAgfCAgMTcgKwo+ID4gPiAgZHJpdmVy cy9ncHUvZHJtL2RybV9hdG9taWNfdWFwaS5jICAgICAgICAgICAgICAgICAgfCAgIDQgKwo+ID4g PiAgZHJpdmVycy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYyAgICAgICAgICAgICAgICAgICAgfCAg NzYgKysrKysKPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS90ZXN0cy9NYWtlZmlsZSAgICAgICAgICAg ICAgICAgICAgIHwgICAxICsKPiA+ID4gIC4uLi9ncHUvZHJtL3Rlc3RzL2RybV9hdG9taWNfc3Rh dGVfaGVscGVyX3Rlc3QuYyAgIHwgMzc2ICsrKysrKysrKysrKysrKysrKysrKwo+ID4gPiAgZHJp dmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jb25uZWN0b3JfdGVzdC5jICAgICAgICAgfCAxMTcgKysr KysrLQo+ID4gPiAgZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9rdW5pdF9lZGlkLmggICAgICAg ICAgICAgfCAxMDYgKysrKysrCj4gPiA+ICBpbmNsdWRlL2RybS9kcm1fY29ubmVjdG9yLmggICAg ICAgICAgICAgICAgICAgICAgICB8ICAzNiArKwo+ID4gPiAgMTAgZmlsZXMgY2hhbmdlZCwgNzM3 IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCj4gPiA+IAo+ID4gPiBkaWZmIC0tZ2l0IGEv RG9jdW1lbnRhdGlvbi9ncHUva21zLXByb3BlcnRpZXMuY3N2IGIvRG9jdW1lbnRhdGlvbi9ncHUv a21zLXByb3BlcnRpZXMuY3N2Cj4gPiA+IGluZGV4IDBmOTU5MDgzNDgyOS4uY2FlZjE0YzUzMmQ0 IDEwMDY0NAo+ID4gPiAtLS0gYS9Eb2N1bWVudGF0aW9uL2dwdS9rbXMtcHJvcGVydGllcy5jc3YK PiA+ID4gKysrIGIvRG9jdW1lbnRhdGlvbi9ncHUva21zLXByb3BlcnRpZXMuY3N2Cj4gPiA+IEBA IC0xNyw3ICsxNyw2IEBAIE93bmVyIE1vZHVsZS9Ecml2ZXJzLEdyb3VwLFByb3BlcnR5IE5hbWUs VHlwZSxQcm9wZXJ0eSBWYWx1ZXMsT2JqZWN0IGF0dGFjaGVkLERlCj4gPiA+ICAsVmlydHVhbCBH UFUs4oCcc3VnZ2VzdGVkIFjigJ0sUkFOR0UsIk1pbj0wLCBNYXg9MHhmZmZmZmZmZiIsQ29ubmVj dG9yLHByb3BlcnR5IHRvIHN1Z2dlc3QgYW4gWCBvZmZzZXQgZm9yIGEgY29ubmVjdG9yCj4gPiA+ ICAsLOKAnHN1Z2dlc3RlZCBZ4oCdLFJBTkdFLCJNaW49MCwgTWF4PTB4ZmZmZmZmZmYiLENvbm5l Y3Rvcixwcm9wZXJ0eSB0byBzdWdnZXN0IGFuIFkgb2Zmc2V0IGZvciBhIGNvbm5lY3Rvcgo+ID4g PiAgLE9wdGlvbmFsLCIiImFzcGVjdCByYXRpbyIiIixFTlVNLCJ7ICIiTm9uZSIiLCAiIjQ6MyIi LCAiIjE2OjkiIiB9IixDb25uZWN0b3IsVERCCj4gPiA+IC1pOTE1LEdlbmVyaWMsIiIiQnJvYWRj YXN0IFJHQiIiIixFTlVNLCJ7ICIiQXV0b21hdGljIiIsICIiRnVsbCIiLCAiIkxpbWl0ZWQgMTY6 MjM1IiIgfSIsQ29ubmVjdG9yLCJXaGVuIHRoaXMgcHJvcGVydHkgaXMgc2V0IHRvIExpbWl0ZWQg MTY6MjM1IGFuZCBDVE0gaXMgc2V0LCB0aGUgaGFyZHdhcmUgd2lsbCBiZSBwcm9ncmFtbWVkIHdp dGggdGhlIHJlc3VsdCBvZiB0aGUgbXVsdGlwbGljYXRpb24gb2YgQ1RNIGJ5IHRoZSBsaW1pdGVk IHJhbmdlIG1hdHJpeCB0byBlbnN1cmUgdGhlIHBpeGVscyBub3JtYWxseSBpbiB0aGUgcmFuZ2Ug MC4uMS4wIGFyZSByZW1hcHBlZCB0byB0aGUgcmFuZ2UgMTYvMjU1Li4yMzUvMjU1LiIKPiA+ID4g ICws4oCcYXVkaW/igJ0sRU5VTSwieyAiImZvcmNlLWR2aSIiLCAiIm9mZiIiLCAiImF1dG8iIiwg IiJvbiIiIH0iLENvbm5lY3RvcixUQkQKPiA+ID4gICxTRFZPLVRWLOKAnG1vZGXigJ0sRU5VTSwi eyAiIk5UU0NfTSIiLCAiIk5UU0NfSiIiLCAiIk5UU0NfNDQzIiIsICIiUEFMX0IiIiB9IGV0Yy4i LENvbm5lY3RvcixUQkQKPiA+ID4gICwsIiIibGVmdF9tYXJnaW4iIiIsUkFOR0UsIk1pbj0wLCBN YXg9IFNEVk8gZGVwZW5kZW50IixDb25uZWN0b3IsVEJECj4gPiA+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwo+ ID4gPiBpbmRleCBjMzFmYzBiNDhjMzEuLjE0NjVhN2YwOWEwYiAxMDA2NDQKPiA+ID4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwo+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v ZHJtX2F0b21pYy5jCj4gPiA+IEBAIC0xMTQyLDYgKzExNDIsMTEgQEAgc3RhdGljIHZvaWQgZHJt X2F0b21pY19jb25uZWN0b3JfcHJpbnRfc3RhdGUoc3RydWN0IGRybV9wcmludGVyICpwLAo+ID4g PiAgCWRybV9wcmludGYocCwgIlx0bWF4X3JlcXVlc3RlZF9icGM9JWRcbiIsIHN0YXRlLT5tYXhf cmVxdWVzdGVkX2JwYyk7Cj4gPiA+ICAJZHJtX3ByaW50ZihwLCAiXHRjb2xvcnNwYWNlPSVzXG4i LCBkcm1fZ2V0X2NvbG9yc3BhY2VfbmFtZShzdGF0ZS0+Y29sb3JzcGFjZSkpOwo+ID4gPiAgCj4g PiA+ICsJaWYgKGNvbm5lY3Rvci0+Y29ubmVjdG9yX3R5cGUgPT0gRFJNX01PREVfQ09OTkVDVE9S X0hETUlBIHx8Cj4gPiA+ICsJICAgIGNvbm5lY3Rvci0+Y29ubmVjdG9yX3R5cGUgPT0gRFJNX01P REVfQ09OTkVDVE9SX0hETUlCKQo+ID4gPiArCQlkcm1fcHJpbnRmKHAsICJcdGJyb2FkY2FzdF9y Z2I9JXNcbiIsCj4gPiA+ICsJCQkgICBkcm1faGRtaV9jb25uZWN0b3JfZ2V0X2Jyb2FkY2FzdF9y Z2JfbmFtZShzdGF0ZS0+aGRtaS5icm9hZGNhc3RfcmdiKSk7Cj4gPiA+ICsKPiA+ID4gIAlpZiAo Y29ubmVjdG9yLT5jb25uZWN0b3JfdHlwZSA9PSBEUk1fTU9ERV9DT05ORUNUT1JfV1JJVEVCQUNL KQo+ID4gPiAgCQlpZiAoc3RhdGUtPndyaXRlYmFja19qb2IgJiYgc3RhdGUtPndyaXRlYmFja19q b2ItPmZiKQo+ID4gPiAgCQkJZHJtX3ByaW50ZihwLCAiXHRmYj0lZFxuIiwgc3RhdGUtPndyaXRl YmFja19qb2ItPmZiLT5iYXNlLmlkKTsKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fYXRvbWljX3N0YXRlX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNf c3RhdGVfaGVscGVyLmMKPiA+ID4gaW5kZXggZTY5YzBjYzFjNmRhLi4xMGQ5ODYyMGEzNTggMTAw NjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3N0YXRlX2hlbHBlci5j Cj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3N0YXRlX2hlbHBlci5jCj4g PiA+IEBAIC01ODMsNiArNTgzLDcgQEAgRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2hlbHBlcl9j b25uZWN0b3JfdHZfcmVzZXQpOwo+ID4gPiAgdm9pZCBfX2RybV9hdG9taWNfaGVscGVyX2Nvbm5l Y3Rvcl9oZG1pX3Jlc2V0KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gPiA+ICAJ CQkJCSAgICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpuZXdfc3RhdGUpCj4gPiA+ICB7 Cj4gPiA+ICsJbmV3X3N0YXRlLT5oZG1pLmJyb2FkY2FzdF9yZ2IgPSBEUk1fSERNSV9CUk9BRENB U1RfUkdCX0FVVE87Cj4gPiA+ICB9Cj4gPiA+ICBFWFBPUlRfU1lNQk9MKF9fZHJtX2F0b21pY19o ZWxwZXJfY29ubmVjdG9yX2hkbWlfcmVzZXQpOwo+ID4gPiAgCj4gPiA+IEBAIC02NTAsNiArNjUx LDIyIEBAIEVYUE9SVF9TWU1CT0woZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX3R2X2NoZWNr KTsKPiA+ID4gIGludCBkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfaGRtaV9jaGVjayhzdHJ1 Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ID4gPiAgCQkJCQkgICBzdHJ1Y3QgZHJtX2F0 b21pY19zdGF0ZSAqc3RhdGUpCj4gPiA+ICB7Cj4gPiA+ICsJc3RydWN0IGRybV9jb25uZWN0b3Jf c3RhdGUgKm9sZF9zdGF0ZSA9Cj4gPiA+ICsJCWRybV9hdG9taWNfZ2V0X29sZF9jb25uZWN0b3Jf c3RhdGUoc3RhdGUsIGNvbm5lY3Rvcik7Cj4gPiA+ICsJc3RydWN0IGRybV9jb25uZWN0b3Jfc3Rh dGUgKm5ld19zdGF0ZSA9Cj4gPiA+ICsJCWRybV9hdG9taWNfZ2V0X25ld19jb25uZWN0b3Jfc3Rh dGUoc3RhdGUsIGNvbm5lY3Rvcik7Cj4gPiA+ICsKPiA+ID4gKwlpZiAob2xkX3N0YXRlLT5oZG1p LmJyb2FkY2FzdF9yZ2IgIT0gbmV3X3N0YXRlLT5oZG1pLmJyb2FkY2FzdF9yZ2IpIHsKPiA+ID4g KwkJc3RydWN0IGRybV9jcnRjICpjcnRjID0gbmV3X3N0YXRlLT5jcnRjOwo+ID4gPiArCQlzdHJ1 Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7Cj4gPiA+ICsKPiA+ID4gKwkJY3J0Y19zdGF0 ZSA9IGRybV9hdG9taWNfZ2V0X2NydGNfc3RhdGUoc3RhdGUsIGNydGMpOwo+ID4gPiArCQlpZiAo SVNfRVJSKGNydGNfc3RhdGUpKQo+ID4gPiArCQkJcmV0dXJuIFBUUl9FUlIoY3J0Y19zdGF0ZSk7 Cj4gPiA+ICsKPiA+ID4gKwkJY3J0Y19zdGF0ZS0+bW9kZV9jaGFuZ2VkID0gdHJ1ZTsKPiA+ID4g Kwl9Cj4gPiA+ICsKPiA+ID4gIAlyZXR1cm4gMDsKPiA+ID4gIH0KPiA+ID4gIEVYUE9SVF9TWU1C T0woZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2hkbWlfY2hlY2spOwo+ID4gPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfdWFwaS5jIGIvZHJpdmVycy9ncHUvZHJt L2RybV9hdG9taWNfdWFwaS5jCj4gPiA+IGluZGV4IGFlZTRhNjVkNDk1OS4uM2ViNGY0YmM4Yjcx IDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY191YXBpLmMKPiA+ ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfdWFwaS5jCj4gPiA+IEBAIC04MTgs NiArODE4LDggQEAgc3RhdGljIGludCBkcm1fYXRvbWljX2Nvbm5lY3Rvcl9zZXRfcHJvcGVydHko c3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiA+ID4gIAkJc3RhdGUtPm1heF9yZXF1 ZXN0ZWRfYnBjID0gdmFsOwo+ID4gPiAgCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gY29ubmVjdG9y LT5wcml2YWN5X3NjcmVlbl9zd19zdGF0ZV9wcm9wZXJ0eSkgewo+ID4gPiAgCQlzdGF0ZS0+cHJp dmFjeV9zY3JlZW5fc3dfc3RhdGUgPSB2YWw7Cj4gPiA+ICsJfSBlbHNlIGlmIChwcm9wZXJ0eSA9 PSBjb25uZWN0b3ItPmJyb2FkY2FzdF9yZ2JfcHJvcGVydHkpIHsKPiA+ID4gKwkJc3RhdGUtPmhk bWkuYnJvYWRjYXN0X3JnYiA9IHZhbDsKPiA+ID4gIAl9IGVsc2UgaWYgKGNvbm5lY3Rvci0+ZnVu Y3MtPmF0b21pY19zZXRfcHJvcGVydHkpIHsKPiA+ID4gIAkJcmV0dXJuIGNvbm5lY3Rvci0+ZnVu Y3MtPmF0b21pY19zZXRfcHJvcGVydHkoY29ubmVjdG9yLAo+ID4gPiAgCQkJCXN0YXRlLCBwcm9w ZXJ0eSwgdmFsKTsKPiA+ID4gQEAgLTkwMSw2ICs5MDMsOCBAQCBkcm1fYXRvbWljX2Nvbm5lY3Rv cl9nZXRfcHJvcGVydHkoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiA+ID4gIAkJ KnZhbCA9IHN0YXRlLT5tYXhfcmVxdWVzdGVkX2JwYzsKPiA+ID4gIAl9IGVsc2UgaWYgKHByb3Bl cnR5ID09IGNvbm5lY3Rvci0+cHJpdmFjeV9zY3JlZW5fc3dfc3RhdGVfcHJvcGVydHkpIHsKPiA+ ID4gIAkJKnZhbCA9IHN0YXRlLT5wcml2YWN5X3NjcmVlbl9zd19zdGF0ZTsKPiA+ID4gKwl9IGVs c2UgaWYgKHByb3BlcnR5ID09IGNvbm5lY3Rvci0+YnJvYWRjYXN0X3JnYl9wcm9wZXJ0eSkgewo+ ID4gPiArCQkqdmFsID0gc3RhdGUtPmhkbWkuYnJvYWRjYXN0X3JnYjsKPiA+ID4gIAl9IGVsc2Ug aWYgKGNvbm5lY3Rvci0+ZnVuY3MtPmF0b21pY19nZXRfcHJvcGVydHkpIHsKPiA+ID4gIAkJcmV0 dXJuIGNvbm5lY3Rvci0+ZnVuY3MtPmF0b21pY19nZXRfcHJvcGVydHkoY29ubmVjdG9yLAo+ID4g PiAgCQkJCXN0YXRlLCBwcm9wZXJ0eSwgdmFsKTsKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9kcm1fY29ubmVjdG9yLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2Nvbm5lY3Rvci5j Cj4gPiA+IGluZGV4IGQ5OTYxY2NlODI0NS4uOTI5YjBhOTExZjYyIDEwMDY0NAo+ID4gPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vZHJtX2Nvbm5lY3Rvci5jCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9kcm1fY29ubmVjdG9yLmMKPiA+ID4gQEAgLTExODMsNiArMTE4MywyOSBAQCBzdGF0aWMg Y29uc3QgdTMyIGRwX2NvbG9yc3BhY2VzID0KPiA+ID4gIAlCSVQoRFJNX01PREVfQ09MT1JJTUVU UllfQlQyMDIwX0NZQ0MpIHwKPiA+ID4gIAlCSVQoRFJNX01PREVfQ09MT1JJTUVUUllfQlQyMDIw X1lDQyk7Cj4gPiA+ICAKPiA+ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX3Byb3BfZW51bV9s aXN0IGJyb2FkY2FzdF9yZ2JfbmFtZXNbXSA9IHsKPiA+ID4gKwl7IERSTV9IRE1JX0JST0FEQ0FT VF9SR0JfQVVUTywgIkF1dG9tYXRpYyIgfSwKPiA+ID4gKwl7IERSTV9IRE1JX0JST0FEQ0FTVF9S R0JfRlVMTCwgIkZ1bGwiIH0sCj4gPiA+ICsJeyBEUk1fSERNSV9CUk9BRENBU1RfUkdCX0xJTUlU RUQsICJMaW1pdGVkIDE2OjIzNSIgfSwKPiA+ID4gK307Cj4gPiA+ICsKPiA+ID4gKy8qCj4gPiA+ ICsgKiBkcm1faGRtaV9jb25uZWN0b3JfZ2V0X2Jyb2FkY2FzdF9yZ2JfbmFtZSAtIFJldHVybiBh IHN0cmluZyBmb3IgSERNSSBjb25uZWN0b3IgUkdCIGJyb2FkY2FzdCBzZWxlY3Rpb24KPiA+ID4g KyAqIEBicm9hZGNhc3RfcmdiOiBCcm9hZGNhc3QgUkdCIHNlbGVjdGlvbiB0byBjb21wdXRlIG5h bWUgb2YKPiA+ID4gKyAqCj4gPiA+ICsgKiBSZXR1cm5zOiB0aGUgbmFtZSBvZiB0aGUgQnJvYWRj YXN0IFJHQiBzZWxlY3Rpb24sIG9yIE5VTEwgaWYgdGhlIHR5cGUKPiA+ID4gKyAqIGlzIG5vdCB2 YWxpZC4KPiA+ID4gKyAqLwo+ID4gPiArY29uc3QgY2hhciAqCj4gPiA+ICtkcm1faGRtaV9jb25u ZWN0b3JfZ2V0X2Jyb2FkY2FzdF9yZ2JfbmFtZShlbnVtIGRybV9oZG1pX2Jyb2FkY2FzdF9yZ2Ig YnJvYWRjYXN0X3JnYikKPiA+ID4gK3sKPiA+ID4gKwlpZiAoYnJvYWRjYXN0X3JnYiA+IERSTV9I RE1JX0JST0FEQ0FTVF9SR0JfTElNSVRFRCkKPiA+ID4gKwkJcmV0dXJuIE5VTEw7Cj4gPiA+ICsK PiA+ID4gKwlyZXR1cm4gYnJvYWRjYXN0X3JnYl9uYW1lc1ticm9hZGNhc3RfcmdiXS5uYW1lOwo+ ID4gPiArfQo+ID4gPiArRVhQT1JUX1NZTUJPTChkcm1faGRtaV9jb25uZWN0b3JfZ2V0X2Jyb2Fk Y2FzdF9yZ2JfbmFtZSk7Cj4gPiA+ICsKPiA+ID4gIC8qKgo+ID4gPiAgICogRE9DOiBzdGFuZGFy ZCBjb25uZWN0b3IgcHJvcGVydGllcwo+ID4gPiAgICoKPiA+ID4gQEAgLTE2NTUsNiArMTY3OCwy NiBAQCBFWFBPUlRfU1lNQk9MKGRybV9jb25uZWN0b3JfYXR0YWNoX2RwX3N1YmNvbm5lY3Rvcl9w cm9wZXJ0eSk7Cj4gPiA+ICAvKioKPiA+ID4gICAqIERPQzogSERNSSBjb25uZWN0b3IgcHJvcGVy dGllcwo+ID4gPiAgICoKPiA+ID4gKyAqIEJyb2FkY2FzdCBSR0IKPiA+ID4gKyAqICAgICAgSW5k aWNhdGVzIHRoZSBSR0IgUXVhbnRpemF0aW9uIFJhbmdlIChGdWxsIHZzIExpbWl0ZWQpIHVzZWQu Cj4gPiA+ICsgKiAgICAgIEluZm9mcmFtZXMgd2lsbCBiZSBnZW5lcmF0ZWQgYWNjb3JkaW5nIHRv IHRoYXQgdmFsdWUuCj4gPiA+ICsgKgo+ID4gPiArICogICAgICBUaGUgdmFsdWUgb2YgdGhpcyBw cm9wZXJ0eSBjYW4gYmUgb25lIG9mIHRoZSBmb2xsb3dpbmc6Cj4gPiA+ICsgKgo+ID4gPiArICog ICAgICBBdXRvbWF0aWM6Cj4gPiA+ICsgKiAgICAgICAgICAgICAgUkdCIFJhbmdlIGlzIHNlbGVj dGVkIGF1dG9tYXRpY2FsbHkgYmFzZWQgb24gdGhlIG1vZGUKPiA+ID4gKyAqICAgICAgICAgICAg ICBhY2NvcmRpbmcgdG8gdGhlIEhETUkgc3BlY2lmaWNhdGlvbnMuCj4gPiA+ICsgKgo+ID4gPiAr ICogICAgICBGdWxsOgo+ID4gPiArICogICAgICAgICAgICAgIEZ1bGwgUkdCIFJhbmdlIGlzIGZv cmNlZC4KPiA+ID4gKyAqCj4gPiA+ICsgKiAgICAgIExpbWl0ZWQgMTY6MjM1Ogo+ID4gPiArICog ICAgICAgICAgICAgIExpbWl0ZWQgUkdCIFJhbmdlIGlzIGZvcmNlZC4gVW5saWtlIHRoZSBuYW1l IHN1Z2dlc3RzLAo+ID4gPiArICogICAgICAgICAgICAgIHRoaXMgd29ya3MgZm9yIGFueSBudW1i ZXIgb2YgYml0cy1wZXItY29tcG9uZW50Lgo+ID4gPiArICoKPiA+ID4gKyAqICAgICAgRHJpdmVy cyBjYW4gc2V0IHVwIHRoaXMgcHJvcGVydHkgYnkgY2FsbGluZwo+ID4gPiArICogICAgICBkcm1f Y29ubmVjdG9yX2F0dGFjaF9icm9hZGNhc3RfcmdiX3Byb3BlcnR5KCkuCj4gPiA+ICsgKgo+ID4g Cj4gPiBUaGlzIGlzIGEgZ29vZCB0aW1lIHRvIGRvY3VtZW50IHRoaXMgaW4gbW9yZSBkZXRhaWwu Cj4gCj4gSSBoYXZlIHRoZSBmZWVsaW5nIHRoYXQgaXQgYWxyZWFkeSBpcyBkb2N1bWVudGVkIGlu IG1vcmUgZGV0YWlsLiBCdXQKPiBhbnl3YXksIGxhc3QgdGltZSB3ZSBkaXNjdXNzZWQgaXQgdGhl IGFuc3dlciB3YXMgYmFzaWNhbGx5IHRvIG5vdCBib3RoZXIKPiBhbmQganVzdCBtZXJnZSB0aGUg dGhpbmcuIFNvIEknbSBnZXR0aW5nIHNvbWUgbWl4ZWQgc2lnbmFscyBoZXJlLgoKSSdtIGFsbCBm b3IgbWVyZ2luZyBhbmQgbm90IHRyeWluZyB0byBpbXByb3ZlIHRoZSBwcm9wZXJ0eSBidXQKZG9j dW1lbnRpbmcgaXQgaW4gbW9yZSBkZXRhaWwgaXMgZGVmaW5pdGVseSBzb21ldGhpbmcgSSB3YW50 IHRvIHNlZS4KCj4gPiBUaGVyZSBtaWdodCBiZSB0d28gZGlmZmVyZW50IHRoaW5ncyBiZWluZyBh ZmZlY3RlZDoKPiA+IAo+ID4gMS4gVGhlIHNpZ25hbGxpbmcgKEluZm9GcmFtZS9TRFAvLi4uKQo+ ID4gMi4gVGhlIGNvbG9yIHBpcGVsaW5lIHByb2Nlc3NpbmcKPiA+IAo+ID4gQWxsIHZhbHVlcyBv ZiBCcm9hZGNhc3QgUkdCIGFsd2F5cyBhZmZlY3QgdGhlIGNvbG9yIHBpcGVsaW5lIHByb2Nlc3Np bmcKPiA+IHN1Y2ggdGhhdCBhIGZ1bGwtcmFuZ2UgaW5wdXQgdG8gdGhlIENSVEMgaXMgY29udmVy dGVkIHRvIGVpdGhlciBmdWxsLSBvcgo+ID4gbGltaXRlZC1yYW5nZSwgZGVwZW5kaW5nIG9uIHdo YXQgdGhlIG1vbml0b3IgaXMgc3VwcG9zZWQgdG8gYWNjZXB0Lgo+ID4gCj4gPiBXaGVuIGF1dG9t YXRpYyBpcyBzZWxlY3RlZCwgZG9lcyB0aGF0IG1lYW4gdGhhdCB0aGVyZSBpcyBubyBzaWduYWxs aW5nLAo+ID4gb3IgdGhhdCB0aGUgc2lnbmFsbGluZyBtYXRjaGVzIHdoYXQgdGhlIG1vbml0b3Ig aXMgc3VwcG9zZWQgdG8gYWNjZXB0Cj4gPiBhY2NvcmRpbmcgdG8gdGhlIHNwZWM/Cj4gCj4gVGhl IGRvYyBzdGF0ZXMgdGhhdCAiSW5mb2ZyYW1lcyB3aWxsIGJlIGdlbmVyYXRlZCBhY2NvcmRpbmcg dG8gdGhhdAo+IHZhbHVlIi4gSXMgaXQgYW1iaWd1b3VzPwo+IAo+ID4gQWxzbywgaXMgdGhpcyBy ZWFsbHkgSERNSSBzcGVjaWZpYz8KPiAKPiBQcm9iYWJseSBub3QsIGJ1dCBpdCBjYW4gZWFzaWx5 IGJlIGV4cGFuZGVkIHRvIG90aGVyIGNvbm5lY3RvciB0eXBlcwo+IHdoZW4gbmVlZHMgYmUuCj4g Cj4gPiBXaGVuIGZ1bGwgb3IgbGltaXRlZCBpcyBzZWxlY3RlZCBhbmQgdGhlIG1vbml0b3IgZG9l c24ndCBzdXBwb3J0IHRoZQo+ID4gc2lnbmFsbGluZywgd2hhdCBoYXBwZW5zPwo+IAo+IEkgd291 bGQgZXhwZWN0IGNvbG9ycyB0byBiZSBvZmYKPiAKPiBNYXhpbWUKCgoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTGludXgtcm9ja2NoaXAgbWFpbGluZyBs aXN0CkxpbnV4LXJvY2tjaGlwQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJh ZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1yb2NrY2hpcAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 1FF66C47DB7 for ; Thu, 18 Jan 2024 21:21:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=AfxD2QOFHjyE6QS1EOOEuOOTPSc7a4MeWOARyzYscqU=; b=UCrIXOU5ZVATRu ckS9M3FWoaiNtQ10VZLuhpyJl2avVJcNsIWJPlCcitK0ArhRZOgh0Tz852lK1lenNuz76blnEYz9S sOOQgX9vnAOzHNvftI15s8wiRYyFEyj/lHQRkDjIDMm23FAciUxFuraBCR4J4jxkOQZyGARF3orqD pkGsvIEo20supbbfXwQAJY/O3MTwXun9tvx4md2DB4CL8iT1ehP17jIT3IYIteDX9BKQIUQc78u4C BlemyPI+kdipzaHMqq2WfKzLCbWGy/jtnfQpLbiZ9nC1xjZo9rBPzJratnLEbP0iY/Y364GxjzyM3 NDatI27Kp7Y8o7KdhBBw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1rQZpB-003taK-0I; Thu, 18 Jan 2024 21:21:21 +0000 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1rQZp6-003tZO-38 for linux-arm-kernel@lists.infradead.org; Thu, 18 Jan 2024 21:21:18 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1705612876; h=from:from: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; bh=l/RFuMwXFGgnLzX+gQ+7Eyl0Fns+nyjhizUJ9hMdtGQ=; b=aYkhRYsWMsfC4WdBuBzMi61dk3SxLbVEXLHEqZDwpyvo55rVP0CJDByy1Thuk+5cn8K6fX f4ydt08JZ6wgY/6z+wjGYWXOtvAadAheQYYnupRbrvvZ5jGErmDESUuZmDsofQ2H+dVduy dumVi+G9jKChq/WT0eDYCSAVLfWmTrU= Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-640-oCG1dDm4PEiyh93sAVCDXw-1; Thu, 18 Jan 2024 16:21:09 -0500 X-MC-Unique: oCG1dDm4PEiyh93sAVCDXw-1 Received: by mail-wm1-f71.google.com with SMTP id 5b1f17b1804b1-40e46bceed8so670235e9.0 for ; Thu, 18 Jan 2024 13:21:09 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705612868; x=1706217668; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=l/RFuMwXFGgnLzX+gQ+7Eyl0Fns+nyjhizUJ9hMdtGQ=; b=NVD1y0HYGuqQZ63RhOIQUy2ntPvUCD5G6BucvfHAQWNPQQ3UCa5h8fRaCiWob8nHb9 EXShK8wEBPwJJNAUrYMjvcchneW6aJCcZftQMFcgKc5wCNa4IUgnQmr7yAzVDjDEYTvc yfq0h+ygwFVoUgNYgWZGxzGsbiiDEbI9v1UeradPZnTRV+9KBRG/sTqMTtP4A/1EtYDL ctYiNoXxscTWC+XKrOtj66DX0JHPbNF58Jzh7D9Ee9f9iXdu/CdqLmgy2b3Uoum/Ozb5 VbFKx8GMvVbD058D1u5Ep1h4FSW/hSMvc/A3xebGN26bJ4f0Br1iPQNXyGKJUiF/m9lf I/uw== X-Gm-Message-State: AOJu0YwBr/bP12O1VnxtTYxV1RegazkImOsmC2sgb87A9I23oOazraS5 zQZd1NBWOVZDd1qieYJ8FKJApOvcqxAxICsoM0e0rTZxXw3QZ2SfyrdlxbVAaSKZ9IYrghM4Vfy qq1A8CiGH2/IyANjjSZZ51Fkg1b0SWyncFMu49/UGuUJezIPBlhj8oNHrtUclHnnIpA/R9iUL X-Received: by 2002:a05:600c:4fd0:b0:40e:7485:daee with SMTP id o16-20020a05600c4fd000b0040e7485daeemr889522wmq.90.1705612868218; Thu, 18 Jan 2024 13:21:08 -0800 (PST) X-Google-Smtp-Source: AGHT+IEbMdqyiktrO4MfePrGAzXbNxUb85rIEKPcPE1jD7jmO2KFaepfrTeZH0nCka73fDv9zyB9iQ== X-Received: by 2002:a05:600c:4fd0:b0:40e:7485:daee with SMTP id o16-20020a05600c4fd000b0040e7485daeemr889513wmq.90.1705612867823; Thu, 18 Jan 2024 13:21:07 -0800 (PST) Received: from toolbox ([2001:9e8:89aa:f00:af88:d221:94de:a009]) by smtp.gmail.com with ESMTPSA id p9-20020a05600c1d8900b0040e95632357sm2223810wms.26.2024.01.18.13.21.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 18 Jan 2024 13:21:07 -0800 (PST) Date: Thu, 18 Jan 2024 22:21:05 +0100 From: Sebastian Wick To: Maxime Ripard Cc: Thomas Zimmermann , Emma Anholt , Jonathan Corbet , linux-kernel@vger.kernel.org, Samuel Holland , Sandy Huang , Jernej Skrabec , linux-doc@vger.kernel.org, Hans Verkuil , linux-rockchip@lists.infradead.org, Chen-Yu Tsai , dri-devel@lists.freedesktop.org, linux-media@vger.kernel.org, David Airlie , linux-sunxi@lists.linux.dev, linux-arm-kernel@lists.infradead.org Subject: Re: Re: [PATCH v5 08/44] drm/connector: hdmi: Add Broadcast RGB property Message-ID: <20240118212105.GA30589@toolbox> References: <20231207-kms-hdmi-connector-state-v5-0-6538e19d634d@kernel.org> <20231207-kms-hdmi-connector-state-v5-8-6538e19d634d@kernel.org> <20240115143308.GA159345@toolbox> MIME-Version: 1.0 In-Reply-To: X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Disposition: inline X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240118_132117_152019_35BE66A8 X-CRM114-Status: GOOD ( 51.75 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gTW9uLCBKYW4gMTUsIDIwMjQgYXQgMDQ6MjU6NDFQTSArMDEwMCwgTWF4aW1lIFJpcGFyZCB3 cm90ZToKPiBPbiBNb24sIEphbiAxNSwgMjAyNCBhdCAwMzozMzowOFBNICswMTAwLCBTZWJhc3Rp YW4gV2ljayB3cm90ZToKPiA+IE9uIFRodSwgRGVjIDA3LCAyMDIzIGF0IDA0OjQ5OjMxUE0gKzAx MDAsIE1heGltZSBSaXBhcmQgd3JvdGU6Cj4gPiA+IFRoZSBpOTE1IGRyaXZlciBoYXMgYSBwcm9w ZXJ0eSB0byBmb3JjZSB0aGUgUkdCIHJhbmdlIG9mIGFuIEhETUkgb3V0cHV0Lgo+ID4gPiBUaGUg dmM0IGRyaXZlciB0aGVuIGltcGxlbWVudGVkIHRoZSBzYW1lIHByb3BlcnR5IHdpdGggdGhlIHNh bWUKPiA+ID4gc2VtYW50aWNzLiBLV2luIGhhcyBzdXBwb3J0IGZvciBpdCwgYW5kIGEgUFIgZm9y IG11dHRlciBpcyBhbHNvIHRoZXJlIHRvCj4gPiA+IHN1cHBvcnQgaXQuCj4gPiA+IAo+ID4gPiBC b3RoIGRyaXZlcnMgaW1wbGVtZW50aW5nIHRoZSBzYW1lIHByb3BlcnR5IHdpdGggdGhlIHNhbWUg c2VtYW50aWNzLAo+ID4gPiBwbHVzIHRoZSB1c2Vyc3BhY2UgaGF2aW5nIHN1cHBvcnQgZm9yIGl0 LCBpcyBwcm9vZiBlbm91Z2ggdGhhdCBpdCdzCj4gPiA+IHByZXR0eSBtdWNoIGEgZGUtZmFjdG8g c3RhbmRhcmQgbm93IGFuZCB3ZSBjYW4gcHJvdmlkZSBoZWxwZXJzIGZvciBpdC4KPiA+ID4gCj4g PiA+IExldCdzIHBsdW1iIGl0IGludG8gdGhlIG5ld2x5IGNyZWF0ZWQgSERNSSBjb25uZWN0b3Iu Cj4gPiA+IAo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBNYXhpbWUgUmlwYXJkIDxtcmlwYXJkQGtlcm5l bC5vcmc+Cj4gPiA+IC0tLQo+ID4gPiAgRG9jdW1lbnRhdGlvbi9ncHUva21zLXByb3BlcnRpZXMu Y3N2ICAgICAgICAgICAgICAgfCAgIDEgLQo+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2RybV9hdG9t aWMuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgIDUgKwo+ID4gPiAgZHJpdmVycy9ncHUvZHJt L2RybV9hdG9taWNfc3RhdGVfaGVscGVyLmMgICAgICAgICAgfCAgMTcgKwo+ID4gPiAgZHJpdmVy cy9ncHUvZHJtL2RybV9hdG9taWNfdWFwaS5jICAgICAgICAgICAgICAgICAgfCAgIDQgKwo+ID4g PiAgZHJpdmVycy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYyAgICAgICAgICAgICAgICAgICAgfCAg NzYgKysrKysKPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS90ZXN0cy9NYWtlZmlsZSAgICAgICAgICAg ICAgICAgICAgIHwgICAxICsKPiA+ID4gIC4uLi9ncHUvZHJtL3Rlc3RzL2RybV9hdG9taWNfc3Rh dGVfaGVscGVyX3Rlc3QuYyAgIHwgMzc2ICsrKysrKysrKysrKysrKysrKysrKwo+ID4gPiAgZHJp dmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jb25uZWN0b3JfdGVzdC5jICAgICAgICAgfCAxMTcgKysr KysrLQo+ID4gPiAgZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9rdW5pdF9lZGlkLmggICAgICAg ICAgICAgfCAxMDYgKysrKysrCj4gPiA+ICBpbmNsdWRlL2RybS9kcm1fY29ubmVjdG9yLmggICAg ICAgICAgICAgICAgICAgICAgICB8ICAzNiArKwo+ID4gPiAgMTAgZmlsZXMgY2hhbmdlZCwgNzM3 IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCj4gPiA+IAo+ID4gPiBkaWZmIC0tZ2l0IGEv RG9jdW1lbnRhdGlvbi9ncHUva21zLXByb3BlcnRpZXMuY3N2IGIvRG9jdW1lbnRhdGlvbi9ncHUv a21zLXByb3BlcnRpZXMuY3N2Cj4gPiA+IGluZGV4IDBmOTU5MDgzNDgyOS4uY2FlZjE0YzUzMmQ0 IDEwMDY0NAo+ID4gPiAtLS0gYS9Eb2N1bWVudGF0aW9uL2dwdS9rbXMtcHJvcGVydGllcy5jc3YK PiA+ID4gKysrIGIvRG9jdW1lbnRhdGlvbi9ncHUva21zLXByb3BlcnRpZXMuY3N2Cj4gPiA+IEBA IC0xNyw3ICsxNyw2IEBAIE93bmVyIE1vZHVsZS9Ecml2ZXJzLEdyb3VwLFByb3BlcnR5IE5hbWUs VHlwZSxQcm9wZXJ0eSBWYWx1ZXMsT2JqZWN0IGF0dGFjaGVkLERlCj4gPiA+ICAsVmlydHVhbCBH UFUs4oCcc3VnZ2VzdGVkIFjigJ0sUkFOR0UsIk1pbj0wLCBNYXg9MHhmZmZmZmZmZiIsQ29ubmVj dG9yLHByb3BlcnR5IHRvIHN1Z2dlc3QgYW4gWCBvZmZzZXQgZm9yIGEgY29ubmVjdG9yCj4gPiA+ ICAsLOKAnHN1Z2dlc3RlZCBZ4oCdLFJBTkdFLCJNaW49MCwgTWF4PTB4ZmZmZmZmZmYiLENvbm5l Y3Rvcixwcm9wZXJ0eSB0byBzdWdnZXN0IGFuIFkgb2Zmc2V0IGZvciBhIGNvbm5lY3Rvcgo+ID4g PiAgLE9wdGlvbmFsLCIiImFzcGVjdCByYXRpbyIiIixFTlVNLCJ7ICIiTm9uZSIiLCAiIjQ6MyIi LCAiIjE2OjkiIiB9IixDb25uZWN0b3IsVERCCj4gPiA+IC1pOTE1LEdlbmVyaWMsIiIiQnJvYWRj YXN0IFJHQiIiIixFTlVNLCJ7ICIiQXV0b21hdGljIiIsICIiRnVsbCIiLCAiIkxpbWl0ZWQgMTY6 MjM1IiIgfSIsQ29ubmVjdG9yLCJXaGVuIHRoaXMgcHJvcGVydHkgaXMgc2V0IHRvIExpbWl0ZWQg MTY6MjM1IGFuZCBDVE0gaXMgc2V0LCB0aGUgaGFyZHdhcmUgd2lsbCBiZSBwcm9ncmFtbWVkIHdp dGggdGhlIHJlc3VsdCBvZiB0aGUgbXVsdGlwbGljYXRpb24gb2YgQ1RNIGJ5IHRoZSBsaW1pdGVk IHJhbmdlIG1hdHJpeCB0byBlbnN1cmUgdGhlIHBpeGVscyBub3JtYWxseSBpbiB0aGUgcmFuZ2Ug MC4uMS4wIGFyZSByZW1hcHBlZCB0byB0aGUgcmFuZ2UgMTYvMjU1Li4yMzUvMjU1LiIKPiA+ID4g ICws4oCcYXVkaW/igJ0sRU5VTSwieyAiImZvcmNlLWR2aSIiLCAiIm9mZiIiLCAiImF1dG8iIiwg IiJvbiIiIH0iLENvbm5lY3RvcixUQkQKPiA+ID4gICxTRFZPLVRWLOKAnG1vZGXigJ0sRU5VTSwi eyAiIk5UU0NfTSIiLCAiIk5UU0NfSiIiLCAiIk5UU0NfNDQzIiIsICIiUEFMX0IiIiB9IGV0Yy4i LENvbm5lY3RvcixUQkQKPiA+ID4gICwsIiIibGVmdF9tYXJnaW4iIiIsUkFOR0UsIk1pbj0wLCBN YXg9IFNEVk8gZGVwZW5kZW50IixDb25uZWN0b3IsVEJECj4gPiA+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwo+ ID4gPiBpbmRleCBjMzFmYzBiNDhjMzEuLjE0NjVhN2YwOWEwYiAxMDA2NDQKPiA+ID4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwo+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v ZHJtX2F0b21pYy5jCj4gPiA+IEBAIC0xMTQyLDYgKzExNDIsMTEgQEAgc3RhdGljIHZvaWQgZHJt X2F0b21pY19jb25uZWN0b3JfcHJpbnRfc3RhdGUoc3RydWN0IGRybV9wcmludGVyICpwLAo+ID4g PiAgCWRybV9wcmludGYocCwgIlx0bWF4X3JlcXVlc3RlZF9icGM9JWRcbiIsIHN0YXRlLT5tYXhf cmVxdWVzdGVkX2JwYyk7Cj4gPiA+ICAJZHJtX3ByaW50ZihwLCAiXHRjb2xvcnNwYWNlPSVzXG4i LCBkcm1fZ2V0X2NvbG9yc3BhY2VfbmFtZShzdGF0ZS0+Y29sb3JzcGFjZSkpOwo+ID4gPiAgCj4g PiA+ICsJaWYgKGNvbm5lY3Rvci0+Y29ubmVjdG9yX3R5cGUgPT0gRFJNX01PREVfQ09OTkVDVE9S X0hETUlBIHx8Cj4gPiA+ICsJICAgIGNvbm5lY3Rvci0+Y29ubmVjdG9yX3R5cGUgPT0gRFJNX01P REVfQ09OTkVDVE9SX0hETUlCKQo+ID4gPiArCQlkcm1fcHJpbnRmKHAsICJcdGJyb2FkY2FzdF9y Z2I9JXNcbiIsCj4gPiA+ICsJCQkgICBkcm1faGRtaV9jb25uZWN0b3JfZ2V0X2Jyb2FkY2FzdF9y Z2JfbmFtZShzdGF0ZS0+aGRtaS5icm9hZGNhc3RfcmdiKSk7Cj4gPiA+ICsKPiA+ID4gIAlpZiAo Y29ubmVjdG9yLT5jb25uZWN0b3JfdHlwZSA9PSBEUk1fTU9ERV9DT05ORUNUT1JfV1JJVEVCQUNL KQo+ID4gPiAgCQlpZiAoc3RhdGUtPndyaXRlYmFja19qb2IgJiYgc3RhdGUtPndyaXRlYmFja19q b2ItPmZiKQo+ID4gPiAgCQkJZHJtX3ByaW50ZihwLCAiXHRmYj0lZFxuIiwgc3RhdGUtPndyaXRl YmFja19qb2ItPmZiLT5iYXNlLmlkKTsKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fYXRvbWljX3N0YXRlX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNf c3RhdGVfaGVscGVyLmMKPiA+ID4gaW5kZXggZTY5YzBjYzFjNmRhLi4xMGQ5ODYyMGEzNTggMTAw NjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3N0YXRlX2hlbHBlci5j Cj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3N0YXRlX2hlbHBlci5jCj4g PiA+IEBAIC01ODMsNiArNTgzLDcgQEAgRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2hlbHBlcl9j b25uZWN0b3JfdHZfcmVzZXQpOwo+ID4gPiAgdm9pZCBfX2RybV9hdG9taWNfaGVscGVyX2Nvbm5l Y3Rvcl9oZG1pX3Jlc2V0KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gPiA+ICAJ CQkJCSAgICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpuZXdfc3RhdGUpCj4gPiA+ICB7 Cj4gPiA+ICsJbmV3X3N0YXRlLT5oZG1pLmJyb2FkY2FzdF9yZ2IgPSBEUk1fSERNSV9CUk9BRENB U1RfUkdCX0FVVE87Cj4gPiA+ICB9Cj4gPiA+ICBFWFBPUlRfU1lNQk9MKF9fZHJtX2F0b21pY19o ZWxwZXJfY29ubmVjdG9yX2hkbWlfcmVzZXQpOwo+ID4gPiAgCj4gPiA+IEBAIC02NTAsNiArNjUx LDIyIEBAIEVYUE9SVF9TWU1CT0woZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX3R2X2NoZWNr KTsKPiA+ID4gIGludCBkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfaGRtaV9jaGVjayhzdHJ1 Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ID4gPiAgCQkJCQkgICBzdHJ1Y3QgZHJtX2F0 b21pY19zdGF0ZSAqc3RhdGUpCj4gPiA+ICB7Cj4gPiA+ICsJc3RydWN0IGRybV9jb25uZWN0b3Jf c3RhdGUgKm9sZF9zdGF0ZSA9Cj4gPiA+ICsJCWRybV9hdG9taWNfZ2V0X29sZF9jb25uZWN0b3Jf c3RhdGUoc3RhdGUsIGNvbm5lY3Rvcik7Cj4gPiA+ICsJc3RydWN0IGRybV9jb25uZWN0b3Jfc3Rh dGUgKm5ld19zdGF0ZSA9Cj4gPiA+ICsJCWRybV9hdG9taWNfZ2V0X25ld19jb25uZWN0b3Jfc3Rh dGUoc3RhdGUsIGNvbm5lY3Rvcik7Cj4gPiA+ICsKPiA+ID4gKwlpZiAob2xkX3N0YXRlLT5oZG1p LmJyb2FkY2FzdF9yZ2IgIT0gbmV3X3N0YXRlLT5oZG1pLmJyb2FkY2FzdF9yZ2IpIHsKPiA+ID4g KwkJc3RydWN0IGRybV9jcnRjICpjcnRjID0gbmV3X3N0YXRlLT5jcnRjOwo+ID4gPiArCQlzdHJ1 Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7Cj4gPiA+ICsKPiA+ID4gKwkJY3J0Y19zdGF0 ZSA9IGRybV9hdG9taWNfZ2V0X2NydGNfc3RhdGUoc3RhdGUsIGNydGMpOwo+ID4gPiArCQlpZiAo SVNfRVJSKGNydGNfc3RhdGUpKQo+ID4gPiArCQkJcmV0dXJuIFBUUl9FUlIoY3J0Y19zdGF0ZSk7 Cj4gPiA+ICsKPiA+ID4gKwkJY3J0Y19zdGF0ZS0+bW9kZV9jaGFuZ2VkID0gdHJ1ZTsKPiA+ID4g Kwl9Cj4gPiA+ICsKPiA+ID4gIAlyZXR1cm4gMDsKPiA+ID4gIH0KPiA+ID4gIEVYUE9SVF9TWU1C T0woZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2hkbWlfY2hlY2spOwo+ID4gPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfdWFwaS5jIGIvZHJpdmVycy9ncHUvZHJt L2RybV9hdG9taWNfdWFwaS5jCj4gPiA+IGluZGV4IGFlZTRhNjVkNDk1OS4uM2ViNGY0YmM4Yjcx IDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY191YXBpLmMKPiA+ ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfdWFwaS5jCj4gPiA+IEBAIC04MTgs NiArODE4LDggQEAgc3RhdGljIGludCBkcm1fYXRvbWljX2Nvbm5lY3Rvcl9zZXRfcHJvcGVydHko c3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiA+ID4gIAkJc3RhdGUtPm1heF9yZXF1 ZXN0ZWRfYnBjID0gdmFsOwo+ID4gPiAgCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gY29ubmVjdG9y LT5wcml2YWN5X3NjcmVlbl9zd19zdGF0ZV9wcm9wZXJ0eSkgewo+ID4gPiAgCQlzdGF0ZS0+cHJp dmFjeV9zY3JlZW5fc3dfc3RhdGUgPSB2YWw7Cj4gPiA+ICsJfSBlbHNlIGlmIChwcm9wZXJ0eSA9 PSBjb25uZWN0b3ItPmJyb2FkY2FzdF9yZ2JfcHJvcGVydHkpIHsKPiA+ID4gKwkJc3RhdGUtPmhk bWkuYnJvYWRjYXN0X3JnYiA9IHZhbDsKPiA+ID4gIAl9IGVsc2UgaWYgKGNvbm5lY3Rvci0+ZnVu Y3MtPmF0b21pY19zZXRfcHJvcGVydHkpIHsKPiA+ID4gIAkJcmV0dXJuIGNvbm5lY3Rvci0+ZnVu Y3MtPmF0b21pY19zZXRfcHJvcGVydHkoY29ubmVjdG9yLAo+ID4gPiAgCQkJCXN0YXRlLCBwcm9w ZXJ0eSwgdmFsKTsKPiA+ID4gQEAgLTkwMSw2ICs5MDMsOCBAQCBkcm1fYXRvbWljX2Nvbm5lY3Rv cl9nZXRfcHJvcGVydHkoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiA+ID4gIAkJ KnZhbCA9IHN0YXRlLT5tYXhfcmVxdWVzdGVkX2JwYzsKPiA+ID4gIAl9IGVsc2UgaWYgKHByb3Bl cnR5ID09IGNvbm5lY3Rvci0+cHJpdmFjeV9zY3JlZW5fc3dfc3RhdGVfcHJvcGVydHkpIHsKPiA+ ID4gIAkJKnZhbCA9IHN0YXRlLT5wcml2YWN5X3NjcmVlbl9zd19zdGF0ZTsKPiA+ID4gKwl9IGVs c2UgaWYgKHByb3BlcnR5ID09IGNvbm5lY3Rvci0+YnJvYWRjYXN0X3JnYl9wcm9wZXJ0eSkgewo+ ID4gPiArCQkqdmFsID0gc3RhdGUtPmhkbWkuYnJvYWRjYXN0X3JnYjsKPiA+ID4gIAl9IGVsc2Ug aWYgKGNvbm5lY3Rvci0+ZnVuY3MtPmF0b21pY19nZXRfcHJvcGVydHkpIHsKPiA+ID4gIAkJcmV0 dXJuIGNvbm5lY3Rvci0+ZnVuY3MtPmF0b21pY19nZXRfcHJvcGVydHkoY29ubmVjdG9yLAo+ID4g PiAgCQkJCXN0YXRlLCBwcm9wZXJ0eSwgdmFsKTsKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9kcm1fY29ubmVjdG9yLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2Nvbm5lY3Rvci5j Cj4gPiA+IGluZGV4IGQ5OTYxY2NlODI0NS4uOTI5YjBhOTExZjYyIDEwMDY0NAo+ID4gPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vZHJtX2Nvbm5lY3Rvci5jCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9kcm1fY29ubmVjdG9yLmMKPiA+ID4gQEAgLTExODMsNiArMTE4MywyOSBAQCBzdGF0aWMg Y29uc3QgdTMyIGRwX2NvbG9yc3BhY2VzID0KPiA+ID4gIAlCSVQoRFJNX01PREVfQ09MT1JJTUVU UllfQlQyMDIwX0NZQ0MpIHwKPiA+ID4gIAlCSVQoRFJNX01PREVfQ09MT1JJTUVUUllfQlQyMDIw X1lDQyk7Cj4gPiA+ICAKPiA+ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX3Byb3BfZW51bV9s aXN0IGJyb2FkY2FzdF9yZ2JfbmFtZXNbXSA9IHsKPiA+ID4gKwl7IERSTV9IRE1JX0JST0FEQ0FT VF9SR0JfQVVUTywgIkF1dG9tYXRpYyIgfSwKPiA+ID4gKwl7IERSTV9IRE1JX0JST0FEQ0FTVF9S R0JfRlVMTCwgIkZ1bGwiIH0sCj4gPiA+ICsJeyBEUk1fSERNSV9CUk9BRENBU1RfUkdCX0xJTUlU RUQsICJMaW1pdGVkIDE2OjIzNSIgfSwKPiA+ID4gK307Cj4gPiA+ICsKPiA+ID4gKy8qCj4gPiA+ ICsgKiBkcm1faGRtaV9jb25uZWN0b3JfZ2V0X2Jyb2FkY2FzdF9yZ2JfbmFtZSAtIFJldHVybiBh IHN0cmluZyBmb3IgSERNSSBjb25uZWN0b3IgUkdCIGJyb2FkY2FzdCBzZWxlY3Rpb24KPiA+ID4g KyAqIEBicm9hZGNhc3RfcmdiOiBCcm9hZGNhc3QgUkdCIHNlbGVjdGlvbiB0byBjb21wdXRlIG5h bWUgb2YKPiA+ID4gKyAqCj4gPiA+ICsgKiBSZXR1cm5zOiB0aGUgbmFtZSBvZiB0aGUgQnJvYWRj YXN0IFJHQiBzZWxlY3Rpb24sIG9yIE5VTEwgaWYgdGhlIHR5cGUKPiA+ID4gKyAqIGlzIG5vdCB2 YWxpZC4KPiA+ID4gKyAqLwo+ID4gPiArY29uc3QgY2hhciAqCj4gPiA+ICtkcm1faGRtaV9jb25u ZWN0b3JfZ2V0X2Jyb2FkY2FzdF9yZ2JfbmFtZShlbnVtIGRybV9oZG1pX2Jyb2FkY2FzdF9yZ2Ig YnJvYWRjYXN0X3JnYikKPiA+ID4gK3sKPiA+ID4gKwlpZiAoYnJvYWRjYXN0X3JnYiA+IERSTV9I RE1JX0JST0FEQ0FTVF9SR0JfTElNSVRFRCkKPiA+ID4gKwkJcmV0dXJuIE5VTEw7Cj4gPiA+ICsK PiA+ID4gKwlyZXR1cm4gYnJvYWRjYXN0X3JnYl9uYW1lc1ticm9hZGNhc3RfcmdiXS5uYW1lOwo+ ID4gPiArfQo+ID4gPiArRVhQT1JUX1NZTUJPTChkcm1faGRtaV9jb25uZWN0b3JfZ2V0X2Jyb2Fk Y2FzdF9yZ2JfbmFtZSk7Cj4gPiA+ICsKPiA+ID4gIC8qKgo+ID4gPiAgICogRE9DOiBzdGFuZGFy ZCBjb25uZWN0b3IgcHJvcGVydGllcwo+ID4gPiAgICoKPiA+ID4gQEAgLTE2NTUsNiArMTY3OCwy NiBAQCBFWFBPUlRfU1lNQk9MKGRybV9jb25uZWN0b3JfYXR0YWNoX2RwX3N1YmNvbm5lY3Rvcl9w cm9wZXJ0eSk7Cj4gPiA+ICAvKioKPiA+ID4gICAqIERPQzogSERNSSBjb25uZWN0b3IgcHJvcGVy dGllcwo+ID4gPiAgICoKPiA+ID4gKyAqIEJyb2FkY2FzdCBSR0IKPiA+ID4gKyAqICAgICAgSW5k aWNhdGVzIHRoZSBSR0IgUXVhbnRpemF0aW9uIFJhbmdlIChGdWxsIHZzIExpbWl0ZWQpIHVzZWQu Cj4gPiA+ICsgKiAgICAgIEluZm9mcmFtZXMgd2lsbCBiZSBnZW5lcmF0ZWQgYWNjb3JkaW5nIHRv IHRoYXQgdmFsdWUuCj4gPiA+ICsgKgo+ID4gPiArICogICAgICBUaGUgdmFsdWUgb2YgdGhpcyBw cm9wZXJ0eSBjYW4gYmUgb25lIG9mIHRoZSBmb2xsb3dpbmc6Cj4gPiA+ICsgKgo+ID4gPiArICog ICAgICBBdXRvbWF0aWM6Cj4gPiA+ICsgKiAgICAgICAgICAgICAgUkdCIFJhbmdlIGlzIHNlbGVj dGVkIGF1dG9tYXRpY2FsbHkgYmFzZWQgb24gdGhlIG1vZGUKPiA+ID4gKyAqICAgICAgICAgICAg ICBhY2NvcmRpbmcgdG8gdGhlIEhETUkgc3BlY2lmaWNhdGlvbnMuCj4gPiA+ICsgKgo+ID4gPiAr ICogICAgICBGdWxsOgo+ID4gPiArICogICAgICAgICAgICAgIEZ1bGwgUkdCIFJhbmdlIGlzIGZv cmNlZC4KPiA+ID4gKyAqCj4gPiA+ICsgKiAgICAgIExpbWl0ZWQgMTY6MjM1Ogo+ID4gPiArICog ICAgICAgICAgICAgIExpbWl0ZWQgUkdCIFJhbmdlIGlzIGZvcmNlZC4gVW5saWtlIHRoZSBuYW1l IHN1Z2dlc3RzLAo+ID4gPiArICogICAgICAgICAgICAgIHRoaXMgd29ya3MgZm9yIGFueSBudW1i ZXIgb2YgYml0cy1wZXItY29tcG9uZW50Lgo+ID4gPiArICoKPiA+ID4gKyAqICAgICAgRHJpdmVy cyBjYW4gc2V0IHVwIHRoaXMgcHJvcGVydHkgYnkgY2FsbGluZwo+ID4gPiArICogICAgICBkcm1f Y29ubmVjdG9yX2F0dGFjaF9icm9hZGNhc3RfcmdiX3Byb3BlcnR5KCkuCj4gPiA+ICsgKgo+ID4g Cj4gPiBUaGlzIGlzIGEgZ29vZCB0aW1lIHRvIGRvY3VtZW50IHRoaXMgaW4gbW9yZSBkZXRhaWwu Cj4gCj4gSSBoYXZlIHRoZSBmZWVsaW5nIHRoYXQgaXQgYWxyZWFkeSBpcyBkb2N1bWVudGVkIGlu IG1vcmUgZGV0YWlsLiBCdXQKPiBhbnl3YXksIGxhc3QgdGltZSB3ZSBkaXNjdXNzZWQgaXQgdGhl IGFuc3dlciB3YXMgYmFzaWNhbGx5IHRvIG5vdCBib3RoZXIKPiBhbmQganVzdCBtZXJnZSB0aGUg dGhpbmcuIFNvIEknbSBnZXR0aW5nIHNvbWUgbWl4ZWQgc2lnbmFscyBoZXJlLgoKSSdtIGFsbCBm b3IgbWVyZ2luZyBhbmQgbm90IHRyeWluZyB0byBpbXByb3ZlIHRoZSBwcm9wZXJ0eSBidXQKZG9j dW1lbnRpbmcgaXQgaW4gbW9yZSBkZXRhaWwgaXMgZGVmaW5pdGVseSBzb21ldGhpbmcgSSB3YW50 IHRvIHNlZS4KCj4gPiBUaGVyZSBtaWdodCBiZSB0d28gZGlmZmVyZW50IHRoaW5ncyBiZWluZyBh ZmZlY3RlZDoKPiA+IAo+ID4gMS4gVGhlIHNpZ25hbGxpbmcgKEluZm9GcmFtZS9TRFAvLi4uKQo+ ID4gMi4gVGhlIGNvbG9yIHBpcGVsaW5lIHByb2Nlc3NpbmcKPiA+IAo+ID4gQWxsIHZhbHVlcyBv ZiBCcm9hZGNhc3QgUkdCIGFsd2F5cyBhZmZlY3QgdGhlIGNvbG9yIHBpcGVsaW5lIHByb2Nlc3Np bmcKPiA+IHN1Y2ggdGhhdCBhIGZ1bGwtcmFuZ2UgaW5wdXQgdG8gdGhlIENSVEMgaXMgY29udmVy dGVkIHRvIGVpdGhlciBmdWxsLSBvcgo+ID4gbGltaXRlZC1yYW5nZSwgZGVwZW5kaW5nIG9uIHdo YXQgdGhlIG1vbml0b3IgaXMgc3VwcG9zZWQgdG8gYWNjZXB0Lgo+ID4gCj4gPiBXaGVuIGF1dG9t YXRpYyBpcyBzZWxlY3RlZCwgZG9lcyB0aGF0IG1lYW4gdGhhdCB0aGVyZSBpcyBubyBzaWduYWxs aW5nLAo+ID4gb3IgdGhhdCB0aGUgc2lnbmFsbGluZyBtYXRjaGVzIHdoYXQgdGhlIG1vbml0b3Ig aXMgc3VwcG9zZWQgdG8gYWNjZXB0Cj4gPiBhY2NvcmRpbmcgdG8gdGhlIHNwZWM/Cj4gCj4gVGhl IGRvYyBzdGF0ZXMgdGhhdCAiSW5mb2ZyYW1lcyB3aWxsIGJlIGdlbmVyYXRlZCBhY2NvcmRpbmcg dG8gdGhhdAo+IHZhbHVlIi4gSXMgaXQgYW1iaWd1b3VzPwo+IAo+ID4gQWxzbywgaXMgdGhpcyBy ZWFsbHkgSERNSSBzcGVjaWZpYz8KPiAKPiBQcm9iYWJseSBub3QsIGJ1dCBpdCBjYW4gZWFzaWx5 IGJlIGV4cGFuZGVkIHRvIG90aGVyIGNvbm5lY3RvciB0eXBlcwo+IHdoZW4gbmVlZHMgYmUuCj4g Cj4gPiBXaGVuIGZ1bGwgb3IgbGltaXRlZCBpcyBzZWxlY3RlZCBhbmQgdGhlIG1vbml0b3IgZG9l c24ndCBzdXBwb3J0IHRoZQo+ID4gc2lnbmFsbGluZywgd2hhdCBoYXBwZW5zPwo+IAo+IEkgd291 bGQgZXhwZWN0IGNvbG9ycyB0byBiZSBvZmYKPiAKPiBNYXhpbWUKCgoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5n IGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5p bmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 5424EC47DB7 for ; Thu, 18 Jan 2024 21:21:14 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 7F01410E7D9; Thu, 18 Jan 2024 21:21:13 +0000 (UTC) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6360210E7D9 for ; Thu, 18 Jan 2024 21:21:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1705612871; h=from:from: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; bh=l/RFuMwXFGgnLzX+gQ+7Eyl0Fns+nyjhizUJ9hMdtGQ=; b=WFCZ7QyEopp8GjFucHta7Cehrv/wunE11RbZtP3oqhdsSVhgmll4cM3VMhZEW+TrtLS4vP FGiIvRagutwpbcdSnB0RJyi3OsRvRnx6pDEKdRQf5U2QOMITgjMfu/oizujuOfOTh/rTyu v2fqkiDi+97PEJuxeoDLa66kgyEN134= Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com [209.85.128.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-57-lIxDAMryM82AXKuF4qWchg-1; Thu, 18 Jan 2024 16:21:10 -0500 X-MC-Unique: lIxDAMryM82AXKuF4qWchg-1 Received: by mail-wm1-f72.google.com with SMTP id 5b1f17b1804b1-40e46bceed8so670265e9.0 for ; Thu, 18 Jan 2024 13:21:09 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705612868; x=1706217668; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=l/RFuMwXFGgnLzX+gQ+7Eyl0Fns+nyjhizUJ9hMdtGQ=; b=ia8cUMLkzxxtJErmZZz52J54Qnfcdfv2Yxy83SQmiMULxBkHtRm6muW2aRLumpiNxl WLRz+XfYos7hctiEcFeuPWC+FvV9tAzsPQ8WlSVzwndGmcUIC0nxEM0cJYlgl0Z26W9o L4nBmoAL2HICiWrqMi5CI9IAIPOUPLGN4xyNzDIDN3tILu/C9qieY53zK1eB9uDHfYq1 XS29bB+IbsEchVzYHmaQlsJ/vK6/vNOZHG05adGFLuEeQtbyuLvcd6tVVmQKzlm40LD1 CRUoqkF6wdDFFz8bI0hXX5mhiB1ueDF3tcT6cEJdNXHcJ4EuxF3d4bK7Wp3RxIMKct5c QQsg== X-Gm-Message-State: AOJu0Yy4CG/lqIceGVOXgYrwlIkgnTxz6shzvL8cQVwWX3SBkJiQVcpS HIhFsYr0xP/JF3Oie0MXeELN3ntewtsclmFZetGMpYkEBAmlaSRMlW6Pa3CKFs85dAsdjBXGh17 jC10Y+Np4gguhKhKWB4BVRXyJuta+6Bkdx898l+kJMn8mff+K695xNYz9WqVP8bP8rxhyW2SYzy x7 X-Received: by 2002:a05:600c:4fd0:b0:40e:7485:daee with SMTP id o16-20020a05600c4fd000b0040e7485daeemr889518wmq.90.1705612868215; Thu, 18 Jan 2024 13:21:08 -0800 (PST) X-Google-Smtp-Source: AGHT+IEbMdqyiktrO4MfePrGAzXbNxUb85rIEKPcPE1jD7jmO2KFaepfrTeZH0nCka73fDv9zyB9iQ== X-Received: by 2002:a05:600c:4fd0:b0:40e:7485:daee with SMTP id o16-20020a05600c4fd000b0040e7485daeemr889513wmq.90.1705612867823; Thu, 18 Jan 2024 13:21:07 -0800 (PST) Received: from toolbox ([2001:9e8:89aa:f00:af88:d221:94de:a009]) by smtp.gmail.com with ESMTPSA id p9-20020a05600c1d8900b0040e95632357sm2223810wms.26.2024.01.18.13.21.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 18 Jan 2024 13:21:07 -0800 (PST) Date: Thu, 18 Jan 2024 22:21:05 +0100 From: Sebastian Wick To: Maxime Ripard Subject: Re: Re: [PATCH v5 08/44] drm/connector: hdmi: Add Broadcast RGB property Message-ID: <20240118212105.GA30589@toolbox> References: <20231207-kms-hdmi-connector-state-v5-0-6538e19d634d@kernel.org> <20231207-kms-hdmi-connector-state-v5-8-6538e19d634d@kernel.org> <20240115143308.GA159345@toolbox> MIME-Version: 1.0 In-Reply-To: X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit 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: Emma Anholt , Samuel Holland , Jonathan Corbet , linux-doc@vger.kernel.org, Sandy Huang , Jernej Skrabec , linux-kernel@vger.kernel.org, Hans Verkuil , linux-rockchip@lists.infradead.org, Chen-Yu Tsai , dri-devel@lists.freedesktop.org, Thomas Zimmermann , David Airlie , linux-sunxi@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-media@vger.kernel.org Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" On Mon, Jan 15, 2024 at 04:25:41PM +0100, Maxime Ripard wrote: > On Mon, Jan 15, 2024 at 03:33:08PM +0100, Sebastian Wick wrote: > > On Thu, Dec 07, 2023 at 04:49:31PM +0100, Maxime Ripard wrote: > > > The i915 driver has a property to force the RGB range of an HDMI output. > > > The vc4 driver then implemented the same property with the same > > > semantics. KWin has support for it, and a PR for mutter is also there to > > > support it. > > > > > > Both drivers implementing the same property with the same semantics, > > > plus the userspace having support for it, is proof enough that it's > > > pretty much a de-facto standard now and we can provide helpers for it. > > > > > > Let's plumb it into the newly created HDMI connector. > > > > > > Signed-off-by: Maxime Ripard > > > --- > > > Documentation/gpu/kms-properties.csv | 1 - > > > drivers/gpu/drm/drm_atomic.c | 5 + > > > drivers/gpu/drm/drm_atomic_state_helper.c | 17 + > > > drivers/gpu/drm/drm_atomic_uapi.c | 4 + > > > drivers/gpu/drm/drm_connector.c | 76 +++++ > > > drivers/gpu/drm/tests/Makefile | 1 + > > > .../gpu/drm/tests/drm_atomic_state_helper_test.c | 376 +++++++++++++++++++++ > > > drivers/gpu/drm/tests/drm_connector_test.c | 117 ++++++- > > > drivers/gpu/drm/tests/drm_kunit_edid.h | 106 ++++++ > > > include/drm/drm_connector.h | 36 ++ > > > 10 files changed, 737 insertions(+), 2 deletions(-) > > > > > > diff --git a/Documentation/gpu/kms-properties.csv b/Documentation/gpu/kms-properties.csv > > > index 0f9590834829..caef14c532d4 100644 > > > --- a/Documentation/gpu/kms-properties.csv > > > +++ b/Documentation/gpu/kms-properties.csv > > > @@ -17,7 +17,6 @@ Owner Module/Drivers,Group,Property Name,Type,Property Values,Object attached,De > > > ,Virtual GPU,“suggested X”,RANGE,"Min=0, Max=0xffffffff",Connector,property to suggest an X offset for a connector > > > ,,“suggested Y”,RANGE,"Min=0, Max=0xffffffff",Connector,property to suggest an Y offset for a connector > > > ,Optional,"""aspect ratio""",ENUM,"{ ""None"", ""4:3"", ""16:9"" }",Connector,TDB > > > -i915,Generic,"""Broadcast RGB""",ENUM,"{ ""Automatic"", ""Full"", ""Limited 16:235"" }",Connector,"When this property is set to Limited 16:235 and CTM is set, the hardware will be programmed with the result of the multiplication of CTM by the limited range matrix to ensure the pixels normally in the range 0..1.0 are remapped to the range 16/255..235/255." > > > ,,“audio”,ENUM,"{ ""force-dvi"", ""off"", ""auto"", ""on"" }",Connector,TBD > > > ,SDVO-TV,“mode”,ENUM,"{ ""NTSC_M"", ""NTSC_J"", ""NTSC_443"", ""PAL_B"" } etc.",Connector,TBD > > > ,,"""left_margin""",RANGE,"Min=0, Max= SDVO dependent",Connector,TBD > > > diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c > > > index c31fc0b48c31..1465a7f09a0b 100644 > > > --- a/drivers/gpu/drm/drm_atomic.c > > > +++ b/drivers/gpu/drm/drm_atomic.c > > > @@ -1142,6 +1142,11 @@ static void drm_atomic_connector_print_state(struct drm_printer *p, > > > drm_printf(p, "\tmax_requested_bpc=%d\n", state->max_requested_bpc); > > > drm_printf(p, "\tcolorspace=%s\n", drm_get_colorspace_name(state->colorspace)); > > > > > > + if (connector->connector_type == DRM_MODE_CONNECTOR_HDMIA || > > > + connector->connector_type == DRM_MODE_CONNECTOR_HDMIB) > > > + drm_printf(p, "\tbroadcast_rgb=%s\n", > > > + drm_hdmi_connector_get_broadcast_rgb_name(state->hdmi.broadcast_rgb)); > > > + > > > if (connector->connector_type == DRM_MODE_CONNECTOR_WRITEBACK) > > > if (state->writeback_job && state->writeback_job->fb) > > > drm_printf(p, "\tfb=%d\n", state->writeback_job->fb->base.id); > > > diff --git a/drivers/gpu/drm/drm_atomic_state_helper.c b/drivers/gpu/drm/drm_atomic_state_helper.c > > > index e69c0cc1c6da..10d98620a358 100644 > > > --- a/drivers/gpu/drm/drm_atomic_state_helper.c > > > +++ b/drivers/gpu/drm/drm_atomic_state_helper.c > > > @@ -583,6 +583,7 @@ EXPORT_SYMBOL(drm_atomic_helper_connector_tv_reset); > > > void __drm_atomic_helper_connector_hdmi_reset(struct drm_connector *connector, > > > struct drm_connector_state *new_state) > > > { > > > + new_state->hdmi.broadcast_rgb = DRM_HDMI_BROADCAST_RGB_AUTO; > > > } > > > EXPORT_SYMBOL(__drm_atomic_helper_connector_hdmi_reset); > > > > > > @@ -650,6 +651,22 @@ EXPORT_SYMBOL(drm_atomic_helper_connector_tv_check); > > > int drm_atomic_helper_connector_hdmi_check(struct drm_connector *connector, > > > struct drm_atomic_state *state) > > > { > > > + struct drm_connector_state *old_state = > > > + drm_atomic_get_old_connector_state(state, connector); > > > + struct drm_connector_state *new_state = > > > + drm_atomic_get_new_connector_state(state, connector); > > > + > > > + if (old_state->hdmi.broadcast_rgb != new_state->hdmi.broadcast_rgb) { > > > + struct drm_crtc *crtc = new_state->crtc; > > > + struct drm_crtc_state *crtc_state; > > > + > > > + crtc_state = drm_atomic_get_crtc_state(state, crtc); > > > + if (IS_ERR(crtc_state)) > > > + return PTR_ERR(crtc_state); > > > + > > > + crtc_state->mode_changed = true; > > > + } > > > + > > > return 0; > > > } > > > EXPORT_SYMBOL(drm_atomic_helper_connector_hdmi_check); > > > diff --git a/drivers/gpu/drm/drm_atomic_uapi.c b/drivers/gpu/drm/drm_atomic_uapi.c > > > index aee4a65d4959..3eb4f4bc8b71 100644 > > > --- a/drivers/gpu/drm/drm_atomic_uapi.c > > > +++ b/drivers/gpu/drm/drm_atomic_uapi.c > > > @@ -818,6 +818,8 @@ static int drm_atomic_connector_set_property(struct drm_connector *connector, > > > state->max_requested_bpc = val; > > > } else if (property == connector->privacy_screen_sw_state_property) { > > > state->privacy_screen_sw_state = val; > > > + } else if (property == connector->broadcast_rgb_property) { > > > + state->hdmi.broadcast_rgb = val; > > > } else if (connector->funcs->atomic_set_property) { > > > return connector->funcs->atomic_set_property(connector, > > > state, property, val); > > > @@ -901,6 +903,8 @@ drm_atomic_connector_get_property(struct drm_connector *connector, > > > *val = state->max_requested_bpc; > > > } else if (property == connector->privacy_screen_sw_state_property) { > > > *val = state->privacy_screen_sw_state; > > > + } else if (property == connector->broadcast_rgb_property) { > > > + *val = state->hdmi.broadcast_rgb; > > > } else if (connector->funcs->atomic_get_property) { > > > return connector->funcs->atomic_get_property(connector, > > > state, property, val); > > > diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c > > > index d9961cce8245..929b0a911f62 100644 > > > --- a/drivers/gpu/drm/drm_connector.c > > > +++ b/drivers/gpu/drm/drm_connector.c > > > @@ -1183,6 +1183,29 @@ static const u32 dp_colorspaces = > > > BIT(DRM_MODE_COLORIMETRY_BT2020_CYCC) | > > > BIT(DRM_MODE_COLORIMETRY_BT2020_YCC); > > > > > > +static const struct drm_prop_enum_list broadcast_rgb_names[] = { > > > + { DRM_HDMI_BROADCAST_RGB_AUTO, "Automatic" }, > > > + { DRM_HDMI_BROADCAST_RGB_FULL, "Full" }, > > > + { DRM_HDMI_BROADCAST_RGB_LIMITED, "Limited 16:235" }, > > > +}; > > > + > > > +/* > > > + * drm_hdmi_connector_get_broadcast_rgb_name - Return a string for HDMI connector RGB broadcast selection > > > + * @broadcast_rgb: Broadcast RGB selection to compute name of > > > + * > > > + * Returns: the name of the Broadcast RGB selection, or NULL if the type > > > + * is not valid. > > > + */ > > > +const char * > > > +drm_hdmi_connector_get_broadcast_rgb_name(enum drm_hdmi_broadcast_rgb broadcast_rgb) > > > +{ > > > + if (broadcast_rgb > DRM_HDMI_BROADCAST_RGB_LIMITED) > > > + return NULL; > > > + > > > + return broadcast_rgb_names[broadcast_rgb].name; > > > +} > > > +EXPORT_SYMBOL(drm_hdmi_connector_get_broadcast_rgb_name); > > > + > > > /** > > > * DOC: standard connector properties > > > * > > > @@ -1655,6 +1678,26 @@ EXPORT_SYMBOL(drm_connector_attach_dp_subconnector_property); > > > /** > > > * DOC: HDMI connector properties > > > * > > > + * Broadcast RGB > > > + * Indicates the RGB Quantization Range (Full vs Limited) used. > > > + * Infoframes will be generated according to that value. > > > + * > > > + * The value of this property can be one of the following: > > > + * > > > + * Automatic: > > > + * RGB Range is selected automatically based on the mode > > > + * according to the HDMI specifications. > > > + * > > > + * Full: > > > + * Full RGB Range is forced. > > > + * > > > + * Limited 16:235: > > > + * Limited RGB Range is forced. Unlike the name suggests, > > > + * this works for any number of bits-per-component. > > > + * > > > + * Drivers can set up this property by calling > > > + * drm_connector_attach_broadcast_rgb_property(). > > > + * > > > > This is a good time to document this in more detail. > > I have the feeling that it already is documented in more detail. But > anyway, last time we discussed it the answer was basically to not bother > and just merge the thing. So I'm getting some mixed signals here. I'm all for merging and not trying to improve the property but documenting it in more detail is definitely something I want to see. > > There might be two different things being affected: > > > > 1. The signalling (InfoFrame/SDP/...) > > 2. The color pipeline processing > > > > All values of Broadcast RGB always affect the color pipeline processing > > such that a full-range input to the CRTC is converted to either full- or > > limited-range, depending on what the monitor is supposed to accept. > > > > When automatic is selected, does that mean that there is no signalling, > > or that the signalling matches what the monitor is supposed to accept > > according to the spec? > > The doc states that "Infoframes will be generated according to that > value". Is it ambiguous? > > > Also, is this really HDMI specific? > > Probably not, but it can easily be expanded to other connector types > when needs be. > > > When full or limited is selected and the monitor doesn't support the > > signalling, what happens? > > I would expect colors to be off > > Maxime