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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1242FC433FE for ; Tue, 2 Nov 2021 17:50:41 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id F2AA761051 for ; Tue, 2 Nov 2021 17:50:40 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230257AbhKBRxP (ORCPT ); Tue, 2 Nov 2021 13:53:15 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60042 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233682AbhKBRxN (ORCPT ); Tue, 2 Nov 2021 13:53:13 -0400 Received: from mail-ot1-x32b.google.com (mail-ot1-x32b.google.com [IPv6:2607:f8b0:4864:20::32b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5FA6EC061714 for ; Tue, 2 Nov 2021 10:50:38 -0700 (PDT) Received: by mail-ot1-x32b.google.com with SMTP id r10-20020a056830448a00b0055ac7767f5eso5776otv.3 for ; Tue, 02 Nov 2021 10:50:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=JCnH8IVQSN/Tydtefp2s0zrp4McuTwvXnflW3E4hZFk=; b=VdBLOAQmTW8IYQmzlxua3oCaylRz+xtYXTY/C+2FP3cDsBBqJC/OlAfidpp+sAYfWh XZpOlzP9xIk4Vl25k7NFe9yrLOeWEoVdATlZYJ26fpbAEB29KxhDAWnAZSxunMaT21vy hovCeL8T24CqDQlv/nSLcDx0HVEb+OmzGUI5ZifOQetoIW7x0EMiF+Lx0Tjq9eWFMmAq +uypRNFbpVFIVTg3XXzms1kY+gwaskiDyGaj1ikcUZqT3D6v9UkQmRHG5parwKYwV+i1 UKIZVaz02RXWOmjbe9NrrRmxgvtKjbwudjuwd84JzgQdu8Gtook+wRkf5xYqIxbAdgY0 bC/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=JCnH8IVQSN/Tydtefp2s0zrp4McuTwvXnflW3E4hZFk=; b=IPMoX9WQDJrfO7NQFmYoh43UxKrJ0xoE30vZUionHc4HXssK6oAud1WHnGVD5zqxvp 1fihCbmu8BeTc3GhVl8/BqEfbXcrYDxcygs6t/ApdoVyarSaYk71zAxdOyV+kNZXWYAw DsMDV2/hHRfJrNj0yMnXfcZwXBQFMs5U7v9TNBVv2oWROsR5S3mTsllOz198hZ/IyaxQ Z1SSeDdG2EfsvSAH7R9YeX8y5cdR99sRmZ1OQyFUUEKOYNT0uiD2V5Hh82m1xx+te5UQ i8YDYa81VXYtUIt+vt6q7myqr89FzzAPecQSVrJEnguSrHEaPDDgh0fHIz7rEoWciCJu 5y2w== X-Gm-Message-State: AOAM531TqcEF8UXTNNKOv0OD4zhrvq3VaVYfnQPpJLNFVLjga0WPi5Mz ynK9fd+wdEHdnSZF9lSb0Pkd8yudKPaQb0+s4X8= X-Google-Smtp-Source: ABdhPJylgDZ1V00UpveCgBw7YMyDGwlexpSVyGJmOUKlwqguIVRxCkdmleuRmNBGUuHIPNCqVvqSPwGYxIIoWRPWgiY= X-Received: by 2002:a9d:1b4f:: with SMTP id l73mr28917145otl.200.1635875437736; Tue, 02 Nov 2021 10:50:37 -0700 (PDT) MIME-Version: 1.0 References: <20211102145944.259181-1-maxime@cerno.tech> <20211102145944.259181-2-maxime@cerno.tech> In-Reply-To: <20211102145944.259181-2-maxime@cerno.tech> From: Alex Deucher Date: Tue, 2 Nov 2021 13:50:26 -0400 Message-ID: Subject: Re: [PATCH 01/13] drm/connector: Add define for HDMI 1.4 Maximum Pixel Rate To: Maxime Ripard Cc: Daniel Vetter , David Airlie , Maarten Lankhorst , Thomas Zimmermann , Emma Anholt , Neil Armstrong , Maling list - DRI developers , Andrzej Hajda , Thierry Reding , Laurent Pinchart , Benjamin Gaignard , Phil Elwell , Jerome Brunet , Tim Gover , Dave Stevenson , Kevin Hilman , Jernej Skrabec , Jonathan Hunter , Jonas Karlman , Martin Blumenstingl , Intel Graphics Development , Rodrigo Vivi , linux-tegra@vger.kernel.org, linux-amlogic@lists.infradead.org, linux-arm-kernel , amd-gfx list , Dom Cobley , "Pan, Xinhui" , Robert Foss , Alex Deucher , =?UTF-8?Q?Christian_K=C3=B6nig?= Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-tegra@vger.kernel.org On Tue, Nov 2, 2021 at 10:59 AM Maxime Ripard wrote: > > A lot of drivers open-code the HDMI 1.4 maximum pixel rate in their > driver to test whether the resolutions are supported or if the > scrambling needs to be enabled. > > Let's create a common define for everyone to use it. > > Cc: Alex Deucher > Cc: amd-gfx@lists.freedesktop.org > Cc: Andrzej Hajda > Cc: Benjamin Gaignard > Cc: "Christian K=C3=B6nig" > Cc: Emma Anholt > Cc: intel-gfx@lists.freedesktop.org > Cc: Jani Nikula > Cc: Jernej Skrabec > Cc: Jerome Brunet > Cc: Jonas Karlman > Cc: Jonathan Hunter > Cc: Joonas Lahtinen > Cc: Kevin Hilman > Cc: Laurent Pinchart > Cc: linux-amlogic@lists.infradead.org > Cc: linux-arm-kernel@lists.infradead.org > Cc: linux-tegra@vger.kernel.org > Cc: Martin Blumenstingl > Cc: Neil Armstrong > Cc: "Pan, Xinhui" > Cc: Robert Foss > Cc: Rodrigo Vivi > Cc: Thierry Reding > Signed-off-by: Maxime Ripard > --- > drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 4 ++-- > drivers/gpu/drm/drm_edid.c | 2 +- > drivers/gpu/drm/i915/display/intel_hdmi.c | 2 +- > drivers/gpu/drm/meson/meson_dw_hdmi.c | 4 ++-- > drivers/gpu/drm/radeon/radeon_encoders.c | 2 +- For radeon: Acked-by: Alex Deucher Note that there are several instances of this in amdgpu as well: drivers/gpu/drm/amd/amdgpu/amdgpu_encoders.c: if (pixel_clock > 340000) drivers/gpu/drm/amd/amdgpu/amdgpu_encoders.c: if (pixel_clock > 340000) drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c: if (mode->clock > 340000) drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c: if (mode->clock > 340000) Alex > drivers/gpu/drm/sti/sti_hdmi_tx3g4c28phy.c | 2 +- > drivers/gpu/drm/tegra/sor.c | 8 ++++---- > drivers/gpu/drm/vc4/vc4_hdmi.c | 4 ++-- > include/drm/drm_connector.h | 2 ++ > 9 files changed, 16 insertions(+), 14 deletions(-) > > diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/= bridge/synopsys/dw-hdmi.c > index 62ae63565d3a..3a58db357be0 100644 > --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c > +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c > @@ -46,7 +46,7 @@ > /* DW-HDMI Controller >=3D 0x200a are at least compliant with SCDC versi= on 1 */ > #define SCDC_MIN_SOURCE_VERSION 0x1 > > -#define HDMI14_MAX_TMDSCLK 340000000 > +#define HDMI14_MAX_TMDSCLK (DRM_HDMI_14_MAX_TMDS_CLK_KHZ * 1000) > > enum hdmi_datamap { > RGB444_8B =3D 0x01, > @@ -1264,7 +1264,7 @@ static bool dw_hdmi_support_scdc(struct dw_hdmi *hd= mi, > * for low rates is not supported either > */ > if (!display->hdmi.scdc.scrambling.low_rates && > - display->max_tmds_clock <=3D 340000) > + display->max_tmds_clock <=3D DRM_HDMI_14_MAX_TMDS_CLK_KHZ) > return false; > > return true; > diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c > index 7aa2a56a71c8..ec8fb2d098ae 100644 > --- a/drivers/gpu/drm/drm_edid.c > +++ b/drivers/gpu/drm/drm_edid.c > @@ -4966,7 +4966,7 @@ static void drm_parse_hdmi_forum_vsdb(struct drm_co= nnector *connector, > u32 max_tmds_clock =3D hf_vsdb[5] * 5000; > struct drm_scdc *scdc =3D &hdmi->scdc; > > - if (max_tmds_clock > 340000) { > + if (max_tmds_clock > DRM_HDMI_14_MAX_TMDS_CLK_KHZ) { > display->max_tmds_clock =3D max_tmds_clock; > DRM_DEBUG_KMS("HF-VSDB: max TMDS clock %d kHz\n", > display->max_tmds_clock); > diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.c b/drivers/gpu/drm/= i915/display/intel_hdmi.c > index d2e61f6c6e08..0666203d52b7 100644 > --- a/drivers/gpu/drm/i915/display/intel_hdmi.c > +++ b/drivers/gpu/drm/i915/display/intel_hdmi.c > @@ -2226,7 +2226,7 @@ int intel_hdmi_compute_config(struct intel_encoder = *encoder, > if (scdc->scrambling.low_rates) > pipe_config->hdmi_scrambling =3D true; > > - if (pipe_config->port_clock > 340000) { > + if (pipe_config->port_clock > DRM_HDMI_14_MAX_TMDS_CLK_KH= Z) { > pipe_config->hdmi_scrambling =3D true; > pipe_config->hdmi_high_tmds_clock_ratio =3D true; > } > diff --git a/drivers/gpu/drm/meson/meson_dw_hdmi.c b/drivers/gpu/drm/meso= n/meson_dw_hdmi.c > index 0afbd1e70bfc..8078667aea0e 100644 > --- a/drivers/gpu/drm/meson/meson_dw_hdmi.c > +++ b/drivers/gpu/drm/meson/meson_dw_hdmi.c > @@ -434,7 +434,7 @@ static int dw_hdmi_phy_init(struct dw_hdmi *hdmi, voi= d *data, > readl_relaxed(priv->io_base + _REG(VPU_HDMI_SETTING)); > > DRM_DEBUG_DRIVER("\"%s\" div%d\n", mode->name, > - mode->clock > 340000 ? 40 : 10); > + mode->clock > DRM_HDMI_14_MAX_TMDS_CLK_KHZ ? 40 = : 10); > > /* Enable clocks */ > regmap_update_bits(priv->hhi, HHI_HDMI_CLK_CNTL, 0xffff, 0x100); > @@ -457,7 +457,7 @@ static int dw_hdmi_phy_init(struct dw_hdmi *hdmi, voi= d *data, > dw_hdmi->data->top_write(dw_hdmi, HDMITX_TOP_BIST_CNTL, BIT(12)); > > /* TMDS pattern setup */ > - if (mode->clock > 340000 && > + if (mode->clock > DRM_HDMI_14_MAX_TMDS_CLK_KHZ && > dw_hdmi->output_bus_fmt =3D=3D MEDIA_BUS_FMT_YUV8_1X24) { > dw_hdmi->data->top_write(dw_hdmi, HDMITX_TOP_TMDS_CLK_PTT= N_01, > 0); > diff --git a/drivers/gpu/drm/radeon/radeon_encoders.c b/drivers/gpu/drm/r= adeon/radeon_encoders.c > index 46549d5179ee..ddd8100e699f 100644 > --- a/drivers/gpu/drm/radeon/radeon_encoders.c > +++ b/drivers/gpu/drm/radeon/radeon_encoders.c > @@ -384,7 +384,7 @@ bool radeon_dig_monitor_is_duallink(struct drm_encode= r *encoder, > if (radeon_connector->use_digital) { > /* HDMI 1.3 supports up to 340 Mhz over single li= nk */ > if (ASIC_IS_DCE6(rdev) && drm_detect_hdmi_monitor= (radeon_connector_edid(connector))) { > - if (pixel_clock > 340000) > + if (pixel_clock > DRM_HDMI_14_MAX_TMDS_CL= K_KHZ) > return true; > else > return false; > diff --git a/drivers/gpu/drm/sti/sti_hdmi_tx3g4c28phy.c b/drivers/gpu/drm= /sti/sti_hdmi_tx3g4c28phy.c > index d25ecd4f4b67..bc213232a875 100644 > --- a/drivers/gpu/drm/sti/sti_hdmi_tx3g4c28phy.c > +++ b/drivers/gpu/drm/sti/sti_hdmi_tx3g4c28phy.c > @@ -102,7 +102,7 @@ static bool sti_hdmi_tx3g4c28phy_start(struct sti_hdm= i *hdmi) > tmdsck =3D ckpxpll; > pllctrl |=3D 40 << PLL_CFG_NDIV_SHIFT; > > - if (tmdsck > 340000000) { > + if (tmdsck > (DRM_HDMI_14_MAX_TMDS_CLK_KHZ * 1000)) { > DRM_ERROR("output TMDS clock (%d) out of range\n", tmdsck= ); > goto err; > } > diff --git a/drivers/gpu/drm/tegra/sor.c b/drivers/gpu/drm/tegra/sor.c > index 0ea320c1092b..99a2d627bfeb 100644 > --- a/drivers/gpu/drm/tegra/sor.c > +++ b/drivers/gpu/drm/tegra/sor.c > @@ -1814,7 +1814,7 @@ tegra_sor_encoder_atomic_check(struct drm_encoder *= encoder, > * For HBR2 modes, the SOR brick needs to use the x20 multiplier,= so > * the pixel clock must be corrected accordingly. > */ > - if (pclk >=3D 340000000) { > + if (pclk >=3D (DRM_HDMI_14_MAX_TMDS_CLK_KHZ * 1000)) { > state->link_speed =3D 20; > state->pclk =3D pclk / 2; > } else { > @@ -2196,7 +2196,7 @@ static void tegra_sor_hdmi_scdc_start(struct tegra_= sor *sor) > > mode =3D &sor->output.encoder.crtc->state->adjusted_mode; > > - if (mode->clock >=3D 340000 && scdc->supported) { > + if (mode->clock >=3D DRM_HDMI_14_MAX_TMDS_CLK_KHZ && scdc->suppor= ted) { > schedule_delayed_work(&sor->scdc, msecs_to_jiffies(5000))= ; > tegra_sor_hdmi_scdc_enable(sor); > sor->scdc_enabled =3D true; > @@ -2340,7 +2340,7 @@ static void tegra_sor_hdmi_enable(struct drm_encode= r *encoder) > value &=3D ~SOR_CLK_CNTRL_DP_LINK_SPEED_MASK; > value &=3D ~SOR_CLK_CNTRL_DP_CLK_SEL_MASK; > > - if (mode->clock < 340000) { > + if (mode->clock < DRM_HDMI_14_MAX_TMDS_CLK_KHZ) { > DRM_DEBUG_KMS("setting 2.7 GHz link speed\n"); > value |=3D SOR_CLK_CNTRL_DP_LINK_SPEED_G2_70; > } else { > @@ -2423,7 +2423,7 @@ static void tegra_sor_hdmi_enable(struct drm_encode= r *encoder) > /* adjust clock rate for HDMI 2.0 modes */ > rate =3D clk_get_rate(sor->clk_parent); > > - if (mode->clock >=3D 340000) > + if (mode->clock >=3D DRM_HDMI_14_MAX_TMDS_CLK_KHZ) > rate /=3D 2; > > DRM_DEBUG_KMS("setting clock to %lu Hz, mode: %lu Hz\n", rate, pc= lk); > diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdm= i.c > index fab9b93e1b84..fc7247cc1022 100644 > --- a/drivers/gpu/drm/vc4/vc4_hdmi.c > +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c > @@ -97,11 +97,11 @@ > #define HSM_MIN_CLOCK_FREQ 120000000 > #define CEC_CLOCK_FREQ 40000 > > -#define HDMI_14_MAX_TMDS_CLK (340 * 1000 * 1000) > +#define HDMI_14_MAX_TMDS_CLK (DRM_HDMI_14_MAX_TMDS_CLK_KHZ * 1000) > > static bool vc4_hdmi_mode_needs_scrambling(const struct drm_display_mode= *mode) > { > - return (mode->clock * 1000) > HDMI_14_MAX_TMDS_CLK; > + return mode->clock > DRM_HDMI_14_MAX_TMDS_CLK_KHZ; > } > > static int vc4_hdmi_debugfs_regs(struct seq_file *m, void *unused) > diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h > index b501d0badaea..030636635af1 100644 > --- a/include/drm/drm_connector.h > +++ b/include/drm/drm_connector.h > @@ -260,6 +260,8 @@ struct drm_hdmi_info { > struct drm_hdmi_dsc_cap dsc_cap; > }; > > +#define DRM_HDMI_14_MAX_TMDS_CLK_KHZ (340 * 1000) > + > /** > * enum drm_link_status - connector's link_status property value > * > -- > 2.32.0 > 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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 29E3BC433F5 for ; Tue, 2 Nov 2021 17:50:43 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id EB0C961051 for ; Tue, 2 Nov 2021 17:50:42 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org EB0C961051 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id BE29173498; Tue, 2 Nov 2021 17:50:40 +0000 (UTC) Received: from mail-ot1-x336.google.com (mail-ot1-x336.google.com [IPv6:2607:f8b0:4864:20::336]) by gabe.freedesktop.org (Postfix) with ESMTPS id 898AE7349A; Tue, 2 Nov 2021 17:50:38 +0000 (UTC) Received: by mail-ot1-x336.google.com with SMTP id c2-20020a056830348200b0055a46c889a8so10355280otu.5; Tue, 02 Nov 2021 10:50:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=JCnH8IVQSN/Tydtefp2s0zrp4McuTwvXnflW3E4hZFk=; b=VdBLOAQmTW8IYQmzlxua3oCaylRz+xtYXTY/C+2FP3cDsBBqJC/OlAfidpp+sAYfWh XZpOlzP9xIk4Vl25k7NFe9yrLOeWEoVdATlZYJ26fpbAEB29KxhDAWnAZSxunMaT21vy hovCeL8T24CqDQlv/nSLcDx0HVEb+OmzGUI5ZifOQetoIW7x0EMiF+Lx0Tjq9eWFMmAq +uypRNFbpVFIVTg3XXzms1kY+gwaskiDyGaj1ikcUZqT3D6v9UkQmRHG5parwKYwV+i1 UKIZVaz02RXWOmjbe9NrrRmxgvtKjbwudjuwd84JzgQdu8Gtook+wRkf5xYqIxbAdgY0 bC/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=JCnH8IVQSN/Tydtefp2s0zrp4McuTwvXnflW3E4hZFk=; b=HK3lw0Zk/JMp7TD5NdxD5LJVOn09fkIY1roNDmYQ22J6S+a6LPLf5ryTtnWgXZOg5Q VfkMpuaorK7sQil8DeLgxLJe/34zF4yjFCQW0UzRBOJk08nbCCkNzQ/4YeyWi7wzKdZ+ GF2XEJ4ec4QrVHhP7qcJu5DaMJ7r7Kf0Osxhi4ikAE83j24bag8HHQNKgSHgDvaV8flp iH8WCwwI+8cPvEpJZ3XAkxBQFEYznLdO+cKnLehlS9cBO+jBKmmhaxY+CB0aa3Q70K4q g/N4nQPpCBHYTboMxDj6MAYu4CaY0LcbKqXpT8IvipbUA6aGS5nGSpiLXeljKcQAFZln 8MbA== X-Gm-Message-State: AOAM531kbW3CH1CnXAb95Qpx/QZZsi4LNwL0UXFZw3Qw9GRFSmdcohYd dn6xMr6nArpUKD7W5R1vwPgEw1oGUPNVpkD8DnY= X-Google-Smtp-Source: ABdhPJylgDZ1V00UpveCgBw7YMyDGwlexpSVyGJmOUKlwqguIVRxCkdmleuRmNBGUuHIPNCqVvqSPwGYxIIoWRPWgiY= X-Received: by 2002:a9d:1b4f:: with SMTP id l73mr28917145otl.200.1635875437736; Tue, 02 Nov 2021 10:50:37 -0700 (PDT) MIME-Version: 1.0 References: <20211102145944.259181-1-maxime@cerno.tech> <20211102145944.259181-2-maxime@cerno.tech> In-Reply-To: <20211102145944.259181-2-maxime@cerno.tech> From: Alex Deucher Date: Tue, 2 Nov 2021 13:50:26 -0400 Message-ID: Subject: Re: [PATCH 01/13] drm/connector: Add define for HDMI 1.4 Maximum Pixel Rate To: Maxime Ripard Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable 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 , Neil Armstrong , David Airlie , Maling list - DRI developers , Andrzej Hajda , Thierry Reding , Laurent Pinchart , Benjamin Gaignard , Daniel Vetter , Phil Elwell , Jerome Brunet , Tim Gover , Dave Stevenson , Kevin Hilman , Jernej Skrabec , Jonathan Hunter , Jonas Karlman , Martin Blumenstingl , Intel Graphics Development , Rodrigo Vivi , linux-tegra@vger.kernel.org, linux-amlogic@lists.infradead.org, linux-arm-kernel , amd-gfx list , Dom Cobley , "Pan, Xinhui" , Robert Foss , Thomas Zimmermann , Alex Deucher , =?UTF-8?Q?Christian_K=C3=B6nig?= Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" On Tue, Nov 2, 2021 at 10:59 AM Maxime Ripard wrote: > > A lot of drivers open-code the HDMI 1.4 maximum pixel rate in their > driver to test whether the resolutions are supported or if the > scrambling needs to be enabled. > > Let's create a common define for everyone to use it. > > Cc: Alex Deucher > Cc: amd-gfx@lists.freedesktop.org > Cc: Andrzej Hajda > Cc: Benjamin Gaignard > Cc: "Christian K=C3=B6nig" > Cc: Emma Anholt > Cc: intel-gfx@lists.freedesktop.org > Cc: Jani Nikula > Cc: Jernej Skrabec > Cc: Jerome Brunet > Cc: Jonas Karlman > Cc: Jonathan Hunter > Cc: Joonas Lahtinen > Cc: Kevin Hilman > Cc: Laurent Pinchart > Cc: linux-amlogic@lists.infradead.org > Cc: linux-arm-kernel@lists.infradead.org > Cc: linux-tegra@vger.kernel.org > Cc: Martin Blumenstingl > Cc: Neil Armstrong > Cc: "Pan, Xinhui" > Cc: Robert Foss > Cc: Rodrigo Vivi > Cc: Thierry Reding > Signed-off-by: Maxime Ripard > --- > drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 4 ++-- > drivers/gpu/drm/drm_edid.c | 2 +- > drivers/gpu/drm/i915/display/intel_hdmi.c | 2 +- > drivers/gpu/drm/meson/meson_dw_hdmi.c | 4 ++-- > drivers/gpu/drm/radeon/radeon_encoders.c | 2 +- For radeon: Acked-by: Alex Deucher Note that there are several instances of this in amdgpu as well: drivers/gpu/drm/amd/amdgpu/amdgpu_encoders.c: if (pixel_clock > 340000) drivers/gpu/drm/amd/amdgpu/amdgpu_encoders.c: if (pixel_clock > 340000) drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c: if (mode->clock > 340000) drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c: if (mode->clock > 340000) Alex > drivers/gpu/drm/sti/sti_hdmi_tx3g4c28phy.c | 2 +- > drivers/gpu/drm/tegra/sor.c | 8 ++++---- > drivers/gpu/drm/vc4/vc4_hdmi.c | 4 ++-- > include/drm/drm_connector.h | 2 ++ > 9 files changed, 16 insertions(+), 14 deletions(-) > > diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/= bridge/synopsys/dw-hdmi.c > index 62ae63565d3a..3a58db357be0 100644 > --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c > +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c > @@ -46,7 +46,7 @@ > /* DW-HDMI Controller >=3D 0x200a are at least compliant with SCDC versi= on 1 */ > #define SCDC_MIN_SOURCE_VERSION 0x1 > > -#define HDMI14_MAX_TMDSCLK 340000000 > +#define HDMI14_MAX_TMDSCLK (DRM_HDMI_14_MAX_TMDS_CLK_KHZ * 1000) > > enum hdmi_datamap { > RGB444_8B =3D 0x01, > @@ -1264,7 +1264,7 @@ static bool dw_hdmi_support_scdc(struct dw_hdmi *hd= mi, > * for low rates is not supported either > */ > if (!display->hdmi.scdc.scrambling.low_rates && > - display->max_tmds_clock <=3D 340000) > + display->max_tmds_clock <=3D DRM_HDMI_14_MAX_TMDS_CLK_KHZ) > return false; > > return true; > diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c > index 7aa2a56a71c8..ec8fb2d098ae 100644 > --- a/drivers/gpu/drm/drm_edid.c > +++ b/drivers/gpu/drm/drm_edid.c > @@ -4966,7 +4966,7 @@ static void drm_parse_hdmi_forum_vsdb(struct drm_co= nnector *connector, > u32 max_tmds_clock =3D hf_vsdb[5] * 5000; > struct drm_scdc *scdc =3D &hdmi->scdc; > > - if (max_tmds_clock > 340000) { > + if (max_tmds_clock > DRM_HDMI_14_MAX_TMDS_CLK_KHZ) { > display->max_tmds_clock =3D max_tmds_clock; > DRM_DEBUG_KMS("HF-VSDB: max TMDS clock %d kHz\n", > display->max_tmds_clock); > diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.c b/drivers/gpu/drm/= i915/display/intel_hdmi.c > index d2e61f6c6e08..0666203d52b7 100644 > --- a/drivers/gpu/drm/i915/display/intel_hdmi.c > +++ b/drivers/gpu/drm/i915/display/intel_hdmi.c > @@ -2226,7 +2226,7 @@ int intel_hdmi_compute_config(struct intel_encoder = *encoder, > if (scdc->scrambling.low_rates) > pipe_config->hdmi_scrambling =3D true; > > - if (pipe_config->port_clock > 340000) { > + if (pipe_config->port_clock > DRM_HDMI_14_MAX_TMDS_CLK_KH= Z) { > pipe_config->hdmi_scrambling =3D true; > pipe_config->hdmi_high_tmds_clock_ratio =3D true; > } > diff --git a/drivers/gpu/drm/meson/meson_dw_hdmi.c b/drivers/gpu/drm/meso= n/meson_dw_hdmi.c > index 0afbd1e70bfc..8078667aea0e 100644 > --- a/drivers/gpu/drm/meson/meson_dw_hdmi.c > +++ b/drivers/gpu/drm/meson/meson_dw_hdmi.c > @@ -434,7 +434,7 @@ static int dw_hdmi_phy_init(struct dw_hdmi *hdmi, voi= d *data, > readl_relaxed(priv->io_base + _REG(VPU_HDMI_SETTING)); > > DRM_DEBUG_DRIVER("\"%s\" div%d\n", mode->name, > - mode->clock > 340000 ? 40 : 10); > + mode->clock > DRM_HDMI_14_MAX_TMDS_CLK_KHZ ? 40 = : 10); > > /* Enable clocks */ > regmap_update_bits(priv->hhi, HHI_HDMI_CLK_CNTL, 0xffff, 0x100); > @@ -457,7 +457,7 @@ static int dw_hdmi_phy_init(struct dw_hdmi *hdmi, voi= d *data, > dw_hdmi->data->top_write(dw_hdmi, HDMITX_TOP_BIST_CNTL, BIT(12)); > > /* TMDS pattern setup */ > - if (mode->clock > 340000 && > + if (mode->clock > DRM_HDMI_14_MAX_TMDS_CLK_KHZ && > dw_hdmi->output_bus_fmt =3D=3D MEDIA_BUS_FMT_YUV8_1X24) { > dw_hdmi->data->top_write(dw_hdmi, HDMITX_TOP_TMDS_CLK_PTT= N_01, > 0); > diff --git a/drivers/gpu/drm/radeon/radeon_encoders.c b/drivers/gpu/drm/r= adeon/radeon_encoders.c > index 46549d5179ee..ddd8100e699f 100644 > --- a/drivers/gpu/drm/radeon/radeon_encoders.c > +++ b/drivers/gpu/drm/radeon/radeon_encoders.c > @@ -384,7 +384,7 @@ bool radeon_dig_monitor_is_duallink(struct drm_encode= r *encoder, > if (radeon_connector->use_digital) { > /* HDMI 1.3 supports up to 340 Mhz over single li= nk */ > if (ASIC_IS_DCE6(rdev) && drm_detect_hdmi_monitor= (radeon_connector_edid(connector))) { > - if (pixel_clock > 340000) > + if (pixel_clock > DRM_HDMI_14_MAX_TMDS_CL= K_KHZ) > return true; > else > return false; > diff --git a/drivers/gpu/drm/sti/sti_hdmi_tx3g4c28phy.c b/drivers/gpu/drm= /sti/sti_hdmi_tx3g4c28phy.c > index d25ecd4f4b67..bc213232a875 100644 > --- a/drivers/gpu/drm/sti/sti_hdmi_tx3g4c28phy.c > +++ b/drivers/gpu/drm/sti/sti_hdmi_tx3g4c28phy.c > @@ -102,7 +102,7 @@ static bool sti_hdmi_tx3g4c28phy_start(struct sti_hdm= i *hdmi) > tmdsck =3D ckpxpll; > pllctrl |=3D 40 << PLL_CFG_NDIV_SHIFT; > > - if (tmdsck > 340000000) { > + if (tmdsck > (DRM_HDMI_14_MAX_TMDS_CLK_KHZ * 1000)) { > DRM_ERROR("output TMDS clock (%d) out of range\n", tmdsck= ); > goto err; > } > diff --git a/drivers/gpu/drm/tegra/sor.c b/drivers/gpu/drm/tegra/sor.c > index 0ea320c1092b..99a2d627bfeb 100644 > --- a/drivers/gpu/drm/tegra/sor.c > +++ b/drivers/gpu/drm/tegra/sor.c > @@ -1814,7 +1814,7 @@ tegra_sor_encoder_atomic_check(struct drm_encoder *= encoder, > * For HBR2 modes, the SOR brick needs to use the x20 multiplier,= so > * the pixel clock must be corrected accordingly. > */ > - if (pclk >=3D 340000000) { > + if (pclk >=3D (DRM_HDMI_14_MAX_TMDS_CLK_KHZ * 1000)) { > state->link_speed =3D 20; > state->pclk =3D pclk / 2; > } else { > @@ -2196,7 +2196,7 @@ static void tegra_sor_hdmi_scdc_start(struct tegra_= sor *sor) > > mode =3D &sor->output.encoder.crtc->state->adjusted_mode; > > - if (mode->clock >=3D 340000 && scdc->supported) { > + if (mode->clock >=3D DRM_HDMI_14_MAX_TMDS_CLK_KHZ && scdc->suppor= ted) { > schedule_delayed_work(&sor->scdc, msecs_to_jiffies(5000))= ; > tegra_sor_hdmi_scdc_enable(sor); > sor->scdc_enabled =3D true; > @@ -2340,7 +2340,7 @@ static void tegra_sor_hdmi_enable(struct drm_encode= r *encoder) > value &=3D ~SOR_CLK_CNTRL_DP_LINK_SPEED_MASK; > value &=3D ~SOR_CLK_CNTRL_DP_CLK_SEL_MASK; > > - if (mode->clock < 340000) { > + if (mode->clock < DRM_HDMI_14_MAX_TMDS_CLK_KHZ) { > DRM_DEBUG_KMS("setting 2.7 GHz link speed\n"); > value |=3D SOR_CLK_CNTRL_DP_LINK_SPEED_G2_70; > } else { > @@ -2423,7 +2423,7 @@ static void tegra_sor_hdmi_enable(struct drm_encode= r *encoder) > /* adjust clock rate for HDMI 2.0 modes */ > rate =3D clk_get_rate(sor->clk_parent); > > - if (mode->clock >=3D 340000) > + if (mode->clock >=3D DRM_HDMI_14_MAX_TMDS_CLK_KHZ) > rate /=3D 2; > > DRM_DEBUG_KMS("setting clock to %lu Hz, mode: %lu Hz\n", rate, pc= lk); > diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdm= i.c > index fab9b93e1b84..fc7247cc1022 100644 > --- a/drivers/gpu/drm/vc4/vc4_hdmi.c > +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c > @@ -97,11 +97,11 @@ > #define HSM_MIN_CLOCK_FREQ 120000000 > #define CEC_CLOCK_FREQ 40000 > > -#define HDMI_14_MAX_TMDS_CLK (340 * 1000 * 1000) > +#define HDMI_14_MAX_TMDS_CLK (DRM_HDMI_14_MAX_TMDS_CLK_KHZ * 1000) > > static bool vc4_hdmi_mode_needs_scrambling(const struct drm_display_mode= *mode) > { > - return (mode->clock * 1000) > HDMI_14_MAX_TMDS_CLK; > + return mode->clock > DRM_HDMI_14_MAX_TMDS_CLK_KHZ; > } > > static int vc4_hdmi_debugfs_regs(struct seq_file *m, void *unused) > diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h > index b501d0badaea..030636635af1 100644 > --- a/include/drm/drm_connector.h > +++ b/include/drm/drm_connector.h > @@ -260,6 +260,8 @@ struct drm_hdmi_info { > struct drm_hdmi_dsc_cap dsc_cap; > }; > > +#define DRM_HDMI_14_MAX_TMDS_CLK_KHZ (340 * 1000) > + > /** > * enum drm_link_status - connector's link_status property value > * > -- > 2.32.0 > 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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 90B43C4332F for ; Tue, 2 Nov 2021 17:50:41 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 5D39A61051 for ; Tue, 2 Nov 2021 17:50:41 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 5D39A61051 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 5CAFD73499; Tue, 2 Nov 2021 17:50:40 +0000 (UTC) Received: from mail-ot1-x336.google.com (mail-ot1-x336.google.com [IPv6:2607:f8b0:4864:20::336]) by gabe.freedesktop.org (Postfix) with ESMTPS id 898AE7349A; Tue, 2 Nov 2021 17:50:38 +0000 (UTC) Received: by mail-ot1-x336.google.com with SMTP id c2-20020a056830348200b0055a46c889a8so10355280otu.5; Tue, 02 Nov 2021 10:50:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=JCnH8IVQSN/Tydtefp2s0zrp4McuTwvXnflW3E4hZFk=; b=VdBLOAQmTW8IYQmzlxua3oCaylRz+xtYXTY/C+2FP3cDsBBqJC/OlAfidpp+sAYfWh XZpOlzP9xIk4Vl25k7NFe9yrLOeWEoVdATlZYJ26fpbAEB29KxhDAWnAZSxunMaT21vy hovCeL8T24CqDQlv/nSLcDx0HVEb+OmzGUI5ZifOQetoIW7x0EMiF+Lx0Tjq9eWFMmAq +uypRNFbpVFIVTg3XXzms1kY+gwaskiDyGaj1ikcUZqT3D6v9UkQmRHG5parwKYwV+i1 UKIZVaz02RXWOmjbe9NrrRmxgvtKjbwudjuwd84JzgQdu8Gtook+wRkf5xYqIxbAdgY0 bC/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=JCnH8IVQSN/Tydtefp2s0zrp4McuTwvXnflW3E4hZFk=; b=HK3lw0Zk/JMp7TD5NdxD5LJVOn09fkIY1roNDmYQ22J6S+a6LPLf5ryTtnWgXZOg5Q VfkMpuaorK7sQil8DeLgxLJe/34zF4yjFCQW0UzRBOJk08nbCCkNzQ/4YeyWi7wzKdZ+ GF2XEJ4ec4QrVHhP7qcJu5DaMJ7r7Kf0Osxhi4ikAE83j24bag8HHQNKgSHgDvaV8flp iH8WCwwI+8cPvEpJZ3XAkxBQFEYznLdO+cKnLehlS9cBO+jBKmmhaxY+CB0aa3Q70K4q g/N4nQPpCBHYTboMxDj6MAYu4CaY0LcbKqXpT8IvipbUA6aGS5nGSpiLXeljKcQAFZln 8MbA== X-Gm-Message-State: AOAM531kbW3CH1CnXAb95Qpx/QZZsi4LNwL0UXFZw3Qw9GRFSmdcohYd dn6xMr6nArpUKD7W5R1vwPgEw1oGUPNVpkD8DnY= X-Google-Smtp-Source: ABdhPJylgDZ1V00UpveCgBw7YMyDGwlexpSVyGJmOUKlwqguIVRxCkdmleuRmNBGUuHIPNCqVvqSPwGYxIIoWRPWgiY= X-Received: by 2002:a9d:1b4f:: with SMTP id l73mr28917145otl.200.1635875437736; Tue, 02 Nov 2021 10:50:37 -0700 (PDT) MIME-Version: 1.0 References: <20211102145944.259181-1-maxime@cerno.tech> <20211102145944.259181-2-maxime@cerno.tech> In-Reply-To: <20211102145944.259181-2-maxime@cerno.tech> From: Alex Deucher Date: Tue, 2 Nov 2021 13:50:26 -0400 Message-ID: To: Maxime Ripard Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Subject: Re: [Intel-gfx] [PATCH 01/13] drm/connector: Add define for HDMI 1.4 Maximum Pixel Rate X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Emma Anholt , Neil Armstrong , David Airlie , Maling list - DRI developers , Andrzej Hajda , Laurent Pinchart , Benjamin Gaignard , Daniel Vetter , Phil Elwell , Jerome Brunet , Tim Gover , Dave Stevenson , Kevin Hilman , Jernej Skrabec , Jonathan Hunter , Jonas Karlman , Martin Blumenstingl , Intel Graphics Development , linux-tegra@vger.kernel.org, linux-amlogic@lists.infradead.org, linux-arm-kernel , amd-gfx list , Dom Cobley , "Pan, Xinhui" , Robert Foss , Thomas Zimmermann , Alex Deucher , =?UTF-8?Q?Christian_K=C3=B6nig?= Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" On Tue, Nov 2, 2021 at 10:59 AM Maxime Ripard wrote: > > A lot of drivers open-code the HDMI 1.4 maximum pixel rate in their > driver to test whether the resolutions are supported or if the > scrambling needs to be enabled. > > Let's create a common define for everyone to use it. > > Cc: Alex Deucher > Cc: amd-gfx@lists.freedesktop.org > Cc: Andrzej Hajda > Cc: Benjamin Gaignard > Cc: "Christian K=C3=B6nig" > Cc: Emma Anholt > Cc: intel-gfx@lists.freedesktop.org > Cc: Jani Nikula > Cc: Jernej Skrabec > Cc: Jerome Brunet > Cc: Jonas Karlman > Cc: Jonathan Hunter > Cc: Joonas Lahtinen > Cc: Kevin Hilman > Cc: Laurent Pinchart > Cc: linux-amlogic@lists.infradead.org > Cc: linux-arm-kernel@lists.infradead.org > Cc: linux-tegra@vger.kernel.org > Cc: Martin Blumenstingl > Cc: Neil Armstrong > Cc: "Pan, Xinhui" > Cc: Robert Foss > Cc: Rodrigo Vivi > Cc: Thierry Reding > Signed-off-by: Maxime Ripard > --- > drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 4 ++-- > drivers/gpu/drm/drm_edid.c | 2 +- > drivers/gpu/drm/i915/display/intel_hdmi.c | 2 +- > drivers/gpu/drm/meson/meson_dw_hdmi.c | 4 ++-- > drivers/gpu/drm/radeon/radeon_encoders.c | 2 +- For radeon: Acked-by: Alex Deucher Note that there are several instances of this in amdgpu as well: drivers/gpu/drm/amd/amdgpu/amdgpu_encoders.c: if (pixel_clock > 340000) drivers/gpu/drm/amd/amdgpu/amdgpu_encoders.c: if (pixel_clock > 340000) drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c: if (mode->clock > 340000) drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c: if (mode->clock > 340000) Alex > drivers/gpu/drm/sti/sti_hdmi_tx3g4c28phy.c | 2 +- > drivers/gpu/drm/tegra/sor.c | 8 ++++---- > drivers/gpu/drm/vc4/vc4_hdmi.c | 4 ++-- > include/drm/drm_connector.h | 2 ++ > 9 files changed, 16 insertions(+), 14 deletions(-) > > diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/= bridge/synopsys/dw-hdmi.c > index 62ae63565d3a..3a58db357be0 100644 > --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c > +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c > @@ -46,7 +46,7 @@ > /* DW-HDMI Controller >=3D 0x200a are at least compliant with SCDC versi= on 1 */ > #define SCDC_MIN_SOURCE_VERSION 0x1 > > -#define HDMI14_MAX_TMDSCLK 340000000 > +#define HDMI14_MAX_TMDSCLK (DRM_HDMI_14_MAX_TMDS_CLK_KHZ * 1000) > > enum hdmi_datamap { > RGB444_8B =3D 0x01, > @@ -1264,7 +1264,7 @@ static bool dw_hdmi_support_scdc(struct dw_hdmi *hd= mi, > * for low rates is not supported either > */ > if (!display->hdmi.scdc.scrambling.low_rates && > - display->max_tmds_clock <=3D 340000) > + display->max_tmds_clock <=3D DRM_HDMI_14_MAX_TMDS_CLK_KHZ) > return false; > > return true; > diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c > index 7aa2a56a71c8..ec8fb2d098ae 100644 > --- a/drivers/gpu/drm/drm_edid.c > +++ b/drivers/gpu/drm/drm_edid.c > @@ -4966,7 +4966,7 @@ static void drm_parse_hdmi_forum_vsdb(struct drm_co= nnector *connector, > u32 max_tmds_clock =3D hf_vsdb[5] * 5000; > struct drm_scdc *scdc =3D &hdmi->scdc; > > - if (max_tmds_clock > 340000) { > + if (max_tmds_clock > DRM_HDMI_14_MAX_TMDS_CLK_KHZ) { > display->max_tmds_clock =3D max_tmds_clock; > DRM_DEBUG_KMS("HF-VSDB: max TMDS clock %d kHz\n", > display->max_tmds_clock); > diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.c b/drivers/gpu/drm/= i915/display/intel_hdmi.c > index d2e61f6c6e08..0666203d52b7 100644 > --- a/drivers/gpu/drm/i915/display/intel_hdmi.c > +++ b/drivers/gpu/drm/i915/display/intel_hdmi.c > @@ -2226,7 +2226,7 @@ int intel_hdmi_compute_config(struct intel_encoder = *encoder, > if (scdc->scrambling.low_rates) > pipe_config->hdmi_scrambling =3D true; > > - if (pipe_config->port_clock > 340000) { > + if (pipe_config->port_clock > DRM_HDMI_14_MAX_TMDS_CLK_KH= Z) { > pipe_config->hdmi_scrambling =3D true; > pipe_config->hdmi_high_tmds_clock_ratio =3D true; > } > diff --git a/drivers/gpu/drm/meson/meson_dw_hdmi.c b/drivers/gpu/drm/meso= n/meson_dw_hdmi.c > index 0afbd1e70bfc..8078667aea0e 100644 > --- a/drivers/gpu/drm/meson/meson_dw_hdmi.c > +++ b/drivers/gpu/drm/meson/meson_dw_hdmi.c > @@ -434,7 +434,7 @@ static int dw_hdmi_phy_init(struct dw_hdmi *hdmi, voi= d *data, > readl_relaxed(priv->io_base + _REG(VPU_HDMI_SETTING)); > > DRM_DEBUG_DRIVER("\"%s\" div%d\n", mode->name, > - mode->clock > 340000 ? 40 : 10); > + mode->clock > DRM_HDMI_14_MAX_TMDS_CLK_KHZ ? 40 = : 10); > > /* Enable clocks */ > regmap_update_bits(priv->hhi, HHI_HDMI_CLK_CNTL, 0xffff, 0x100); > @@ -457,7 +457,7 @@ static int dw_hdmi_phy_init(struct dw_hdmi *hdmi, voi= d *data, > dw_hdmi->data->top_write(dw_hdmi, HDMITX_TOP_BIST_CNTL, BIT(12)); > > /* TMDS pattern setup */ > - if (mode->clock > 340000 && > + if (mode->clock > DRM_HDMI_14_MAX_TMDS_CLK_KHZ && > dw_hdmi->output_bus_fmt =3D=3D MEDIA_BUS_FMT_YUV8_1X24) { > dw_hdmi->data->top_write(dw_hdmi, HDMITX_TOP_TMDS_CLK_PTT= N_01, > 0); > diff --git a/drivers/gpu/drm/radeon/radeon_encoders.c b/drivers/gpu/drm/r= adeon/radeon_encoders.c > index 46549d5179ee..ddd8100e699f 100644 > --- a/drivers/gpu/drm/radeon/radeon_encoders.c > +++ b/drivers/gpu/drm/radeon/radeon_encoders.c > @@ -384,7 +384,7 @@ bool radeon_dig_monitor_is_duallink(struct drm_encode= r *encoder, > if (radeon_connector->use_digital) { > /* HDMI 1.3 supports up to 340 Mhz over single li= nk */ > if (ASIC_IS_DCE6(rdev) && drm_detect_hdmi_monitor= (radeon_connector_edid(connector))) { > - if (pixel_clock > 340000) > + if (pixel_clock > DRM_HDMI_14_MAX_TMDS_CL= K_KHZ) > return true; > else > return false; > diff --git a/drivers/gpu/drm/sti/sti_hdmi_tx3g4c28phy.c b/drivers/gpu/drm= /sti/sti_hdmi_tx3g4c28phy.c > index d25ecd4f4b67..bc213232a875 100644 > --- a/drivers/gpu/drm/sti/sti_hdmi_tx3g4c28phy.c > +++ b/drivers/gpu/drm/sti/sti_hdmi_tx3g4c28phy.c > @@ -102,7 +102,7 @@ static bool sti_hdmi_tx3g4c28phy_start(struct sti_hdm= i *hdmi) > tmdsck =3D ckpxpll; > pllctrl |=3D 40 << PLL_CFG_NDIV_SHIFT; > > - if (tmdsck > 340000000) { > + if (tmdsck > (DRM_HDMI_14_MAX_TMDS_CLK_KHZ * 1000)) { > DRM_ERROR("output TMDS clock (%d) out of range\n", tmdsck= ); > goto err; > } > diff --git a/drivers/gpu/drm/tegra/sor.c b/drivers/gpu/drm/tegra/sor.c > index 0ea320c1092b..99a2d627bfeb 100644 > --- a/drivers/gpu/drm/tegra/sor.c > +++ b/drivers/gpu/drm/tegra/sor.c > @@ -1814,7 +1814,7 @@ tegra_sor_encoder_atomic_check(struct drm_encoder *= encoder, > * For HBR2 modes, the SOR brick needs to use the x20 multiplier,= so > * the pixel clock must be corrected accordingly. > */ > - if (pclk >=3D 340000000) { > + if (pclk >=3D (DRM_HDMI_14_MAX_TMDS_CLK_KHZ * 1000)) { > state->link_speed =3D 20; > state->pclk =3D pclk / 2; > } else { > @@ -2196,7 +2196,7 @@ static void tegra_sor_hdmi_scdc_start(struct tegra_= sor *sor) > > mode =3D &sor->output.encoder.crtc->state->adjusted_mode; > > - if (mode->clock >=3D 340000 && scdc->supported) { > + if (mode->clock >=3D DRM_HDMI_14_MAX_TMDS_CLK_KHZ && scdc->suppor= ted) { > schedule_delayed_work(&sor->scdc, msecs_to_jiffies(5000))= ; > tegra_sor_hdmi_scdc_enable(sor); > sor->scdc_enabled =3D true; > @@ -2340,7 +2340,7 @@ static void tegra_sor_hdmi_enable(struct drm_encode= r *encoder) > value &=3D ~SOR_CLK_CNTRL_DP_LINK_SPEED_MASK; > value &=3D ~SOR_CLK_CNTRL_DP_CLK_SEL_MASK; > > - if (mode->clock < 340000) { > + if (mode->clock < DRM_HDMI_14_MAX_TMDS_CLK_KHZ) { > DRM_DEBUG_KMS("setting 2.7 GHz link speed\n"); > value |=3D SOR_CLK_CNTRL_DP_LINK_SPEED_G2_70; > } else { > @@ -2423,7 +2423,7 @@ static void tegra_sor_hdmi_enable(struct drm_encode= r *encoder) > /* adjust clock rate for HDMI 2.0 modes */ > rate =3D clk_get_rate(sor->clk_parent); > > - if (mode->clock >=3D 340000) > + if (mode->clock >=3D DRM_HDMI_14_MAX_TMDS_CLK_KHZ) > rate /=3D 2; > > DRM_DEBUG_KMS("setting clock to %lu Hz, mode: %lu Hz\n", rate, pc= lk); > diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdm= i.c > index fab9b93e1b84..fc7247cc1022 100644 > --- a/drivers/gpu/drm/vc4/vc4_hdmi.c > +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c > @@ -97,11 +97,11 @@ > #define HSM_MIN_CLOCK_FREQ 120000000 > #define CEC_CLOCK_FREQ 40000 > > -#define HDMI_14_MAX_TMDS_CLK (340 * 1000 * 1000) > +#define HDMI_14_MAX_TMDS_CLK (DRM_HDMI_14_MAX_TMDS_CLK_KHZ * 1000) > > static bool vc4_hdmi_mode_needs_scrambling(const struct drm_display_mode= *mode) > { > - return (mode->clock * 1000) > HDMI_14_MAX_TMDS_CLK; > + return mode->clock > DRM_HDMI_14_MAX_TMDS_CLK_KHZ; > } > > static int vc4_hdmi_debugfs_regs(struct seq_file *m, void *unused) > diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h > index b501d0badaea..030636635af1 100644 > --- a/include/drm/drm_connector.h > +++ b/include/drm/drm_connector.h > @@ -260,6 +260,8 @@ struct drm_hdmi_info { > struct drm_hdmi_dsc_cap dsc_cap; > }; > > +#define DRM_HDMI_14_MAX_TMDS_CLK_KHZ (340 * 1000) > + > /** > * enum drm_link_status - connector's link_status property value > * > -- > 2.32.0 > 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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 33C3EC433EF for ; Tue, 2 Nov 2021 17:50:40 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id E1E7F60D42 for ; Tue, 2 Nov 2021 17:50:39 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org E1E7F60D42 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 701507349A; Tue, 2 Nov 2021 17:50:39 +0000 (UTC) Received: from mail-ot1-x336.google.com (mail-ot1-x336.google.com [IPv6:2607:f8b0:4864:20::336]) by gabe.freedesktop.org (Postfix) with ESMTPS id 898AE7349A; Tue, 2 Nov 2021 17:50:38 +0000 (UTC) Received: by mail-ot1-x336.google.com with SMTP id c2-20020a056830348200b0055a46c889a8so10355280otu.5; Tue, 02 Nov 2021 10:50:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=JCnH8IVQSN/Tydtefp2s0zrp4McuTwvXnflW3E4hZFk=; b=VdBLOAQmTW8IYQmzlxua3oCaylRz+xtYXTY/C+2FP3cDsBBqJC/OlAfidpp+sAYfWh XZpOlzP9xIk4Vl25k7NFe9yrLOeWEoVdATlZYJ26fpbAEB29KxhDAWnAZSxunMaT21vy hovCeL8T24CqDQlv/nSLcDx0HVEb+OmzGUI5ZifOQetoIW7x0EMiF+Lx0Tjq9eWFMmAq +uypRNFbpVFIVTg3XXzms1kY+gwaskiDyGaj1ikcUZqT3D6v9UkQmRHG5parwKYwV+i1 UKIZVaz02RXWOmjbe9NrrRmxgvtKjbwudjuwd84JzgQdu8Gtook+wRkf5xYqIxbAdgY0 bC/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=JCnH8IVQSN/Tydtefp2s0zrp4McuTwvXnflW3E4hZFk=; b=HK3lw0Zk/JMp7TD5NdxD5LJVOn09fkIY1roNDmYQ22J6S+a6LPLf5ryTtnWgXZOg5Q VfkMpuaorK7sQil8DeLgxLJe/34zF4yjFCQW0UzRBOJk08nbCCkNzQ/4YeyWi7wzKdZ+ GF2XEJ4ec4QrVHhP7qcJu5DaMJ7r7Kf0Osxhi4ikAE83j24bag8HHQNKgSHgDvaV8flp iH8WCwwI+8cPvEpJZ3XAkxBQFEYznLdO+cKnLehlS9cBO+jBKmmhaxY+CB0aa3Q70K4q g/N4nQPpCBHYTboMxDj6MAYu4CaY0LcbKqXpT8IvipbUA6aGS5nGSpiLXeljKcQAFZln 8MbA== X-Gm-Message-State: AOAM531kbW3CH1CnXAb95Qpx/QZZsi4LNwL0UXFZw3Qw9GRFSmdcohYd dn6xMr6nArpUKD7W5R1vwPgEw1oGUPNVpkD8DnY= X-Google-Smtp-Source: ABdhPJylgDZ1V00UpveCgBw7YMyDGwlexpSVyGJmOUKlwqguIVRxCkdmleuRmNBGUuHIPNCqVvqSPwGYxIIoWRPWgiY= X-Received: by 2002:a9d:1b4f:: with SMTP id l73mr28917145otl.200.1635875437736; Tue, 02 Nov 2021 10:50:37 -0700 (PDT) MIME-Version: 1.0 References: <20211102145944.259181-1-maxime@cerno.tech> <20211102145944.259181-2-maxime@cerno.tech> In-Reply-To: <20211102145944.259181-2-maxime@cerno.tech> From: Alex Deucher Date: Tue, 2 Nov 2021 13:50:26 -0400 Message-ID: Subject: Re: [PATCH 01/13] drm/connector: Add define for HDMI 1.4 Maximum Pixel Rate To: Maxime Ripard Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-BeenThere: amd-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Emma Anholt , Neil Armstrong , David Airlie , Maling list - DRI developers , Andrzej Hajda , Thierry Reding , Laurent Pinchart , Benjamin Gaignard , Daniel Vetter , Phil Elwell , Jerome Brunet , Tim Gover , Dave Stevenson , Kevin Hilman , Jernej Skrabec , Jonathan Hunter , Jonas Karlman , Martin Blumenstingl , Intel Graphics Development , Maarten Lankhorst , Rodrigo Vivi , linux-tegra@vger.kernel.org, linux-amlogic@lists.infradead.org, linux-arm-kernel , amd-gfx list , Dom Cobley , "Pan, Xinhui" , Robert Foss , Thomas Zimmermann , Alex Deucher , =?UTF-8?Q?Christian_K=C3=B6nig?= Errors-To: amd-gfx-bounces@lists.freedesktop.org Sender: "amd-gfx" On Tue, Nov 2, 2021 at 10:59 AM Maxime Ripard wrote: > > A lot of drivers open-code the HDMI 1.4 maximum pixel rate in their > driver to test whether the resolutions are supported or if the > scrambling needs to be enabled. > > Let's create a common define for everyone to use it. > > Cc: Alex Deucher > Cc: amd-gfx@lists.freedesktop.org > Cc: Andrzej Hajda > Cc: Benjamin Gaignard > Cc: "Christian K=C3=B6nig" > Cc: Emma Anholt > Cc: intel-gfx@lists.freedesktop.org > Cc: Jani Nikula > Cc: Jernej Skrabec > Cc: Jerome Brunet > Cc: Jonas Karlman > Cc: Jonathan Hunter > Cc: Joonas Lahtinen > Cc: Kevin Hilman > Cc: Laurent Pinchart > Cc: linux-amlogic@lists.infradead.org > Cc: linux-arm-kernel@lists.infradead.org > Cc: linux-tegra@vger.kernel.org > Cc: Martin Blumenstingl > Cc: Neil Armstrong > Cc: "Pan, Xinhui" > Cc: Robert Foss > Cc: Rodrigo Vivi > Cc: Thierry Reding > Signed-off-by: Maxime Ripard > --- > drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 4 ++-- > drivers/gpu/drm/drm_edid.c | 2 +- > drivers/gpu/drm/i915/display/intel_hdmi.c | 2 +- > drivers/gpu/drm/meson/meson_dw_hdmi.c | 4 ++-- > drivers/gpu/drm/radeon/radeon_encoders.c | 2 +- For radeon: Acked-by: Alex Deucher Note that there are several instances of this in amdgpu as well: drivers/gpu/drm/amd/amdgpu/amdgpu_encoders.c: if (pixel_clock > 340000) drivers/gpu/drm/amd/amdgpu/amdgpu_encoders.c: if (pixel_clock > 340000) drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c: if (mode->clock > 340000) drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c: if (mode->clock > 340000) Alex > drivers/gpu/drm/sti/sti_hdmi_tx3g4c28phy.c | 2 +- > drivers/gpu/drm/tegra/sor.c | 8 ++++---- > drivers/gpu/drm/vc4/vc4_hdmi.c | 4 ++-- > include/drm/drm_connector.h | 2 ++ > 9 files changed, 16 insertions(+), 14 deletions(-) > > diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/= bridge/synopsys/dw-hdmi.c > index 62ae63565d3a..3a58db357be0 100644 > --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c > +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c > @@ -46,7 +46,7 @@ > /* DW-HDMI Controller >=3D 0x200a are at least compliant with SCDC versi= on 1 */ > #define SCDC_MIN_SOURCE_VERSION 0x1 > > -#define HDMI14_MAX_TMDSCLK 340000000 > +#define HDMI14_MAX_TMDSCLK (DRM_HDMI_14_MAX_TMDS_CLK_KHZ * 1000) > > enum hdmi_datamap { > RGB444_8B =3D 0x01, > @@ -1264,7 +1264,7 @@ static bool dw_hdmi_support_scdc(struct dw_hdmi *hd= mi, > * for low rates is not supported either > */ > if (!display->hdmi.scdc.scrambling.low_rates && > - display->max_tmds_clock <=3D 340000) > + display->max_tmds_clock <=3D DRM_HDMI_14_MAX_TMDS_CLK_KHZ) > return false; > > return true; > diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c > index 7aa2a56a71c8..ec8fb2d098ae 100644 > --- a/drivers/gpu/drm/drm_edid.c > +++ b/drivers/gpu/drm/drm_edid.c > @@ -4966,7 +4966,7 @@ static void drm_parse_hdmi_forum_vsdb(struct drm_co= nnector *connector, > u32 max_tmds_clock =3D hf_vsdb[5] * 5000; > struct drm_scdc *scdc =3D &hdmi->scdc; > > - if (max_tmds_clock > 340000) { > + if (max_tmds_clock > DRM_HDMI_14_MAX_TMDS_CLK_KHZ) { > display->max_tmds_clock =3D max_tmds_clock; > DRM_DEBUG_KMS("HF-VSDB: max TMDS clock %d kHz\n", > display->max_tmds_clock); > diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.c b/drivers/gpu/drm/= i915/display/intel_hdmi.c > index d2e61f6c6e08..0666203d52b7 100644 > --- a/drivers/gpu/drm/i915/display/intel_hdmi.c > +++ b/drivers/gpu/drm/i915/display/intel_hdmi.c > @@ -2226,7 +2226,7 @@ int intel_hdmi_compute_config(struct intel_encoder = *encoder, > if (scdc->scrambling.low_rates) > pipe_config->hdmi_scrambling =3D true; > > - if (pipe_config->port_clock > 340000) { > + if (pipe_config->port_clock > DRM_HDMI_14_MAX_TMDS_CLK_KH= Z) { > pipe_config->hdmi_scrambling =3D true; > pipe_config->hdmi_high_tmds_clock_ratio =3D true; > } > diff --git a/drivers/gpu/drm/meson/meson_dw_hdmi.c b/drivers/gpu/drm/meso= n/meson_dw_hdmi.c > index 0afbd1e70bfc..8078667aea0e 100644 > --- a/drivers/gpu/drm/meson/meson_dw_hdmi.c > +++ b/drivers/gpu/drm/meson/meson_dw_hdmi.c > @@ -434,7 +434,7 @@ static int dw_hdmi_phy_init(struct dw_hdmi *hdmi, voi= d *data, > readl_relaxed(priv->io_base + _REG(VPU_HDMI_SETTING)); > > DRM_DEBUG_DRIVER("\"%s\" div%d\n", mode->name, > - mode->clock > 340000 ? 40 : 10); > + mode->clock > DRM_HDMI_14_MAX_TMDS_CLK_KHZ ? 40 = : 10); > > /* Enable clocks */ > regmap_update_bits(priv->hhi, HHI_HDMI_CLK_CNTL, 0xffff, 0x100); > @@ -457,7 +457,7 @@ static int dw_hdmi_phy_init(struct dw_hdmi *hdmi, voi= d *data, > dw_hdmi->data->top_write(dw_hdmi, HDMITX_TOP_BIST_CNTL, BIT(12)); > > /* TMDS pattern setup */ > - if (mode->clock > 340000 && > + if (mode->clock > DRM_HDMI_14_MAX_TMDS_CLK_KHZ && > dw_hdmi->output_bus_fmt =3D=3D MEDIA_BUS_FMT_YUV8_1X24) { > dw_hdmi->data->top_write(dw_hdmi, HDMITX_TOP_TMDS_CLK_PTT= N_01, > 0); > diff --git a/drivers/gpu/drm/radeon/radeon_encoders.c b/drivers/gpu/drm/r= adeon/radeon_encoders.c > index 46549d5179ee..ddd8100e699f 100644 > --- a/drivers/gpu/drm/radeon/radeon_encoders.c > +++ b/drivers/gpu/drm/radeon/radeon_encoders.c > @@ -384,7 +384,7 @@ bool radeon_dig_monitor_is_duallink(struct drm_encode= r *encoder, > if (radeon_connector->use_digital) { > /* HDMI 1.3 supports up to 340 Mhz over single li= nk */ > if (ASIC_IS_DCE6(rdev) && drm_detect_hdmi_monitor= (radeon_connector_edid(connector))) { > - if (pixel_clock > 340000) > + if (pixel_clock > DRM_HDMI_14_MAX_TMDS_CL= K_KHZ) > return true; > else > return false; > diff --git a/drivers/gpu/drm/sti/sti_hdmi_tx3g4c28phy.c b/drivers/gpu/drm= /sti/sti_hdmi_tx3g4c28phy.c > index d25ecd4f4b67..bc213232a875 100644 > --- a/drivers/gpu/drm/sti/sti_hdmi_tx3g4c28phy.c > +++ b/drivers/gpu/drm/sti/sti_hdmi_tx3g4c28phy.c > @@ -102,7 +102,7 @@ static bool sti_hdmi_tx3g4c28phy_start(struct sti_hdm= i *hdmi) > tmdsck =3D ckpxpll; > pllctrl |=3D 40 << PLL_CFG_NDIV_SHIFT; > > - if (tmdsck > 340000000) { > + if (tmdsck > (DRM_HDMI_14_MAX_TMDS_CLK_KHZ * 1000)) { > DRM_ERROR("output TMDS clock (%d) out of range\n", tmdsck= ); > goto err; > } > diff --git a/drivers/gpu/drm/tegra/sor.c b/drivers/gpu/drm/tegra/sor.c > index 0ea320c1092b..99a2d627bfeb 100644 > --- a/drivers/gpu/drm/tegra/sor.c > +++ b/drivers/gpu/drm/tegra/sor.c > @@ -1814,7 +1814,7 @@ tegra_sor_encoder_atomic_check(struct drm_encoder *= encoder, > * For HBR2 modes, the SOR brick needs to use the x20 multiplier,= so > * the pixel clock must be corrected accordingly. > */ > - if (pclk >=3D 340000000) { > + if (pclk >=3D (DRM_HDMI_14_MAX_TMDS_CLK_KHZ * 1000)) { > state->link_speed =3D 20; > state->pclk =3D pclk / 2; > } else { > @@ -2196,7 +2196,7 @@ static void tegra_sor_hdmi_scdc_start(struct tegra_= sor *sor) > > mode =3D &sor->output.encoder.crtc->state->adjusted_mode; > > - if (mode->clock >=3D 340000 && scdc->supported) { > + if (mode->clock >=3D DRM_HDMI_14_MAX_TMDS_CLK_KHZ && scdc->suppor= ted) { > schedule_delayed_work(&sor->scdc, msecs_to_jiffies(5000))= ; > tegra_sor_hdmi_scdc_enable(sor); > sor->scdc_enabled =3D true; > @@ -2340,7 +2340,7 @@ static void tegra_sor_hdmi_enable(struct drm_encode= r *encoder) > value &=3D ~SOR_CLK_CNTRL_DP_LINK_SPEED_MASK; > value &=3D ~SOR_CLK_CNTRL_DP_CLK_SEL_MASK; > > - if (mode->clock < 340000) { > + if (mode->clock < DRM_HDMI_14_MAX_TMDS_CLK_KHZ) { > DRM_DEBUG_KMS("setting 2.7 GHz link speed\n"); > value |=3D SOR_CLK_CNTRL_DP_LINK_SPEED_G2_70; > } else { > @@ -2423,7 +2423,7 @@ static void tegra_sor_hdmi_enable(struct drm_encode= r *encoder) > /* adjust clock rate for HDMI 2.0 modes */ > rate =3D clk_get_rate(sor->clk_parent); > > - if (mode->clock >=3D 340000) > + if (mode->clock >=3D DRM_HDMI_14_MAX_TMDS_CLK_KHZ) > rate /=3D 2; > > DRM_DEBUG_KMS("setting clock to %lu Hz, mode: %lu Hz\n", rate, pc= lk); > diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdm= i.c > index fab9b93e1b84..fc7247cc1022 100644 > --- a/drivers/gpu/drm/vc4/vc4_hdmi.c > +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c > @@ -97,11 +97,11 @@ > #define HSM_MIN_CLOCK_FREQ 120000000 > #define CEC_CLOCK_FREQ 40000 > > -#define HDMI_14_MAX_TMDS_CLK (340 * 1000 * 1000) > +#define HDMI_14_MAX_TMDS_CLK (DRM_HDMI_14_MAX_TMDS_CLK_KHZ * 1000) > > static bool vc4_hdmi_mode_needs_scrambling(const struct drm_display_mode= *mode) > { > - return (mode->clock * 1000) > HDMI_14_MAX_TMDS_CLK; > + return mode->clock > DRM_HDMI_14_MAX_TMDS_CLK_KHZ; > } > > static int vc4_hdmi_debugfs_regs(struct seq_file *m, void *unused) > diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h > index b501d0badaea..030636635af1 100644 > --- a/include/drm/drm_connector.h > +++ b/include/drm/drm_connector.h > @@ -260,6 +260,8 @@ struct drm_hdmi_info { > struct drm_hdmi_dsc_cap dsc_cap; > }; > > +#define DRM_HDMI_14_MAX_TMDS_CLK_KHZ (340 * 1000) > + > /** > * enum drm_link_status - connector's link_status property value > * > -- > 2.32.0 > 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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 53947C433F5 for ; Tue, 2 Nov 2021 17:50:53 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 171DD61050 for ; Tue, 2 Nov 2021 17:50:53 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 171DD61050 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.infradead.org 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:Cc:To:Subject:Message-ID:Date:From: In-Reply-To:References:MIME-Version:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=J1j/Wdb+sZeVS6KgtI5QZxqXBA/4NiJ0Vdk4HADjTFE=; b=mVvowMYZvY+eUt tyixYf/+xhXpHUlf5+1UNLbArmEoJjrEF07/7KoJ/nOVLltiDqgsc3PzrqfQ/5dgfy5dGBaA6gSr3 dS6SrsyG233ueUgyYcj7vZVS5p8vj/B3et/GLzAL+10R33X5MlWiNGlPkMt3XuY/30AoMCox80ABY 3RW6EWHgCuzISBQT+P+Hm3fDD7ygqPNXcuJ51LMyUp97AxT5qVCKBLtJBxjTRmWDk9rGcAyyVrRex e0sey0EKJoyfsqzbH9CiTcphpOarYNrMek2YtP/hPM2Bmn8gh4TXogqtB6HJskLbiaJhWmXa7amK0 +ZtbX1YNTcZEUMxXjnxQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mhxvq-002YOS-5T; Tue, 02 Nov 2021 17:50:46 +0000 Received: from mail-ot1-x334.google.com ([2607:f8b0:4864:20::334]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1mhxvk-002YKa-07; Tue, 02 Nov 2021 17:50:44 +0000 Received: by mail-ot1-x334.google.com with SMTP id t17-20020a056830083100b00553ced10177so21057ots.1; Tue, 02 Nov 2021 10:50:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=JCnH8IVQSN/Tydtefp2s0zrp4McuTwvXnflW3E4hZFk=; b=VdBLOAQmTW8IYQmzlxua3oCaylRz+xtYXTY/C+2FP3cDsBBqJC/OlAfidpp+sAYfWh XZpOlzP9xIk4Vl25k7NFe9yrLOeWEoVdATlZYJ26fpbAEB29KxhDAWnAZSxunMaT21vy hovCeL8T24CqDQlv/nSLcDx0HVEb+OmzGUI5ZifOQetoIW7x0EMiF+Lx0Tjq9eWFMmAq +uypRNFbpVFIVTg3XXzms1kY+gwaskiDyGaj1ikcUZqT3D6v9UkQmRHG5parwKYwV+i1 UKIZVaz02RXWOmjbe9NrrRmxgvtKjbwudjuwd84JzgQdu8Gtook+wRkf5xYqIxbAdgY0 bC/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=JCnH8IVQSN/Tydtefp2s0zrp4McuTwvXnflW3E4hZFk=; b=TEKMP74d2oeTYG3g9Gqq6oX/WP2U44GusIogqpY/UkDsKyuZQujb0MibmQ7yjySYL8 c0dvEUsmoNxOEplhNVJmSH4x8xuqquAdZ2ila2E3OQLnwvsaFZphhPWMpL8kWRsW0iH/ b0KbCZZvir4bkcSMb8RNvTQYU8wb3gZpW6M6eifrNIh+E5XeEX+L8/53EsUAs7nPQ49d 1PNg2aADEsIxJR5svza4xsb8qzZUIiuMqseMRWmektgOtqJvS0x7P8gEYOU8hnmHn5m7 DEnKuMg9bOlEe1qLpVSCOjbJguIIpibmE+IyIiVBXP656Cr2PUahDipI2wTZEbhqVHzW 1wOw== X-Gm-Message-State: AOAM531vtnwb7zn2jt3gfZFqY2zC/1QlzWNc2t4ETIwPKn3g7tX7EYDc Cn3OV7W/NpDIaFoTilFBJPdYHLtwC6Oq0AGp7qE= X-Google-Smtp-Source: ABdhPJylgDZ1V00UpveCgBw7YMyDGwlexpSVyGJmOUKlwqguIVRxCkdmleuRmNBGUuHIPNCqVvqSPwGYxIIoWRPWgiY= X-Received: by 2002:a9d:1b4f:: with SMTP id l73mr28917145otl.200.1635875437736; Tue, 02 Nov 2021 10:50:37 -0700 (PDT) MIME-Version: 1.0 References: <20211102145944.259181-1-maxime@cerno.tech> <20211102145944.259181-2-maxime@cerno.tech> In-Reply-To: <20211102145944.259181-2-maxime@cerno.tech> From: Alex Deucher Date: Tue, 2 Nov 2021 13:50:26 -0400 Message-ID: Subject: Re: [PATCH 01/13] drm/connector: Add define for HDMI 1.4 Maximum Pixel Rate To: Maxime Ripard Cc: Daniel Vetter , David Airlie , Maarten Lankhorst , Thomas Zimmermann , Emma Anholt , Neil Armstrong , Maling list - DRI developers , Andrzej Hajda , Thierry Reding , Laurent Pinchart , Benjamin Gaignard , Phil Elwell , Jerome Brunet , Tim Gover , Dave Stevenson , Kevin Hilman , Jernej Skrabec , Jonathan Hunter , Jonas Karlman , Martin Blumenstingl , Intel Graphics Development , Rodrigo Vivi , linux-tegra@vger.kernel.org, linux-amlogic@lists.infradead.org, linux-arm-kernel , amd-gfx list , Dom Cobley , "Pan, Xinhui" , Robert Foss , Alex Deucher , =?UTF-8?Q?Christian_K=C3=B6nig?= X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20211102_105040_084555_8E0A97FC X-CRM114-Status: GOOD ( 28.09 ) X-BeenThere: linux-amlogic@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-amlogic" Errors-To: linux-amlogic-bounces+linux-amlogic=archiver.kernel.org@lists.infradead.org T24gVHVlLCBOb3YgMiwgMjAyMSBhdCAxMDo1OSBBTSBNYXhpbWUgUmlwYXJkIDxtYXhpbWVAY2Vy bm8udGVjaD4gd3JvdGU6Cj4KPiBBIGxvdCBvZiBkcml2ZXJzIG9wZW4tY29kZSB0aGUgSERNSSAx LjQgbWF4aW11bSBwaXhlbCByYXRlIGluIHRoZWlyCj4gZHJpdmVyIHRvIHRlc3Qgd2hldGhlciB0 aGUgcmVzb2x1dGlvbnMgYXJlIHN1cHBvcnRlZCBvciBpZiB0aGUKPiBzY3JhbWJsaW5nIG5lZWRz IHRvIGJlIGVuYWJsZWQuCj4KPiBMZXQncyBjcmVhdGUgYSBjb21tb24gZGVmaW5lIGZvciBldmVy eW9uZSB0byB1c2UgaXQuCj4KPiBDYzogQWxleCBEZXVjaGVyIDxhbGV4YW5kZXIuZGV1Y2hlckBh bWQuY29tPgo+IENjOiBhbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IENjOiBBbmRyemVq IEhhamRhIDxhLmhhamRhQHNhbXN1bmcuY29tPgo+IENjOiBCZW5qYW1pbiBHYWlnbmFyZCA8YmVu amFtaW4uZ2FpZ25hcmRAbGluYXJvLm9yZz4KPiBDYzogIkNocmlzdGlhbiBLw7ZuaWciIDxjaHJp c3RpYW4ua29lbmlnQGFtZC5jb20+Cj4gQ2M6IEVtbWEgQW5ob2x0IDxlbW1hQGFuaG9sdC5uZXQ+ Cj4gQ2M6IGludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBDYzogSmFuaSBOaWt1bGEg PGphbmkubmlrdWxhQGxpbnV4LmludGVsLmNvbT4KPiBDYzogSmVybmVqIFNrcmFiZWMgPGplcm5l ai5za3JhYmVjQGdtYWlsLmNvbT4KPiBDYzogSmVyb21lIEJydW5ldCA8amJydW5ldEBiYXlsaWJy ZS5jb20+Cj4gQ2M6IEpvbmFzIEthcmxtYW4gPGpvbmFzQGt3aWJvby5zZT4KPiBDYzogSm9uYXRo YW4gSHVudGVyIDxqb25hdGhhbmhAbnZpZGlhLmNvbT4KPiBDYzogSm9vbmFzIExhaHRpbmVuIDxq b29uYXMubGFodGluZW5AbGludXguaW50ZWwuY29tPgo+IENjOiBLZXZpbiBIaWxtYW4gPGtoaWxt YW5AYmF5bGlicmUuY29tPgo+IENjOiBMYXVyZW50IFBpbmNoYXJ0IDxMYXVyZW50LnBpbmNoYXJ0 QGlkZWFzb25ib2FyZC5jb20+Cj4gQ2M6IGxpbnV4LWFtbG9naWNAbGlzdHMuaW5mcmFkZWFkLm9y Zwo+IENjOiBsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKPiBDYzogbGludXgt dGVncmFAdmdlci5rZXJuZWwub3JnCj4gQ2M6IE1hcnRpbiBCbHVtZW5zdGluZ2wgPG1hcnRpbi5i bHVtZW5zdGluZ2xAZ29vZ2xlbWFpbC5jb20+Cj4gQ2M6IE5laWwgQXJtc3Ryb25nIDxuYXJtc3Ry b25nQGJheWxpYnJlLmNvbT4KPiBDYzogIlBhbiwgWGluaHVpIiA8WGluaHVpLlBhbkBhbWQuY29t Pgo+IENjOiBSb2JlcnQgRm9zcyA8cm9iZXJ0LmZvc3NAbGluYXJvLm9yZz4KPiBDYzogUm9kcmln byBWaXZpIDxyb2RyaWdvLnZpdmlAaW50ZWwuY29tPgo+IENjOiBUaGllcnJ5IFJlZGluZyA8dGhp ZXJyeS5yZWRpbmdAZ21haWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IE1heGltZSBSaXBhcmQgPG1h eGltZUBjZXJuby50ZWNoPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3N5bm9wc3lz L2R3LWhkbWkuYyAgfCA0ICsrLS0KPiAgZHJpdmVycy9ncHUvZHJtL2RybV9lZGlkLmMgICAgICAg ICAgICAgICAgIHwgMiArLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2hk bWkuYyAgfCAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9tZXNvbi9tZXNvbl9kd19oZG1pLmMgICAg ICB8IDQgKystLQo+ICBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9lbmNvZGVycy5jICAg fCAyICstCgpGb3IgcmFkZW9uOgpBY2tlZC1ieTogQWxleCBEZXVjaGVyIDxhbGV4YW5kZXIuZGV1 Y2hlckBhbWQuY29tPgoKTm90ZSB0aGF0IHRoZXJlIGFyZSBzZXZlcmFsIGluc3RhbmNlcyBvZiB0 aGlzIGluIGFtZGdwdSBhcyB3ZWxsOgpkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVf ZW5jb2RlcnMuYzogICAgICAgICAgICAgICAgaWYKKHBpeGVsX2Nsb2NrID4gMzQwMDAwKQpkcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZW5jb2RlcnMuYzogICAgICAgICAgICAgICAg aWYKKHBpeGVsX2Nsb2NrID4gMzQwMDAwKQpkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfY29ubmVjdG9ycy5jOiAgICAgICAgICAgIGlmCihtb2RlLT5jbG9jayA+IDM0MDAwMCkKZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Nvbm5lY3RvcnMuYzogICAgICAgICAgICAg ICAgaWYKKG1vZGUtPmNsb2NrID4gMzQwMDAwKQoKQWxleAoKPiAgZHJpdmVycy9ncHUvZHJtL3N0 aS9zdGlfaGRtaV90eDNnNGMyOHBoeS5jIHwgMiArLQo+ICBkcml2ZXJzL2dwdS9kcm0vdGVncmEv c29yLmMgICAgICAgICAgICAgICAgfCA4ICsrKystLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS92YzQv dmM0X2hkbWkuYyAgICAgICAgICAgICB8IDQgKystLQo+ICBpbmNsdWRlL2RybS9kcm1fY29ubmVj dG9yLmggICAgICAgICAgICAgICAgfCAyICsrCj4gIDkgZmlsZXMgY2hhbmdlZCwgMTYgaW5zZXJ0 aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2JyaWRnZS9zeW5vcHN5cy9kdy1oZG1pLmMgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3N5bm9w c3lzL2R3LWhkbWkuYwo+IGluZGV4IDYyYWU2MzU2NWQzYS4uM2E1OGRiMzU3YmUwIDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2Uvc3lub3BzeXMvZHctaGRtaS5jCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zeW5vcHN5cy9kdy1oZG1pLmMKPiBAQCAtNDYsNyArNDYs NyBAQAo+ICAvKiBEVy1IRE1JIENvbnRyb2xsZXIgPj0gMHgyMDBhIGFyZSBhdCBsZWFzdCBjb21w bGlhbnQgd2l0aCBTQ0RDIHZlcnNpb24gMSAqLwo+ICAjZGVmaW5lIFNDRENfTUlOX1NPVVJDRV9W RVJTSU9OICAgICAgICAweDEKPgo+IC0jZGVmaW5lIEhETUkxNF9NQVhfVE1EU0NMSyAgICAgMzQw MDAwMDAwCj4gKyNkZWZpbmUgSERNSTE0X01BWF9UTURTQ0xLICAgICAoRFJNX0hETUlfMTRfTUFY X1RNRFNfQ0xLX0tIWiAqIDEwMDApCj4KPiAgZW51bSBoZG1pX2RhdGFtYXAgewo+ICAgICAgICAg UkdCNDQ0XzhCID0gMHgwMSwKPiBAQCAtMTI2NCw3ICsxMjY0LDcgQEAgc3RhdGljIGJvb2wgZHdf aGRtaV9zdXBwb3J0X3NjZGMoc3RydWN0IGR3X2hkbWkgKmhkbWksCj4gICAgICAgICAgKiBmb3Ig bG93IHJhdGVzIGlzIG5vdCBzdXBwb3J0ZWQgZWl0aGVyCj4gICAgICAgICAgKi8KPiAgICAgICAg IGlmICghZGlzcGxheS0+aGRtaS5zY2RjLnNjcmFtYmxpbmcubG93X3JhdGVzICYmCj4gLSAgICAg ICAgICAgZGlzcGxheS0+bWF4X3RtZHNfY2xvY2sgPD0gMzQwMDAwKQo+ICsgICAgICAgICAgIGRp c3BsYXktPm1heF90bWRzX2Nsb2NrIDw9IERSTV9IRE1JXzE0X01BWF9UTURTX0NMS19LSFopCj4g ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKPgo+ICAgICAgICAgcmV0dXJuIHRydWU7Cj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZWRpZC5jIGIvZHJpdmVycy9ncHUvZHJt L2RybV9lZGlkLmMKPiBpbmRleCA3YWEyYTU2YTcxYzguLmVjOGZiMmQwOThhZSAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2VkaWQuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9k cm1fZWRpZC5jCj4gQEAgLTQ5NjYsNyArNDk2Niw3IEBAIHN0YXRpYyB2b2lkIGRybV9wYXJzZV9o ZG1pX2ZvcnVtX3ZzZGIoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiAgICAgICAg ICAgICAgICAgdTMyIG1heF90bWRzX2Nsb2NrID0gaGZfdnNkYls1XSAqIDUwMDA7Cj4gICAgICAg ICAgICAgICAgIHN0cnVjdCBkcm1fc2NkYyAqc2NkYyA9ICZoZG1pLT5zY2RjOwo+Cj4gLSAgICAg ICAgICAgICAgIGlmIChtYXhfdG1kc19jbG9jayA+IDM0MDAwMCkgewo+ICsgICAgICAgICAgICAg ICBpZiAobWF4X3RtZHNfY2xvY2sgPiBEUk1fSERNSV8xNF9NQVhfVE1EU19DTEtfS0haKSB7Cj4g ICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheS0+bWF4X3RtZHNfY2xvY2sgPSBtYXhfdG1k c19jbG9jazsKPiAgICAgICAgICAgICAgICAgICAgICAgICBEUk1fREVCVUdfS01TKCJIRi1WU0RC OiBtYXggVE1EUyBjbG9jayAlZCBrSHpcbiIsCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBkaXNwbGF5LT5tYXhfdG1kc19jbG9jayk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfaGRtaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9oZG1pLmMKPiBpbmRleCBkMmU2MWY2YzZlMDguLjA2NjYyMDNkNTJiNyAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2hkbWkuYwo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfaGRtaS5jCj4gQEAgLTIyMjYs NyArMjIyNiw3IEBAIGludCBpbnRlbF9oZG1pX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyLAo+ICAgICAgICAgICAgICAgICBpZiAoc2NkYy0+c2NyYW1ibGluZy5s b3dfcmF0ZXMpCj4gICAgICAgICAgICAgICAgICAgICAgICAgcGlwZV9jb25maWctPmhkbWlfc2Ny YW1ibGluZyA9IHRydWU7Cj4KPiAtICAgICAgICAgICAgICAgaWYgKHBpcGVfY29uZmlnLT5wb3J0 X2Nsb2NrID4gMzQwMDAwKSB7Cj4gKyAgICAgICAgICAgICAgIGlmIChwaXBlX2NvbmZpZy0+cG9y dF9jbG9jayA+IERSTV9IRE1JXzE0X01BWF9UTURTX0NMS19LSFopIHsKPiAgICAgICAgICAgICAg ICAgICAgICAgICBwaXBlX2NvbmZpZy0+aGRtaV9zY3JhbWJsaW5nID0gdHJ1ZTsKPiAgICAgICAg ICAgICAgICAgICAgICAgICBwaXBlX2NvbmZpZy0+aGRtaV9oaWdoX3RtZHNfY2xvY2tfcmF0aW8g PSB0cnVlOwo+ICAgICAgICAgICAgICAgICB9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9tZXNvbi9tZXNvbl9kd19oZG1pLmMgYi9kcml2ZXJzL2dwdS9kcm0vbWVzb24vbWVzb25fZHdf aGRtaS5jCj4gaW5kZXggMGFmYmQxZTcwYmZjLi44MDc4NjY3YWVhMGUgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL21lc29uL21lc29uX2R3X2hkbWkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9tZXNvbi9tZXNvbl9kd19oZG1pLmMKPiBAQCAtNDM0LDcgKzQzNCw3IEBAIHN0YXRpYyBp bnQgZHdfaGRtaV9waHlfaW5pdChzdHJ1Y3QgZHdfaGRtaSAqaGRtaSwgdm9pZCAqZGF0YSwKPiAg ICAgICAgICAgICAgICAgcmVhZGxfcmVsYXhlZChwcml2LT5pb19iYXNlICsgX1JFRyhWUFVfSERN SV9TRVRUSU5HKSk7Cj4KPiAgICAgICAgIERSTV9ERUJVR19EUklWRVIoIlwiJXNcIiBkaXYlZFxu IiwgbW9kZS0+bmFtZSwKPiAtICAgICAgICAgICAgICAgICAgICAgICAgbW9kZS0+Y2xvY2sgPiAz NDAwMDAgPyA0MCA6IDEwKTsKPiArICAgICAgICAgICAgICAgICAgICAgICAgbW9kZS0+Y2xvY2sg PiBEUk1fSERNSV8xNF9NQVhfVE1EU19DTEtfS0haID8gNDAgOiAxMCk7Cj4KPiAgICAgICAgIC8q IEVuYWJsZSBjbG9ja3MgKi8KPiAgICAgICAgIHJlZ21hcF91cGRhdGVfYml0cyhwcml2LT5oaGks IEhISV9IRE1JX0NMS19DTlRMLCAweGZmZmYsIDB4MTAwKTsKPiBAQCAtNDU3LDcgKzQ1Nyw3IEBA IHN0YXRpYyBpbnQgZHdfaGRtaV9waHlfaW5pdChzdHJ1Y3QgZHdfaGRtaSAqaGRtaSwgdm9pZCAq ZGF0YSwKPiAgICAgICAgIGR3X2hkbWktPmRhdGEtPnRvcF93cml0ZShkd19oZG1pLCBIRE1JVFhf VE9QX0JJU1RfQ05UTCwgQklUKDEyKSk7Cj4KPiAgICAgICAgIC8qIFRNRFMgcGF0dGVybiBzZXR1 cCAqLwo+IC0gICAgICAgaWYgKG1vZGUtPmNsb2NrID4gMzQwMDAwICYmCj4gKyAgICAgICBpZiAo bW9kZS0+Y2xvY2sgPiBEUk1fSERNSV8xNF9NQVhfVE1EU19DTEtfS0haICYmCj4gICAgICAgICAg ICAgZHdfaGRtaS0+b3V0cHV0X2J1c19mbXQgPT0gTUVESUFfQlVTX0ZNVF9ZVVY4XzFYMjQpIHsK PiAgICAgICAgICAgICAgICAgZHdfaGRtaS0+ZGF0YS0+dG9wX3dyaXRlKGR3X2hkbWksIEhETUlU WF9UT1BfVE1EU19DTEtfUFRUTl8wMSwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMCk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2VuY29k ZXJzLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9lbmNvZGVycy5jCj4gaW5kZXgg NDY1NDlkNTE3OWVlLi5kZGQ4MTAwZTY5OWYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L3JhZGVvbi9yYWRlb25fZW5jb2RlcnMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24v cmFkZW9uX2VuY29kZXJzLmMKPiBAQCAtMzg0LDcgKzM4NCw3IEBAIGJvb2wgcmFkZW9uX2RpZ19t b25pdG9yX2lzX2R1YWxsaW5rKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKPiAgICAgICAg ICAgICAgICAgaWYgKHJhZGVvbl9jb25uZWN0b3ItPnVzZV9kaWdpdGFsKSB7Cj4gICAgICAgICAg ICAgICAgICAgICAgICAgLyogSERNSSAxLjMgc3VwcG9ydHMgdXAgdG8gMzQwIE1oeiBvdmVyIHNp bmdsZSBsaW5rICovCj4gICAgICAgICAgICAgICAgICAgICAgICAgaWYgKEFTSUNfSVNfRENFNihy ZGV2KSAmJiBkcm1fZGV0ZWN0X2hkbWlfbW9uaXRvcihyYWRlb25fY29ubmVjdG9yX2VkaWQoY29u bmVjdG9yKSkpIHsKPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwaXhlbF9j bG9jayA+IDM0MDAwMCkKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwaXhl bF9jbG9jayA+IERSTV9IRE1JXzE0X01BWF9UTURTX0NMS19LSFopCj4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwo+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZWxzZQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICByZXR1cm4gZmFsc2U7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9zdGkvc3Rp X2hkbWlfdHgzZzRjMjhwaHkuYyBiL2RyaXZlcnMvZ3B1L2RybS9zdGkvc3RpX2hkbWlfdHgzZzRj MjhwaHkuYwo+IGluZGV4IGQyNWVjZDRmNGI2Ny4uYmMyMTMyMzJhODc1IDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9zdGkvc3RpX2hkbWlfdHgzZzRjMjhwaHkuYwo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9zdGkvc3RpX2hkbWlfdHgzZzRjMjhwaHkuYwo+IEBAIC0xMDIsNyArMTAyLDcg QEAgc3RhdGljIGJvb2wgc3RpX2hkbWlfdHgzZzRjMjhwaHlfc3RhcnQoc3RydWN0IHN0aV9oZG1p ICpoZG1pKQo+ICAgICAgICAgdG1kc2NrID0gY2tweHBsbDsKPiAgICAgICAgIHBsbGN0cmwgfD0g NDAgPDwgUExMX0NGR19ORElWX1NISUZUOwo+Cj4gLSAgICAgICBpZiAodG1kc2NrID4gMzQwMDAw MDAwKSB7Cj4gKyAgICAgICBpZiAodG1kc2NrID4gKERSTV9IRE1JXzE0X01BWF9UTURTX0NMS19L SFogKiAxMDAwKSkgewo+ICAgICAgICAgICAgICAgICBEUk1fRVJST1IoIm91dHB1dCBUTURTIGNs b2NrICglZCkgb3V0IG9mIHJhbmdlXG4iLCB0bWRzY2spOwo+ICAgICAgICAgICAgICAgICBnb3Rv IGVycjsKPiAgICAgICAgIH0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL3Nv ci5jIGIvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL3Nvci5jCj4gaW5kZXggMGVhMzIwYzEwOTJiLi45 OWEyZDYyN2JmZWIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL3Nvci5jCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL3Nvci5jCj4gQEAgLTE4MTQsNyArMTgxNCw3IEBA IHRlZ3JhX3Nvcl9lbmNvZGVyX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29k ZXIsCj4gICAgICAgICAgKiBGb3IgSEJSMiBtb2RlcywgdGhlIFNPUiBicmljayBuZWVkcyB0byB1 c2UgdGhlIHgyMCBtdWx0aXBsaWVyLCBzbwo+ICAgICAgICAgICogdGhlIHBpeGVsIGNsb2NrIG11 c3QgYmUgY29ycmVjdGVkIGFjY29yZGluZ2x5Lgo+ICAgICAgICAgICovCj4gLSAgICAgICBpZiAo cGNsayA+PSAzNDAwMDAwMDApIHsKPiArICAgICAgIGlmIChwY2xrID49IChEUk1fSERNSV8xNF9N QVhfVE1EU19DTEtfS0haICogMTAwMCkpIHsKPiAgICAgICAgICAgICAgICAgc3RhdGUtPmxpbmtf c3BlZWQgPSAyMDsKPiAgICAgICAgICAgICAgICAgc3RhdGUtPnBjbGsgPSBwY2xrIC8gMjsKPiAg ICAgICAgIH0gZWxzZSB7Cj4gQEAgLTIxOTYsNyArMjE5Niw3IEBAIHN0YXRpYyB2b2lkIHRlZ3Jh X3Nvcl9oZG1pX3NjZGNfc3RhcnQoc3RydWN0IHRlZ3JhX3NvciAqc29yKQo+Cj4gICAgICAgICBt b2RlID0gJnNvci0+b3V0cHV0LmVuY29kZXIuY3J0Yy0+c3RhdGUtPmFkanVzdGVkX21vZGU7Cj4K PiAtICAgICAgIGlmIChtb2RlLT5jbG9jayA+PSAzNDAwMDAgJiYgc2NkYy0+c3VwcG9ydGVkKSB7 Cj4gKyAgICAgICBpZiAobW9kZS0+Y2xvY2sgPj0gRFJNX0hETUlfMTRfTUFYX1RNRFNfQ0xLX0tI WiAmJiBzY2RjLT5zdXBwb3J0ZWQpIHsKPiAgICAgICAgICAgICAgICAgc2NoZWR1bGVfZGVsYXll ZF93b3JrKCZzb3ItPnNjZGMsIG1zZWNzX3RvX2ppZmZpZXMoNTAwMCkpOwo+ICAgICAgICAgICAg ICAgICB0ZWdyYV9zb3JfaGRtaV9zY2RjX2VuYWJsZShzb3IpOwo+ICAgICAgICAgICAgICAgICBz b3ItPnNjZGNfZW5hYmxlZCA9IHRydWU7Cj4gQEAgLTIzNDAsNyArMjM0MCw3IEBAIHN0YXRpYyB2 b2lkIHRlZ3JhX3Nvcl9oZG1pX2VuYWJsZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCj4g ICAgICAgICB2YWx1ZSAmPSB+U09SX0NMS19DTlRSTF9EUF9MSU5LX1NQRUVEX01BU0s7Cj4gICAg ICAgICB2YWx1ZSAmPSB+U09SX0NMS19DTlRSTF9EUF9DTEtfU0VMX01BU0s7Cj4KPiAtICAgICAg IGlmIChtb2RlLT5jbG9jayA8IDM0MDAwMCkgewo+ICsgICAgICAgaWYgKG1vZGUtPmNsb2NrIDwg RFJNX0hETUlfMTRfTUFYX1RNRFNfQ0xLX0tIWikgewo+ICAgICAgICAgICAgICAgICBEUk1fREVC VUdfS01TKCJzZXR0aW5nIDIuNyBHSHogbGluayBzcGVlZFxuIik7Cj4gICAgICAgICAgICAgICAg IHZhbHVlIHw9IFNPUl9DTEtfQ05UUkxfRFBfTElOS19TUEVFRF9HMl83MDsKPiAgICAgICAgIH0g ZWxzZSB7Cj4gQEAgLTI0MjMsNyArMjQyMyw3IEBAIHN0YXRpYyB2b2lkIHRlZ3JhX3Nvcl9oZG1p X2VuYWJsZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCj4gICAgICAgICAvKiBhZGp1c3Qg Y2xvY2sgcmF0ZSBmb3IgSERNSSAyLjAgbW9kZXMgKi8KPiAgICAgICAgIHJhdGUgPSBjbGtfZ2V0 X3JhdGUoc29yLT5jbGtfcGFyZW50KTsKPgo+IC0gICAgICAgaWYgKG1vZGUtPmNsb2NrID49IDM0 MDAwMCkKPiArICAgICAgIGlmIChtb2RlLT5jbG9jayA+PSBEUk1fSERNSV8xNF9NQVhfVE1EU19D TEtfS0haKQo+ICAgICAgICAgICAgICAgICByYXRlIC89IDI7Cj4KPiAgICAgICAgIERSTV9ERUJV R19LTVMoInNldHRpbmcgY2xvY2sgdG8gJWx1IEh6LCBtb2RlOiAlbHUgSHpcbiIsIHJhdGUsIHBj bGspOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9oZG1pLmMgYi9kcml2 ZXJzL2dwdS9kcm0vdmM0L3ZjNF9oZG1pLmMKPiBpbmRleCBmYWI5YjkzZTFiODQuLmZjNzI0N2Nj MTAyMiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9oZG1pLmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9oZG1pLmMKPiBAQCAtOTcsMTEgKzk3LDExIEBACj4g ICNkZWZpbmUgSFNNX01JTl9DTE9DS19GUkVRICAgICAxMjAwMDAwMDAKPiAgI2RlZmluZSBDRUNf Q0xPQ0tfRlJFUSA0MDAwMAo+Cj4gLSNkZWZpbmUgSERNSV8xNF9NQVhfVE1EU19DTEsgICAoMzQw ICogMTAwMCAqIDEwMDApCj4gKyNkZWZpbmUgSERNSV8xNF9NQVhfVE1EU19DTEsgICAoRFJNX0hE TUlfMTRfTUFYX1RNRFNfQ0xLX0tIWiAqIDEwMDApCj4KPiAgc3RhdGljIGJvb2wgdmM0X2hkbWlf bW9kZV9uZWVkc19zY3JhbWJsaW5nKGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2Rl KQo+ICB7Cj4gLSAgICAgICByZXR1cm4gKG1vZGUtPmNsb2NrICogMTAwMCkgPiBIRE1JXzE0X01B WF9UTURTX0NMSzsKPiArICAgICAgIHJldHVybiBtb2RlLT5jbG9jayA+IERSTV9IRE1JXzE0X01B WF9UTURTX0NMS19LSFo7Cj4gIH0KPgo+ICBzdGF0aWMgaW50IHZjNF9oZG1pX2RlYnVnZnNfcmVn cyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZCkKPiBkaWZmIC0tZ2l0IGEvaW5jbHVk ZS9kcm0vZHJtX2Nvbm5lY3Rvci5oIGIvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oCj4gaW5k ZXggYjUwMWQwYmFkYWVhLi4wMzA2MzY2MzVhZjEgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9kcm0v ZHJtX2Nvbm5lY3Rvci5oCj4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oCj4gQEAg LTI2MCw2ICsyNjAsOCBAQCBzdHJ1Y3QgZHJtX2hkbWlfaW5mbyB7Cj4gICAgICAgICBzdHJ1Y3Qg ZHJtX2hkbWlfZHNjX2NhcCBkc2NfY2FwOwo+ICB9Owo+Cj4gKyNkZWZpbmUgRFJNX0hETUlfMTRf TUFYX1RNRFNfQ0xLX0tIWiAgICgzNDAgKiAxMDAwKQo+ICsKPiAgLyoqCj4gICAqIGVudW0gZHJt X2xpbmtfc3RhdHVzIC0gY29ubmVjdG9yJ3MgbGlua19zdGF0dXMgcHJvcGVydHkgdmFsdWUKPiAg ICoKPiAtLQo+IDIuMzIuMAo+CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpsaW51eC1hbWxvZ2ljIG1haWxpbmcgbGlzdApsaW51eC1hbWxvZ2ljQGxpc3Rz LmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5m by9saW51eC1hbWxvZ2ljCg== 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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3FDACC433F5 for ; Tue, 2 Nov 2021 17:52:14 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 0D4B260F02 for ; Tue, 2 Nov 2021 17:52:14 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 0D4B260F02 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.infradead.org 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:Cc:To:Subject:Message-ID:Date:From: In-Reply-To:References:MIME-Version:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=PrnqqV0Dw2WfFFTcjC7kI7G14oa/9Z+MgLoLwuUcleg=; b=salm+EEeRwqWaZ EuifhcwMCU5QQWnkdJJ6wf+Rw6S7f/bBAVLRv0wwFAiB4RQ4pFHkKOimCJOXyAzmY3l7YVog2Giek gPRIrA2axVtPWMgYC4BfQpqgEr2mUJVKGPwG4zAtVtqJwmypwTxjY0JfdQOKFA0l/iXlFSp2LsG49 q+YzLdNFwV/e4km5FyNZH/cOXL2+X3ZVZ4P0RkAyezWmnfP2bFeIN1A27v9fsGL/d2tRaVnqBsMqJ iG+Z81IMrg1i1jwG7IbtNuVKMIynpoe5fp/Uu2TN5I7wRkw69qmNBAh5d/kdHVtoMOGml63sIK37u BbeFbtQ7eL6YU9Twg9sw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mhxvs-002YOy-BI; Tue, 02 Nov 2021 17:50:48 +0000 Received: from mail-ot1-x334.google.com ([2607:f8b0:4864:20::334]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1mhxvk-002YKa-07; Tue, 02 Nov 2021 17:50:44 +0000 Received: by mail-ot1-x334.google.com with SMTP id t17-20020a056830083100b00553ced10177so21057ots.1; Tue, 02 Nov 2021 10:50:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=JCnH8IVQSN/Tydtefp2s0zrp4McuTwvXnflW3E4hZFk=; b=VdBLOAQmTW8IYQmzlxua3oCaylRz+xtYXTY/C+2FP3cDsBBqJC/OlAfidpp+sAYfWh XZpOlzP9xIk4Vl25k7NFe9yrLOeWEoVdATlZYJ26fpbAEB29KxhDAWnAZSxunMaT21vy hovCeL8T24CqDQlv/nSLcDx0HVEb+OmzGUI5ZifOQetoIW7x0EMiF+Lx0Tjq9eWFMmAq +uypRNFbpVFIVTg3XXzms1kY+gwaskiDyGaj1ikcUZqT3D6v9UkQmRHG5parwKYwV+i1 UKIZVaz02RXWOmjbe9NrrRmxgvtKjbwudjuwd84JzgQdu8Gtook+wRkf5xYqIxbAdgY0 bC/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=JCnH8IVQSN/Tydtefp2s0zrp4McuTwvXnflW3E4hZFk=; b=TEKMP74d2oeTYG3g9Gqq6oX/WP2U44GusIogqpY/UkDsKyuZQujb0MibmQ7yjySYL8 c0dvEUsmoNxOEplhNVJmSH4x8xuqquAdZ2ila2E3OQLnwvsaFZphhPWMpL8kWRsW0iH/ b0KbCZZvir4bkcSMb8RNvTQYU8wb3gZpW6M6eifrNIh+E5XeEX+L8/53EsUAs7nPQ49d 1PNg2aADEsIxJR5svza4xsb8qzZUIiuMqseMRWmektgOtqJvS0x7P8gEYOU8hnmHn5m7 DEnKuMg9bOlEe1qLpVSCOjbJguIIpibmE+IyIiVBXP656Cr2PUahDipI2wTZEbhqVHzW 1wOw== X-Gm-Message-State: AOAM531vtnwb7zn2jt3gfZFqY2zC/1QlzWNc2t4ETIwPKn3g7tX7EYDc Cn3OV7W/NpDIaFoTilFBJPdYHLtwC6Oq0AGp7qE= X-Google-Smtp-Source: ABdhPJylgDZ1V00UpveCgBw7YMyDGwlexpSVyGJmOUKlwqguIVRxCkdmleuRmNBGUuHIPNCqVvqSPwGYxIIoWRPWgiY= X-Received: by 2002:a9d:1b4f:: with SMTP id l73mr28917145otl.200.1635875437736; Tue, 02 Nov 2021 10:50:37 -0700 (PDT) MIME-Version: 1.0 References: <20211102145944.259181-1-maxime@cerno.tech> <20211102145944.259181-2-maxime@cerno.tech> In-Reply-To: <20211102145944.259181-2-maxime@cerno.tech> From: Alex Deucher Date: Tue, 2 Nov 2021 13:50:26 -0400 Message-ID: Subject: Re: [PATCH 01/13] drm/connector: Add define for HDMI 1.4 Maximum Pixel Rate To: Maxime Ripard Cc: Daniel Vetter , David Airlie , Maarten Lankhorst , Thomas Zimmermann , Emma Anholt , Neil Armstrong , Maling list - DRI developers , Andrzej Hajda , Thierry Reding , Laurent Pinchart , Benjamin Gaignard , Phil Elwell , Jerome Brunet , Tim Gover , Dave Stevenson , Kevin Hilman , Jernej Skrabec , Jonathan Hunter , Jonas Karlman , Martin Blumenstingl , Intel Graphics Development , Rodrigo Vivi , linux-tegra@vger.kernel.org, linux-amlogic@lists.infradead.org, linux-arm-kernel , amd-gfx list , Dom Cobley , "Pan, Xinhui" , Robert Foss , Alex Deucher , =?UTF-8?Q?Christian_K=C3=B6nig?= X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20211102_105040_084555_8E0A97FC X-CRM114-Status: GOOD ( 28.09 ) 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 T24gVHVlLCBOb3YgMiwgMjAyMSBhdCAxMDo1OSBBTSBNYXhpbWUgUmlwYXJkIDxtYXhpbWVAY2Vy bm8udGVjaD4gd3JvdGU6Cj4KPiBBIGxvdCBvZiBkcml2ZXJzIG9wZW4tY29kZSB0aGUgSERNSSAx LjQgbWF4aW11bSBwaXhlbCByYXRlIGluIHRoZWlyCj4gZHJpdmVyIHRvIHRlc3Qgd2hldGhlciB0 aGUgcmVzb2x1dGlvbnMgYXJlIHN1cHBvcnRlZCBvciBpZiB0aGUKPiBzY3JhbWJsaW5nIG5lZWRz IHRvIGJlIGVuYWJsZWQuCj4KPiBMZXQncyBjcmVhdGUgYSBjb21tb24gZGVmaW5lIGZvciBldmVy eW9uZSB0byB1c2UgaXQuCj4KPiBDYzogQWxleCBEZXVjaGVyIDxhbGV4YW5kZXIuZGV1Y2hlckBh bWQuY29tPgo+IENjOiBhbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IENjOiBBbmRyemVq IEhhamRhIDxhLmhhamRhQHNhbXN1bmcuY29tPgo+IENjOiBCZW5qYW1pbiBHYWlnbmFyZCA8YmVu amFtaW4uZ2FpZ25hcmRAbGluYXJvLm9yZz4KPiBDYzogIkNocmlzdGlhbiBLw7ZuaWciIDxjaHJp c3RpYW4ua29lbmlnQGFtZC5jb20+Cj4gQ2M6IEVtbWEgQW5ob2x0IDxlbW1hQGFuaG9sdC5uZXQ+ Cj4gQ2M6IGludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBDYzogSmFuaSBOaWt1bGEg PGphbmkubmlrdWxhQGxpbnV4LmludGVsLmNvbT4KPiBDYzogSmVybmVqIFNrcmFiZWMgPGplcm5l ai5za3JhYmVjQGdtYWlsLmNvbT4KPiBDYzogSmVyb21lIEJydW5ldCA8amJydW5ldEBiYXlsaWJy ZS5jb20+Cj4gQ2M6IEpvbmFzIEthcmxtYW4gPGpvbmFzQGt3aWJvby5zZT4KPiBDYzogSm9uYXRo YW4gSHVudGVyIDxqb25hdGhhbmhAbnZpZGlhLmNvbT4KPiBDYzogSm9vbmFzIExhaHRpbmVuIDxq b29uYXMubGFodGluZW5AbGludXguaW50ZWwuY29tPgo+IENjOiBLZXZpbiBIaWxtYW4gPGtoaWxt YW5AYmF5bGlicmUuY29tPgo+IENjOiBMYXVyZW50IFBpbmNoYXJ0IDxMYXVyZW50LnBpbmNoYXJ0 QGlkZWFzb25ib2FyZC5jb20+Cj4gQ2M6IGxpbnV4LWFtbG9naWNAbGlzdHMuaW5mcmFkZWFkLm9y Zwo+IENjOiBsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKPiBDYzogbGludXgt dGVncmFAdmdlci5rZXJuZWwub3JnCj4gQ2M6IE1hcnRpbiBCbHVtZW5zdGluZ2wgPG1hcnRpbi5i bHVtZW5zdGluZ2xAZ29vZ2xlbWFpbC5jb20+Cj4gQ2M6IE5laWwgQXJtc3Ryb25nIDxuYXJtc3Ry b25nQGJheWxpYnJlLmNvbT4KPiBDYzogIlBhbiwgWGluaHVpIiA8WGluaHVpLlBhbkBhbWQuY29t Pgo+IENjOiBSb2JlcnQgRm9zcyA8cm9iZXJ0LmZvc3NAbGluYXJvLm9yZz4KPiBDYzogUm9kcmln byBWaXZpIDxyb2RyaWdvLnZpdmlAaW50ZWwuY29tPgo+IENjOiBUaGllcnJ5IFJlZGluZyA8dGhp ZXJyeS5yZWRpbmdAZ21haWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IE1heGltZSBSaXBhcmQgPG1h eGltZUBjZXJuby50ZWNoPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3N5bm9wc3lz L2R3LWhkbWkuYyAgfCA0ICsrLS0KPiAgZHJpdmVycy9ncHUvZHJtL2RybV9lZGlkLmMgICAgICAg ICAgICAgICAgIHwgMiArLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2hk bWkuYyAgfCAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9tZXNvbi9tZXNvbl9kd19oZG1pLmMgICAg ICB8IDQgKystLQo+ICBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9lbmNvZGVycy5jICAg fCAyICstCgpGb3IgcmFkZW9uOgpBY2tlZC1ieTogQWxleCBEZXVjaGVyIDxhbGV4YW5kZXIuZGV1 Y2hlckBhbWQuY29tPgoKTm90ZSB0aGF0IHRoZXJlIGFyZSBzZXZlcmFsIGluc3RhbmNlcyBvZiB0 aGlzIGluIGFtZGdwdSBhcyB3ZWxsOgpkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVf ZW5jb2RlcnMuYzogICAgICAgICAgICAgICAgaWYKKHBpeGVsX2Nsb2NrID4gMzQwMDAwKQpkcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZW5jb2RlcnMuYzogICAgICAgICAgICAgICAg aWYKKHBpeGVsX2Nsb2NrID4gMzQwMDAwKQpkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfY29ubmVjdG9ycy5jOiAgICAgICAgICAgIGlmCihtb2RlLT5jbG9jayA+IDM0MDAwMCkKZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Nvbm5lY3RvcnMuYzogICAgICAgICAgICAg ICAgaWYKKG1vZGUtPmNsb2NrID4gMzQwMDAwKQoKQWxleAoKPiAgZHJpdmVycy9ncHUvZHJtL3N0 aS9zdGlfaGRtaV90eDNnNGMyOHBoeS5jIHwgMiArLQo+ICBkcml2ZXJzL2dwdS9kcm0vdGVncmEv c29yLmMgICAgICAgICAgICAgICAgfCA4ICsrKystLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS92YzQv dmM0X2hkbWkuYyAgICAgICAgICAgICB8IDQgKystLQo+ICBpbmNsdWRlL2RybS9kcm1fY29ubmVj dG9yLmggICAgICAgICAgICAgICAgfCAyICsrCj4gIDkgZmlsZXMgY2hhbmdlZCwgMTYgaW5zZXJ0 aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2JyaWRnZS9zeW5vcHN5cy9kdy1oZG1pLmMgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3N5bm9w c3lzL2R3LWhkbWkuYwo+IGluZGV4IDYyYWU2MzU2NWQzYS4uM2E1OGRiMzU3YmUwIDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2Uvc3lub3BzeXMvZHctaGRtaS5jCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zeW5vcHN5cy9kdy1oZG1pLmMKPiBAQCAtNDYsNyArNDYs NyBAQAo+ICAvKiBEVy1IRE1JIENvbnRyb2xsZXIgPj0gMHgyMDBhIGFyZSBhdCBsZWFzdCBjb21w bGlhbnQgd2l0aCBTQ0RDIHZlcnNpb24gMSAqLwo+ICAjZGVmaW5lIFNDRENfTUlOX1NPVVJDRV9W RVJTSU9OICAgICAgICAweDEKPgo+IC0jZGVmaW5lIEhETUkxNF9NQVhfVE1EU0NMSyAgICAgMzQw MDAwMDAwCj4gKyNkZWZpbmUgSERNSTE0X01BWF9UTURTQ0xLICAgICAoRFJNX0hETUlfMTRfTUFY X1RNRFNfQ0xLX0tIWiAqIDEwMDApCj4KPiAgZW51bSBoZG1pX2RhdGFtYXAgewo+ICAgICAgICAg UkdCNDQ0XzhCID0gMHgwMSwKPiBAQCAtMTI2NCw3ICsxMjY0LDcgQEAgc3RhdGljIGJvb2wgZHdf aGRtaV9zdXBwb3J0X3NjZGMoc3RydWN0IGR3X2hkbWkgKmhkbWksCj4gICAgICAgICAgKiBmb3Ig bG93IHJhdGVzIGlzIG5vdCBzdXBwb3J0ZWQgZWl0aGVyCj4gICAgICAgICAgKi8KPiAgICAgICAg IGlmICghZGlzcGxheS0+aGRtaS5zY2RjLnNjcmFtYmxpbmcubG93X3JhdGVzICYmCj4gLSAgICAg ICAgICAgZGlzcGxheS0+bWF4X3RtZHNfY2xvY2sgPD0gMzQwMDAwKQo+ICsgICAgICAgICAgIGRp c3BsYXktPm1heF90bWRzX2Nsb2NrIDw9IERSTV9IRE1JXzE0X01BWF9UTURTX0NMS19LSFopCj4g ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKPgo+ICAgICAgICAgcmV0dXJuIHRydWU7Cj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZWRpZC5jIGIvZHJpdmVycy9ncHUvZHJt L2RybV9lZGlkLmMKPiBpbmRleCA3YWEyYTU2YTcxYzguLmVjOGZiMmQwOThhZSAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2VkaWQuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9k cm1fZWRpZC5jCj4gQEAgLTQ5NjYsNyArNDk2Niw3IEBAIHN0YXRpYyB2b2lkIGRybV9wYXJzZV9o ZG1pX2ZvcnVtX3ZzZGIoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiAgICAgICAg ICAgICAgICAgdTMyIG1heF90bWRzX2Nsb2NrID0gaGZfdnNkYls1XSAqIDUwMDA7Cj4gICAgICAg ICAgICAgICAgIHN0cnVjdCBkcm1fc2NkYyAqc2NkYyA9ICZoZG1pLT5zY2RjOwo+Cj4gLSAgICAg ICAgICAgICAgIGlmIChtYXhfdG1kc19jbG9jayA+IDM0MDAwMCkgewo+ICsgICAgICAgICAgICAg ICBpZiAobWF4X3RtZHNfY2xvY2sgPiBEUk1fSERNSV8xNF9NQVhfVE1EU19DTEtfS0haKSB7Cj4g ICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheS0+bWF4X3RtZHNfY2xvY2sgPSBtYXhfdG1k c19jbG9jazsKPiAgICAgICAgICAgICAgICAgICAgICAgICBEUk1fREVCVUdfS01TKCJIRi1WU0RC OiBtYXggVE1EUyBjbG9jayAlZCBrSHpcbiIsCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBkaXNwbGF5LT5tYXhfdG1kc19jbG9jayk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfaGRtaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9oZG1pLmMKPiBpbmRleCBkMmU2MWY2YzZlMDguLjA2NjYyMDNkNTJiNyAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2hkbWkuYwo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfaGRtaS5jCj4gQEAgLTIyMjYs NyArMjIyNiw3IEBAIGludCBpbnRlbF9oZG1pX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyLAo+ICAgICAgICAgICAgICAgICBpZiAoc2NkYy0+c2NyYW1ibGluZy5s b3dfcmF0ZXMpCj4gICAgICAgICAgICAgICAgICAgICAgICAgcGlwZV9jb25maWctPmhkbWlfc2Ny YW1ibGluZyA9IHRydWU7Cj4KPiAtICAgICAgICAgICAgICAgaWYgKHBpcGVfY29uZmlnLT5wb3J0 X2Nsb2NrID4gMzQwMDAwKSB7Cj4gKyAgICAgICAgICAgICAgIGlmIChwaXBlX2NvbmZpZy0+cG9y dF9jbG9jayA+IERSTV9IRE1JXzE0X01BWF9UTURTX0NMS19LSFopIHsKPiAgICAgICAgICAgICAg ICAgICAgICAgICBwaXBlX2NvbmZpZy0+aGRtaV9zY3JhbWJsaW5nID0gdHJ1ZTsKPiAgICAgICAg ICAgICAgICAgICAgICAgICBwaXBlX2NvbmZpZy0+aGRtaV9oaWdoX3RtZHNfY2xvY2tfcmF0aW8g PSB0cnVlOwo+ICAgICAgICAgICAgICAgICB9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9tZXNvbi9tZXNvbl9kd19oZG1pLmMgYi9kcml2ZXJzL2dwdS9kcm0vbWVzb24vbWVzb25fZHdf aGRtaS5jCj4gaW5kZXggMGFmYmQxZTcwYmZjLi44MDc4NjY3YWVhMGUgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL21lc29uL21lc29uX2R3X2hkbWkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9tZXNvbi9tZXNvbl9kd19oZG1pLmMKPiBAQCAtNDM0LDcgKzQzNCw3IEBAIHN0YXRpYyBp bnQgZHdfaGRtaV9waHlfaW5pdChzdHJ1Y3QgZHdfaGRtaSAqaGRtaSwgdm9pZCAqZGF0YSwKPiAg ICAgICAgICAgICAgICAgcmVhZGxfcmVsYXhlZChwcml2LT5pb19iYXNlICsgX1JFRyhWUFVfSERN SV9TRVRUSU5HKSk7Cj4KPiAgICAgICAgIERSTV9ERUJVR19EUklWRVIoIlwiJXNcIiBkaXYlZFxu IiwgbW9kZS0+bmFtZSwKPiAtICAgICAgICAgICAgICAgICAgICAgICAgbW9kZS0+Y2xvY2sgPiAz NDAwMDAgPyA0MCA6IDEwKTsKPiArICAgICAgICAgICAgICAgICAgICAgICAgbW9kZS0+Y2xvY2sg PiBEUk1fSERNSV8xNF9NQVhfVE1EU19DTEtfS0haID8gNDAgOiAxMCk7Cj4KPiAgICAgICAgIC8q IEVuYWJsZSBjbG9ja3MgKi8KPiAgICAgICAgIHJlZ21hcF91cGRhdGVfYml0cyhwcml2LT5oaGks IEhISV9IRE1JX0NMS19DTlRMLCAweGZmZmYsIDB4MTAwKTsKPiBAQCAtNDU3LDcgKzQ1Nyw3IEBA IHN0YXRpYyBpbnQgZHdfaGRtaV9waHlfaW5pdChzdHJ1Y3QgZHdfaGRtaSAqaGRtaSwgdm9pZCAq ZGF0YSwKPiAgICAgICAgIGR3X2hkbWktPmRhdGEtPnRvcF93cml0ZShkd19oZG1pLCBIRE1JVFhf VE9QX0JJU1RfQ05UTCwgQklUKDEyKSk7Cj4KPiAgICAgICAgIC8qIFRNRFMgcGF0dGVybiBzZXR1 cCAqLwo+IC0gICAgICAgaWYgKG1vZGUtPmNsb2NrID4gMzQwMDAwICYmCj4gKyAgICAgICBpZiAo bW9kZS0+Y2xvY2sgPiBEUk1fSERNSV8xNF9NQVhfVE1EU19DTEtfS0haICYmCj4gICAgICAgICAg ICAgZHdfaGRtaS0+b3V0cHV0X2J1c19mbXQgPT0gTUVESUFfQlVTX0ZNVF9ZVVY4XzFYMjQpIHsK PiAgICAgICAgICAgICAgICAgZHdfaGRtaS0+ZGF0YS0+dG9wX3dyaXRlKGR3X2hkbWksIEhETUlU WF9UT1BfVE1EU19DTEtfUFRUTl8wMSwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMCk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2VuY29k ZXJzLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9lbmNvZGVycy5jCj4gaW5kZXgg NDY1NDlkNTE3OWVlLi5kZGQ4MTAwZTY5OWYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L3JhZGVvbi9yYWRlb25fZW5jb2RlcnMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24v cmFkZW9uX2VuY29kZXJzLmMKPiBAQCAtMzg0LDcgKzM4NCw3IEBAIGJvb2wgcmFkZW9uX2RpZ19t b25pdG9yX2lzX2R1YWxsaW5rKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKPiAgICAgICAg ICAgICAgICAgaWYgKHJhZGVvbl9jb25uZWN0b3ItPnVzZV9kaWdpdGFsKSB7Cj4gICAgICAgICAg ICAgICAgICAgICAgICAgLyogSERNSSAxLjMgc3VwcG9ydHMgdXAgdG8gMzQwIE1oeiBvdmVyIHNp bmdsZSBsaW5rICovCj4gICAgICAgICAgICAgICAgICAgICAgICAgaWYgKEFTSUNfSVNfRENFNihy ZGV2KSAmJiBkcm1fZGV0ZWN0X2hkbWlfbW9uaXRvcihyYWRlb25fY29ubmVjdG9yX2VkaWQoY29u bmVjdG9yKSkpIHsKPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwaXhlbF9j bG9jayA+IDM0MDAwMCkKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwaXhl bF9jbG9jayA+IERSTV9IRE1JXzE0X01BWF9UTURTX0NMS19LSFopCj4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwo+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZWxzZQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICByZXR1cm4gZmFsc2U7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9zdGkvc3Rp X2hkbWlfdHgzZzRjMjhwaHkuYyBiL2RyaXZlcnMvZ3B1L2RybS9zdGkvc3RpX2hkbWlfdHgzZzRj MjhwaHkuYwo+IGluZGV4IGQyNWVjZDRmNGI2Ny4uYmMyMTMyMzJhODc1IDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9zdGkvc3RpX2hkbWlfdHgzZzRjMjhwaHkuYwo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9zdGkvc3RpX2hkbWlfdHgzZzRjMjhwaHkuYwo+IEBAIC0xMDIsNyArMTAyLDcg QEAgc3RhdGljIGJvb2wgc3RpX2hkbWlfdHgzZzRjMjhwaHlfc3RhcnQoc3RydWN0IHN0aV9oZG1p ICpoZG1pKQo+ICAgICAgICAgdG1kc2NrID0gY2tweHBsbDsKPiAgICAgICAgIHBsbGN0cmwgfD0g NDAgPDwgUExMX0NGR19ORElWX1NISUZUOwo+Cj4gLSAgICAgICBpZiAodG1kc2NrID4gMzQwMDAw MDAwKSB7Cj4gKyAgICAgICBpZiAodG1kc2NrID4gKERSTV9IRE1JXzE0X01BWF9UTURTX0NMS19L SFogKiAxMDAwKSkgewo+ICAgICAgICAgICAgICAgICBEUk1fRVJST1IoIm91dHB1dCBUTURTIGNs b2NrICglZCkgb3V0IG9mIHJhbmdlXG4iLCB0bWRzY2spOwo+ICAgICAgICAgICAgICAgICBnb3Rv IGVycjsKPiAgICAgICAgIH0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL3Nv ci5jIGIvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL3Nvci5jCj4gaW5kZXggMGVhMzIwYzEwOTJiLi45 OWEyZDYyN2JmZWIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL3Nvci5jCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL3Nvci5jCj4gQEAgLTE4MTQsNyArMTgxNCw3IEBA IHRlZ3JhX3Nvcl9lbmNvZGVyX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29k ZXIsCj4gICAgICAgICAgKiBGb3IgSEJSMiBtb2RlcywgdGhlIFNPUiBicmljayBuZWVkcyB0byB1 c2UgdGhlIHgyMCBtdWx0aXBsaWVyLCBzbwo+ICAgICAgICAgICogdGhlIHBpeGVsIGNsb2NrIG11 c3QgYmUgY29ycmVjdGVkIGFjY29yZGluZ2x5Lgo+ICAgICAgICAgICovCj4gLSAgICAgICBpZiAo cGNsayA+PSAzNDAwMDAwMDApIHsKPiArICAgICAgIGlmIChwY2xrID49IChEUk1fSERNSV8xNF9N QVhfVE1EU19DTEtfS0haICogMTAwMCkpIHsKPiAgICAgICAgICAgICAgICAgc3RhdGUtPmxpbmtf c3BlZWQgPSAyMDsKPiAgICAgICAgICAgICAgICAgc3RhdGUtPnBjbGsgPSBwY2xrIC8gMjsKPiAg ICAgICAgIH0gZWxzZSB7Cj4gQEAgLTIxOTYsNyArMjE5Niw3IEBAIHN0YXRpYyB2b2lkIHRlZ3Jh X3Nvcl9oZG1pX3NjZGNfc3RhcnQoc3RydWN0IHRlZ3JhX3NvciAqc29yKQo+Cj4gICAgICAgICBt b2RlID0gJnNvci0+b3V0cHV0LmVuY29kZXIuY3J0Yy0+c3RhdGUtPmFkanVzdGVkX21vZGU7Cj4K PiAtICAgICAgIGlmIChtb2RlLT5jbG9jayA+PSAzNDAwMDAgJiYgc2NkYy0+c3VwcG9ydGVkKSB7 Cj4gKyAgICAgICBpZiAobW9kZS0+Y2xvY2sgPj0gRFJNX0hETUlfMTRfTUFYX1RNRFNfQ0xLX0tI WiAmJiBzY2RjLT5zdXBwb3J0ZWQpIHsKPiAgICAgICAgICAgICAgICAgc2NoZWR1bGVfZGVsYXll ZF93b3JrKCZzb3ItPnNjZGMsIG1zZWNzX3RvX2ppZmZpZXMoNTAwMCkpOwo+ICAgICAgICAgICAg ICAgICB0ZWdyYV9zb3JfaGRtaV9zY2RjX2VuYWJsZShzb3IpOwo+ICAgICAgICAgICAgICAgICBz b3ItPnNjZGNfZW5hYmxlZCA9IHRydWU7Cj4gQEAgLTIzNDAsNyArMjM0MCw3IEBAIHN0YXRpYyB2 b2lkIHRlZ3JhX3Nvcl9oZG1pX2VuYWJsZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCj4g ICAgICAgICB2YWx1ZSAmPSB+U09SX0NMS19DTlRSTF9EUF9MSU5LX1NQRUVEX01BU0s7Cj4gICAg ICAgICB2YWx1ZSAmPSB+U09SX0NMS19DTlRSTF9EUF9DTEtfU0VMX01BU0s7Cj4KPiAtICAgICAg IGlmIChtb2RlLT5jbG9jayA8IDM0MDAwMCkgewo+ICsgICAgICAgaWYgKG1vZGUtPmNsb2NrIDwg RFJNX0hETUlfMTRfTUFYX1RNRFNfQ0xLX0tIWikgewo+ICAgICAgICAgICAgICAgICBEUk1fREVC VUdfS01TKCJzZXR0aW5nIDIuNyBHSHogbGluayBzcGVlZFxuIik7Cj4gICAgICAgICAgICAgICAg IHZhbHVlIHw9IFNPUl9DTEtfQ05UUkxfRFBfTElOS19TUEVFRF9HMl83MDsKPiAgICAgICAgIH0g ZWxzZSB7Cj4gQEAgLTI0MjMsNyArMjQyMyw3IEBAIHN0YXRpYyB2b2lkIHRlZ3JhX3Nvcl9oZG1p X2VuYWJsZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCj4gICAgICAgICAvKiBhZGp1c3Qg Y2xvY2sgcmF0ZSBmb3IgSERNSSAyLjAgbW9kZXMgKi8KPiAgICAgICAgIHJhdGUgPSBjbGtfZ2V0 X3JhdGUoc29yLT5jbGtfcGFyZW50KTsKPgo+IC0gICAgICAgaWYgKG1vZGUtPmNsb2NrID49IDM0 MDAwMCkKPiArICAgICAgIGlmIChtb2RlLT5jbG9jayA+PSBEUk1fSERNSV8xNF9NQVhfVE1EU19D TEtfS0haKQo+ICAgICAgICAgICAgICAgICByYXRlIC89IDI7Cj4KPiAgICAgICAgIERSTV9ERUJV R19LTVMoInNldHRpbmcgY2xvY2sgdG8gJWx1IEh6LCBtb2RlOiAlbHUgSHpcbiIsIHJhdGUsIHBj bGspOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9oZG1pLmMgYi9kcml2 ZXJzL2dwdS9kcm0vdmM0L3ZjNF9oZG1pLmMKPiBpbmRleCBmYWI5YjkzZTFiODQuLmZjNzI0N2Nj MTAyMiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9oZG1pLmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9oZG1pLmMKPiBAQCAtOTcsMTEgKzk3LDExIEBACj4g ICNkZWZpbmUgSFNNX01JTl9DTE9DS19GUkVRICAgICAxMjAwMDAwMDAKPiAgI2RlZmluZSBDRUNf Q0xPQ0tfRlJFUSA0MDAwMAo+Cj4gLSNkZWZpbmUgSERNSV8xNF9NQVhfVE1EU19DTEsgICAoMzQw ICogMTAwMCAqIDEwMDApCj4gKyNkZWZpbmUgSERNSV8xNF9NQVhfVE1EU19DTEsgICAoRFJNX0hE TUlfMTRfTUFYX1RNRFNfQ0xLX0tIWiAqIDEwMDApCj4KPiAgc3RhdGljIGJvb2wgdmM0X2hkbWlf bW9kZV9uZWVkc19zY3JhbWJsaW5nKGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2Rl KQo+ICB7Cj4gLSAgICAgICByZXR1cm4gKG1vZGUtPmNsb2NrICogMTAwMCkgPiBIRE1JXzE0X01B WF9UTURTX0NMSzsKPiArICAgICAgIHJldHVybiBtb2RlLT5jbG9jayA+IERSTV9IRE1JXzE0X01B WF9UTURTX0NMS19LSFo7Cj4gIH0KPgo+ICBzdGF0aWMgaW50IHZjNF9oZG1pX2RlYnVnZnNfcmVn cyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZCkKPiBkaWZmIC0tZ2l0IGEvaW5jbHVk ZS9kcm0vZHJtX2Nvbm5lY3Rvci5oIGIvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oCj4gaW5k ZXggYjUwMWQwYmFkYWVhLi4wMzA2MzY2MzVhZjEgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9kcm0v ZHJtX2Nvbm5lY3Rvci5oCj4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oCj4gQEAg LTI2MCw2ICsyNjAsOCBAQCBzdHJ1Y3QgZHJtX2hkbWlfaW5mbyB7Cj4gICAgICAgICBzdHJ1Y3Qg ZHJtX2hkbWlfZHNjX2NhcCBkc2NfY2FwOwo+ICB9Owo+Cj4gKyNkZWZpbmUgRFJNX0hETUlfMTRf TUFYX1RNRFNfQ0xLX0tIWiAgICgzNDAgKiAxMDAwKQo+ICsKPiAgLyoqCj4gICAqIGVudW0gZHJt X2xpbmtfc3RhdHVzIC0gY29ubmVjdG9yJ3MgbGlua19zdGF0dXMgcHJvcGVydHkgdmFsdWUKPiAg ICoKPiAtLQo+IDIuMzIuMAo+CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVs QGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9s aXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==