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.133.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 6DC5D13F427 for ; Thu, 29 Feb 2024 19:47:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.133.124 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709236058; cv=none; b=P1IwCmnzo7dNyTTtjBoa4HOTe1vy/64TOFwmKYX1mtsFmFfrHq26dW30b/+6nKIZ06iXZ2Cv8ZLv1a6IfiGzOJCCD9K4MRTdiQ6wRLC1TVPhZsdv4JhKY9H7b84/KXDvUrNFrtuMm6cP9EeTymtyRObKTG6dUxso4gRWB9DKmSI= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709236058; c=relaxed/simple; bh=+wSzFyYwkbZT5cJTUJC8S2ECyGqqpa3s9UeTu/mMwNo=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=aRDHYU3kAD/jU2AZw3P/VYQMUDloSSEostbeBNYBKGoYHbVtqGDovs9dQAtFbWQ/QYWAZxR/GPcLrF3e580B5iPrt+rxZjO2AJTebecHQ9qdrWWeeddq964MLqlK0LG7MPoP3h27srTi+1oImd96JhUrpKMVfmaVdlRcPyDVhqo= 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=c7aAcmYm; arc=none smtp.client-ip=170.10.133.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="c7aAcmYm" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1709236054; 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=i8CFu40DFfKt/7absHIijkD0GmZEEf3/hT+uC0K0lLU=; b=c7aAcmYmaZR71GlH+iCYsJHjeYY+e1Qqi8Oqc6dfEZV+UtDauR+M2BPDNO2xzDdQPrCY4S EGEr5bAAimwx488JzKQ2j5fHiz4ZmA0MaIpGunLOIoIUfal2WvEq+OOAFrf2jtItjZSndO 8B6I6Jt0zsmMveYcq8uGy3JBwnbqrhw= Received: from mail-lf1-f69.google.com (mail-lf1-f69.google.com [209.85.167.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-610-YhaOVsDpP4O_Hhf7yAMPcg-1; Thu, 29 Feb 2024 14:47:31 -0500 X-MC-Unique: YhaOVsDpP4O_Hhf7yAMPcg-1 Received: by mail-lf1-f69.google.com with SMTP id 2adb3069b0e04-5131c91bbc3so1002774e87.0 for ; Thu, 29 Feb 2024 11:47:30 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709236049; x=1709840849; 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=i8CFu40DFfKt/7absHIijkD0GmZEEf3/hT+uC0K0lLU=; b=TpdrH5TCGSmIsZHqKK40yv86mgeYgWx5OALwd4EENuMCjQqMJgLiEZ5XPchOhU+JOi GhYethpDDI32nwRgSIX7l1l7G5mlqIGYMpWdqWuNm10MaDH6j/dh29ugUSBxk53Pz258 mq2FGU+Se84JdVYDBg1B5mPwtKb6hmLle4VVv1ADLlPiIJVX/DkxLXWvvitn6o/EJPfm mOHRaPEiFE7IHp7zwn7niw1v0T9mzNMTrBmglp9lgrKVobLj64U8yH/7LY4+qkuz5ur2 ruvWwqDpx2UvSlD1V/A+6+50j4kYz3k/AXfqLHQLUtkzDZXrvqzB4phfQ/X1lsil2QOx b0HQ== X-Forwarded-Encrypted: i=1; AJvYcCWINE5N11oCNY6QfBm5thURPmwsLvM5uN3xMiklxd4U4WpOLqWYPsn++tzyqRpP6/VDGLPkWWjQIOuOBTIahAF3KsvDH5qmwM7u X-Gm-Message-State: AOJu0YxoEHY9O2TtQUR8IOcv1SzS9qbXHVlI9mHOUnS0Um63PTI2WOAZ inCzwxWL7WYgd+mQdiKgDCh5cxbXstuYwWZwaKxtRtwYFMBXIs+rZYSwMYsO0P3gv0APLR5TOSz encI1OPnLzB/ndkPrmw57mjyd0yncnIBj5YWjSY4a2meDNx0euWcS+xTdVQ== X-Received: by 2002:ac2:4942:0:b0:511:a4c9:a010 with SMTP id o2-20020ac24942000000b00511a4c9a010mr1875422lfi.38.1709236049005; Thu, 29 Feb 2024 11:47:29 -0800 (PST) X-Google-Smtp-Source: AGHT+IEPN4L9UvKtXdDp+10SmqEhaEX3/3TztuqqO4Vqc9XcT8yBYiju8dOjrnSHOMo8esXKgPcF0A== X-Received: by 2002:ac2:4942:0:b0:511:a4c9:a010 with SMTP id o2-20020ac24942000000b00511a4c9a010mr1875404lfi.38.1709236048539; Thu, 29 Feb 2024 11:47:28 -0800 (PST) Received: from toolbox ([2001:9e8:8984:bd00:2340:7b35:5e60:4abd]) by smtp.gmail.com with ESMTPSA id k19-20020a170906a39300b00a3fb7cafad8sm978656ejz.39.2024.02.29.11.47.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Feb 2024 11:47:28 -0800 (PST) Date: Thu, 29 Feb 2024 20:47:26 +0100 From: Sebastian Wick To: Maxime Ripard Cc: Maarten Lankhorst , Thomas Zimmermann , David Airlie , Daniel Vetter , Jonathan Corbet , Sandy Huang , Heiko =?iso-8859-1?Q?St=FCbner?= , Chen-Yu Tsai , Jernej Skrabec , Samuel Holland , Hans Verkuil , Ville =?iso-8859-1?Q?Syrj=E4l=E4?= , dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-sunxi@lists.linux.dev, Dave Stevenson Subject: Re: [PATCH v7 21/36] drm/connector: hdmi: Add Broadcast RGB property Message-ID: <20240229194726.GB166694@toolbox> References: <20240222-kms-hdmi-connector-state-v7-0-8f4af575fce2@kernel.org> <20240222-kms-hdmi-connector-state-v7-21-8f4af575fce2@kernel.org> 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: <20240222-kms-hdmi-connector-state-v7-21-8f4af575fce2@kernel.org> On Thu, Feb 22, 2024 at 07:14:07PM +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. > > Reviewed-by: Dave Stevenson > Signed-off-by: Maxime Ripard > --- > Documentation/gpu/kms-properties.csv | 1 - > drivers/gpu/drm/drm_atomic.c | 2 + > drivers/gpu/drm/drm_atomic_state_helper.c | 4 +- > drivers/gpu/drm/drm_atomic_uapi.c | 4 ++ > drivers/gpu/drm/drm_connector.c | 89 +++++++++++++++++++++++++++++++ > include/drm/drm_connector.h | 36 +++++++++++++ > 6 files changed, 134 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 26f9e525c0a0..3e57d98d8418 100644 > --- a/drivers/gpu/drm/drm_atomic.c > +++ b/drivers/gpu/drm/drm_atomic.c > @@ -1145,6 +1145,8 @@ static void drm_atomic_connector_print_state(struct drm_printer *p, > > 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)); > drm_printf(p, "\toutput_bpc=%u\n", state->hdmi.output_bpc); > drm_printf(p, "\toutput_format=%s\n", > drm_hdmi_connector_get_output_format_name(state->hdmi.output_format)); > diff --git a/drivers/gpu/drm/drm_atomic_state_helper.c b/drivers/gpu/drm/drm_atomic_state_helper.c > index 9f517599f117..0e8fb653965a 100644 > --- a/drivers/gpu/drm/drm_atomic_state_helper.c > +++ b/drivers/gpu/drm/drm_atomic_state_helper.c > @@ -589,6 +589,7 @@ void __drm_atomic_helper_connector_hdmi_reset(struct drm_connector *connector, > > new_state->max_bpc = max_bpc; > new_state->max_requested_bpc = max_bpc; > + new_state->hdmi.broadcast_rgb = DRM_HDMI_BROADCAST_RGB_AUTO; > } > EXPORT_SYMBOL(__drm_atomic_helper_connector_hdmi_reset); > > @@ -913,7 +914,8 @@ int drm_atomic_helper_connector_hdmi_check(struct drm_connector *connector, > if (ret) > return ret; > > - if (old_state->hdmi.output_bpc != new_state->hdmi.output_bpc || > + if (old_state->hdmi.broadcast_rgb != new_state->hdmi.broadcast_rgb || > + old_state->hdmi.output_bpc != new_state->hdmi.output_bpc || > old_state->hdmi.output_format != new_state->hdmi.output_format) { > struct drm_crtc *crtc = new_state->crtc; > struct drm_crtc_state *crtc_state; > diff --git a/drivers/gpu/drm/drm_atomic_uapi.c b/drivers/gpu/drm/drm_atomic_uapi.c > index 29d4940188d4..2b415b4ed506 100644 > --- a/drivers/gpu/drm/drm_atomic_uapi.c > +++ b/drivers/gpu/drm/drm_atomic_uapi.c > @@ -776,6 +776,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); > @@ -859,6 +861,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 591d2d500f61..6ffe59d01698 100644 > --- a/drivers/gpu/drm/drm_connector.c > +++ b/drivers/gpu/drm/drm_connector.c > @@ -1212,6 +1212,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); > + > static const char * const output_format_str[] = { > [HDMI_COLORSPACE_RGB] = "RGB", > [HDMI_COLORSPACE_YUV420] = "YUV 4:2:0", > @@ -1708,6 +1731,39 @@ EXPORT_SYMBOL(drm_connector_attach_dp_subconnector_property); > /** > * DOC: HDMI connector properties > * > + * Broadcast RGB (HDMI specific) > + * Indicates the Quantization Range (Full vs Limited) used. The color > + * processing pipeline will be adjusted to match the value of the > + * property, and the Infoframes will be generated and sent accordingly. > + * > + * This property is only relevant if the HDMI output format is RGB. If > + * it's one of the YCbCr variant, it will be ignored and the output will > + * use a limited quantization range. Uh, maybe just say that the quantization range is selected automatically in case a YCbCr output format is in use. I'm not sure every YCbCr variant requires limited and even if it does, new formats could change this. With this changed, this patch is Reviewed-by: Sebastian Wick > + * > + * The CRTC attached to the connector must be configured by user-space to > + * always produce full-range pixels. > + * > + * The value of this property can be one of the following: > + * > + * Automatic: > + * The quantization range is selected automatically based on the > + * mode according to the HDMI specifications (HDMI 1.4b - Section > + * 6.6 - Video Quantization Ranges). > + * > + * Full: > + * Full quantization range is forced. > + * > + * Limited 16:235: > + * Limited quantization range is forced. Unlike the name suggests, > + * this works for any number of bits-per-component. > + * > + * Property values other than Automatic can result in colors being off (if > + * limited is selected but the display expects full), or a black screen > + * (if full is selected but the display expects limited). > + * > + * Drivers can set up this property by calling > + * drm_connector_attach_broadcast_rgb_property(). > + * > * content type (HDMI specific): > * Indicates content type setting to be used in HDMI infoframes to indicate > * content type for the external device, so that it adjusts its display > @@ -2570,6 +2626,39 @@ int drm_connector_attach_hdr_output_metadata_property(struct drm_connector *conn > } > EXPORT_SYMBOL(drm_connector_attach_hdr_output_metadata_property); > > +/** > + * drm_connector_attach_broadcast_rgb_property - attach "Broadcast RGB" property > + * @connector: connector to attach the property on. > + * > + * This is used to add support for forcing the RGB range on a connector > + * > + * Returns: > + * Zero on success, negative errno on failure. > + */ > +int drm_connector_attach_broadcast_rgb_property(struct drm_connector *connector) > +{ > + struct drm_device *dev = connector->dev; > + struct drm_property *prop; > + > + prop = connector->broadcast_rgb_property; > + if (!prop) { > + prop = drm_property_create_enum(dev, DRM_MODE_PROP_ENUM, > + "Broadcast RGB", > + broadcast_rgb_names, > + ARRAY_SIZE(broadcast_rgb_names)); > + if (!prop) > + return -EINVAL; > + > + connector->broadcast_rgb_property = prop; > + } > + > + drm_object_attach_property(&connector->base, prop, > + DRM_HDMI_BROADCAST_RGB_AUTO); > + > + return 0; > +} > +EXPORT_SYMBOL(drm_connector_attach_broadcast_rgb_property); > + > /** > * drm_connector_attach_colorspace_property - attach "Colorspace" property > * @connector: connector to attach the property on. > diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h > index 8cda902934cd..bb6b6a36ade3 100644 > --- a/include/drm/drm_connector.h > +++ b/include/drm/drm_connector.h > @@ -369,6 +369,29 @@ enum drm_panel_orientation { > DRM_MODE_PANEL_ORIENTATION_RIGHT_UP, > }; > > +/** > + * enum drm_hdmi_broadcast_rgb - Broadcast RGB Selection for an HDMI @drm_connector > + */ > +enum drm_hdmi_broadcast_rgb { > + /** > + * @DRM_HDMI_BROADCAST_RGB_AUTO: The RGB range is selected > + * automatically based on the mode. > + */ > + DRM_HDMI_BROADCAST_RGB_AUTO, > + > + /** > + * @DRM_HDMI_BROADCAST_RGB_FULL: Full range RGB is forced. > + */ > + DRM_HDMI_BROADCAST_RGB_FULL, > + > + /** > + * @DRM_HDMI_BROADCAST_RGB_LIMITED: Limited range RGB is forced. > + */ > + DRM_HDMI_BROADCAST_RGB_LIMITED, > +}; > + > +const char * > +drm_hdmi_connector_get_broadcast_rgb_name(enum drm_hdmi_broadcast_rgb broadcast_rgb); > const char * > drm_hdmi_connector_get_output_format_name(enum hdmi_colorspace fmt); > > @@ -1041,6 +1064,12 @@ struct drm_connector_state { > * @drm_atomic_helper_connector_hdmi_check(). > */ > struct { > + /** > + * @broadcast_rgb: Connector property to pass the > + * Broadcast RGB selection value. > + */ > + enum drm_hdmi_broadcast_rgb broadcast_rgb; > + > /** > * @output_bpc: Bits per color channel to output. > */ > @@ -1753,6 +1782,12 @@ struct drm_connector { > */ > struct drm_property *privacy_screen_hw_state_property; > > + /** > + * @broadcast_rgb_property: Connector property to set the > + * Broadcast RGB selection to output with. > + */ > + struct drm_property *broadcast_rgb_property; > + > #define DRM_CONNECTOR_POLL_HPD (1 << 0) > #define DRM_CONNECTOR_POLL_CONNECT (1 << 1) > #define DRM_CONNECTOR_POLL_DISCONNECT (1 << 2) > @@ -2092,6 +2127,7 @@ int drm_connector_attach_scaling_mode_property(struct drm_connector *connector, > u32 scaling_mode_mask); > int drm_connector_attach_vrr_capable_property( > struct drm_connector *connector); > +int drm_connector_attach_broadcast_rgb_property(struct drm_connector *connector); > int drm_connector_attach_colorspace_property(struct drm_connector *connector); > int drm_connector_attach_hdr_output_metadata_property(struct drm_connector *connector); > bool drm_connector_atomic_hdr_metadata_equal(struct drm_connector_state *old_state, > > -- > 2.43.2 > 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 C16E2C54798 for ; Thu, 29 Feb 2024 19:47:44 +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=ZznID82V0L2+oGfVGHzplnlPhy1qcfDPMIGL/wClols=; b=ulKVdke3E8HkbW uWSMwgSpV50Tty27DLBjtQVBvDEsg6vYuypPNPe222DXPs07JD2IKzuTJwXpHcpp7/GCqyRyKJh+2 dP3sXlxcFBBbNQizQj/uqkK8fKhixihWpXZYehkYR1gjxXjJ2kk2RDR0Sno0BSL9qAKtx3QdwKh/+ yPq0wxlHQhCQ3y67h4rsBHRp8wvMrvyUuSZTcAY800fJCufNyxpaVjjtVjU1NWQD/V7uzsepd1ZL9 f00xzjJEpj0eLTcXxdibBL8lI48hNhddZJzIdIbgoeDG6fsB/8+Y1bqV2w8VF/IiMen3WtB/6w5m5 YVyEjylAOp3unuUmS25Q==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rfmNW-0000000Exmj-0GJq; Thu, 29 Feb 2024 19:47:38 +0000 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rfmNS-0000000ExjM-1z5P for linux-rockchip@lists.infradead.org; Thu, 29 Feb 2024 19:47:36 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1709236052; 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=i8CFu40DFfKt/7absHIijkD0GmZEEf3/hT+uC0K0lLU=; b=A4JizqF1uGE32WicGNdyNSs9iB7AvgnsRc5o8/04+BH80Km+s2+nttpBDANuHINtVsCJUs plcRpFmZ2sDvzgUXBm5fL1a6E6NHuNMqjFAZzleaFkZDFjRY32QUEsMbdtagegkhvvz7YL I6DjVGb6ryMAP4Gt4hi+jolAmsIjpe4= Received: from mail-lf1-f70.google.com (mail-lf1-f70.google.com [209.85.167.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-299-NxH3E07jM4eaY6qdRW9qkA-1; Thu, 29 Feb 2024 14:47:30 -0500 X-MC-Unique: NxH3E07jM4eaY6qdRW9qkA-1 Received: by mail-lf1-f70.google.com with SMTP id 2adb3069b0e04-5132bd3e068so634661e87.3 for ; Thu, 29 Feb 2024 11:47:30 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709236049; x=1709840849; 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=i8CFu40DFfKt/7absHIijkD0GmZEEf3/hT+uC0K0lLU=; b=FXq1sERe+eAYEdBzP/PNmsUfVoLAl1xEw//gSOdRfdjeiJzHhMqtLCZ6QPX0TVF7+7 KQ+TX8tbXBbfWxE7imnV8PL/c1EhO/U80CfHmuQPUapE6Eb5s3i5zSL3O8ZddbrTr/uy F0nnZ2mKyTU73umNpdgKibmutp+WRaJjKOT/lxP+a1kKCb1mTpi9LGYdDbIudYJ5Gr7f Xn6S9vIMjnc3bvUqtnADiL+mMPlUvytrHbB8O+SIed9IOwTdnrd0cQEBv7/qUbV/8dpo 30x7S0+xcM5bOP/9oDo/Az4hMnQjbMQ64O9BSSNIfr1ydI0EjzfkPq4GEHFq6Q4uVEE5 1vrg== X-Forwarded-Encrypted: i=1; AJvYcCX9nf1IcYQqUr+y6iE+c+wGRSw8xypyYnM3gkMPph4yiWREfYmCZULfDWN5cS/JpUU4w6Rr69gByTHToLzx0Ck5KlIyyUlmquO5xdMgOGAg5xwi X-Gm-Message-State: AOJu0Yz7KGx3fweoqdNjIVICZB8YwimLaLWWaoAWRGFTXmJk6njYBdFq 0Z1MaVw91I46G7d9YcsqjBSNJtu5/NU5/0S0EnnfjZzN2igzL/Rvr2eyxGOBj+hM7aaOzcaeo81 BPIHBxlzKvrcsS1zYaSxEWjg7u1CG47Lfxi3RqV1Q0iL2DP3qE74hI6z6hj9jOv1WCpFQGQ== X-Received: by 2002:ac2:4942:0:b0:511:a4c9:a010 with SMTP id o2-20020ac24942000000b00511a4c9a010mr1875414lfi.38.1709236048999; Thu, 29 Feb 2024 11:47:28 -0800 (PST) X-Google-Smtp-Source: AGHT+IEPN4L9UvKtXdDp+10SmqEhaEX3/3TztuqqO4Vqc9XcT8yBYiju8dOjrnSHOMo8esXKgPcF0A== X-Received: by 2002:ac2:4942:0:b0:511:a4c9:a010 with SMTP id o2-20020ac24942000000b00511a4c9a010mr1875404lfi.38.1709236048539; Thu, 29 Feb 2024 11:47:28 -0800 (PST) Received: from toolbox ([2001:9e8:8984:bd00:2340:7b35:5e60:4abd]) by smtp.gmail.com with ESMTPSA id k19-20020a170906a39300b00a3fb7cafad8sm978656ejz.39.2024.02.29.11.47.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Feb 2024 11:47:28 -0800 (PST) Date: Thu, 29 Feb 2024 20:47:26 +0100 From: Sebastian Wick To: Maxime Ripard Cc: Maarten Lankhorst , Thomas Zimmermann , David Airlie , Daniel Vetter , Jonathan Corbet , Sandy Huang , Heiko =?iso-8859-1?Q?St=FCbner?= , Chen-Yu Tsai , Jernej Skrabec , Samuel Holland , Hans Verkuil , Ville =?iso-8859-1?Q?Syrj=E4l=E4?= , dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-sunxi@lists.linux.dev, Dave Stevenson Subject: Re: [PATCH v7 21/36] drm/connector: hdmi: Add Broadcast RGB property Message-ID: <20240229194726.GB166694@toolbox> References: <20240222-kms-hdmi-connector-state-v7-0-8f4af575fce2@kernel.org> <20240222-kms-hdmi-connector-state-v7-21-8f4af575fce2@kernel.org> MIME-Version: 1.0 In-Reply-To: <20240222-kms-hdmi-connector-state-v7-21-8f4af575fce2@kernel.org> 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-20240229_114734_745467_C555F457 X-CRM114-Status: GOOD ( 42.34 ) 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 T24gVGh1LCBGZWIgMjIsIDIwMjQgYXQgMDc6MTQ6MDdQTSArMDEwMCwgTWF4aW1lIFJpcGFyZCB3 cm90ZToKPiBUaGUgaTkxNSBkcml2ZXIgaGFzIGEgcHJvcGVydHkgdG8gZm9yY2UgdGhlIFJHQiBy YW5nZSBvZiBhbiBIRE1JIG91dHB1dC4KPiBUaGUgdmM0IGRyaXZlciB0aGVuIGltcGxlbWVudGVk IHRoZSBzYW1lIHByb3BlcnR5IHdpdGggdGhlIHNhbWUKPiBzZW1hbnRpY3MuIEtXaW4gaGFzIHN1 cHBvcnQgZm9yIGl0LCBhbmQgYSBQUiBmb3IgbXV0dGVyIGlzIGFsc28gdGhlcmUgdG8KPiBzdXBw b3J0IGl0Lgo+IAo+IEJvdGggZHJpdmVycyBpbXBsZW1lbnRpbmcgdGhlIHNhbWUgcHJvcGVydHkg d2l0aCB0aGUgc2FtZSBzZW1hbnRpY3MsCj4gcGx1cyB0aGUgdXNlcnNwYWNlIGhhdmluZyBzdXBw b3J0IGZvciBpdCwgaXMgcHJvb2YgZW5vdWdoIHRoYXQgaXQncwo+IHByZXR0eSBtdWNoIGEgZGUt ZmFjdG8gc3RhbmRhcmQgbm93IGFuZCB3ZSBjYW4gcHJvdmlkZSBoZWxwZXJzIGZvciBpdC4KPiAK PiBMZXQncyBwbHVtYiBpdCBpbnRvIHRoZSBuZXdseSBjcmVhdGVkIEhETUkgY29ubmVjdG9yLgo+ IAo+IFJldmlld2VkLWJ5OiBEYXZlIFN0ZXZlbnNvbiA8ZGF2ZS5zdGV2ZW5zb25AcmFzcGJlcnJ5 cGkuY29tPgo+IFNpZ25lZC1vZmYtYnk6IE1heGltZSBSaXBhcmQgPG1yaXBhcmRAa2VybmVsLm9y Zz4KPiAtLS0KPiAgRG9jdW1lbnRhdGlvbi9ncHUva21zLXByb3BlcnRpZXMuY3N2ICAgICAgfCAg MSAtCj4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMgICAgICAgICAgICAgIHwgIDIgKwo+ ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19zdGF0ZV9oZWxwZXIuYyB8ICA0ICstCj4gIGRy aXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3VhcGkuYyAgICAgICAgIHwgIDQgKysKPiAgZHJpdmVy cy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYyAgICAgICAgICAgfCA4OSArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrCj4gIGluY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaCAgICAgICAgICAg ICAgIHwgMzYgKysrKysrKysrKysrKwo+ICA2IGZpbGVzIGNoYW5nZWQsIDEzNCBpbnNlcnRpb25z KCspLCAyIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dwdS9r bXMtcHJvcGVydGllcy5jc3YgYi9Eb2N1bWVudGF0aW9uL2dwdS9rbXMtcHJvcGVydGllcy5jc3YK PiBpbmRleCAwZjk1OTA4MzQ4MjkuLmNhZWYxNGM1MzJkNCAxMDA2NDQKPiAtLS0gYS9Eb2N1bWVu dGF0aW9uL2dwdS9rbXMtcHJvcGVydGllcy5jc3YKPiArKysgYi9Eb2N1bWVudGF0aW9uL2dwdS9r bXMtcHJvcGVydGllcy5jc3YKPiBAQCAtMTcsNyArMTcsNiBAQCBPd25lciBNb2R1bGUvRHJpdmVy cyxHcm91cCxQcm9wZXJ0eSBOYW1lLFR5cGUsUHJvcGVydHkgVmFsdWVzLE9iamVjdCBhdHRhY2hl ZCxEZQo+ICAsVmlydHVhbCBHUFUs4oCcc3VnZ2VzdGVkIFjigJ0sUkFOR0UsIk1pbj0wLCBNYXg9 MHhmZmZmZmZmZiIsQ29ubmVjdG9yLHByb3BlcnR5IHRvIHN1Z2dlc3QgYW4gWCBvZmZzZXQgZm9y IGEgY29ubmVjdG9yCj4gICws4oCcc3VnZ2VzdGVkIFnigJ0sUkFOR0UsIk1pbj0wLCBNYXg9MHhm ZmZmZmZmZiIsQ29ubmVjdG9yLHByb3BlcnR5IHRvIHN1Z2dlc3QgYW4gWSBvZmZzZXQgZm9yIGEg Y29ubmVjdG9yCj4gICxPcHRpb25hbCwiIiJhc3BlY3QgcmF0aW8iIiIsRU5VTSwieyAiIk5vbmUi IiwgIiI0OjMiIiwgIiIxNjo5IiIgfSIsQ29ubmVjdG9yLFREQgo+IC1pOTE1LEdlbmVyaWMsIiIi QnJvYWRjYXN0IFJHQiIiIixFTlVNLCJ7ICIiQXV0b21hdGljIiIsICIiRnVsbCIiLCAiIkxpbWl0 ZWQgMTY6MjM1IiIgfSIsQ29ubmVjdG9yLCJXaGVuIHRoaXMgcHJvcGVydHkgaXMgc2V0IHRvIExp bWl0ZWQgMTY6MjM1IGFuZCBDVE0gaXMgc2V0LCB0aGUgaGFyZHdhcmUgd2lsbCBiZSBwcm9ncmFt bWVkIHdpdGggdGhlIHJlc3VsdCBvZiB0aGUgbXVsdGlwbGljYXRpb24gb2YgQ1RNIGJ5IHRoZSBs aW1pdGVkIHJhbmdlIG1hdHJpeCB0byBlbnN1cmUgdGhlIHBpeGVscyBub3JtYWxseSBpbiB0aGUg cmFuZ2UgMC4uMS4wIGFyZSByZW1hcHBlZCB0byB0aGUgcmFuZ2UgMTYvMjU1Li4yMzUvMjU1LiIK PiAgLCzigJxhdWRpb+KAnSxFTlVNLCJ7ICIiZm9yY2UtZHZpIiIsICIib2ZmIiIsICIiYXV0byIi LCAiIm9uIiIgfSIsQ29ubmVjdG9yLFRCRAo+ICAsU0RWTy1UVizigJxtb2Rl4oCdLEVOVU0sInsg IiJOVFNDX00iIiwgIiJOVFNDX0oiIiwgIiJOVFNDXzQ0MyIiLCAiIlBBTF9CIiIgfSBldGMuIixD b25uZWN0b3IsVEJECj4gICwsIiIibGVmdF9tYXJnaW4iIiIsUkFOR0UsIk1pbj0wLCBNYXg9IFNE Vk8gZGVwZW5kZW50IixDb25uZWN0b3IsVEJECj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fYXRvbWljLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jCj4gaW5kZXggMjZm OWU1MjVjMGEwLi4zZTU3ZDk4ZDg0MTggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2Ry bV9hdG9taWMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKPiBAQCAtMTE0 NSw2ICsxMTQ1LDggQEAgc3RhdGljIHZvaWQgZHJtX2F0b21pY19jb25uZWN0b3JfcHJpbnRfc3Rh dGUoc3RydWN0IGRybV9wcmludGVyICpwLAo+ICAKPiAgCWlmIChjb25uZWN0b3ItPmNvbm5lY3Rv cl90eXBlID09IERSTV9NT0RFX0NPTk5FQ1RPUl9IRE1JQSB8fAo+ICAJICAgIGNvbm5lY3Rvci0+ Y29ubmVjdG9yX3R5cGUgPT0gRFJNX01PREVfQ09OTkVDVE9SX0hETUlCKSB7Cj4gKwkJZHJtX3By aW50ZihwLCAiXHRicm9hZGNhc3RfcmdiPSVzXG4iLAo+ICsJCQkgICBkcm1faGRtaV9jb25uZWN0 b3JfZ2V0X2Jyb2FkY2FzdF9yZ2JfbmFtZShzdGF0ZS0+aGRtaS5icm9hZGNhc3RfcmdiKSk7Cj4g IAkJZHJtX3ByaW50ZihwLCAiXHRvdXRwdXRfYnBjPSV1XG4iLCBzdGF0ZS0+aGRtaS5vdXRwdXRf YnBjKTsKPiAgCQlkcm1fcHJpbnRmKHAsICJcdG91dHB1dF9mb3JtYXQ9JXNcbiIsCj4gIAkJCSAg IGRybV9oZG1pX2Nvbm5lY3Rvcl9nZXRfb3V0cHV0X2Zvcm1hdF9uYW1lKHN0YXRlLT5oZG1pLm91 dHB1dF9mb3JtYXQpKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNf c3RhdGVfaGVscGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19zdGF0ZV9oZWxwZXIu Ywo+IGluZGV4IDlmNTE3NTk5ZjExNy4uMGU4ZmI2NTM5NjVhIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9kcm1fYXRvbWljX3N0YXRlX2hlbHBlci5jCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2RybV9hdG9taWNfc3RhdGVfaGVscGVyLmMKPiBAQCAtNTg5LDYgKzU4OSw3IEBAIHZvaWQg X19kcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfaGRtaV9yZXNldChzdHJ1Y3QgZHJtX2Nvbm5l Y3RvciAqY29ubmVjdG9yLAo+ICAKPiAgCW5ld19zdGF0ZS0+bWF4X2JwYyA9IG1heF9icGM7Cj4g IAluZXdfc3RhdGUtPm1heF9yZXF1ZXN0ZWRfYnBjID0gbWF4X2JwYzsKPiArCW5ld19zdGF0ZS0+ aGRtaS5icm9hZGNhc3RfcmdiID0gRFJNX0hETUlfQlJPQURDQVNUX1JHQl9BVVRPOwo+ICB9Cj4g IEVYUE9SVF9TWU1CT0woX19kcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfaGRtaV9yZXNldCk7 Cj4gIAo+IEBAIC05MTMsNyArOTE0LDggQEAgaW50IGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rv cl9oZG1pX2NoZWNrKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gIAlpZiAocmV0 KQo+ICAJCXJldHVybiByZXQ7Cj4gIAo+IC0JaWYgKG9sZF9zdGF0ZS0+aGRtaS5vdXRwdXRfYnBj ICE9IG5ld19zdGF0ZS0+aGRtaS5vdXRwdXRfYnBjIHx8Cj4gKwlpZiAob2xkX3N0YXRlLT5oZG1p LmJyb2FkY2FzdF9yZ2IgIT0gbmV3X3N0YXRlLT5oZG1pLmJyb2FkY2FzdF9yZ2IgfHwKPiArCSAg ICBvbGRfc3RhdGUtPmhkbWkub3V0cHV0X2JwYyAhPSBuZXdfc3RhdGUtPmhkbWkub3V0cHV0X2Jw YyB8fAo+ICAJICAgIG9sZF9zdGF0ZS0+aGRtaS5vdXRwdXRfZm9ybWF0ICE9IG5ld19zdGF0ZS0+ aGRtaS5vdXRwdXRfZm9ybWF0KSB7Cj4gIAkJc3RydWN0IGRybV9jcnRjICpjcnRjID0gbmV3X3N0 YXRlLT5jcnRjOwo+ICAJCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfdWFwaS5jIGIvZHJpdmVycy9ncHUv ZHJtL2RybV9hdG9taWNfdWFwaS5jCj4gaW5kZXggMjlkNDk0MDE4OGQ0Li4yYjQxNWI0ZWQ1MDYg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfdWFwaS5jCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfdWFwaS5jCj4gQEAgLTc3Niw2ICs3NzYsOCBAQCBz dGF0aWMgaW50IGRybV9hdG9taWNfY29ubmVjdG9yX3NldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Nv bm5lY3RvciAqY29ubmVjdG9yLAo+ICAJCXN0YXRlLT5tYXhfcmVxdWVzdGVkX2JwYyA9IHZhbDsK PiAgCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gY29ubmVjdG9yLT5wcml2YWN5X3NjcmVlbl9zd19z dGF0ZV9wcm9wZXJ0eSkgewo+ICAJCXN0YXRlLT5wcml2YWN5X3NjcmVlbl9zd19zdGF0ZSA9IHZh bDsKPiArCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gY29ubmVjdG9yLT5icm9hZGNhc3RfcmdiX3By b3BlcnR5KSB7Cj4gKwkJc3RhdGUtPmhkbWkuYnJvYWRjYXN0X3JnYiA9IHZhbDsKPiAgCX0gZWxz ZSBpZiAoY29ubmVjdG9yLT5mdW5jcy0+YXRvbWljX3NldF9wcm9wZXJ0eSkgewo+ICAJCXJldHVy biBjb25uZWN0b3ItPmZ1bmNzLT5hdG9taWNfc2V0X3Byb3BlcnR5KGNvbm5lY3RvciwKPiAgCQkJ CXN0YXRlLCBwcm9wZXJ0eSwgdmFsKTsKPiBAQCAtODU5LDYgKzg2MSw4IEBAIGRybV9hdG9taWNf Y29ubmVjdG9yX2dldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ ICAJCSp2YWwgPSBzdGF0ZS0+bWF4X3JlcXVlc3RlZF9icGM7Cj4gIAl9IGVsc2UgaWYgKHByb3Bl cnR5ID09IGNvbm5lY3Rvci0+cHJpdmFjeV9zY3JlZW5fc3dfc3RhdGVfcHJvcGVydHkpIHsKPiAg CQkqdmFsID0gc3RhdGUtPnByaXZhY3lfc2NyZWVuX3N3X3N0YXRlOwo+ICsJfSBlbHNlIGlmIChw cm9wZXJ0eSA9PSBjb25uZWN0b3ItPmJyb2FkY2FzdF9yZ2JfcHJvcGVydHkpIHsKPiArCQkqdmFs ID0gc3RhdGUtPmhkbWkuYnJvYWRjYXN0X3JnYjsKPiAgCX0gZWxzZSBpZiAoY29ubmVjdG9yLT5m dW5jcy0+YXRvbWljX2dldF9wcm9wZXJ0eSkgewo+ICAJCXJldHVybiBjb25uZWN0b3ItPmZ1bmNz LT5hdG9taWNfZ2V0X3Byb3BlcnR5KGNvbm5lY3RvciwKPiAgCQkJCXN0YXRlLCBwcm9wZXJ0eSwg dmFsKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYyBiL2Ry aXZlcnMvZ3B1L2RybS9kcm1fY29ubmVjdG9yLmMKPiBpbmRleCA1OTFkMmQ1MDBmNjEuLjZmZmU1 OWQwMTY5OCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2Nvbm5lY3Rvci5jCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYwo+IEBAIC0xMjEyLDYgKzEyMTIs MjkgQEAgc3RhdGljIGNvbnN0IHUzMiBkcF9jb2xvcnNwYWNlcyA9Cj4gIAlCSVQoRFJNX01PREVf Q09MT1JJTUVUUllfQlQyMDIwX0NZQ0MpIHwKPiAgCUJJVChEUk1fTU9ERV9DT0xPUklNRVRSWV9C VDIwMjBfWUNDKTsKPiAgCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX3Byb3BfZW51bV9saXN0 IGJyb2FkY2FzdF9yZ2JfbmFtZXNbXSA9IHsKPiArCXsgRFJNX0hETUlfQlJPQURDQVNUX1JHQl9B VVRPLCAiQXV0b21hdGljIiB9LAo+ICsJeyBEUk1fSERNSV9CUk9BRENBU1RfUkdCX0ZVTEwsICJG dWxsIiB9LAo+ICsJeyBEUk1fSERNSV9CUk9BRENBU1RfUkdCX0xJTUlURUQsICJMaW1pdGVkIDE2 OjIzNSIgfSwKPiArfTsKPiArCj4gKy8qCj4gKyAqIGRybV9oZG1pX2Nvbm5lY3Rvcl9nZXRfYnJv YWRjYXN0X3JnYl9uYW1lIC0gUmV0dXJuIGEgc3RyaW5nIGZvciBIRE1JIGNvbm5lY3RvciBSR0Ig YnJvYWRjYXN0IHNlbGVjdGlvbgo+ICsgKiBAYnJvYWRjYXN0X3JnYjogQnJvYWRjYXN0IFJHQiBz ZWxlY3Rpb24gdG8gY29tcHV0ZSBuYW1lIG9mCj4gKyAqCj4gKyAqIFJldHVybnM6IHRoZSBuYW1l IG9mIHRoZSBCcm9hZGNhc3QgUkdCIHNlbGVjdGlvbiwgb3IgTlVMTCBpZiB0aGUgdHlwZQo+ICsg KiBpcyBub3QgdmFsaWQuCj4gKyAqLwo+ICtjb25zdCBjaGFyICoKPiArZHJtX2hkbWlfY29ubmVj dG9yX2dldF9icm9hZGNhc3RfcmdiX25hbWUoZW51bSBkcm1faGRtaV9icm9hZGNhc3RfcmdiIGJy b2FkY2FzdF9yZ2IpCj4gK3sKPiArCWlmIChicm9hZGNhc3RfcmdiID4gRFJNX0hETUlfQlJPQURD QVNUX1JHQl9MSU1JVEVEKQo+ICsJCXJldHVybiBOVUxMOwo+ICsKPiArCXJldHVybiBicm9hZGNh c3RfcmdiX25hbWVzW2Jyb2FkY2FzdF9yZ2JdLm5hbWU7Cj4gK30KPiArRVhQT1JUX1NZTUJPTChk cm1faGRtaV9jb25uZWN0b3JfZ2V0X2Jyb2FkY2FzdF9yZ2JfbmFtZSk7Cj4gKwo+ICBzdGF0aWMg Y29uc3QgY2hhciAqIGNvbnN0IG91dHB1dF9mb3JtYXRfc3RyW10gPSB7Cj4gIAlbSERNSV9DT0xP UlNQQUNFX1JHQl0JCT0gIlJHQiIsCj4gIAlbSERNSV9DT0xPUlNQQUNFX1lVVjQyMF0JPSAiWVVW IDQ6MjowIiwKPiBAQCAtMTcwOCw2ICsxNzMxLDM5IEBAIEVYUE9SVF9TWU1CT0woZHJtX2Nvbm5l Y3Rvcl9hdHRhY2hfZHBfc3ViY29ubmVjdG9yX3Byb3BlcnR5KTsKPiAgLyoqCj4gICAqIERPQzog SERNSSBjb25uZWN0b3IgcHJvcGVydGllcwo+ICAgKgo+ICsgKiBCcm9hZGNhc3QgUkdCIChIRE1J IHNwZWNpZmljKQo+ICsgKiAgICAgIEluZGljYXRlcyB0aGUgUXVhbnRpemF0aW9uIFJhbmdlIChG dWxsIHZzIExpbWl0ZWQpIHVzZWQuIFRoZSBjb2xvcgo+ICsgKiAgICAgIHByb2Nlc3NpbmcgcGlw ZWxpbmUgd2lsbCBiZSBhZGp1c3RlZCB0byBtYXRjaCB0aGUgdmFsdWUgb2YgdGhlCj4gKyAqICAg ICAgcHJvcGVydHksIGFuZCB0aGUgSW5mb2ZyYW1lcyB3aWxsIGJlIGdlbmVyYXRlZCBhbmQgc2Vu dCBhY2NvcmRpbmdseS4KPiArICoKPiArICogICAgICBUaGlzIHByb3BlcnR5IGlzIG9ubHkgcmVs ZXZhbnQgaWYgdGhlIEhETUkgb3V0cHV0IGZvcm1hdCBpcyBSR0IuIElmCj4gKyAqICAgICAgaXQn cyBvbmUgb2YgdGhlIFlDYkNyIHZhcmlhbnQsIGl0IHdpbGwgYmUgaWdub3JlZCBhbmQgdGhlIG91 dHB1dCB3aWxsCj4gKyAqICAgICAgdXNlIGEgbGltaXRlZCBxdWFudGl6YXRpb24gcmFuZ2UuCgpV aCwgbWF5YmUganVzdCBzYXkgdGhhdCB0aGUgcXVhbnRpemF0aW9uIHJhbmdlIGlzIHNlbGVjdGVk IGF1dG9tYXRpY2FsbHkKaW4gY2FzZSBhIFlDYkNyIG91dHB1dCBmb3JtYXQgaXMgaW4gdXNlLiBJ J20gbm90IHN1cmUgZXZlcnkgWUNiQ3IKdmFyaWFudCByZXF1aXJlcyBsaW1pdGVkIGFuZCBldmVu IGlmIGl0IGRvZXMsIG5ldyBmb3JtYXRzIGNvdWxkIGNoYW5nZQp0aGlzLgoKV2l0aCB0aGlzIGNo YW5nZWQsIHRoaXMgcGF0Y2ggaXMKClJldmlld2VkLWJ5OiBTZWJhc3RpYW4gV2ljayA8c2ViYXN0 aWFuLndpY2tAcmVkaGF0LmNvbT4KCj4gKyAqCj4gKyAqICAgICAgVGhlIENSVEMgYXR0YWNoZWQg dG8gdGhlIGNvbm5lY3RvciBtdXN0IGJlIGNvbmZpZ3VyZWQgYnkgdXNlci1zcGFjZSB0bwo+ICsg KiAgICAgIGFsd2F5cyBwcm9kdWNlIGZ1bGwtcmFuZ2UgcGl4ZWxzLgo+ICsgKgo+ICsgKiAgICAg IFRoZSB2YWx1ZSBvZiB0aGlzIHByb3BlcnR5IGNhbiBiZSBvbmUgb2YgdGhlIGZvbGxvd2luZzoK PiArICoKPiArICogICAgICBBdXRvbWF0aWM6Cj4gKyAqICAgICAgICAgICAgICBUaGUgcXVhbnRp emF0aW9uIHJhbmdlIGlzIHNlbGVjdGVkIGF1dG9tYXRpY2FsbHkgYmFzZWQgb24gdGhlCj4gKyAq ICAgICAgICAgICAgICBtb2RlIGFjY29yZGluZyB0byB0aGUgSERNSSBzcGVjaWZpY2F0aW9ucyAo SERNSSAxLjRiIC0gU2VjdGlvbgo+ICsgKiAgICAgICAgICAgICAgNi42IC0gVmlkZW8gUXVhbnRp emF0aW9uIFJhbmdlcykuCj4gKyAqCj4gKyAqICAgICAgRnVsbDoKPiArICogICAgICAgICAgICAg IEZ1bGwgcXVhbnRpemF0aW9uIHJhbmdlIGlzIGZvcmNlZC4KPiArICoKPiArICogICAgICBMaW1p dGVkIDE2OjIzNToKPiArICogICAgICAgICAgICAgIExpbWl0ZWQgcXVhbnRpemF0aW9uIHJhbmdl IGlzIGZvcmNlZC4gVW5saWtlIHRoZSBuYW1lIHN1Z2dlc3RzLAo+ICsgKiAgICAgICAgICAgICAg dGhpcyB3b3JrcyBmb3IgYW55IG51bWJlciBvZiBiaXRzLXBlci1jb21wb25lbnQuCj4gKyAqCj4g KyAqICAgICAgUHJvcGVydHkgdmFsdWVzIG90aGVyIHRoYW4gQXV0b21hdGljIGNhbiByZXN1bHQg aW4gY29sb3JzIGJlaW5nIG9mZiAoaWYKPiArICogICAgICBsaW1pdGVkIGlzIHNlbGVjdGVkIGJ1 dCB0aGUgZGlzcGxheSBleHBlY3RzIGZ1bGwpLCBvciBhIGJsYWNrIHNjcmVlbgo+ICsgKiAgICAg IChpZiBmdWxsIGlzIHNlbGVjdGVkIGJ1dCB0aGUgZGlzcGxheSBleHBlY3RzIGxpbWl0ZWQpLgo+ ICsgKgo+ICsgKiAgICAgIERyaXZlcnMgY2FuIHNldCB1cCB0aGlzIHByb3BlcnR5IGJ5IGNhbGxp bmcKPiArICogICAgICBkcm1fY29ubmVjdG9yX2F0dGFjaF9icm9hZGNhc3RfcmdiX3Byb3BlcnR5 KCkuCj4gKyAqCj4gICAqIGNvbnRlbnQgdHlwZSAoSERNSSBzcGVjaWZpYyk6Cj4gICAqCUluZGlj YXRlcyBjb250ZW50IHR5cGUgc2V0dGluZyB0byBiZSB1c2VkIGluIEhETUkgaW5mb2ZyYW1lcyB0 byBpbmRpY2F0ZQo+ICAgKgljb250ZW50IHR5cGUgZm9yIHRoZSBleHRlcm5hbCBkZXZpY2UsIHNv IHRoYXQgaXQgYWRqdXN0cyBpdHMgZGlzcGxheQo+IEBAIC0yNTcwLDYgKzI2MjYsMzkgQEAgaW50 IGRybV9jb25uZWN0b3JfYXR0YWNoX2hkcl9vdXRwdXRfbWV0YWRhdGFfcHJvcGVydHkoc3RydWN0 IGRybV9jb25uZWN0b3IgKmNvbm4KPiAgfQo+ICBFWFBPUlRfU1lNQk9MKGRybV9jb25uZWN0b3Jf YXR0YWNoX2hkcl9vdXRwdXRfbWV0YWRhdGFfcHJvcGVydHkpOwo+ICAKPiArLyoqCj4gKyAqIGRy bV9jb25uZWN0b3JfYXR0YWNoX2Jyb2FkY2FzdF9yZ2JfcHJvcGVydHkgLSBhdHRhY2ggIkJyb2Fk Y2FzdCBSR0IiIHByb3BlcnR5Cj4gKyAqIEBjb25uZWN0b3I6IGNvbm5lY3RvciB0byBhdHRhY2gg dGhlIHByb3BlcnR5IG9uLgo+ICsgKgo+ICsgKiBUaGlzIGlzIHVzZWQgdG8gYWRkIHN1cHBvcnQg Zm9yIGZvcmNpbmcgdGhlIFJHQiByYW5nZSBvbiBhIGNvbm5lY3Rvcgo+ICsgKgo+ICsgKiBSZXR1 cm5zOgo+ICsgKiBaZXJvIG9uIHN1Y2Nlc3MsIG5lZ2F0aXZlIGVycm5vIG9uIGZhaWx1cmUuCj4g KyAqLwo+ICtpbnQgZHJtX2Nvbm5lY3Rvcl9hdHRhY2hfYnJvYWRjYXN0X3JnYl9wcm9wZXJ0eShz dHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gY29ubmVjdG9yLT5kZXY7Cj4gKwlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wOwo+ ICsKPiArCXByb3AgPSBjb25uZWN0b3ItPmJyb2FkY2FzdF9yZ2JfcHJvcGVydHk7Cj4gKwlpZiAo IXByb3ApIHsKPiArCQlwcm9wID0gZHJtX3Byb3BlcnR5X2NyZWF0ZV9lbnVtKGRldiwgRFJNX01P REVfUFJPUF9FTlVNLAo+ICsJCQkJCQkiQnJvYWRjYXN0IFJHQiIsCj4gKwkJCQkJCWJyb2FkY2Fz dF9yZ2JfbmFtZXMsCj4gKwkJCQkJCUFSUkFZX1NJWkUoYnJvYWRjYXN0X3JnYl9uYW1lcykpOwo+ ICsJCWlmICghcHJvcCkKPiArCQkJcmV0dXJuIC1FSU5WQUw7Cj4gKwo+ICsJCWNvbm5lY3Rvci0+ YnJvYWRjYXN0X3JnYl9wcm9wZXJ0eSA9IHByb3A7Cj4gKwl9Cj4gKwo+ICsJZHJtX29iamVjdF9h dHRhY2hfcHJvcGVydHkoJmNvbm5lY3Rvci0+YmFzZSwgcHJvcCwKPiArCQkJCSAgIERSTV9IRE1J X0JST0FEQ0FTVF9SR0JfQVVUTyk7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KPiArRVhQT1JUX1NZ TUJPTChkcm1fY29ubmVjdG9yX2F0dGFjaF9icm9hZGNhc3RfcmdiX3Byb3BlcnR5KTsKPiArCj4g IC8qKgo+ICAgKiBkcm1fY29ubmVjdG9yX2F0dGFjaF9jb2xvcnNwYWNlX3Byb3BlcnR5IC0gYXR0 YWNoICJDb2xvcnNwYWNlIiBwcm9wZXJ0eQo+ICAgKiBAY29ubmVjdG9yOiBjb25uZWN0b3IgdG8g YXR0YWNoIHRoZSBwcm9wZXJ0eSBvbi4KPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2Nv bm5lY3Rvci5oIGIvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oCj4gaW5kZXggOGNkYTkwMjkz NGNkLi5iYjZiNmEzNmFkZTMgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rv ci5oCj4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oCj4gQEAgLTM2OSw2ICszNjks MjkgQEAgZW51bSBkcm1fcGFuZWxfb3JpZW50YXRpb24gewo+ICAJRFJNX01PREVfUEFORUxfT1JJ RU5UQVRJT05fUklHSFRfVVAsCj4gIH07Cj4gIAo+ICsvKioKPiArICogZW51bSBkcm1faGRtaV9i cm9hZGNhc3RfcmdiIC0gQnJvYWRjYXN0IFJHQiBTZWxlY3Rpb24gZm9yIGFuIEhETUkgQGRybV9j b25uZWN0b3IKPiArICovCj4gK2VudW0gZHJtX2hkbWlfYnJvYWRjYXN0X3JnYiB7Cj4gKwkvKioK PiArCSAqIEBEUk1fSERNSV9CUk9BRENBU1RfUkdCX0FVVE86IFRoZSBSR0IgcmFuZ2UgaXMgc2Vs ZWN0ZWQKPiArCSAqIGF1dG9tYXRpY2FsbHkgYmFzZWQgb24gdGhlIG1vZGUuCj4gKwkgKi8KPiAr CURSTV9IRE1JX0JST0FEQ0FTVF9SR0JfQVVUTywKPiArCj4gKwkvKioKPiArCSAqIEBEUk1fSERN SV9CUk9BRENBU1RfUkdCX0ZVTEw6IEZ1bGwgcmFuZ2UgUkdCIGlzIGZvcmNlZC4KPiArCSAqLwo+ ICsJRFJNX0hETUlfQlJPQURDQVNUX1JHQl9GVUxMLAo+ICsKPiArCS8qKgo+ICsJICogQERSTV9I RE1JX0JST0FEQ0FTVF9SR0JfTElNSVRFRDogTGltaXRlZCByYW5nZSBSR0IgaXMgZm9yY2VkLgo+ ICsJICovCj4gKwlEUk1fSERNSV9CUk9BRENBU1RfUkdCX0xJTUlURUQsCj4gK307Cj4gKwo+ICtj b25zdCBjaGFyICoKPiArZHJtX2hkbWlfY29ubmVjdG9yX2dldF9icm9hZGNhc3RfcmdiX25hbWUo ZW51bSBkcm1faGRtaV9icm9hZGNhc3RfcmdiIGJyb2FkY2FzdF9yZ2IpOwo+ICBjb25zdCBjaGFy ICoKPiAgZHJtX2hkbWlfY29ubmVjdG9yX2dldF9vdXRwdXRfZm9ybWF0X25hbWUoZW51bSBoZG1p X2NvbG9yc3BhY2UgZm10KTsKPiAgCj4gQEAgLTEwNDEsNiArMTA2NCwxMiBAQCBzdHJ1Y3QgZHJt X2Nvbm5lY3Rvcl9zdGF0ZSB7Cj4gIAkgKiBAZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2hk bWlfY2hlY2soKS4KPiAgCSAqLwo+ICAJc3RydWN0IHsKPiArCQkvKioKPiArCQkgKiBAYnJvYWRj YXN0X3JnYjogQ29ubmVjdG9yIHByb3BlcnR5IHRvIHBhc3MgdGhlCj4gKwkJICogQnJvYWRjYXN0 IFJHQiBzZWxlY3Rpb24gdmFsdWUuCj4gKwkJICovCj4gKwkJZW51bSBkcm1faGRtaV9icm9hZGNh c3RfcmdiIGJyb2FkY2FzdF9yZ2I7Cj4gKwo+ICAJCS8qKgo+ICAJCSAqIEBvdXRwdXRfYnBjOiBC aXRzIHBlciBjb2xvciBjaGFubmVsIHRvIG91dHB1dC4KPiAgCQkgKi8KPiBAQCAtMTc1Myw2ICsx NzgyLDEyIEBAIHN0cnVjdCBkcm1fY29ubmVjdG9yIHsKPiAgCSAqLwo+ICAJc3RydWN0IGRybV9w cm9wZXJ0eSAqcHJpdmFjeV9zY3JlZW5faHdfc3RhdGVfcHJvcGVydHk7Cj4gIAo+ICsJLyoqCj4g KwkgKiBAYnJvYWRjYXN0X3JnYl9wcm9wZXJ0eTogQ29ubmVjdG9yIHByb3BlcnR5IHRvIHNldCB0 aGUKPiArCSAqIEJyb2FkY2FzdCBSR0Igc2VsZWN0aW9uIHRvIG91dHB1dCB3aXRoLgo+ICsJICov Cj4gKwlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpicm9hZGNhc3RfcmdiX3Byb3BlcnR5Owo+ICsKPiAg I2RlZmluZSBEUk1fQ09OTkVDVE9SX1BPTExfSFBEICgxIDw8IDApCj4gICNkZWZpbmUgRFJNX0NP Tk5FQ1RPUl9QT0xMX0NPTk5FQ1QgKDEgPDwgMSkKPiAgI2RlZmluZSBEUk1fQ09OTkVDVE9SX1BP TExfRElTQ09OTkVDVCAoMSA8PCAyKQo+IEBAIC0yMDkyLDYgKzIxMjcsNyBAQCBpbnQgZHJtX2Nv bm5lY3Rvcl9hdHRhY2hfc2NhbGluZ19tb2RlX3Byb3BlcnR5KHN0cnVjdCBkcm1fY29ubmVjdG9y ICpjb25uZWN0b3IsCj4gIAkJCQkJICAgICAgIHUzMiBzY2FsaW5nX21vZGVfbWFzayk7Cj4gIGlu dCBkcm1fY29ubmVjdG9yX2F0dGFjaF92cnJfY2FwYWJsZV9wcm9wZXJ0eSgKPiAgCQlzdHJ1Y3Qg ZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKTsKPiAraW50IGRybV9jb25uZWN0b3JfYXR0YWNoX2Jy b2FkY2FzdF9yZ2JfcHJvcGVydHkoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rvcik7Cj4g IGludCBkcm1fY29ubmVjdG9yX2F0dGFjaF9jb2xvcnNwYWNlX3Byb3BlcnR5KHN0cnVjdCBkcm1f Y29ubmVjdG9yICpjb25uZWN0b3IpOwo+ICBpbnQgZHJtX2Nvbm5lY3Rvcl9hdHRhY2hfaGRyX291 dHB1dF9tZXRhZGF0YV9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKTsK PiAgYm9vbCBkcm1fY29ubmVjdG9yX2F0b21pY19oZHJfbWV0YWRhdGFfZXF1YWwoc3RydWN0IGRy bV9jb25uZWN0b3Jfc3RhdGUgKm9sZF9zdGF0ZSwKPiAKPiAtLSAKPiAyLjQzLjIKPiAKCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpMaW51eC1yb2NrY2hp cCBtYWlsaW5nIGxpc3QKTGludXgtcm9ja2NoaXBAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8v bGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXJvY2tjaGlwCg== 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 DC430C54798 for ; Thu, 29 Feb 2024 19:47:52 +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=5zP4+xLmqX4qIirE9Y7wO6et9yE4YCzVWc0IRZGrWVI=; b=E/xEpl5kK5wJAc /4JssdvUYuc5/27EzFXReQInkQGD5kaQJtqPcYnrUx0m+DX+lp6GEHdNV0CxG/TEoU/VsqGBke4UO c3EfdCPDwrRDkwMSU/PFW02LkuSnYOR4/dv2JPhByVN8C6S+azhE0yNBE65WmqyKvljb/0POom6sJ WCSvTzSWrn0x4lwl4iGnDlMvZORelrqAGlJ1vVNlrxhGcxZXm+C1WibajO0TAPQwV/fab1gq/pDEf BijpgEUHryX2AweGBMlHCv9X0t36KTU85bhrAxIL+b1j5GTFd4/c2uFM3vIBXe/n4Fg7dAHgWqN0F G8YzP62NVJvc1WaGQuYw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rfmNU-0000000Exlq-3vnn; Thu, 29 Feb 2024 19:47:36 +0000 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rfmNS-0000000ExjN-27eB for linux-arm-kernel@lists.infradead.org; Thu, 29 Feb 2024 19:47:36 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1709236052; 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=i8CFu40DFfKt/7absHIijkD0GmZEEf3/hT+uC0K0lLU=; b=A4JizqF1uGE32WicGNdyNSs9iB7AvgnsRc5o8/04+BH80Km+s2+nttpBDANuHINtVsCJUs plcRpFmZ2sDvzgUXBm5fL1a6E6NHuNMqjFAZzleaFkZDFjRY32QUEsMbdtagegkhvvz7YL I6DjVGb6ryMAP4Gt4hi+jolAmsIjpe4= Received: from mail-lf1-f69.google.com (mail-lf1-f69.google.com [209.85.167.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-299-RJNNml0pPYWxwPESgGwf3w-1; Thu, 29 Feb 2024 14:47:30 -0500 X-MC-Unique: RJNNml0pPYWxwPESgGwf3w-1 Received: by mail-lf1-f69.google.com with SMTP id 2adb3069b0e04-5132be83d48so548483e87.2 for ; Thu, 29 Feb 2024 11:47:30 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709236049; x=1709840849; 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=i8CFu40DFfKt/7absHIijkD0GmZEEf3/hT+uC0K0lLU=; b=hOZnVyx6ol6bk1DCMfNtbjHcPu1EkPZV7C/jVqVSLb0f5WTlmgMBTyZt9YPm76ASAh ENePtPWy3uiILmMboe16jVRGMsT7EFsNP12FS6MovM8ATTs87cxvIFtz7HtOJU3gEt3P mhJkmF7sncioUhRmm6FzZNj4QJxCtPY5hpKu1yA9KGO3RzRKiwsoVIh0ytSl6QhYFpQq KvG1khCKxPU8nUWeeLCObuiaevThiWkDL3oKCFqejcLOPcFXkDZYyq10KSq1f9ypvemi oDctnx5W/bhn4JATufuUWzUzHE88rWBIWkW76JER2GVczcWk0jCxqOvkAUy+rNdJfQ8f uPWg== X-Forwarded-Encrypted: i=1; AJvYcCWC4ywdRG/c5ipBsML2R2N/fgIsgmxgVgomSI1XBt/f9mgKbYvp2BtHNR5J1Og4z/M0fdwjip7icGoKeAiJNnAqj4+vnej9Cg2V058iWnl0N0iQOL4= X-Gm-Message-State: AOJu0YysP09cVaCrbMRwudxZ30N/KecnzjS38dhK4ry+joTyd6SdQmfG wUditmYQJZsNlxVDTIXcImX0PjFm6hNw5dHNjEc9EfRMzfs5Y//AhbATd0w1xRvCK/hN3BQnLbt HQnc8jgNmhBrKky0bp8IwusXyDAAE7h1u/P3g/taJ4OPC1+JE/dQS2V7WHe071/hF95k4KqVq X-Received: by 2002:ac2:4942:0:b0:511:a4c9:a010 with SMTP id o2-20020ac24942000000b00511a4c9a010mr1875421lfi.38.1709236049005; Thu, 29 Feb 2024 11:47:29 -0800 (PST) X-Google-Smtp-Source: AGHT+IEPN4L9UvKtXdDp+10SmqEhaEX3/3TztuqqO4Vqc9XcT8yBYiju8dOjrnSHOMo8esXKgPcF0A== X-Received: by 2002:ac2:4942:0:b0:511:a4c9:a010 with SMTP id o2-20020ac24942000000b00511a4c9a010mr1875404lfi.38.1709236048539; Thu, 29 Feb 2024 11:47:28 -0800 (PST) Received: from toolbox ([2001:9e8:8984:bd00:2340:7b35:5e60:4abd]) by smtp.gmail.com with ESMTPSA id k19-20020a170906a39300b00a3fb7cafad8sm978656ejz.39.2024.02.29.11.47.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Feb 2024 11:47:28 -0800 (PST) Date: Thu, 29 Feb 2024 20:47:26 +0100 From: Sebastian Wick To: Maxime Ripard Cc: Maarten Lankhorst , Thomas Zimmermann , David Airlie , Daniel Vetter , Jonathan Corbet , Sandy Huang , Heiko =?iso-8859-1?Q?St=FCbner?= , Chen-Yu Tsai , Jernej Skrabec , Samuel Holland , Hans Verkuil , Ville =?iso-8859-1?Q?Syrj=E4l=E4?= , dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-sunxi@lists.linux.dev, Dave Stevenson Subject: Re: [PATCH v7 21/36] drm/connector: hdmi: Add Broadcast RGB property Message-ID: <20240229194726.GB166694@toolbox> References: <20240222-kms-hdmi-connector-state-v7-0-8f4af575fce2@kernel.org> <20240222-kms-hdmi-connector-state-v7-21-8f4af575fce2@kernel.org> MIME-Version: 1.0 In-Reply-To: <20240222-kms-hdmi-connector-state-v7-21-8f4af575fce2@kernel.org> 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-20240229_114734_749814_A988AB0C X-CRM114-Status: GOOD ( 43.44 ) 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 T24gVGh1LCBGZWIgMjIsIDIwMjQgYXQgMDc6MTQ6MDdQTSArMDEwMCwgTWF4aW1lIFJpcGFyZCB3 cm90ZToKPiBUaGUgaTkxNSBkcml2ZXIgaGFzIGEgcHJvcGVydHkgdG8gZm9yY2UgdGhlIFJHQiBy YW5nZSBvZiBhbiBIRE1JIG91dHB1dC4KPiBUaGUgdmM0IGRyaXZlciB0aGVuIGltcGxlbWVudGVk IHRoZSBzYW1lIHByb3BlcnR5IHdpdGggdGhlIHNhbWUKPiBzZW1hbnRpY3MuIEtXaW4gaGFzIHN1 cHBvcnQgZm9yIGl0LCBhbmQgYSBQUiBmb3IgbXV0dGVyIGlzIGFsc28gdGhlcmUgdG8KPiBzdXBw b3J0IGl0Lgo+IAo+IEJvdGggZHJpdmVycyBpbXBsZW1lbnRpbmcgdGhlIHNhbWUgcHJvcGVydHkg d2l0aCB0aGUgc2FtZSBzZW1hbnRpY3MsCj4gcGx1cyB0aGUgdXNlcnNwYWNlIGhhdmluZyBzdXBw b3J0IGZvciBpdCwgaXMgcHJvb2YgZW5vdWdoIHRoYXQgaXQncwo+IHByZXR0eSBtdWNoIGEgZGUt ZmFjdG8gc3RhbmRhcmQgbm93IGFuZCB3ZSBjYW4gcHJvdmlkZSBoZWxwZXJzIGZvciBpdC4KPiAK PiBMZXQncyBwbHVtYiBpdCBpbnRvIHRoZSBuZXdseSBjcmVhdGVkIEhETUkgY29ubmVjdG9yLgo+ IAo+IFJldmlld2VkLWJ5OiBEYXZlIFN0ZXZlbnNvbiA8ZGF2ZS5zdGV2ZW5zb25AcmFzcGJlcnJ5 cGkuY29tPgo+IFNpZ25lZC1vZmYtYnk6IE1heGltZSBSaXBhcmQgPG1yaXBhcmRAa2VybmVsLm9y Zz4KPiAtLS0KPiAgRG9jdW1lbnRhdGlvbi9ncHUva21zLXByb3BlcnRpZXMuY3N2ICAgICAgfCAg MSAtCj4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMgICAgICAgICAgICAgIHwgIDIgKwo+ ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19zdGF0ZV9oZWxwZXIuYyB8ICA0ICstCj4gIGRy aXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3VhcGkuYyAgICAgICAgIHwgIDQgKysKPiAgZHJpdmVy cy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYyAgICAgICAgICAgfCA4OSArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrCj4gIGluY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaCAgICAgICAgICAg ICAgIHwgMzYgKysrKysrKysrKysrKwo+ICA2IGZpbGVzIGNoYW5nZWQsIDEzNCBpbnNlcnRpb25z KCspLCAyIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dwdS9r bXMtcHJvcGVydGllcy5jc3YgYi9Eb2N1bWVudGF0aW9uL2dwdS9rbXMtcHJvcGVydGllcy5jc3YK PiBpbmRleCAwZjk1OTA4MzQ4MjkuLmNhZWYxNGM1MzJkNCAxMDA2NDQKPiAtLS0gYS9Eb2N1bWVu dGF0aW9uL2dwdS9rbXMtcHJvcGVydGllcy5jc3YKPiArKysgYi9Eb2N1bWVudGF0aW9uL2dwdS9r bXMtcHJvcGVydGllcy5jc3YKPiBAQCAtMTcsNyArMTcsNiBAQCBPd25lciBNb2R1bGUvRHJpdmVy cyxHcm91cCxQcm9wZXJ0eSBOYW1lLFR5cGUsUHJvcGVydHkgVmFsdWVzLE9iamVjdCBhdHRhY2hl ZCxEZQo+ICAsVmlydHVhbCBHUFUs4oCcc3VnZ2VzdGVkIFjigJ0sUkFOR0UsIk1pbj0wLCBNYXg9 MHhmZmZmZmZmZiIsQ29ubmVjdG9yLHByb3BlcnR5IHRvIHN1Z2dlc3QgYW4gWCBvZmZzZXQgZm9y IGEgY29ubmVjdG9yCj4gICws4oCcc3VnZ2VzdGVkIFnigJ0sUkFOR0UsIk1pbj0wLCBNYXg9MHhm ZmZmZmZmZiIsQ29ubmVjdG9yLHByb3BlcnR5IHRvIHN1Z2dlc3QgYW4gWSBvZmZzZXQgZm9yIGEg Y29ubmVjdG9yCj4gICxPcHRpb25hbCwiIiJhc3BlY3QgcmF0aW8iIiIsRU5VTSwieyAiIk5vbmUi IiwgIiI0OjMiIiwgIiIxNjo5IiIgfSIsQ29ubmVjdG9yLFREQgo+IC1pOTE1LEdlbmVyaWMsIiIi QnJvYWRjYXN0IFJHQiIiIixFTlVNLCJ7ICIiQXV0b21hdGljIiIsICIiRnVsbCIiLCAiIkxpbWl0 ZWQgMTY6MjM1IiIgfSIsQ29ubmVjdG9yLCJXaGVuIHRoaXMgcHJvcGVydHkgaXMgc2V0IHRvIExp bWl0ZWQgMTY6MjM1IGFuZCBDVE0gaXMgc2V0LCB0aGUgaGFyZHdhcmUgd2lsbCBiZSBwcm9ncmFt bWVkIHdpdGggdGhlIHJlc3VsdCBvZiB0aGUgbXVsdGlwbGljYXRpb24gb2YgQ1RNIGJ5IHRoZSBs aW1pdGVkIHJhbmdlIG1hdHJpeCB0byBlbnN1cmUgdGhlIHBpeGVscyBub3JtYWxseSBpbiB0aGUg cmFuZ2UgMC4uMS4wIGFyZSByZW1hcHBlZCB0byB0aGUgcmFuZ2UgMTYvMjU1Li4yMzUvMjU1LiIK PiAgLCzigJxhdWRpb+KAnSxFTlVNLCJ7ICIiZm9yY2UtZHZpIiIsICIib2ZmIiIsICIiYXV0byIi LCAiIm9uIiIgfSIsQ29ubmVjdG9yLFRCRAo+ICAsU0RWTy1UVizigJxtb2Rl4oCdLEVOVU0sInsg IiJOVFNDX00iIiwgIiJOVFNDX0oiIiwgIiJOVFNDXzQ0MyIiLCAiIlBBTF9CIiIgfSBldGMuIixD b25uZWN0b3IsVEJECj4gICwsIiIibGVmdF9tYXJnaW4iIiIsUkFOR0UsIk1pbj0wLCBNYXg9IFNE Vk8gZGVwZW5kZW50IixDb25uZWN0b3IsVEJECj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fYXRvbWljLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jCj4gaW5kZXggMjZm OWU1MjVjMGEwLi4zZTU3ZDk4ZDg0MTggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2Ry bV9hdG9taWMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKPiBAQCAtMTE0 NSw2ICsxMTQ1LDggQEAgc3RhdGljIHZvaWQgZHJtX2F0b21pY19jb25uZWN0b3JfcHJpbnRfc3Rh dGUoc3RydWN0IGRybV9wcmludGVyICpwLAo+ICAKPiAgCWlmIChjb25uZWN0b3ItPmNvbm5lY3Rv cl90eXBlID09IERSTV9NT0RFX0NPTk5FQ1RPUl9IRE1JQSB8fAo+ICAJICAgIGNvbm5lY3Rvci0+ Y29ubmVjdG9yX3R5cGUgPT0gRFJNX01PREVfQ09OTkVDVE9SX0hETUlCKSB7Cj4gKwkJZHJtX3By aW50ZihwLCAiXHRicm9hZGNhc3RfcmdiPSVzXG4iLAo+ICsJCQkgICBkcm1faGRtaV9jb25uZWN0 b3JfZ2V0X2Jyb2FkY2FzdF9yZ2JfbmFtZShzdGF0ZS0+aGRtaS5icm9hZGNhc3RfcmdiKSk7Cj4g IAkJZHJtX3ByaW50ZihwLCAiXHRvdXRwdXRfYnBjPSV1XG4iLCBzdGF0ZS0+aGRtaS5vdXRwdXRf YnBjKTsKPiAgCQlkcm1fcHJpbnRmKHAsICJcdG91dHB1dF9mb3JtYXQ9JXNcbiIsCj4gIAkJCSAg IGRybV9oZG1pX2Nvbm5lY3Rvcl9nZXRfb3V0cHV0X2Zvcm1hdF9uYW1lKHN0YXRlLT5oZG1pLm91 dHB1dF9mb3JtYXQpKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNf c3RhdGVfaGVscGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19zdGF0ZV9oZWxwZXIu Ywo+IGluZGV4IDlmNTE3NTk5ZjExNy4uMGU4ZmI2NTM5NjVhIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9kcm1fYXRvbWljX3N0YXRlX2hlbHBlci5jCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2RybV9hdG9taWNfc3RhdGVfaGVscGVyLmMKPiBAQCAtNTg5LDYgKzU4OSw3IEBAIHZvaWQg X19kcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfaGRtaV9yZXNldChzdHJ1Y3QgZHJtX2Nvbm5l Y3RvciAqY29ubmVjdG9yLAo+ICAKPiAgCW5ld19zdGF0ZS0+bWF4X2JwYyA9IG1heF9icGM7Cj4g IAluZXdfc3RhdGUtPm1heF9yZXF1ZXN0ZWRfYnBjID0gbWF4X2JwYzsKPiArCW5ld19zdGF0ZS0+ aGRtaS5icm9hZGNhc3RfcmdiID0gRFJNX0hETUlfQlJPQURDQVNUX1JHQl9BVVRPOwo+ICB9Cj4g IEVYUE9SVF9TWU1CT0woX19kcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfaGRtaV9yZXNldCk7 Cj4gIAo+IEBAIC05MTMsNyArOTE0LDggQEAgaW50IGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rv cl9oZG1pX2NoZWNrKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gIAlpZiAocmV0 KQo+ICAJCXJldHVybiByZXQ7Cj4gIAo+IC0JaWYgKG9sZF9zdGF0ZS0+aGRtaS5vdXRwdXRfYnBj ICE9IG5ld19zdGF0ZS0+aGRtaS5vdXRwdXRfYnBjIHx8Cj4gKwlpZiAob2xkX3N0YXRlLT5oZG1p LmJyb2FkY2FzdF9yZ2IgIT0gbmV3X3N0YXRlLT5oZG1pLmJyb2FkY2FzdF9yZ2IgfHwKPiArCSAg ICBvbGRfc3RhdGUtPmhkbWkub3V0cHV0X2JwYyAhPSBuZXdfc3RhdGUtPmhkbWkub3V0cHV0X2Jw YyB8fAo+ICAJICAgIG9sZF9zdGF0ZS0+aGRtaS5vdXRwdXRfZm9ybWF0ICE9IG5ld19zdGF0ZS0+ aGRtaS5vdXRwdXRfZm9ybWF0KSB7Cj4gIAkJc3RydWN0IGRybV9jcnRjICpjcnRjID0gbmV3X3N0 YXRlLT5jcnRjOwo+ICAJCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfdWFwaS5jIGIvZHJpdmVycy9ncHUv ZHJtL2RybV9hdG9taWNfdWFwaS5jCj4gaW5kZXggMjlkNDk0MDE4OGQ0Li4yYjQxNWI0ZWQ1MDYg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfdWFwaS5jCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfdWFwaS5jCj4gQEAgLTc3Niw2ICs3NzYsOCBAQCBz dGF0aWMgaW50IGRybV9hdG9taWNfY29ubmVjdG9yX3NldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Nv bm5lY3RvciAqY29ubmVjdG9yLAo+ICAJCXN0YXRlLT5tYXhfcmVxdWVzdGVkX2JwYyA9IHZhbDsK PiAgCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gY29ubmVjdG9yLT5wcml2YWN5X3NjcmVlbl9zd19z dGF0ZV9wcm9wZXJ0eSkgewo+ICAJCXN0YXRlLT5wcml2YWN5X3NjcmVlbl9zd19zdGF0ZSA9IHZh bDsKPiArCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gY29ubmVjdG9yLT5icm9hZGNhc3RfcmdiX3By b3BlcnR5KSB7Cj4gKwkJc3RhdGUtPmhkbWkuYnJvYWRjYXN0X3JnYiA9IHZhbDsKPiAgCX0gZWxz ZSBpZiAoY29ubmVjdG9yLT5mdW5jcy0+YXRvbWljX3NldF9wcm9wZXJ0eSkgewo+ICAJCXJldHVy biBjb25uZWN0b3ItPmZ1bmNzLT5hdG9taWNfc2V0X3Byb3BlcnR5KGNvbm5lY3RvciwKPiAgCQkJ CXN0YXRlLCBwcm9wZXJ0eSwgdmFsKTsKPiBAQCAtODU5LDYgKzg2MSw4IEBAIGRybV9hdG9taWNf Y29ubmVjdG9yX2dldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ ICAJCSp2YWwgPSBzdGF0ZS0+bWF4X3JlcXVlc3RlZF9icGM7Cj4gIAl9IGVsc2UgaWYgKHByb3Bl cnR5ID09IGNvbm5lY3Rvci0+cHJpdmFjeV9zY3JlZW5fc3dfc3RhdGVfcHJvcGVydHkpIHsKPiAg CQkqdmFsID0gc3RhdGUtPnByaXZhY3lfc2NyZWVuX3N3X3N0YXRlOwo+ICsJfSBlbHNlIGlmIChw cm9wZXJ0eSA9PSBjb25uZWN0b3ItPmJyb2FkY2FzdF9yZ2JfcHJvcGVydHkpIHsKPiArCQkqdmFs ID0gc3RhdGUtPmhkbWkuYnJvYWRjYXN0X3JnYjsKPiAgCX0gZWxzZSBpZiAoY29ubmVjdG9yLT5m dW5jcy0+YXRvbWljX2dldF9wcm9wZXJ0eSkgewo+ICAJCXJldHVybiBjb25uZWN0b3ItPmZ1bmNz LT5hdG9taWNfZ2V0X3Byb3BlcnR5KGNvbm5lY3RvciwKPiAgCQkJCXN0YXRlLCBwcm9wZXJ0eSwg dmFsKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYyBiL2Ry aXZlcnMvZ3B1L2RybS9kcm1fY29ubmVjdG9yLmMKPiBpbmRleCA1OTFkMmQ1MDBmNjEuLjZmZmU1 OWQwMTY5OCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2Nvbm5lY3Rvci5jCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYwo+IEBAIC0xMjEyLDYgKzEyMTIs MjkgQEAgc3RhdGljIGNvbnN0IHUzMiBkcF9jb2xvcnNwYWNlcyA9Cj4gIAlCSVQoRFJNX01PREVf Q09MT1JJTUVUUllfQlQyMDIwX0NZQ0MpIHwKPiAgCUJJVChEUk1fTU9ERV9DT0xPUklNRVRSWV9C VDIwMjBfWUNDKTsKPiAgCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX3Byb3BfZW51bV9saXN0 IGJyb2FkY2FzdF9yZ2JfbmFtZXNbXSA9IHsKPiArCXsgRFJNX0hETUlfQlJPQURDQVNUX1JHQl9B VVRPLCAiQXV0b21hdGljIiB9LAo+ICsJeyBEUk1fSERNSV9CUk9BRENBU1RfUkdCX0ZVTEwsICJG dWxsIiB9LAo+ICsJeyBEUk1fSERNSV9CUk9BRENBU1RfUkdCX0xJTUlURUQsICJMaW1pdGVkIDE2 OjIzNSIgfSwKPiArfTsKPiArCj4gKy8qCj4gKyAqIGRybV9oZG1pX2Nvbm5lY3Rvcl9nZXRfYnJv YWRjYXN0X3JnYl9uYW1lIC0gUmV0dXJuIGEgc3RyaW5nIGZvciBIRE1JIGNvbm5lY3RvciBSR0Ig YnJvYWRjYXN0IHNlbGVjdGlvbgo+ICsgKiBAYnJvYWRjYXN0X3JnYjogQnJvYWRjYXN0IFJHQiBz ZWxlY3Rpb24gdG8gY29tcHV0ZSBuYW1lIG9mCj4gKyAqCj4gKyAqIFJldHVybnM6IHRoZSBuYW1l IG9mIHRoZSBCcm9hZGNhc3QgUkdCIHNlbGVjdGlvbiwgb3IgTlVMTCBpZiB0aGUgdHlwZQo+ICsg KiBpcyBub3QgdmFsaWQuCj4gKyAqLwo+ICtjb25zdCBjaGFyICoKPiArZHJtX2hkbWlfY29ubmVj dG9yX2dldF9icm9hZGNhc3RfcmdiX25hbWUoZW51bSBkcm1faGRtaV9icm9hZGNhc3RfcmdiIGJy b2FkY2FzdF9yZ2IpCj4gK3sKPiArCWlmIChicm9hZGNhc3RfcmdiID4gRFJNX0hETUlfQlJPQURD QVNUX1JHQl9MSU1JVEVEKQo+ICsJCXJldHVybiBOVUxMOwo+ICsKPiArCXJldHVybiBicm9hZGNh c3RfcmdiX25hbWVzW2Jyb2FkY2FzdF9yZ2JdLm5hbWU7Cj4gK30KPiArRVhQT1JUX1NZTUJPTChk cm1faGRtaV9jb25uZWN0b3JfZ2V0X2Jyb2FkY2FzdF9yZ2JfbmFtZSk7Cj4gKwo+ICBzdGF0aWMg Y29uc3QgY2hhciAqIGNvbnN0IG91dHB1dF9mb3JtYXRfc3RyW10gPSB7Cj4gIAlbSERNSV9DT0xP UlNQQUNFX1JHQl0JCT0gIlJHQiIsCj4gIAlbSERNSV9DT0xPUlNQQUNFX1lVVjQyMF0JPSAiWVVW IDQ6MjowIiwKPiBAQCAtMTcwOCw2ICsxNzMxLDM5IEBAIEVYUE9SVF9TWU1CT0woZHJtX2Nvbm5l Y3Rvcl9hdHRhY2hfZHBfc3ViY29ubmVjdG9yX3Byb3BlcnR5KTsKPiAgLyoqCj4gICAqIERPQzog SERNSSBjb25uZWN0b3IgcHJvcGVydGllcwo+ICAgKgo+ICsgKiBCcm9hZGNhc3QgUkdCIChIRE1J IHNwZWNpZmljKQo+ICsgKiAgICAgIEluZGljYXRlcyB0aGUgUXVhbnRpemF0aW9uIFJhbmdlIChG dWxsIHZzIExpbWl0ZWQpIHVzZWQuIFRoZSBjb2xvcgo+ICsgKiAgICAgIHByb2Nlc3NpbmcgcGlw ZWxpbmUgd2lsbCBiZSBhZGp1c3RlZCB0byBtYXRjaCB0aGUgdmFsdWUgb2YgdGhlCj4gKyAqICAg ICAgcHJvcGVydHksIGFuZCB0aGUgSW5mb2ZyYW1lcyB3aWxsIGJlIGdlbmVyYXRlZCBhbmQgc2Vu dCBhY2NvcmRpbmdseS4KPiArICoKPiArICogICAgICBUaGlzIHByb3BlcnR5IGlzIG9ubHkgcmVs ZXZhbnQgaWYgdGhlIEhETUkgb3V0cHV0IGZvcm1hdCBpcyBSR0IuIElmCj4gKyAqICAgICAgaXQn cyBvbmUgb2YgdGhlIFlDYkNyIHZhcmlhbnQsIGl0IHdpbGwgYmUgaWdub3JlZCBhbmQgdGhlIG91 dHB1dCB3aWxsCj4gKyAqICAgICAgdXNlIGEgbGltaXRlZCBxdWFudGl6YXRpb24gcmFuZ2UuCgpV aCwgbWF5YmUganVzdCBzYXkgdGhhdCB0aGUgcXVhbnRpemF0aW9uIHJhbmdlIGlzIHNlbGVjdGVk IGF1dG9tYXRpY2FsbHkKaW4gY2FzZSBhIFlDYkNyIG91dHB1dCBmb3JtYXQgaXMgaW4gdXNlLiBJ J20gbm90IHN1cmUgZXZlcnkgWUNiQ3IKdmFyaWFudCByZXF1aXJlcyBsaW1pdGVkIGFuZCBldmVu IGlmIGl0IGRvZXMsIG5ldyBmb3JtYXRzIGNvdWxkIGNoYW5nZQp0aGlzLgoKV2l0aCB0aGlzIGNo YW5nZWQsIHRoaXMgcGF0Y2ggaXMKClJldmlld2VkLWJ5OiBTZWJhc3RpYW4gV2ljayA8c2ViYXN0 aWFuLndpY2tAcmVkaGF0LmNvbT4KCj4gKyAqCj4gKyAqICAgICAgVGhlIENSVEMgYXR0YWNoZWQg dG8gdGhlIGNvbm5lY3RvciBtdXN0IGJlIGNvbmZpZ3VyZWQgYnkgdXNlci1zcGFjZSB0bwo+ICsg KiAgICAgIGFsd2F5cyBwcm9kdWNlIGZ1bGwtcmFuZ2UgcGl4ZWxzLgo+ICsgKgo+ICsgKiAgICAg IFRoZSB2YWx1ZSBvZiB0aGlzIHByb3BlcnR5IGNhbiBiZSBvbmUgb2YgdGhlIGZvbGxvd2luZzoK PiArICoKPiArICogICAgICBBdXRvbWF0aWM6Cj4gKyAqICAgICAgICAgICAgICBUaGUgcXVhbnRp emF0aW9uIHJhbmdlIGlzIHNlbGVjdGVkIGF1dG9tYXRpY2FsbHkgYmFzZWQgb24gdGhlCj4gKyAq ICAgICAgICAgICAgICBtb2RlIGFjY29yZGluZyB0byB0aGUgSERNSSBzcGVjaWZpY2F0aW9ucyAo SERNSSAxLjRiIC0gU2VjdGlvbgo+ICsgKiAgICAgICAgICAgICAgNi42IC0gVmlkZW8gUXVhbnRp emF0aW9uIFJhbmdlcykuCj4gKyAqCj4gKyAqICAgICAgRnVsbDoKPiArICogICAgICAgICAgICAg IEZ1bGwgcXVhbnRpemF0aW9uIHJhbmdlIGlzIGZvcmNlZC4KPiArICoKPiArICogICAgICBMaW1p dGVkIDE2OjIzNToKPiArICogICAgICAgICAgICAgIExpbWl0ZWQgcXVhbnRpemF0aW9uIHJhbmdl IGlzIGZvcmNlZC4gVW5saWtlIHRoZSBuYW1lIHN1Z2dlc3RzLAo+ICsgKiAgICAgICAgICAgICAg dGhpcyB3b3JrcyBmb3IgYW55IG51bWJlciBvZiBiaXRzLXBlci1jb21wb25lbnQuCj4gKyAqCj4g KyAqICAgICAgUHJvcGVydHkgdmFsdWVzIG90aGVyIHRoYW4gQXV0b21hdGljIGNhbiByZXN1bHQg aW4gY29sb3JzIGJlaW5nIG9mZiAoaWYKPiArICogICAgICBsaW1pdGVkIGlzIHNlbGVjdGVkIGJ1 dCB0aGUgZGlzcGxheSBleHBlY3RzIGZ1bGwpLCBvciBhIGJsYWNrIHNjcmVlbgo+ICsgKiAgICAg IChpZiBmdWxsIGlzIHNlbGVjdGVkIGJ1dCB0aGUgZGlzcGxheSBleHBlY3RzIGxpbWl0ZWQpLgo+ ICsgKgo+ICsgKiAgICAgIERyaXZlcnMgY2FuIHNldCB1cCB0aGlzIHByb3BlcnR5IGJ5IGNhbGxp bmcKPiArICogICAgICBkcm1fY29ubmVjdG9yX2F0dGFjaF9icm9hZGNhc3RfcmdiX3Byb3BlcnR5 KCkuCj4gKyAqCj4gICAqIGNvbnRlbnQgdHlwZSAoSERNSSBzcGVjaWZpYyk6Cj4gICAqCUluZGlj YXRlcyBjb250ZW50IHR5cGUgc2V0dGluZyB0byBiZSB1c2VkIGluIEhETUkgaW5mb2ZyYW1lcyB0 byBpbmRpY2F0ZQo+ICAgKgljb250ZW50IHR5cGUgZm9yIHRoZSBleHRlcm5hbCBkZXZpY2UsIHNv IHRoYXQgaXQgYWRqdXN0cyBpdHMgZGlzcGxheQo+IEBAIC0yNTcwLDYgKzI2MjYsMzkgQEAgaW50 IGRybV9jb25uZWN0b3JfYXR0YWNoX2hkcl9vdXRwdXRfbWV0YWRhdGFfcHJvcGVydHkoc3RydWN0 IGRybV9jb25uZWN0b3IgKmNvbm4KPiAgfQo+ICBFWFBPUlRfU1lNQk9MKGRybV9jb25uZWN0b3Jf YXR0YWNoX2hkcl9vdXRwdXRfbWV0YWRhdGFfcHJvcGVydHkpOwo+ICAKPiArLyoqCj4gKyAqIGRy bV9jb25uZWN0b3JfYXR0YWNoX2Jyb2FkY2FzdF9yZ2JfcHJvcGVydHkgLSBhdHRhY2ggIkJyb2Fk Y2FzdCBSR0IiIHByb3BlcnR5Cj4gKyAqIEBjb25uZWN0b3I6IGNvbm5lY3RvciB0byBhdHRhY2gg dGhlIHByb3BlcnR5IG9uLgo+ICsgKgo+ICsgKiBUaGlzIGlzIHVzZWQgdG8gYWRkIHN1cHBvcnQg Zm9yIGZvcmNpbmcgdGhlIFJHQiByYW5nZSBvbiBhIGNvbm5lY3Rvcgo+ICsgKgo+ICsgKiBSZXR1 cm5zOgo+ICsgKiBaZXJvIG9uIHN1Y2Nlc3MsIG5lZ2F0aXZlIGVycm5vIG9uIGZhaWx1cmUuCj4g KyAqLwo+ICtpbnQgZHJtX2Nvbm5lY3Rvcl9hdHRhY2hfYnJvYWRjYXN0X3JnYl9wcm9wZXJ0eShz dHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gY29ubmVjdG9yLT5kZXY7Cj4gKwlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wOwo+ ICsKPiArCXByb3AgPSBjb25uZWN0b3ItPmJyb2FkY2FzdF9yZ2JfcHJvcGVydHk7Cj4gKwlpZiAo IXByb3ApIHsKPiArCQlwcm9wID0gZHJtX3Byb3BlcnR5X2NyZWF0ZV9lbnVtKGRldiwgRFJNX01P REVfUFJPUF9FTlVNLAo+ICsJCQkJCQkiQnJvYWRjYXN0IFJHQiIsCj4gKwkJCQkJCWJyb2FkY2Fz dF9yZ2JfbmFtZXMsCj4gKwkJCQkJCUFSUkFZX1NJWkUoYnJvYWRjYXN0X3JnYl9uYW1lcykpOwo+ ICsJCWlmICghcHJvcCkKPiArCQkJcmV0dXJuIC1FSU5WQUw7Cj4gKwo+ICsJCWNvbm5lY3Rvci0+ YnJvYWRjYXN0X3JnYl9wcm9wZXJ0eSA9IHByb3A7Cj4gKwl9Cj4gKwo+ICsJZHJtX29iamVjdF9h dHRhY2hfcHJvcGVydHkoJmNvbm5lY3Rvci0+YmFzZSwgcHJvcCwKPiArCQkJCSAgIERSTV9IRE1J X0JST0FEQ0FTVF9SR0JfQVVUTyk7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KPiArRVhQT1JUX1NZ TUJPTChkcm1fY29ubmVjdG9yX2F0dGFjaF9icm9hZGNhc3RfcmdiX3Byb3BlcnR5KTsKPiArCj4g IC8qKgo+ICAgKiBkcm1fY29ubmVjdG9yX2F0dGFjaF9jb2xvcnNwYWNlX3Byb3BlcnR5IC0gYXR0 YWNoICJDb2xvcnNwYWNlIiBwcm9wZXJ0eQo+ICAgKiBAY29ubmVjdG9yOiBjb25uZWN0b3IgdG8g YXR0YWNoIHRoZSBwcm9wZXJ0eSBvbi4KPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2Nv bm5lY3Rvci5oIGIvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oCj4gaW5kZXggOGNkYTkwMjkz NGNkLi5iYjZiNmEzNmFkZTMgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rv ci5oCj4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oCj4gQEAgLTM2OSw2ICszNjks MjkgQEAgZW51bSBkcm1fcGFuZWxfb3JpZW50YXRpb24gewo+ICAJRFJNX01PREVfUEFORUxfT1JJ RU5UQVRJT05fUklHSFRfVVAsCj4gIH07Cj4gIAo+ICsvKioKPiArICogZW51bSBkcm1faGRtaV9i cm9hZGNhc3RfcmdiIC0gQnJvYWRjYXN0IFJHQiBTZWxlY3Rpb24gZm9yIGFuIEhETUkgQGRybV9j b25uZWN0b3IKPiArICovCj4gK2VudW0gZHJtX2hkbWlfYnJvYWRjYXN0X3JnYiB7Cj4gKwkvKioK PiArCSAqIEBEUk1fSERNSV9CUk9BRENBU1RfUkdCX0FVVE86IFRoZSBSR0IgcmFuZ2UgaXMgc2Vs ZWN0ZWQKPiArCSAqIGF1dG9tYXRpY2FsbHkgYmFzZWQgb24gdGhlIG1vZGUuCj4gKwkgKi8KPiAr CURSTV9IRE1JX0JST0FEQ0FTVF9SR0JfQVVUTywKPiArCj4gKwkvKioKPiArCSAqIEBEUk1fSERN SV9CUk9BRENBU1RfUkdCX0ZVTEw6IEZ1bGwgcmFuZ2UgUkdCIGlzIGZvcmNlZC4KPiArCSAqLwo+ ICsJRFJNX0hETUlfQlJPQURDQVNUX1JHQl9GVUxMLAo+ICsKPiArCS8qKgo+ICsJICogQERSTV9I RE1JX0JST0FEQ0FTVF9SR0JfTElNSVRFRDogTGltaXRlZCByYW5nZSBSR0IgaXMgZm9yY2VkLgo+ ICsJICovCj4gKwlEUk1fSERNSV9CUk9BRENBU1RfUkdCX0xJTUlURUQsCj4gK307Cj4gKwo+ICtj b25zdCBjaGFyICoKPiArZHJtX2hkbWlfY29ubmVjdG9yX2dldF9icm9hZGNhc3RfcmdiX25hbWUo ZW51bSBkcm1faGRtaV9icm9hZGNhc3RfcmdiIGJyb2FkY2FzdF9yZ2IpOwo+ICBjb25zdCBjaGFy ICoKPiAgZHJtX2hkbWlfY29ubmVjdG9yX2dldF9vdXRwdXRfZm9ybWF0X25hbWUoZW51bSBoZG1p X2NvbG9yc3BhY2UgZm10KTsKPiAgCj4gQEAgLTEwNDEsNiArMTA2NCwxMiBAQCBzdHJ1Y3QgZHJt X2Nvbm5lY3Rvcl9zdGF0ZSB7Cj4gIAkgKiBAZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2hk bWlfY2hlY2soKS4KPiAgCSAqLwo+ICAJc3RydWN0IHsKPiArCQkvKioKPiArCQkgKiBAYnJvYWRj YXN0X3JnYjogQ29ubmVjdG9yIHByb3BlcnR5IHRvIHBhc3MgdGhlCj4gKwkJICogQnJvYWRjYXN0 IFJHQiBzZWxlY3Rpb24gdmFsdWUuCj4gKwkJICovCj4gKwkJZW51bSBkcm1faGRtaV9icm9hZGNh c3RfcmdiIGJyb2FkY2FzdF9yZ2I7Cj4gKwo+ICAJCS8qKgo+ICAJCSAqIEBvdXRwdXRfYnBjOiBC aXRzIHBlciBjb2xvciBjaGFubmVsIHRvIG91dHB1dC4KPiAgCQkgKi8KPiBAQCAtMTc1Myw2ICsx NzgyLDEyIEBAIHN0cnVjdCBkcm1fY29ubmVjdG9yIHsKPiAgCSAqLwo+ICAJc3RydWN0IGRybV9w cm9wZXJ0eSAqcHJpdmFjeV9zY3JlZW5faHdfc3RhdGVfcHJvcGVydHk7Cj4gIAo+ICsJLyoqCj4g KwkgKiBAYnJvYWRjYXN0X3JnYl9wcm9wZXJ0eTogQ29ubmVjdG9yIHByb3BlcnR5IHRvIHNldCB0 aGUKPiArCSAqIEJyb2FkY2FzdCBSR0Igc2VsZWN0aW9uIHRvIG91dHB1dCB3aXRoLgo+ICsJICov Cj4gKwlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpicm9hZGNhc3RfcmdiX3Byb3BlcnR5Owo+ICsKPiAg I2RlZmluZSBEUk1fQ09OTkVDVE9SX1BPTExfSFBEICgxIDw8IDApCj4gICNkZWZpbmUgRFJNX0NP Tk5FQ1RPUl9QT0xMX0NPTk5FQ1QgKDEgPDwgMSkKPiAgI2RlZmluZSBEUk1fQ09OTkVDVE9SX1BP TExfRElTQ09OTkVDVCAoMSA8PCAyKQo+IEBAIC0yMDkyLDYgKzIxMjcsNyBAQCBpbnQgZHJtX2Nv bm5lY3Rvcl9hdHRhY2hfc2NhbGluZ19tb2RlX3Byb3BlcnR5KHN0cnVjdCBkcm1fY29ubmVjdG9y ICpjb25uZWN0b3IsCj4gIAkJCQkJICAgICAgIHUzMiBzY2FsaW5nX21vZGVfbWFzayk7Cj4gIGlu dCBkcm1fY29ubmVjdG9yX2F0dGFjaF92cnJfY2FwYWJsZV9wcm9wZXJ0eSgKPiAgCQlzdHJ1Y3Qg ZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKTsKPiAraW50IGRybV9jb25uZWN0b3JfYXR0YWNoX2Jy b2FkY2FzdF9yZ2JfcHJvcGVydHkoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rvcik7Cj4g IGludCBkcm1fY29ubmVjdG9yX2F0dGFjaF9jb2xvcnNwYWNlX3Byb3BlcnR5KHN0cnVjdCBkcm1f Y29ubmVjdG9yICpjb25uZWN0b3IpOwo+ICBpbnQgZHJtX2Nvbm5lY3Rvcl9hdHRhY2hfaGRyX291 dHB1dF9tZXRhZGF0YV9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKTsK PiAgYm9vbCBkcm1fY29ubmVjdG9yX2F0b21pY19oZHJfbWV0YWRhdGFfZXF1YWwoc3RydWN0IGRy bV9jb25uZWN0b3Jfc3RhdGUgKm9sZF9zdGF0ZSwKPiAKPiAtLSAKPiAyLjQzLjIKPiAKCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2Vy bmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0 cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVs Cg==