From nobody Mon Feb 9 08:47:03 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 463C6C4708E for ; Wed, 7 Dec 2022 11:55:47 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230124AbiLGLzp (ORCPT ); Wed, 7 Dec 2022 06:55:45 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56196 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230172AbiLGLzP (ORCPT ); Wed, 7 Dec 2022 06:55:15 -0500 Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com [66.111.4.27]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F3348222BE for ; Wed, 7 Dec 2022 03:55:14 -0800 (PST) Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailout.nyi.internal (Postfix) with ESMTP id 6B68A5C01F4; Wed, 7 Dec 2022 06:55:14 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute3.internal (MEProxy); Wed, 07 Dec 2022 06:55:14 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cerno.tech; h=cc :cc:content-transfer-encoding:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to; s=fm2; t=1670414114; x= 1670500514; bh=cgmG7mw8sSm/aU9WnG7N6p0KXB0hCVQObDUWl5bXwfQ=; b=U sYQjaukD978c2Dp2FfHcV4YUFy3SYgRZRgAfSkRXUkp6XciXN8XIHt/x95DRDkvX D1Vtg5n74uIHxgaBS0lRmQsiYxQWPh5YThbbpHkaPqkY7J5fFCS7DreYH+mYp5+P lxBhTwe/VfEa/Sde5FSM5mTosb7u2613zM0s0Ux2O8ucWU1NzJC4BqnWT3csRNOt S8pEu1xs0F+JAgvguxGLb688E6oSfwvZk6EoRD0sqVCuO40ZSnQ+6Pyom6uvldNY KdfP3MbdE/Yj2KmQNbhCbDxFQlUniso3Ut75RQS3dXeWvzcBPR6CHpZIY9V46OYT WgMijRfF6Nip71YZ7aEnw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1670414114; x= 1670500514; bh=cgmG7mw8sSm/aU9WnG7N6p0KXB0hCVQObDUWl5bXwfQ=; b=F 5ccBQjw88qzkIN/dGuW04BiP/m5KplyeKHkPE4IT2TsTDH8LQBz6AKswQ89y3hhC raRJqOoIToJp81XcqdWw27nwS7q7K4KIsYJokT4hujzgzlq+2GO0kWwzs2+0g/ei bGljPyhpG97qaO8l29OjNjnM8Q3hQ5CApxxwb6UceuSkUYX8x1qt31L59toXJTwQ UbCCdJTewE2ihdHXaGsKwFU0Zv1MnpVqX281cGAOw6aiBug7Q+yIQcApMjs8jG0E o1lHggIrRZNAnTn6vImq1qfSFAMaq30Fgd1BNqxOKu4eavAq/Zv9KxmYcvp3vDiT mo4ziyTItBhHqZXg4DsSQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrudekgdefgecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefhfffugggtgffkfhgjvfevofesthejredtredtjeenucfhrhhomhepofgrgihi mhgvucftihhprghrugcuoehmrgigihhmvgestggvrhhnohdrthgvtghhqeenucggtffrrg htthgvrhhnpeevvdelieejgedvkeffheekheeilefhgefgffehteekueelvddtueffheet ledtffenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpe hmrgigihhmvgestggvrhhnohdrthgvtghh X-ME-Proxy: Feedback-ID: i8771445c:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 7 Dec 2022 06:55:13 -0500 (EST) From: Maxime Ripard Date: Wed, 07 Dec 2022 12:53:12 +0100 Subject: [PATCH 01/15] drm/vc4: hvs: Configure the HVS COB allocations MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20221207-rpi-hvs-crtc-misc-v1-1-1f8e0770798b@cerno.tech> References: <20221207-rpi-hvs-crtc-misc-v1-0-1f8e0770798b@cerno.tech> In-Reply-To: <20221207-rpi-hvs-crtc-misc-v1-0-1f8e0770798b@cerno.tech> To: Emma Anholt , Maxime Ripard , David Airlie , Daniel Vetter , Eric Anholt Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Dave Stevenson , Mateusz Kwiatkowski , Maxime Ripard X-Mailer: b4 0.11.0-dev-8c583 X-Developer-Signature: v=1; a=openpgp-sha256; l=3299; i=maxime@cerno.tech; h=from:subject:message-id; bh=gS9nk+DcYW7vrzV9Rm2F4RRdq3qs8C/lQLAO10ZViPE=; b=owGbwMvMwCX2+D1vfrpE4FHG02pJDMkT6lbcuzy1jv2N9IRF2dutcq8aFy6dorzKRyRc4Vz1q8oO h+aCjlIWBjEuBlkxRZYYYfMlcadmve5k45sHM4eVCWQIAxenAEzEM42RYVO6if0/toPvkmTXW3qfVZ HjrNLQ4Lx8Q6KVZVvBuS/JLxkZ3jtxn348J0RkxtNn5555P+UzOxtqV+6p0WKz+XrvUQMZZgA= X-Developer-Key: i=maxime@cerno.tech; a=openpgp; fpr=BE5675C37E818C8B5764241C254BCFC56BF6CE8D Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Dave Stevenson The HVS Composite Output Buffer (COB) is the memory used to generate the output pixel data. Until now the vc4 driver has been relying on the firmware to have set these to sensible values. In testing triple screen support it has been noted that only 1 line was being assigned to HVS channel 2. Whilst that is fine for the transposer (TXP), and indeed needed as only some pixels have an alpha channel, it is insufficient to run a live display. Split the COB more evenly between the 3 HVS channels. Fixes: c54619b0bfb3 ("drm/vc4: Add support for the BCM2711 HVS5") Signed-off-by: Dave Stevenson Signed-off-by: Maxime Ripard --- drivers/gpu/drm/vc4/vc4_hvs.c | 56 +++++++++++++++++++++++++++++++++++++++= +++- 1 file changed, 55 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/vc4/vc4_hvs.c b/drivers/gpu/drm/vc4/vc4_hvs.c index c4453a5ae163..d615ba7db920 100644 --- a/drivers/gpu/drm/vc4/vc4_hvs.c +++ b/drivers/gpu/drm/vc4/vc4_hvs.c @@ -776,7 +776,7 @@ static int vc4_hvs_bind(struct device *dev, struct devi= ce *master, void *data) struct vc4_hvs *hvs =3D NULL; int ret; u32 dispctrl; - u32 reg; + u32 reg, top; =20 hvs =3D drmm_kzalloc(drm, sizeof(*hvs), GFP_KERNEL); if (!hvs) @@ -912,6 +912,60 @@ static int vc4_hvs_bind(struct device *dev, struct dev= ice *master, void *data) =20 HVS_WRITE(SCALER_DISPCTRL, dispctrl); =20 + /* Recompute Composite Output Buffer (COB) allocations for the displays + */ + if (!vc4->is_vc5) { + /* The COB is 20736 pixels, or just over 10 lines at 2048 wide. + * The bottom 2048 pixels are full 32bpp RGBA (intended for the + * TXP composing RGBA to memory), whilst the remainder are only + * 24bpp RGB. + * + * Assign 3 lines to channels 1 & 2, and just over 4 lines to + * channel 0. + */ + #define VC4_COB_SIZE 20736 + #define VC4_COB_LINE_WIDTH 2048 + #define VC4_COB_NUM_LINES 3 + reg =3D 0; + top =3D VC4_COB_LINE_WIDTH * VC4_COB_NUM_LINES; + reg |=3D (top - 1) << 16; + HVS_WRITE(SCALER_DISPBASE2, reg); + reg =3D top; + top +=3D VC4_COB_LINE_WIDTH * VC4_COB_NUM_LINES; + reg |=3D (top - 1) << 16; + HVS_WRITE(SCALER_DISPBASE1, reg); + reg =3D top; + top =3D VC4_COB_SIZE; + reg |=3D (top - 1) << 16; + HVS_WRITE(SCALER_DISPBASE0, reg); + } else { + /* The COB is 44416 pixels, or 10.8 lines at 4096 wide. + * The bottom 4096 pixels are full RGBA (intended for the TXP + * composing RGBA to memory), whilst the remainder are only + * RGB. Addressing is always pixel wide. + * + * Assign 3 lines of 4096 to channels 1 & 2, and just over 4 + * lines. to channel 0. + */ + #define VC5_COB_SIZE 44416 + #define VC5_COB_LINE_WIDTH 4096 + #define VC5_COB_NUM_LINES 3 + reg =3D 0; + top =3D VC5_COB_LINE_WIDTH * VC5_COB_NUM_LINES; + reg |=3D top << 16; + HVS_WRITE(SCALER_DISPBASE2, reg); + top +=3D 16; + reg =3D top; + top +=3D VC5_COB_LINE_WIDTH * VC5_COB_NUM_LINES; + reg |=3D top << 16; + HVS_WRITE(SCALER_DISPBASE1, reg); + top +=3D 16; + reg =3D top; + top =3D VC5_COB_SIZE; + reg |=3D top << 16; + HVS_WRITE(SCALER_DISPBASE0, reg); + } + ret =3D devm_request_irq(dev, platform_get_irq(pdev, 0), vc4_hvs_irq_handler, 0, "vc4 hvs", drm); if (ret) --=20 2.38.1 From nobody Mon Feb 9 08:47:03 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id E108CC4708E for ; Wed, 7 Dec 2022 11:55:42 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230077AbiLGLzl (ORCPT ); Wed, 7 Dec 2022 06:55:41 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53640 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229714AbiLGLzS (ORCPT ); Wed, 7 Dec 2022 06:55:18 -0500 Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com [66.111.4.27]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B97532C67C for ; Wed, 7 Dec 2022 03:55:16 -0800 (PST) Received: from compute6.internal (compute6.nyi.internal [10.202.2.47]) by mailout.nyi.internal (Postfix) with ESMTP id 314C95C01D2; Wed, 7 Dec 2022 06:55:16 -0500 (EST) Received: from mailfrontend2 ([10.202.2.163]) by compute6.internal (MEProxy); Wed, 07 Dec 2022 06:55:16 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cerno.tech; h=cc :cc:content-transfer-encoding:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to; s=fm2; t=1670414116; x= 1670500516; bh=cgA6d+4dUlDzfnltPNtWykCIIcDwat2TyYFhVCQ2H5Q=; b=Q vpz7jsaL5e4J6kpa/2OjsJlH31gDrakx98rbMQWLedhLlOfuEcb8Vy9DvmHaxnFE CCUq6g6LsVJWoMEy9uyBv5KXQiw508OM+aVYf6c969HZcktR0nXZy2TeqoKoz4U1 VnO72AY1SzzWBLzFophr9DodLQp5RvCTDncWbhyRwCiSw1Z5bNEqAqyitzpMWgvV 9G8cZb+larnbo9GEE+zlDX5VkzOIgjYZ9k1BtGRJOS6vTzvEQdE5vSO/xhAEITcM TY5Q9W4ITiNYQdEYEyVJkdOpLZpqPmJ8wgnwa833CxS2FF0wL21IbfZpnakbrpGM yv/oGJvkDS9dcd17L0WDw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1670414116; x= 1670500516; bh=cgA6d+4dUlDzfnltPNtWykCIIcDwat2TyYFhVCQ2H5Q=; b=r HR3WmrYKbHJ2nTOIh71F7giWk5ThI2DIC0wv4zW24fqiIOrOPpLymnJ4okQW5lch uoB22gj9ZUM2o8oo72QMdYrCmbAlHE7HOFabJiE6CTTt9ZYNVx4do5xgiz6QDKu2 UYf42vrZ1OB97+V27Za8uEXsxZY0MZo769PzyMv6a/K5grcz/i+eHf9DJW0Yxnbo J7V8vh6njULQ/0KFulKllKiSqgbvoZ1tIVt/3vcTklV+nJCp3PgdPcNMlZ7ozHT3 WWStQXhQJ47Tj6DGHw2xt6VZB8iffy1rvVAh6pH93EAfmxxZsKL0zWDFZl9TthdR 26HZC7SL7CQ1dMqpdVojA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrudekgdefgecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefhfffugggtgffkfhgjvfevofesthejredtredtjeenucfhrhhomhepofgrgihi mhgvucftihhprghrugcuoehmrgigihhmvgestggvrhhnohdrthgvtghhqeenucggtffrrg htthgvrhhnpeevvdelieejgedvkeffheekheeilefhgefgffehteekueelvddtueffheet ledtffenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpe hmrgigihhmvgestggvrhhnohdrthgvtghh X-ME-Proxy: Feedback-ID: i8771445c:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 7 Dec 2022 06:55:15 -0500 (EST) From: Maxime Ripard Date: Wed, 07 Dec 2022 12:53:13 +0100 Subject: [PATCH 02/15] drm/vc4: hvs: Set AXI panic modes MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20221207-rpi-hvs-crtc-misc-v1-2-1f8e0770798b@cerno.tech> References: <20221207-rpi-hvs-crtc-misc-v1-0-1f8e0770798b@cerno.tech> In-Reply-To: <20221207-rpi-hvs-crtc-misc-v1-0-1f8e0770798b@cerno.tech> To: Emma Anholt , Maxime Ripard , David Airlie , Daniel Vetter , Eric Anholt Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Dave Stevenson , Mateusz Kwiatkowski , Maxime Ripard X-Mailer: b4 0.11.0-dev-8c583 X-Developer-Signature: v=1; a=openpgp-sha256; l=2370; i=maxime@cerno.tech; h=from:subject:message-id; bh=0biGh0FnANUUjG50YK2xmZS4z/LRgsYNW9+V7Hu3tWI=; b=owGbwMvMwCX2+D1vfrpE4FHG02pJDMkT6lasOPM64Kbt526bDab1iyb6Pj3tMmvpI8tJNwx3pRzb Fsj9qaOUhUGMi0FWTJElRth8SdypWa872fjmwcxhZQIZwsDFKQATSV7G8M98EoukBIfO2tKePZquPz jcfklamkd/Trxxt8VBpOaWdREjw2muHM3+4MSaV6f3VZbcW93Gsqpse3DAL5cO4WaFnwpXWQA= X-Developer-Key: i=maxime@cerno.tech; a=openpgp; fpr=BE5675C37E818C8B5764241C254BCFC56BF6CE8D Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Dave Stevenson The HVS can change AXI request mode based on how full the COB FIFOs are. Until now the vc4 driver has been relying on the firmware to have set these to sensible values. With HVS channel 2 now being used for live video, change the panic mode for all channels to be explicitly set by the driver, and the same for all channels. Fixes: c54619b0bfb3 ("drm/vc4: Add support for the BCM2711 HVS5") Signed-off-by: Dave Stevenson Signed-off-by: Maxime Ripard --- drivers/gpu/drm/vc4/vc4_hvs.c | 11 +++++++++++ drivers/gpu/drm/vc4/vc4_regs.h | 6 ++++++ 2 files changed, 17 insertions(+) diff --git a/drivers/gpu/drm/vc4/vc4_hvs.c b/drivers/gpu/drm/vc4/vc4_hvs.c index d615ba7db920..b335815eac6a 100644 --- a/drivers/gpu/drm/vc4/vc4_hvs.c +++ b/drivers/gpu/drm/vc4/vc4_hvs.c @@ -910,6 +910,17 @@ static int vc4_hvs_bind(struct device *dev, struct dev= ice *master, void *data) SCALER_DISPCTRL_DSPEISLUR(2) | SCALER_DISPCTRL_SCLEIRQ); =20 + /* Set AXI panic mode. + * VC4 panics when < 2 lines in FIFO. + * VC5 panics when less than 1 line in the FIFO. + */ + dispctrl &=3D ~(SCALER_DISPCTRL_PANIC0_MASK | + SCALER_DISPCTRL_PANIC1_MASK | + SCALER_DISPCTRL_PANIC2_MASK); + dispctrl |=3D VC4_SET_FIELD(2, SCALER_DISPCTRL_PANIC0); + dispctrl |=3D VC4_SET_FIELD(2, SCALER_DISPCTRL_PANIC1); + dispctrl |=3D VC4_SET_FIELD(2, SCALER_DISPCTRL_PANIC2); + HVS_WRITE(SCALER_DISPCTRL, dispctrl); =20 /* Recompute Composite Output Buffer (COB) allocations for the displays diff --git a/drivers/gpu/drm/vc4/vc4_regs.h b/drivers/gpu/drm/vc4/vc4_regs.h index f0290fad991d..f121905c404d 100644 --- a/drivers/gpu/drm/vc4/vc4_regs.h +++ b/drivers/gpu/drm/vc4/vc4_regs.h @@ -220,6 +220,12 @@ #define SCALER_DISPCTRL 0x00000000 /* Global register for clock gating the HVS */ # define SCALER_DISPCTRL_ENABLE BIT(31) +# define SCALER_DISPCTRL_PANIC0_MASK VC4_MASK(25, 24) +# define SCALER_DISPCTRL_PANIC0_SHIFT 24 +# define SCALER_DISPCTRL_PANIC1_MASK VC4_MASK(27, 26) +# define SCALER_DISPCTRL_PANIC1_SHIFT 26 +# define SCALER_DISPCTRL_PANIC2_MASK VC4_MASK(29, 28) +# define SCALER_DISPCTRL_PANIC2_SHIFT 28 # define SCALER_DISPCTRL_DSP3_MUX_MASK VC4_MASK(19, 18) # define SCALER_DISPCTRL_DSP3_MUX_SHIFT 18 =20 --=20 2.38.1 From nobody Mon Feb 9 08:47:03 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id E2EEBC4708E for ; Wed, 7 Dec 2022 11:55:53 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229966AbiLGLzt (ORCPT ); Wed, 7 Dec 2022 06:55:49 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56256 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229656AbiLGLzT (ORCPT ); Wed, 7 Dec 2022 06:55:19 -0500 Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com [66.111.4.27]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9E9FB240AD for ; Wed, 7 Dec 2022 03:55:18 -0800 (PST) Received: from compute2.internal (compute2.nyi.internal [10.202.2.46]) by mailout.nyi.internal (Postfix) with ESMTP id 193EB5C01C2; Wed, 7 Dec 2022 06:55:18 -0500 (EST) Received: from mailfrontend2 ([10.202.2.163]) by compute2.internal (MEProxy); Wed, 07 Dec 2022 06:55:18 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cerno.tech; h=cc :cc:content-transfer-encoding:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to; s=fm2; t=1670414118; x= 1670500518; bh=zfh+DFvtRGGbEZ4zGoqcZy3My+UVQYZ3yqCxeBPCRGE=; b=W spIhQoCXldF6DL59sNy/YlIi/DVbARJyzQOhwpz0KQMgPTUsNpAQ68PI+UeVwC2J EIHDaZu3bLtsDsSnPKIGMO33wQ6lGNhwx6ecdaZPADReEftkCNXuxmtQ04OWQ4MP lKLn0gouAvRkg4+QgO0CulMb7yNJH3rjqxvAZ4VLVD7WDiuOLwkAqhG70Px/MVb4 khHgdurWhYenuWZLJdL7hcRO85KuRH2xL8AMebqGLhJGagOC8WNMO1Iq/g2TWm3b FlblRxTQdjzVbdRyp+ipbJFsd+993ilGGNdnevr1CfFIx9sW1aYhXKLGIdO88L8D 0+MEZ8R9xFL+rCGpWNJig== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1670414118; x= 1670500518; bh=zfh+DFvtRGGbEZ4zGoqcZy3My+UVQYZ3yqCxeBPCRGE=; b=E pK/+OeXOL6dzZZd3fbOD/mXFISQhadUAjiGKytOpKj7DP7AIdITFlovgwWL8OTsa dTjjdj1+EJJwf1oFpj7MSWjYMZjBwNyYnXL9XtFqaRa5m3UTfG/PQz0e2/h+vW7t QNHnxZGkOLUXo4O8GjL+tGqUuT4Sb2x3GJmxsvStIX2tOZRmN3lzMRJGBxUGgDDM 7cEpyl4xePUvTnmTYAazzMFi36JHzkE1n5weLlle6zcUF9Rzho5JkGwqyISkAcuU yAo5DmeV8p7L6B8EaflSVLEMKic/2mXPqwI4rLZHXIFJcgGM5FrRGc3OTuJ5XyQu S97PqC7v6K6T7bq+2tcfw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrudekgdefgecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefhfffugggtgffkfhgjvfevofesthejredtredtjeenucfhrhhomhepofgrgihi mhgvucftihhprghrugcuoehmrgigihhmvgestggvrhhnohdrthgvtghhqeenucggtffrrg htthgvrhhnpeevvdelieejgedvkeffheekheeilefhgefgffehteekueelvddtueffheet ledtffenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpe hmrgigihhmvgestggvrhhnohdrthgvtghh X-ME-Proxy: Feedback-ID: i8771445c:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 7 Dec 2022 06:55:17 -0500 (EST) From: Maxime Ripard Date: Wed, 07 Dec 2022 12:53:14 +0100 Subject: [PATCH 03/15] drm/vc4: hvs: SCALER_DISPBKGND_AUTOHS is only valid on HVS4 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20221207-rpi-hvs-crtc-misc-v1-3-1f8e0770798b@cerno.tech> References: <20221207-rpi-hvs-crtc-misc-v1-0-1f8e0770798b@cerno.tech> In-Reply-To: <20221207-rpi-hvs-crtc-misc-v1-0-1f8e0770798b@cerno.tech> To: Emma Anholt , Maxime Ripard , David Airlie , Daniel Vetter , Eric Anholt Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Dave Stevenson , Mateusz Kwiatkowski , Maxime Ripard X-Mailer: b4 0.11.0-dev-8c583 X-Developer-Signature: v=1; a=openpgp-sha256; l=2507; i=maxime@cerno.tech; h=from:subject:message-id; bh=bHSsWi5ORj0LfVSQpBfXbWIYaEJTcfVkf2cBdvnCRG0=; b=owGbwMvMwCX2+D1vfrpE4FHG02pJDMkT6lZYV/x+brOo2cVpbzfrY1W7C4tlZFeLBFT9+7E1Jvdt 6ZJVHaUsDGJcDLJiiiwxwuZL4k7Net3JxjcPZg4rE8gQBi5OAZiI/idGhhMvcr1599uIeQvve+sTc9 bLXeRD3KXjbrdN783/sPGSmhnDH55JKyYlvGbW2Rx6Ja3H6f00FZ03nzZwHu97m13i9dFuBT8A X-Developer-Key: i=maxime@cerno.tech; a=openpgp; fpr=BE5675C37E818C8B5764241C254BCFC56BF6CE8D Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Dave Stevenson The bit used for SCALER_DISPBKGND_AUTOHS in SCALER_DISPBKGNDX has been repurposed on HVS5 to configure whether a display can win back-to-back arbitration wins for the COB. This is not desirable, therefore only select this bit on HVS4, and explicitly clear it on HVS5. Fixes: c54619b0bfb3 ("drm/vc4: Add support for the BCM2711 HVS5") Signed-off-by: Dave Stevenson Signed-off-by: Maxime Ripard --- drivers/gpu/drm/vc4/vc4_hvs.c | 10 ++++++---- drivers/gpu/drm/vc4/vc4_regs.h | 1 + 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hvs.c b/drivers/gpu/drm/vc4/vc4_hvs.c index b335815eac6a..57d99e7199ee 100644 --- a/drivers/gpu/drm/vc4/vc4_hvs.c +++ b/drivers/gpu/drm/vc4/vc4_hvs.c @@ -370,28 +370,30 @@ static int vc4_hvs_init_channel(struct vc4_hvs *hvs, = struct drm_crtc *crtc, * mode. */ dispctrl =3D SCALER_DISPCTRLX_ENABLE; + dispbkgndx =3D HVS_READ(SCALER_DISPBKGNDX(chan)); =20 - if (!vc4->is_vc5) + if (!vc4->is_vc5) { dispctrl |=3D VC4_SET_FIELD(mode->hdisplay, SCALER_DISPCTRLX_WIDTH) | VC4_SET_FIELD(mode->vdisplay, SCALER_DISPCTRLX_HEIGHT) | (oneshot ? SCALER_DISPCTRLX_ONESHOT : 0); - else + dispbkgndx |=3D SCALER_DISPBKGND_AUTOHS; + } else { dispctrl |=3D VC4_SET_FIELD(mode->hdisplay, SCALER5_DISPCTRLX_WIDTH) | VC4_SET_FIELD(mode->vdisplay, SCALER5_DISPCTRLX_HEIGHT) | (oneshot ? SCALER5_DISPCTRLX_ONESHOT : 0); + dispbkgndx &=3D ~SCALER5_DISPBKGND_BCK2BCK; + } =20 HVS_WRITE(SCALER_DISPCTRLX(chan), dispctrl); =20 - dispbkgndx =3D HVS_READ(SCALER_DISPBKGNDX(chan)); dispbkgndx &=3D ~SCALER_DISPBKGND_GAMMA; dispbkgndx &=3D ~SCALER_DISPBKGND_INTERLACE; =20 HVS_WRITE(SCALER_DISPBKGNDX(chan), dispbkgndx | - SCALER_DISPBKGND_AUTOHS | ((!vc4->is_vc5) ? SCALER_DISPBKGND_GAMMA : 0) | (interlace ? SCALER_DISPBKGND_INTERLACE : 0)); =20 diff --git a/drivers/gpu/drm/vc4/vc4_regs.h b/drivers/gpu/drm/vc4/vc4_regs.h index f121905c404d..95deacdc31e7 100644 --- a/drivers/gpu/drm/vc4/vc4_regs.h +++ b/drivers/gpu/drm/vc4/vc4_regs.h @@ -366,6 +366,7 @@ =20 #define SCALER_DISPBKGND0 0x00000044 # define SCALER_DISPBKGND_AUTOHS BIT(31) +# define SCALER5_DISPBKGND_BCK2BCK BIT(31) # define SCALER_DISPBKGND_INTERLACE BIT(30) # define SCALER_DISPBKGND_GAMMA BIT(29) # define SCALER_DISPBKGND_TESTMODE_MASK VC4_MASK(28, 25) --=20 2.38.1 From nobody Mon Feb 9 08:47:03 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3A90FC352A1 for ; Wed, 7 Dec 2022 11:55:57 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230182AbiLGLzy (ORCPT ); Wed, 7 Dec 2022 06:55:54 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52686 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229760AbiLGLzV (ORCPT ); Wed, 7 Dec 2022 06:55:21 -0500 Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com [66.111.4.27]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 76BF32B25C for ; Wed, 7 Dec 2022 03:55:20 -0800 (PST) Received: from compute2.internal (compute2.nyi.internal [10.202.2.46]) by mailout.nyi.internal (Postfix) with ESMTP id E3D2F5C01D2; Wed, 7 Dec 2022 06:55:19 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute2.internal (MEProxy); Wed, 07 Dec 2022 06:55:19 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cerno.tech; h=cc :cc:content-transfer-encoding:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to; s=fm2; t=1670414119; x= 1670500519; bh=44BQFZc8En5VihF5MmLMyAz0cXeJWt1WjW3mw1Kzpwo=; b=K TSZmu08S90UQAO8qZ6c2q1vABMngkWY4ZuqP3Y0oFkzfv8IGdIizk2PoEWMAqD9C B65kQjBf2DoD8OT1VpTIcjdP13KaNaYDQdATFNiDA62RLZuEsAUt1kkmKfdjvVaa 7rZWXF61k8iYN56FGvCUC7ZMt25zcXxme1moJOy5JRv/Nq+UHDm27fTV1rMcQuuY F+vnfErmZfJSu6lOQjFVPigQcdaHAzc48CJU2T9BFD1OFbrEKC3MQTAcsWNcAxr+ T+LcLMazJ29N6HR/YQ6brl3iND9Wg2ipVTK33GPEBsq5OD2Pch8fxFNAByO0256s dIhA+PJs1MsgdMQzPhm1g== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1670414119; x= 1670500519; bh=44BQFZc8En5VihF5MmLMyAz0cXeJWt1WjW3mw1Kzpwo=; b=P NbIyPjoNBZnGtcMfs0jWP/v4xrWMq1J8roQpZPX9WgxU6Zez8+rVQwZ9DQj9XD6q E3za2uac+s6mLlnYPq3f9AcshXrMcU//ES2nw4JfHF8uEMRwKMZhp0uCv33PvRhm 1oXRoP6eRJS3yAsGoxGzCAWaI69VFCG6y3AKrmA/Sjg1C8ITHOjBlQwRy8gQ1ie0 0jjxqRX2j1cJqonCzcp/HLcI697pIXsMzQt9A7QX+m3BZ6C9QLKx/hhDnwUIDGu6 O7zh+fngSaTBq/1NMIEWfPT7A9iahk6fItj/awab+iJ/tk/MA+02JBeyXB3mvolt DhT5ep9F43n180CMB1tlw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrudekgdefgecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefhfffugggtgffkfhgjvfevofesthejredtredtjeenucfhrhhomhepofgrgihi mhgvucftihhprghrugcuoehmrgigihhmvgestggvrhhnohdrthgvtghhqeenucggtffrrg htthgvrhhnpeevvdelieejgedvkeffheekheeilefhgefgffehteekueelvddtueffheet ledtffenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpe hmrgigihhmvgestggvrhhnohdrthgvtghh X-ME-Proxy: Feedback-ID: i8771445c:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 7 Dec 2022 06:55:19 -0500 (EST) From: Maxime Ripard Date: Wed, 07 Dec 2022 12:53:15 +0100 Subject: [PATCH 04/15] drm/vc4: hvs: Correct interrupt masking bit assignment for HVS5 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20221207-rpi-hvs-crtc-misc-v1-4-1f8e0770798b@cerno.tech> References: <20221207-rpi-hvs-crtc-misc-v1-0-1f8e0770798b@cerno.tech> In-Reply-To: <20221207-rpi-hvs-crtc-misc-v1-0-1f8e0770798b@cerno.tech> To: Emma Anholt , Maxime Ripard , David Airlie , Daniel Vetter , Eric Anholt Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Dave Stevenson , Mateusz Kwiatkowski , Maxime Ripard X-Mailer: b4 0.11.0-dev-8c583 X-Developer-Signature: v=1; a=openpgp-sha256; l=5333; i=maxime@cerno.tech; h=from:subject:message-id; bh=qtAhhBZK0yOvDtPhFIW1oQxPHiQbKZ8wNM3EEjkze4g=; b=owGbwMvMwCX2+D1vfrpE4FHG02pJDMkT6lasnyib1v9hqeBjk6dCm4tSLyRxt/Q1fzY2qNuksdCx 9cHzjlIWBjEuBlkxRZYYYfMlcadmve5k45sHM4eVCWQIAxenAExkz2OG/xU+wmdZZ91NYjF6/Pc253 LXKc4zdz+aFNltk3Z/bdRirQqG/yXLHVluCcY/b/t5YY5QiNnKyCnbxXQULoTf5wuIEDmcwgcA X-Developer-Key: i=maxime@cerno.tech; a=openpgp; fpr=BE5675C37E818C8B5764241C254BCFC56BF6CE8D Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Dave Stevenson HVS5 has moved the interrupt enable bits around within the DISPCTRL register, therefore the configuration has to be updated to account for this. Fixes: c54619b0bfb3 ("drm/vc4: Add support for the BCM2711 HVS5") Signed-off-by: Dave Stevenson Signed-off-by: Maxime Ripard --- drivers/gpu/drm/vc4/vc4_hvs.c | 52 +++++++++++++++++++++++++++++---------= ---- drivers/gpu/drm/vc4/vc4_regs.h | 10 ++++++-- 2 files changed, 44 insertions(+), 18 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hvs.c b/drivers/gpu/drm/vc4/vc4_hvs.c index 57d99e7199ee..d9fc0d03023b 100644 --- a/drivers/gpu/drm/vc4/vc4_hvs.c +++ b/drivers/gpu/drm/vc4/vc4_hvs.c @@ -660,7 +660,8 @@ void vc4_hvs_mask_underrun(struct vc4_hvs *hvs, int cha= nnel) return; =20 dispctrl =3D HVS_READ(SCALER_DISPCTRL); - dispctrl &=3D ~SCALER_DISPCTRL_DSPEISLUR(channel); + dispctrl &=3D ~(hvs->vc4->is_vc5 ? SCALER5_DISPCTRL_DSPEISLUR(channel) : + SCALER_DISPCTRL_DSPEISLUR(channel)); =20 HVS_WRITE(SCALER_DISPCTRL, dispctrl); =20 @@ -677,7 +678,8 @@ void vc4_hvs_unmask_underrun(struct vc4_hvs *hvs, int c= hannel) return; =20 dispctrl =3D HVS_READ(SCALER_DISPCTRL); - dispctrl |=3D SCALER_DISPCTRL_DSPEISLUR(channel); + dispctrl |=3D (hvs->vc4->is_vc5 ? SCALER5_DISPCTRL_DSPEISLUR(channel) : + SCALER_DISPCTRL_DSPEISLUR(channel)); =20 HVS_WRITE(SCALER_DISPSTAT, SCALER_DISPSTAT_EUFLOW(channel)); @@ -703,6 +705,7 @@ static irqreturn_t vc4_hvs_irq_handler(int irq, void *d= ata) int channel; u32 control; u32 status; + u32 dspeislur; =20 /* * NOTE: We don't need to protect the register access using @@ -719,9 +722,11 @@ static irqreturn_t vc4_hvs_irq_handler(int irq, void *= data) control =3D HVS_READ(SCALER_DISPCTRL); =20 for (channel =3D 0; channel < SCALER_CHANNELS_COUNT; channel++) { + dspeislur =3D vc4->is_vc5 ? SCALER5_DISPCTRL_DSPEISLUR(channel) : + SCALER_DISPCTRL_DSPEISLUR(channel); /* Interrupt masking is not always honored, so check it here. */ if (status & SCALER_DISPSTAT_EUFLOW(channel) && - control & SCALER_DISPCTRL_DSPEISLUR(channel)) { + control & dspeislur) { vc4_hvs_mask_underrun(hvs, channel); vc4_hvs_report_underrun(dev); =20 @@ -898,19 +903,34 @@ static int vc4_hvs_bind(struct device *dev, struct de= vice *master, void *data) SCALER_DISPCTRL_DISPEIRQ(1) | SCALER_DISPCTRL_DISPEIRQ(2); =20 - dispctrl &=3D ~(SCALER_DISPCTRL_DMAEIRQ | - SCALER_DISPCTRL_SLVWREIRQ | - SCALER_DISPCTRL_SLVRDEIRQ | - SCALER_DISPCTRL_DSPEIEOF(0) | - SCALER_DISPCTRL_DSPEIEOF(1) | - SCALER_DISPCTRL_DSPEIEOF(2) | - SCALER_DISPCTRL_DSPEIEOLN(0) | - SCALER_DISPCTRL_DSPEIEOLN(1) | - SCALER_DISPCTRL_DSPEIEOLN(2) | - SCALER_DISPCTRL_DSPEISLUR(0) | - SCALER_DISPCTRL_DSPEISLUR(1) | - SCALER_DISPCTRL_DSPEISLUR(2) | - SCALER_DISPCTRL_SCLEIRQ); + if (!vc4->is_vc5) + dispctrl &=3D ~(SCALER_DISPCTRL_DMAEIRQ | + SCALER_DISPCTRL_SLVWREIRQ | + SCALER_DISPCTRL_SLVRDEIRQ | + SCALER_DISPCTRL_DSPEIEOF(0) | + SCALER_DISPCTRL_DSPEIEOF(1) | + SCALER_DISPCTRL_DSPEIEOF(2) | + SCALER_DISPCTRL_DSPEIEOLN(0) | + SCALER_DISPCTRL_DSPEIEOLN(1) | + SCALER_DISPCTRL_DSPEIEOLN(2) | + SCALER_DISPCTRL_DSPEISLUR(0) | + SCALER_DISPCTRL_DSPEISLUR(1) | + SCALER_DISPCTRL_DSPEISLUR(2) | + SCALER_DISPCTRL_SCLEIRQ); + else + dispctrl &=3D ~(SCALER_DISPCTRL_DMAEIRQ | + SCALER5_DISPCTRL_SLVEIRQ | + SCALER5_DISPCTRL_DSPEIEOF(0) | + SCALER5_DISPCTRL_DSPEIEOF(1) | + SCALER5_DISPCTRL_DSPEIEOF(2) | + SCALER5_DISPCTRL_DSPEIEOLN(0) | + SCALER5_DISPCTRL_DSPEIEOLN(1) | + SCALER5_DISPCTRL_DSPEIEOLN(2) | + SCALER5_DISPCTRL_DSPEISLUR(0) | + SCALER5_DISPCTRL_DSPEISLUR(1) | + SCALER5_DISPCTRL_DSPEISLUR(2) | + SCALER_DISPCTRL_SCLEIRQ); + =20 /* Set AXI panic mode. * VC4 panics when < 2 lines in FIFO. diff --git a/drivers/gpu/drm/vc4/vc4_regs.h b/drivers/gpu/drm/vc4/vc4_regs.h index 95deacdc31e7..1256f0877ff6 100644 --- a/drivers/gpu/drm/vc4/vc4_regs.h +++ b/drivers/gpu/drm/vc4/vc4_regs.h @@ -234,15 +234,21 @@ * always enabled. */ # define SCALER_DISPCTRL_DSPEISLUR(x) BIT(13 + (x)) +# define SCALER5_DISPCTRL_DSPEISLUR(x) BIT(9 + ((x) * 4)) /* Enables Display 0 end-of-line-N contribution to * SCALER_DISPSTAT_IRQDISP0 */ # define SCALER_DISPCTRL_DSPEIEOLN(x) BIT(8 + ((x) * 2)) +# define SCALER5_DISPCTRL_DSPEIEOLN(x) BIT(8 + ((x) * 4)) /* Enables Display 0 EOF contribution to SCALER_DISPSTAT_IRQDISP0 */ # define SCALER_DISPCTRL_DSPEIEOF(x) BIT(7 + ((x) * 2)) +# define SCALER5_DISPCTRL_DSPEIEOF(x) BIT(7 + ((x) * 4)) =20 -# define SCALER_DISPCTRL_SLVRDEIRQ BIT(6) -# define SCALER_DISPCTRL_SLVWREIRQ BIT(5) +# define SCALER5_DISPCTRL_DSPEIVST(x) BIT(6 + ((x) * 4)) + +# define SCALER_DISPCTRL_SLVRDEIRQ BIT(6) /* HVS4 only */ +# define SCALER_DISPCTRL_SLVWREIRQ BIT(5) /* HVS4 only */ +# define SCALER5_DISPCTRL_SLVEIRQ BIT(5) # define SCALER_DISPCTRL_DMAEIRQ BIT(4) /* Enables interrupt generation on the enabled EOF/EOLN/EISLUR * bits and short frames.. --=20 2.38.1 From nobody Mon Feb 9 08:47:03 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 24390C63705 for ; Wed, 7 Dec 2022 11:56:00 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230166AbiLGLz6 (ORCPT ); Wed, 7 Dec 2022 06:55:58 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52700 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229762AbiLGLzX (ORCPT ); Wed, 7 Dec 2022 06:55:23 -0500 Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com [66.111.4.27]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3D0E1C63 for ; Wed, 7 Dec 2022 03:55:22 -0800 (PST) Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailout.nyi.internal (Postfix) with ESMTP id A874F5C01C2; Wed, 7 Dec 2022 06:55:21 -0500 (EST) Received: from mailfrontend2 ([10.202.2.163]) by compute3.internal (MEProxy); Wed, 07 Dec 2022 06:55:21 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cerno.tech; h=cc :cc:content-transfer-encoding:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to; s=fm2; t=1670414121; x= 1670500521; bh=baD35foiFpwZCUKzO+BRxuNeos7NPkrjuUtRCB/nYf0=; b=Y YEEa2jf7ntEmGlJQ8HtMqp6WK2a3/jxXLVx8jfb9kv+r3QswJoJBPO3mWSD5Udnh NUSFyCPsTK+A5mLsn96EMdNlNmk9eiBd/MG+eeSNPlLc/Jlxp3sYkVJP3JZh/17e LZ+QYZWac4q1eM7bpC82Pk+zrUg3pK+AaE5729vtTo3Etar4Cox4d9b+ikHkjnQg PkPAM6IW368mZx3Qs+OalDi8qL7lMkW6e/xgN2CxfSihrHLmWeXqqWqJlb+B+VIp 8656+L2UJy9PIqm9im53jGdc4LSnU1bO7t7vJfNBAB9X5vBdodJnkpJ7Jkp3QyTK LSKTLQ7K1+c0DbHm0/xxA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1670414121; x= 1670500521; bh=baD35foiFpwZCUKzO+BRxuNeos7NPkrjuUtRCB/nYf0=; b=g 82id9ruI5uJ1rAya7gVjByPAxdrMG+PzEnvty32CmvPgw+qEwQF7LoqGBB1aCfci dnJNyKzRw6ef8BMvRlJBEFZonwMfvVjQFkwvh+ed8lAhPaXXuGBQtLT9h6iwt5+t WboQ6bNvTQXqIpnL+Vx9koIH1MiS5K/LHZ1j7XpZc6WWrParYV92Sm//GoESkO8l tBKUqPr3Qcp71wKLL3dtYjdxazkjGIlZ2fUtOiVwXQouYotjf54kRCqMo0s4I/m4 w4wDP91DOwXOIxhaWAni9ubcAa430TpyDlwePjl/ysRJ+tBHKLXu3RZWWvxZ7zjr NFARRWze0ArzfKw6YHgbA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrudekgdefgecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefhfffugggtgffkfhgjvfevofesthejredtredtjeenucfhrhhomhepofgrgihi mhgvucftihhprghrugcuoehmrgigihhmvgestggvrhhnohdrthgvtghhqeenucggtffrrg htthgvrhhnpeevvdelieejgedvkeffheekheeilefhgefgffehteekueelvddtueffheet ledtffenucevlhhushhtvghrufhiiigvpedunecurfgrrhgrmhepmhgrihhlfhhrohhmpe hmrgigihhmvgestggvrhhnohdrthgvtghh X-ME-Proxy: Feedback-ID: i8771445c:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 7 Dec 2022 06:55:21 -0500 (EST) From: Maxime Ripard Date: Wed, 07 Dec 2022 12:53:16 +0100 Subject: [PATCH 05/15] drm/vc4: hvs: Support zpos on all planes MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20221207-rpi-hvs-crtc-misc-v1-5-1f8e0770798b@cerno.tech> References: <20221207-rpi-hvs-crtc-misc-v1-0-1f8e0770798b@cerno.tech> In-Reply-To: <20221207-rpi-hvs-crtc-misc-v1-0-1f8e0770798b@cerno.tech> To: Emma Anholt , Maxime Ripard , David Airlie , Daniel Vetter , Eric Anholt Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Dave Stevenson , Mateusz Kwiatkowski , Maxime Ripard X-Mailer: b4 0.11.0-dev-8c583 X-Developer-Signature: v=1; a=openpgp-sha256; l=5206; i=maxime@cerno.tech; h=from:subject:message-id; bh=4CV2+PCYIvO5q3yVEDVtoCz7WaQzAp4zgRv5gDx5kMo=; b=owGbwMvMwCX2+D1vfrpE4FHG02pJDMkT6lZwCpbdUbyYvfhZg/zaUxuUN3xft/HKny+nrqXOiilz YGHv7ChlYRDjYpAVU2SJETZfEndq1utONr55MHNYmUCGMHBxCsBEbr9iZHj9rknw89GAD3Iv52vX3O F95dkZ0yZ3TOXDPTX74/3/2QMZGXabuPTop4WqfuR4GCBSvtdy8ZLEnIlvxHRutdz6q7lvIh8A X-Developer-Key: i=maxime@cerno.tech; a=openpgp; fpr=BE5675C37E818C8B5764241C254BCFC56BF6CE8D Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Dave Stevenson Adds the zpos property to all planes, and creates the dlist by placing the fragments in the correct order based on zpos. Signed-off-by: Dave Stevenson Signed-off-by: Maxime Ripard --- drivers/gpu/drm/vc4/vc4_hvs.c | 43 +++++++++++++++++++++++++++----------= ---- drivers/gpu/drm/vc4/vc4_kms.c | 1 + drivers/gpu/drm/vc4/vc4_plane.c | 22 ++++++++++++++++++--- 3 files changed, 48 insertions(+), 18 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hvs.c b/drivers/gpu/drm/vc4/vc4_hvs.c index d9fc0d03023b..3582ede1a0aa 100644 --- a/drivers/gpu/drm/vc4/vc4_hvs.c +++ b/drivers/gpu/drm/vc4/vc4_hvs.c @@ -570,6 +570,8 @@ void vc4_hvs_atomic_flush(struct drm_crtc *crtc, bool enable_bg_fill =3D false; u32 __iomem *dlist_start =3D vc4->hvs->dlist + vc4_state->mm.start; u32 __iomem *dlist_next =3D dlist_start; + unsigned int zpos =3D 0; + bool found =3D false; int idx; =20 if (!drm_dev_enter(dev, &idx)) { @@ -583,23 +585,34 @@ void vc4_hvs_atomic_flush(struct drm_crtc *crtc, } =20 /* Copy all the active planes' dlist contents to the hardware dlist. */ - drm_atomic_crtc_for_each_plane(plane, crtc) { - /* Is this the first active plane? */ - if (dlist_next =3D=3D dlist_start) { - /* We need to enable background fill when a plane - * could be alpha blending from the background, i.e. - * where no other plane is underneath. It suffices to - * consider the first active plane here since we set - * needs_bg_fill such that either the first plane - * already needs it or all planes on top blend from - * the first or a lower plane. - */ - vc4_plane_state =3D to_vc4_plane_state(plane->state); - enable_bg_fill =3D vc4_plane_state->needs_bg_fill; + do { + found =3D false; + + drm_atomic_crtc_for_each_plane(plane, crtc) { + if (plane->state->normalized_zpos !=3D zpos) + continue; + + /* Is this the first active plane? */ + if (dlist_next =3D=3D dlist_start) { + /* We need to enable background fill when a plane + * could be alpha blending from the background, i.e. + * where no other plane is underneath. It suffices to + * consider the first active plane here since we set + * needs_bg_fill such that either the first plane + * already needs it or all planes on top blend from + * the first or a lower plane. + */ + vc4_plane_state =3D to_vc4_plane_state(plane->state); + enable_bg_fill =3D vc4_plane_state->needs_bg_fill; + } + + dlist_next +=3D vc4_plane_write_dlist(plane, dlist_next); + + found =3D true; } =20 - dlist_next +=3D vc4_plane_write_dlist(plane, dlist_next); - } + zpos++; + } while (found); =20 writel(SCALER_CTL0_END, dlist_next); dlist_next++; diff --git a/drivers/gpu/drm/vc4/vc4_kms.c b/drivers/gpu/drm/vc4/vc4_kms.c index 7282545c54a1..44deee666032 100644 --- a/drivers/gpu/drm/vc4/vc4_kms.c +++ b/drivers/gpu/drm/vc4/vc4_kms.c @@ -1093,6 +1093,7 @@ int vc4_kms_load(struct drm_device *dev) dev->mode_config.helper_private =3D &vc4_mode_config_helpers; dev->mode_config.preferred_depth =3D 24; dev->mode_config.async_page_flip =3D true; + dev->mode_config.normalize_zpos =3D true; =20 ret =3D vc4_ctm_obj_init(vc4); if (ret) diff --git a/drivers/gpu/drm/vc4/vc4_plane.c b/drivers/gpu/drm/vc4/vc4_plan= e.c index 8b92a45a3c89..c212f8c10388 100644 --- a/drivers/gpu/drm/vc4/vc4_plane.c +++ b/drivers/gpu/drm/vc4/vc4_plane.c @@ -1568,9 +1568,14 @@ struct drm_plane *vc4_plane_init(struct drm_device *= dev, DRM_COLOR_YCBCR_BT709, DRM_COLOR_YCBCR_LIMITED_RANGE); =20 + if (type =3D=3D DRM_PLANE_TYPE_PRIMARY) + drm_plane_create_zpos_immutable_property(plane, 0); + return plane; } =20 +#define VC4_NUM_OVERLAY_PLANES 16 + int vc4_plane_create_additional_planes(struct drm_device *drm) { struct drm_plane *cursor_plane; @@ -1586,24 +1591,35 @@ int vc4_plane_create_additional_planes(struct drm_d= evice *drm) * modest number of planes to expose, that should hopefully * still cover any sane usecase. */ - for (i =3D 0; i < 16; i++) { + for (i =3D 0; i < VC4_NUM_OVERLAY_PLANES; i++) { struct drm_plane *plane =3D vc4_plane_init(drm, DRM_PLANE_TYPE_OVERLAY, GENMASK(drm->mode_config.num_crtc - 1, 0)); =20 if (IS_ERR(plane)) continue; + + /* Create zpos property. Max of all the overlays + 1 primary + + * 1 cursor plane on a crtc. + */ + drm_plane_create_zpos_property(plane, i + 1, 1, + VC4_NUM_OVERLAY_PLANES + 1); } =20 drm_for_each_crtc(crtc, drm) { /* Set up the legacy cursor after overlay initialization, - * since we overlay planes on the CRTC in the order they were - * initialized. + * since the zpos fallback is that planes are rendered by plane + * ID order, and that then puts the cursor on top. */ cursor_plane =3D vc4_plane_init(drm, DRM_PLANE_TYPE_CURSOR, drm_crtc_mask(crtc)); if (!IS_ERR(cursor_plane)) { crtc->cursor =3D cursor_plane; + + drm_plane_create_zpos_property(cursor_plane, + VC4_NUM_OVERLAY_PLANES + 1, + 1, + VC4_NUM_OVERLAY_PLANES + 1); } } =20 --=20 2.38.1 From nobody Mon Feb 9 08:47:03 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 32EB0C4708E for ; Wed, 7 Dec 2022 11:56:26 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229938AbiLGL4R (ORCPT ); Wed, 7 Dec 2022 06:56:17 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56378 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229628AbiLGLzZ (ORCPT ); Wed, 7 Dec 2022 06:55:25 -0500 Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com [66.111.4.27]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1B979109D for ; Wed, 7 Dec 2022 03:55:24 -0800 (PST) Received: from compute6.internal (compute6.nyi.internal [10.202.2.47]) by mailout.nyi.internal (Postfix) with ESMTP id 8C2215C01BF; Wed, 7 Dec 2022 06:55:23 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute6.internal (MEProxy); Wed, 07 Dec 2022 06:55:23 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cerno.tech; h=cc :cc:content-transfer-encoding:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to; s=fm2; t=1670414123; x= 1670500523; bh=X2hQ875cJr6jux9kv8eLCChlul/kVrxgraf+5nmcpRo=; b=g kmn3P6sMXGAM+BdypeUKpEWc7LSr6tnHstqZkIccBqrb0h3X/Nq38zP0OAtNAESG 9bmDvsRanMehMqZ9zX45WJouzGOJBjGlhDE19G4W2t5+qS0KUPBM9jHzOMpopfpB XxE9OQSvHO4sjm6QsHfYUJwEmHiEIMQkZi2Zr+TU9Km1thRw2rAHRMBgv4g0Rir+ lmvgck5aVC0MPXzHz9f4TGUafPAUqpz50Iz0rY5sq6SACeVFctNpcaWa+9wtv+hj c6EA0WBCqT+CFTcFY9pDJcDa7VQBDuHc0falWpsp8yOSDKIW7ioLHxmIeaQ8Jmmz K/nF6OThRF/jiFr5EZQwQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1670414123; x= 1670500523; bh=X2hQ875cJr6jux9kv8eLCChlul/kVrxgraf+5nmcpRo=; b=Q ngTnO4hnt4/eNHLcVPmYfcOrM/pY7tgK9ddH70o+9JiAPQdPWtVVV73HGzAIQm/b SjzEuJhwaxPYoJYjmhbNQQg5lD3bL1OULQv91v7yTUN61D8tdX+J4H0csv5ZyLzC cYBbX7eKQyTlvKvMT/YXqGPg/Kv5+D5UAD8Kcxd3HtDmx0nR4TxdTpn3rTVB0WRV N0NRnjTR01TGPoskcxNcUaELLU3MppMjLw6uRHLbJq7zqNT5GMjyEzwT48hc+qns z2ToX4aNV2fZW7LooUhb5JiETiwi0Ab3MknkRlRBJyx73QX8emeVVxvlDiqK0b3D wTZr5OkznjxIiiGJOxCKA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrudekgdefgecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefhfffugggtgffkfhgjvfevofesthejredtredtjeenucfhrhhomhepofgrgihi mhgvucftihhprghrugcuoehmrgigihhmvgestggvrhhnohdrthgvtghhqeenucggtffrrg htthgvrhhnpeevvdelieejgedvkeffheekheeilefhgefgffehteekueelvddtueffheet ledtffenucevlhhushhtvghrufhiiigvpedunecurfgrrhgrmhepmhgrihhlfhhrohhmpe hmrgigihhmvgestggvrhhnohdrthgvtghh X-ME-Proxy: Feedback-ID: i8771445c:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 7 Dec 2022 06:55:22 -0500 (EST) From: Maxime Ripard Date: Wed, 07 Dec 2022 12:53:17 +0100 Subject: [PATCH 06/15] drm/vc4: hvs: Fix colour order for xRGB1555 on HVS5 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20221207-rpi-hvs-crtc-misc-v1-6-1f8e0770798b@cerno.tech> References: <20221207-rpi-hvs-crtc-misc-v1-0-1f8e0770798b@cerno.tech> In-Reply-To: <20221207-rpi-hvs-crtc-misc-v1-0-1f8e0770798b@cerno.tech> To: Emma Anholt , Maxime Ripard , David Airlie , Daniel Vetter , Eric Anholt Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Dave Stevenson , Mateusz Kwiatkowski , Maxime Ripard X-Mailer: b4 0.11.0-dev-8c583 X-Developer-Signature: v=1; a=openpgp-sha256; l=1057; i=maxime@cerno.tech; h=from:subject:message-id; bh=/1kOYXeyAfVkMPpUTJD425tdluFPJeVWER3c4oJ8z4s=; b=owGbwMvMwCX2+D1vfrpE4FHG02pJDMkT6la+mS9b5L5S1UQ8/WPN4b9b92xpYW1mff4x60HbsWL/ jROXdZSyMIhxMciKKbLECJsviTs163UnG988mDmsTCBDGLg4BWAifuYM/8sDM3Y4RVX6cl2oXuE151 /fzuNNr/8tjNebavm1oWHR8pUM/wO2Byx7tVR/VXKIjKyCY5ZhxBZj1QXq3HoutWs6xb5kMAIA X-Developer-Key: i=maxime@cerno.tech; a=openpgp; fpr=BE5675C37E818C8B5764241C254BCFC56BF6CE8D Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Dave Stevenson Same as the xRGB8888 formats, HVS5 has managed to swap the colour channels for the xRGB1555 formats as well. Add the relevant config for pixel_order_hvs5. Fixes: c54619b0bfb3 ("drm/vc4: Add support for the BCM2711 HVS5") Signed-off-by: Dave Stevenson Signed-off-by: Maxime Ripard --- drivers/gpu/drm/vc4/vc4_plane.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/gpu/drm/vc4/vc4_plane.c b/drivers/gpu/drm/vc4/vc4_plan= e.c index c212f8c10388..e60d6f1a7de1 100644 --- a/drivers/gpu/drm/vc4/vc4_plane.c +++ b/drivers/gpu/drm/vc4/vc4_plane.c @@ -75,11 +75,13 @@ static const struct hvs_format { .drm =3D DRM_FORMAT_ARGB1555, .hvs =3D HVS_PIXEL_FORMAT_RGBA5551, .pixel_order =3D HVS_PIXEL_ORDER_ABGR, + .pixel_order_hvs5 =3D HVS_PIXEL_ORDER_ARGB, }, { .drm =3D DRM_FORMAT_XRGB1555, .hvs =3D HVS_PIXEL_FORMAT_RGBA5551, .pixel_order =3D HVS_PIXEL_ORDER_ABGR, + .pixel_order_hvs5 =3D HVS_PIXEL_ORDER_ARGB, }, { .drm =3D DRM_FORMAT_RGB888, --=20 2.38.1 From nobody Mon Feb 9 08:47:03 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id E58EEC4708E for ; Wed, 7 Dec 2022 11:56:08 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230221AbiLGL4H (ORCPT ); Wed, 7 Dec 2022 06:56:07 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54724 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229819AbiLGLz1 (ORCPT ); Wed, 7 Dec 2022 06:55:27 -0500 Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com [66.111.4.27]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CF13BDB0 for ; Wed, 7 Dec 2022 03:55:25 -0800 (PST) Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id 4504E5C01EE; Wed, 7 Dec 2022 06:55:25 -0500 (EST) Received: from mailfrontend2 ([10.202.2.163]) by compute1.internal (MEProxy); Wed, 07 Dec 2022 06:55:25 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cerno.tech; h=cc :cc:content-transfer-encoding:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to; s=fm2; t=1670414125; x= 1670500525; bh=Mn7xWks8iZKiWdJtUFwsySgAI/XwTZtsV80VUYyCcFA=; b=L aRYGJ3yeKFjQorfDubxUnYzfpwL6Udv76F10ErG2kAwtL28+DZT0TpGik1k73jdf E5bwy9LgY1IPR1U8F8nunv+Q/IwHJYxG7vxurmbsmUyVGGp63rwM/Fh1XDgjpGCc dRVg1mmiIxeVrlsK85DUA7+nw7kk02JzfVxXaHQqHuEuveRTR2iV876TLHMVjZGd EBt7PbsVtDOgT76yXy9isv8T17uQUlNtCiyrhHUCtsDWMEo92T+svp58kCswWRUO LZ4/eTldRV0npa8+pXM45PtTaaTZkv5cbMPfQhqKx0EJCEe5JxlyNP0Mvqj3f87H i8vrVW/pG8YFPFknkKfgw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1670414125; x= 1670500525; bh=Mn7xWks8iZKiWdJtUFwsySgAI/XwTZtsV80VUYyCcFA=; b=t 2VkqO2owJ4bvptFD9rs3zfPvk2mvbYE9Us9QVOHE7Jjiu59uLQK6K2MGs9UnIW48 jp+uA7AQVjdhhtWmswISLMgIpLIbHy1/meJk6XXioUqbnxZzGJWTrO4hOTYLXgDb FgnUxF7vhEq+MA6sfu23e46jOZ8jto0/yBk2FTeWabZrZhEzlIpZMVJe1T6JsMHU Y2Z4IQSnBG9QhqakHtqPhcvLYZF/Anlq8ek2f4EctTn4zd3OC/Ax8dxniTH5tedf hpWhOQ9nBRBly5GoRHRRQWyxKZBzzbVoYOfg2Dol15Nszz6ZBxCNzfhg87NyzNJV FOaKAaoYdf7IsKvZU/bMQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrudekgdeffecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefhfffugggtgffkfhgjvfevofesthejredtredtjeenucfhrhhomhepofgrgihi mhgvucftihhprghrugcuoehmrgigihhmvgestggvrhhnohdrthgvtghhqeenucggtffrrg htthgvrhhnpeevvdelieejgedvkeffheekheeilefhgefgffehteekueelvddtueffheet ledtffenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpe hmrgigihhmvgestggvrhhnohdrthgvtghh X-ME-Proxy: Feedback-ID: i8771445c:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 7 Dec 2022 06:55:24 -0500 (EST) From: Maxime Ripard Date: Wed, 07 Dec 2022 12:53:18 +0100 Subject: [PATCH 07/15] drm/vc4: hvs: Add DRM 210101010 RGB formats MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20221207-rpi-hvs-crtc-misc-v1-7-1f8e0770798b@cerno.tech> References: <20221207-rpi-hvs-crtc-misc-v1-0-1f8e0770798b@cerno.tech> In-Reply-To: <20221207-rpi-hvs-crtc-misc-v1-0-1f8e0770798b@cerno.tech> To: Emma Anholt , Maxime Ripard , David Airlie , Daniel Vetter , Eric Anholt Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Dave Stevenson , Mateusz Kwiatkowski , Maxime Ripard X-Mailer: b4 0.11.0-dev-8c583 X-Developer-Signature: v=1; a=openpgp-sha256; l=1572; i=maxime@cerno.tech; h=from:subject:message-id; bh=sJnuhQKjgOBeb7xKPXFNOEcV00S92JOFT4ScB1TbFQE=; b=owGbwMvMwCX2+D1vfrpE4FHG02pJDMkT6laGTPKovm7rmr6Dn4FpfVLX4ohjvWWXhLd+q5+Zqvje bqlvRykLgxgXg6yYIkuMsPmSuFOzXney8c2DmcPKBDKEgYtTACbSm8DIcJL97d5ZVXFep1jO+X266e fyJcKvufnI7I5Whl0bdoVPNGD4Z3eSdVJc01pFCYaOPzOnK84+Z8H/qL0j0+zFoTXu24/osgMA X-Developer-Key: i=maxime@cerno.tech; a=openpgp; fpr=BE5675C37E818C8B5764241C254BCFC56BF6CE8D Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Dave Stevenson HVS5 supports the 210101010 RGB[A|X] formats, but they were missing from the DRM to HVS mapping list, so weren't available. Add them in. Signed-off-by: Dave Stevenson Signed-off-by: Maxime Ripard --- drivers/gpu/drm/vc4/vc4_plane.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/drivers/gpu/drm/vc4/vc4_plane.c b/drivers/gpu/drm/vc4/vc4_plan= e.c index e60d6f1a7de1..eb0ac2167937 100644 --- a/drivers/gpu/drm/vc4/vc4_plane.c +++ b/drivers/gpu/drm/vc4/vc4_plane.c @@ -139,6 +139,34 @@ static const struct hvs_format { .pixel_order =3D HVS_PIXEL_ORDER_XYCBCR, .hvs5_only =3D true, }, + { + .drm =3D DRM_FORMAT_XRGB2101010, + .hvs =3D HVS_PIXEL_FORMAT_RGBA1010102, + .pixel_order =3D HVS_PIXEL_ORDER_ABGR, + .pixel_order_hvs5 =3D HVS_PIXEL_ORDER_ARGB, + .hvs5_only =3D true, + }, + { + .drm =3D DRM_FORMAT_ARGB2101010, + .hvs =3D HVS_PIXEL_FORMAT_RGBA1010102, + .pixel_order =3D HVS_PIXEL_ORDER_ABGR, + .pixel_order_hvs5 =3D HVS_PIXEL_ORDER_ARGB, + .hvs5_only =3D true, + }, + { + .drm =3D DRM_FORMAT_ABGR2101010, + .hvs =3D HVS_PIXEL_FORMAT_RGBA1010102, + .pixel_order =3D HVS_PIXEL_ORDER_ARGB, + .pixel_order_hvs5 =3D HVS_PIXEL_ORDER_ABGR, + .hvs5_only =3D true, + }, + { + .drm =3D DRM_FORMAT_XBGR2101010, + .hvs =3D HVS_PIXEL_FORMAT_RGBA1010102, + .pixel_order =3D HVS_PIXEL_ORDER_ARGB, + .pixel_order_hvs5 =3D HVS_PIXEL_ORDER_ABGR, + .hvs5_only =3D true, + }, }; =20 static const struct hvs_format *vc4_get_hvs_format(u32 drm_format) --=20 2.38.1 From nobody Mon Feb 9 08:47:03 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 82806C352A1 for ; Wed, 7 Dec 2022 11:56:05 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230215AbiLGL4E (ORCPT ); Wed, 7 Dec 2022 06:56:04 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56486 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229523AbiLGLz2 (ORCPT ); Wed, 7 Dec 2022 06:55:28 -0500 Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com [66.111.4.27]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9063FD2E5 for ; Wed, 7 Dec 2022 03:55:27 -0800 (PST) Received: from compute2.internal (compute2.nyi.internal [10.202.2.46]) by mailout.nyi.internal (Postfix) with ESMTP id 08FCF5C01F3; Wed, 7 Dec 2022 06:55:27 -0500 (EST) Received: from mailfrontend2 ([10.202.2.163]) by compute2.internal (MEProxy); Wed, 07 Dec 2022 06:55:27 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cerno.tech; h=cc :cc:content-transfer-encoding:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to; s=fm2; t=1670414127; x= 1670500527; bh=ZWVkqHVOQFKLI4IZL/T9xqCrBqZyvRPBzXa9RyXGtbE=; b=Y rtiQCdRCy+089coWBgM8ErPg628haYCSwYGtT4MbZBb9yB804A3zp7ULk+flRhIC PDN/9jsLMatTEGB0nblBnnSzJ9NsM7eFmHIrZ6VYj+uhIH2ksq0zRYGZnemQWNPX fzGsQlvIFj7yr8ldD9UipfJreeKDG37vQPiH3/iigLAqnsfvPP/vHq9qjMhVIs42 se7jIfoWzFNXPv7L7kCTvrzagtwOG/geMKUZnUBYN6Ef6ON7nlr7jaOud+n/ad9x QgP6l50ARM7N2O5u+xfQAgiOWrlfMVUuUgXDXOqNepjXraI8kPMgagXADwE4lC7A QRXME2T54VsoiO1Q0mgWg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1670414127; x= 1670500527; bh=ZWVkqHVOQFKLI4IZL/T9xqCrBqZyvRPBzXa9RyXGtbE=; b=O i+2n8NryPCdFR3EygG7iyKn158U6xyvRwL4tLh4LO5BJ805Ips+Y9F1ZpXtJGCbN u9XLe+kq0ayUY7ewAaGAydqsvi93myl/aE7kPpdI8C7UjX30TE6leRjq+17uZtZ8 QpjkVgufPIyIm8YLE5MJyX83LsvskGVOU8CvqIoTZ3yYQqMZeggvk2bjfHJSSFTX PeTFzP6rgzjGsDQx+1L7cFwybB48cIKVUXETYSZczZkfflWcv7JYfgmXlvaLjre0 uxxAgwD4mus0UxMYY84AozDBSV9Kb89Uc8tbeT5iCf1XTA+Oll5M96dr5J+xX/2z HbpvPnKbtisdJ8QLONnFw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrudekgdefgecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefhfffugggtgffkfhgjvfevofesthejredtredtjeenucfhrhhomhepofgrgihi mhgvucftihhprghrugcuoehmrgigihhmvgestggvrhhnohdrthgvtghhqeenucggtffrrg htthgvrhhnpeevvdelieejgedvkeffheekheeilefhgefgffehteekueelvddtueffheet ledtffenucevlhhushhtvghrufhiiigvpedvnecurfgrrhgrmhepmhgrihhlfhhrohhmpe hmrgigihhmvgestggvrhhnohdrthgvtghh X-ME-Proxy: Feedback-ID: i8771445c:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 7 Dec 2022 06:55:26 -0500 (EST) From: Maxime Ripard Date: Wed, 07 Dec 2022 12:53:19 +0100 Subject: [PATCH 08/15] drm/vc4: hvs: Ignore atomic_flush if we're disabled MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20221207-rpi-hvs-crtc-misc-v1-8-1f8e0770798b@cerno.tech> References: <20221207-rpi-hvs-crtc-misc-v1-0-1f8e0770798b@cerno.tech> In-Reply-To: <20221207-rpi-hvs-crtc-misc-v1-0-1f8e0770798b@cerno.tech> To: Emma Anholt , Maxime Ripard , David Airlie , Daniel Vetter , Eric Anholt Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Dave Stevenson , Mateusz Kwiatkowski , Maxime Ripard X-Mailer: b4 0.11.0-dev-8c583 X-Developer-Signature: v=1; a=openpgp-sha256; l=835; i=maxime@cerno.tech; h=from:subject:message-id; bh=pe2k0BPbXfvS6CAIBcCwRojjO6EKVGqS5JbuGrVO1bk=; b=owGbwMvMwCX2+D1vfrpE4FHG02pJDMkT6lb+n1NfmPCRocrEi/Mb+8oQE42VCou9k5bMFMpoYsg/ LtnaUcrCIMbFICumyBIjbL4k7tSs151sfPNg5rAygQxh4OIUgIls4Wf4n/u1PvWO6ZnrtvrZgSs5tg WoNtS1efDtm/pjYmb7ySZGS4Z/OpN0PtyddOFGduO5CsGLzlPezA+0dNvZrLfqY9nfpVd/cQEA X-Developer-Key: i=maxime@cerno.tech; a=openpgp; fpr=BE5675C37E818C8B5764241C254BCFC56BF6CE8D Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org atomic_flush will be called for each CRTC even if they aren't enabled. The whole code we have there will thus run without a properly affected channel, which can then result in all sorts of weird behaviour. Signed-off-by: Maxime Ripard Reviewed-by: Dave Stevenson --- drivers/gpu/drm/vc4/vc4_hvs.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/gpu/drm/vc4/vc4_hvs.c b/drivers/gpu/drm/vc4/vc4_hvs.c index 3582ede1a0aa..5fadbf219542 100644 --- a/drivers/gpu/drm/vc4/vc4_hvs.c +++ b/drivers/gpu/drm/vc4/vc4_hvs.c @@ -579,6 +579,9 @@ void vc4_hvs_atomic_flush(struct drm_crtc *crtc, return; } =20 + if (vc4_state->assigned_channel =3D=3D VC4_HVS_CHANNEL_DISABLED) + return; + if (debug_dump_regs) { DRM_INFO("CRTC %d HVS before:\n", drm_crtc_index(crtc)); vc4_hvs_dump_state(hvs); --=20 2.38.1 From nobody Mon Feb 9 08:47:03 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id E712CC4708E for ; Wed, 7 Dec 2022 11:56:13 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230228AbiLGL4L (ORCPT ); Wed, 7 Dec 2022 06:56:11 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54738 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229559AbiLGLza (ORCPT ); Wed, 7 Dec 2022 06:55:30 -0500 Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com [66.111.4.27]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6ADA0DF09 for ; Wed, 7 Dec 2022 03:55:29 -0800 (PST) Received: from compute6.internal (compute6.nyi.internal [10.202.2.47]) by mailout.nyi.internal (Postfix) with ESMTP id D64665C01EE; Wed, 7 Dec 2022 06:55:28 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute6.internal (MEProxy); Wed, 07 Dec 2022 06:55:28 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cerno.tech; h=cc :cc:content-transfer-encoding:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to; s=fm2; t=1670414128; x= 1670500528; bh=8JXNhnLEO28YrVpxQj1wOWrxTedcnvz7vhR6KkgQoco=; b=R LmKnjjXZBm6rBghyUwCjAT9o/I/63f95yIyiAFZzYdCE9yrjv7mUtlipTewOb9eN wwafVTRbR4v/cMIdILFVBh4tTioq22RL4UoQMMG9Z9sEEoCO816NyJ/Qu5ab5LbW OxjdrT7QBHpuB1DHcfGbvF08MhJoq4n+hJB+CkLJRRw0Ks+HiWhIZ95n4oXSt3Be k5qCr4OTpDiq1Wr8xaaKNoUZF0Gfz2uJri5U80QcHlqv2xsFrpxPnAJpebP9b2Cj uNkfGN0V3VjtzWgpRemDiwN1+BkF9WAOh4PontCJBYGEIUZrIbfqm27M02r+Nvkv 5RZsuleR4K22SW0Y/rxqg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1670414128; x= 1670500528; bh=8JXNhnLEO28YrVpxQj1wOWrxTedcnvz7vhR6KkgQoco=; b=p Ft34ah9Fu13Yv7AllVsSCvN7m6JJvCKcAEa1SZoUh9WYB3PoqnvmJMAWNRxVCSiz hzHdS8iTSLCOxxeXL1OkLu+lFfwFX7puwMsSe2Ts1meus9Xpda+Fpg9P0AKRZ2ep t6ymLvKYz54w3ViQ8qYJEeINM5rFRdaHjvHEfE5yFTxb53dNqCvluTz/eOyGIFID Q/54PsDKnrvFr1etXD8b4qbWOv6XzpGCDvMooazvEL8f4wG7jEOLVIIDhsvweoRD zuIzGdt4/J+1ih+eI4VAuNghWEWv29H/Z0LrTnDqC+HJxAqQWn8sRXiU+zQr+DNp caIeYf25VY49y3q02IQBg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrudekgdefgecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefhfffugggtgffkfhgjvfevofesthejredtredtjeenucfhrhhomhepofgrgihi mhgvucftihhprghrugcuoehmrgigihhmvgestggvrhhnohdrthgvtghhqeenucggtffrrg htthgvrhhnpeevvdelieejgedvkeffheekheeilefhgefgffehteekueelvddtueffheet ledtffenucevlhhushhtvghrufhiiigvpedunecurfgrrhgrmhepmhgrihhlfhhrohhmpe hmrgigihhmvgestggvrhhnohdrthgvtghh X-ME-Proxy: Feedback-ID: i8771445c:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 7 Dec 2022 06:55:28 -0500 (EST) From: Maxime Ripard Date: Wed, 07 Dec 2022 12:53:20 +0100 Subject: [PATCH 09/15] drm/vc4: plane: Allow using 0 as a pixel order value MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20221207-rpi-hvs-crtc-misc-v1-9-1f8e0770798b@cerno.tech> References: <20221207-rpi-hvs-crtc-misc-v1-0-1f8e0770798b@cerno.tech> In-Reply-To: <20221207-rpi-hvs-crtc-misc-v1-0-1f8e0770798b@cerno.tech> To: Emma Anholt , Maxime Ripard , David Airlie , Daniel Vetter , Eric Anholt Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Dave Stevenson , Mateusz Kwiatkowski , Maxime Ripard X-Mailer: b4 0.11.0-dev-8c583 X-Developer-Signature: v=1; a=openpgp-sha256; l=3691; i=maxime@cerno.tech; h=from:subject:message-id; bh=D88ulcoenFvBXOL7I0IQHsqV5VXn1HkB+dnvXbQe7Wg=; b=owGbwMvMwCX2+D1vfrpE4FHG02pJDMkT6lZ+5nstOE3Avry7+Leqn7ulwv2rVWoH/igtP9EcmTVL 50NJRykLgxgXg6yYIkuMsPmSuFOzXney8c2DmcPKBDKEgYtTACayTpyR4UdEs8CS2R6suke1ntu4P/ vFMWPWxdhTC6dtT2mwbU/0L2P4n6acL/dvQr5lS7GhQN9KqfCCfkmROO0bh59FBnb0SlWxAQA= X-Developer-Key: i=maxime@cerno.tech; a=openpgp; fpr=BE5675C37E818C8B5764241C254BCFC56BF6CE8D Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Dave Stevenson vc4_plane_mode_set for HVS5 was using pixel_order unless pixel_order_hvs5 was non-zero, except 0 is a valid value for the pixel_order. Specify pixel_order_hvs5 for all formats and remove the conditional. Signed-off-by: Dave Stevenson Signed-off-by: Maxime Ripard --- drivers/gpu/drm/vc4/vc4_plane.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_plane.c b/drivers/gpu/drm/vc4/vc4_plan= e.c index eb0ac2167937..8b4805c937f0 100644 --- a/drivers/gpu/drm/vc4/vc4_plane.c +++ b/drivers/gpu/drm/vc4/vc4_plane.c @@ -65,11 +65,13 @@ static const struct hvs_format { .drm =3D DRM_FORMAT_RGB565, .hvs =3D HVS_PIXEL_FORMAT_RGB565, .pixel_order =3D HVS_PIXEL_ORDER_XRGB, + .pixel_order_hvs5 =3D HVS_PIXEL_ORDER_XRGB, }, { .drm =3D DRM_FORMAT_BGR565, .hvs =3D HVS_PIXEL_FORMAT_RGB565, .pixel_order =3D HVS_PIXEL_ORDER_XBGR, + .pixel_order_hvs5 =3D HVS_PIXEL_ORDER_XBGR, }, { .drm =3D DRM_FORMAT_ARGB1555, @@ -87,56 +89,67 @@ static const struct hvs_format { .drm =3D DRM_FORMAT_RGB888, .hvs =3D HVS_PIXEL_FORMAT_RGB888, .pixel_order =3D HVS_PIXEL_ORDER_XRGB, + .pixel_order_hvs5 =3D HVS_PIXEL_ORDER_XRGB, }, { .drm =3D DRM_FORMAT_BGR888, .hvs =3D HVS_PIXEL_FORMAT_RGB888, .pixel_order =3D HVS_PIXEL_ORDER_XBGR, + .pixel_order_hvs5 =3D HVS_PIXEL_ORDER_XBGR, }, { .drm =3D DRM_FORMAT_YUV422, .hvs =3D HVS_PIXEL_FORMAT_YCBCR_YUV422_3PLANE, .pixel_order =3D HVS_PIXEL_ORDER_XYCBCR, + .pixel_order_hvs5 =3D HVS_PIXEL_ORDER_XYCBCR, }, { .drm =3D DRM_FORMAT_YVU422, .hvs =3D HVS_PIXEL_FORMAT_YCBCR_YUV422_3PLANE, .pixel_order =3D HVS_PIXEL_ORDER_XYCRCB, + .pixel_order_hvs5 =3D HVS_PIXEL_ORDER_XYCRCB, }, { .drm =3D DRM_FORMAT_YUV420, .hvs =3D HVS_PIXEL_FORMAT_YCBCR_YUV420_3PLANE, .pixel_order =3D HVS_PIXEL_ORDER_XYCBCR, + .pixel_order_hvs5 =3D HVS_PIXEL_ORDER_XYCBCR, }, { .drm =3D DRM_FORMAT_YVU420, .hvs =3D HVS_PIXEL_FORMAT_YCBCR_YUV420_3PLANE, .pixel_order =3D HVS_PIXEL_ORDER_XYCRCB, + .pixel_order_hvs5 =3D HVS_PIXEL_ORDER_XYCRCB, }, { .drm =3D DRM_FORMAT_NV12, .hvs =3D HVS_PIXEL_FORMAT_YCBCR_YUV420_2PLANE, .pixel_order =3D HVS_PIXEL_ORDER_XYCBCR, + .pixel_order_hvs5 =3D HVS_PIXEL_ORDER_XYCBCR, }, { .drm =3D DRM_FORMAT_NV21, .hvs =3D HVS_PIXEL_FORMAT_YCBCR_YUV420_2PLANE, .pixel_order =3D HVS_PIXEL_ORDER_XYCRCB, + .pixel_order_hvs5 =3D HVS_PIXEL_ORDER_XYCRCB, }, { .drm =3D DRM_FORMAT_NV16, .hvs =3D HVS_PIXEL_FORMAT_YCBCR_YUV422_2PLANE, .pixel_order =3D HVS_PIXEL_ORDER_XYCBCR, + .pixel_order_hvs5 =3D HVS_PIXEL_ORDER_XYCBCR, }, { .drm =3D DRM_FORMAT_NV61, .hvs =3D HVS_PIXEL_FORMAT_YCBCR_YUV422_2PLANE, .pixel_order =3D HVS_PIXEL_ORDER_XYCRCB, + .pixel_order_hvs5 =3D HVS_PIXEL_ORDER_XYCRCB, }, { .drm =3D DRM_FORMAT_P030, .hvs =3D HVS_PIXEL_FORMAT_YCBCR_10BIT, .pixel_order =3D HVS_PIXEL_ORDER_XYCBCR, + .pixel_order_hvs5 =3D HVS_PIXEL_ORDER_XYCBCR, .hvs5_only =3D true, }, { @@ -1031,15 +1044,10 @@ static int vc4_plane_mode_set(struct drm_plane *pla= ne, vc4_dlist_write(vc4_state, 0xc0c0c0c0); =20 } else { - u32 hvs_pixel_order =3D format->pixel_order; - - if (format->pixel_order_hvs5) - hvs_pixel_order =3D format->pixel_order_hvs5; - /* Control word */ vc4_dlist_write(vc4_state, SCALER_CTL0_VALID | - (hvs_pixel_order << SCALER_CTL0_ORDER_SHIFT) | + (format->pixel_order_hvs5 << SCALER_CTL0_ORDER_SHIFT) | (hvs_format << SCALER_CTL0_PIXEL_FORMAT_SHIFT) | VC4_SET_FIELD(tiling, SCALER_CTL0_TILING) | (vc4_state->is_unity ? --=20 2.38.1 From nobody Mon Feb 9 08:47:03 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5C02AC63706 for ; Wed, 7 Dec 2022 11:56:26 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230236AbiLGL4U (ORCPT ); Wed, 7 Dec 2022 06:56:20 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56044 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229815AbiLGLzc (ORCPT ); Wed, 7 Dec 2022 06:55:32 -0500 Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com [66.111.4.27]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 38FE4CE28 for ; Wed, 7 Dec 2022 03:55:31 -0800 (PST) Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id A52C95C01E9; Wed, 7 Dec 2022 06:55:30 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute1.internal (MEProxy); Wed, 07 Dec 2022 06:55:30 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cerno.tech; h=cc :cc:content-transfer-encoding:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to; s=fm2; t=1670414130; x= 1670500530; bh=chybC9bA4z237Otv3XNN+1hhSvj8Cx+nBnOPtGmUHew=; b=e xYWL9oDgcShiObJtAACa651WpMg6F3QytTFX5IYy+D/xSC4kJgQuLqL1V4pPbD+Z 1hJZTsOn7f2KOKSHSqEggJhigmUyeKYqF2Ka5cRavSkeBVAwhCr1XlgpuKHkFXBf EqpBAXTWRRiIUdfKfDKKmTYcRZjoKVZFHlqAbDyIQVMl3aeEaoMzmxFUtWTTabE6 VsvexcpQJcnVfkI87wmMBVX7KzH3Iu/8l4c9jQo0e69BjrUeKYZKAKU3ISquHuh0 cA4KwWyUSSm+1h3IZVBN6Wuk3qedrOfCe1uzWUW6W+kAUWL1TnV3eK8HBGzglS8C YNxfo3Tl7Um/gUCqa9KgA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1670414130; x= 1670500530; bh=chybC9bA4z237Otv3XNN+1hhSvj8Cx+nBnOPtGmUHew=; b=t BPaV7KpvDzJNwekv8pTr10ms92PFWu2pKDHq4DKYgXjsACVcRMbEgpKJhshPUSTh fuGgR2Y9ZXqz6cNFdiTsotStFC3rf2mm180DQi48hYTzg3UcTIO3ouzssEpwfXXO bJGliH9xJy/yJ9fNgO/lbAdCMxjYcJDv3KTsSLYdEqWv7zqTbzbr0f0WmqdCfMvN qFp1Fkij3aCM0vTaG7A+mj6aD2+9hWwxOK3le50Haffn4qXWEpjVo0OWFX6sEpbc q6lWFJNjfoJY+8qyXU/hhOAdTQIUysr3WZdcS/NfgtFaWz7bEaH7/E9nu1EQ9+ZD NZSQFHZMwM/lFD7qDRw9A== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrudekgdeffecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefhfffugggtgffkfhgjvfevofesthejredtredtjeenucfhrhhomhepofgrgihi mhgvucftihhprghrugcuoehmrgigihhmvgestggvrhhnohdrthgvtghhqeenucggtffrrg htthgvrhhnpeevvdelieejgedvkeffheekheeilefhgefgffehteekueelvddtueffheet ledtffenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpe hmrgigihhmvgestggvrhhnohdrthgvtghh X-ME-Proxy: Feedback-ID: i8771445c:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 7 Dec 2022 06:55:29 -0500 (EST) From: Maxime Ripard Date: Wed, 07 Dec 2022 12:53:21 +0100 Subject: [PATCH 10/15] drm/vc4: plane: Omit pixel_order from the hvs_format for hvs5 only formats MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20221207-rpi-hvs-crtc-misc-v1-10-1f8e0770798b@cerno.tech> References: <20221207-rpi-hvs-crtc-misc-v1-0-1f8e0770798b@cerno.tech> In-Reply-To: <20221207-rpi-hvs-crtc-misc-v1-0-1f8e0770798b@cerno.tech> To: Emma Anholt , Maxime Ripard , David Airlie , Daniel Vetter , Eric Anholt Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Dave Stevenson , Mateusz Kwiatkowski , Maxime Ripard X-Mailer: b4 0.11.0-dev-8c583 X-Developer-Signature: v=1; a=openpgp-sha256; l=1659; i=maxime@cerno.tech; h=from:subject:message-id; bh=TjzYPZb0GiveIAkQNU4LbeqUUAovVrht0vdSF4aq2qQ=; b=owGbwMvMwCX2+D1vfrpE4FHG02pJDMkT6laaR36MquNQc/dmnOhx6bxYgEFIkWVOeJCjZUbKyaN3 Ioo6SlkYxLgYZMUUWWKEzZfEnZr1upONbx7MHFYmkCEMXJwCMJEtPxgZJje3WhXqqc2x/XUuuTX07a Ggq4p3vs08OJn/nvuqK/kR+xj+aTC2HFpTYBDzu1F1oar7eYt7N5g2Xuo6YP9+T+4G4XWd3AA= X-Developer-Key: i=maxime@cerno.tech; a=openpgp; fpr=BE5675C37E818C8B5764241C254BCFC56BF6CE8D Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Dave Stevenson pixel_order is used for the earlier versions of the HVS, so is redundant on the 10:10:10:2 and 10bit YUV formats that are only supported on HVS5. Remove the assignment from the table to avoid confusion. Signed-off-by: Dave Stevenson Signed-off-by: Maxime Ripard --- drivers/gpu/drm/vc4/vc4_plane.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_plane.c b/drivers/gpu/drm/vc4/vc4_plan= e.c index 8b4805c937f0..7b7bbe94d47a 100644 --- a/drivers/gpu/drm/vc4/vc4_plane.c +++ b/drivers/gpu/drm/vc4/vc4_plane.c @@ -148,35 +148,30 @@ static const struct hvs_format { { .drm =3D DRM_FORMAT_P030, .hvs =3D HVS_PIXEL_FORMAT_YCBCR_10BIT, - .pixel_order =3D HVS_PIXEL_ORDER_XYCBCR, .pixel_order_hvs5 =3D HVS_PIXEL_ORDER_XYCBCR, .hvs5_only =3D true, }, { .drm =3D DRM_FORMAT_XRGB2101010, .hvs =3D HVS_PIXEL_FORMAT_RGBA1010102, - .pixel_order =3D HVS_PIXEL_ORDER_ABGR, .pixel_order_hvs5 =3D HVS_PIXEL_ORDER_ARGB, .hvs5_only =3D true, }, { .drm =3D DRM_FORMAT_ARGB2101010, .hvs =3D HVS_PIXEL_FORMAT_RGBA1010102, - .pixel_order =3D HVS_PIXEL_ORDER_ABGR, .pixel_order_hvs5 =3D HVS_PIXEL_ORDER_ARGB, .hvs5_only =3D true, }, { .drm =3D DRM_FORMAT_ABGR2101010, .hvs =3D HVS_PIXEL_FORMAT_RGBA1010102, - .pixel_order =3D HVS_PIXEL_ORDER_ARGB, .pixel_order_hvs5 =3D HVS_PIXEL_ORDER_ABGR, .hvs5_only =3D true, }, { .drm =3D DRM_FORMAT_XBGR2101010, .hvs =3D HVS_PIXEL_FORMAT_RGBA1010102, - .pixel_order =3D HVS_PIXEL_ORDER_ARGB, .pixel_order_hvs5 =3D HVS_PIXEL_ORDER_ABGR, .hvs5_only =3D true, }, --=20 2.38.1 From nobody Mon Feb 9 08:47:03 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8B6FEC63707 for ; Wed, 7 Dec 2022 11:56:27 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230260AbiLGL40 (ORCPT ); Wed, 7 Dec 2022 06:56:26 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54634 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229834AbiLGLzd (ORCPT ); Wed, 7 Dec 2022 06:55:33 -0500 Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com [66.111.4.27]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DABEDE09A for ; Wed, 7 Dec 2022 03:55:32 -0800 (PST) Received: from compute2.internal (compute2.nyi.internal [10.202.2.46]) by mailout.nyi.internal (Postfix) with ESMTP id 4FD375C01BF; Wed, 7 Dec 2022 06:55:32 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute2.internal (MEProxy); Wed, 07 Dec 2022 06:55:32 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cerno.tech; h=cc :cc:content-transfer-encoding:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to; s=fm2; t=1670414132; x= 1670500532; bh=uijn7bhnwg8D9DX/rVAehHdMMtRMxAq4fSqT3VnEss8=; b=W +PwpIJ7O/VNKJohWz6I2y+l6qbeOC3Wvhz7GWaVpkeuX4qFWXO2U2P5WVfOTZx+Y SMg3C9ob1dUWfESoeEaEqYFoXza+pbpJ8+FHKw9FZgg2lAxNd95fHGC6hyx5z9Ob u6QdNP/1Mbh0AY/wvM4C44jwiDi9a7kjUmdZFtnEervOh03ny87UOOuROKO3Wj9/ x8Zn/jYfGrR0cbFic7UgQfMqSmWubtaEvTgZw/jGOAf/uNLjz+i9ZkIFZUz2tLQi koDzsw6qyFJKWHMChO/9EnBYWUNcwnEuwdPeyStoumXogLHkVx1d0a1U3gluYRhS xJSkidM0s2U3St0I6d+fQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1670414132; x= 1670500532; bh=uijn7bhnwg8D9DX/rVAehHdMMtRMxAq4fSqT3VnEss8=; b=D dhtPaWj0dm88RJ6whCOBMtU60KAKvg06nup/P8g8HAKtN0Ne9sWoO7RNJfa5QCdl 3II+HAGKsVwpcBkVJJs58ag46oQ4AWxqMA3FxQxFr1lYNSIcPB7TP7vOqkG+rj1I mWSbvDQMsKoCchZlKCY2gTc3WZ3juJa1ihMZB1b7a/k2WKXMDyJ3Ly70wbpHBE9d AEqToHSH7WRpSls6oMPS1HwU2uG0KHWJJHUZL/3l1i4AVDY8EDwlFrq1EaKYArHw aVGntXmMjQDVk7+AzgqLyS5KYr2bSUfhfja1J3Vna2WVe8U/j02O5N7dQZvreKCM 6ShOHRol7bBiq+UhN3rJw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrudekgdefgecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefhfffugggtgffkfhgjvfevofesthejredtredtjeenucfhrhhomhepofgrgihi mhgvucftihhprghrugcuoehmrgigihhmvgestggvrhhnohdrthgvtghhqeenucggtffrrg htthgvrhhnpeevvdelieejgedvkeffheekheeilefhgefgffehteekueelvddtueffheet ledtffenucevlhhushhtvghrufhiiigvpeefnecurfgrrhgrmhepmhgrihhlfhhrohhmpe hmrgigihhmvgestggvrhhnohdrthgvtghh X-ME-Proxy: Feedback-ID: i8771445c:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 7 Dec 2022 06:55:31 -0500 (EST) From: Maxime Ripard Date: Wed, 07 Dec 2022 12:53:22 +0100 Subject: [PATCH 11/15] drm/vc4: plane: Add 3:3:2 and 4:4:4:4 RGB/RGBX/RGBA formats MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20221207-rpi-hvs-crtc-misc-v1-11-1f8e0770798b@cerno.tech> References: <20221207-rpi-hvs-crtc-misc-v1-0-1f8e0770798b@cerno.tech> In-Reply-To: <20221207-rpi-hvs-crtc-misc-v1-0-1f8e0770798b@cerno.tech> To: Emma Anholt , Maxime Ripard , David Airlie , Daniel Vetter , Eric Anholt Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Dave Stevenson , Mateusz Kwiatkowski , Maxime Ripard X-Mailer: b4 0.11.0-dev-8c583 X-Developer-Signature: v=1; a=openpgp-sha256; l=3144; i=maxime@cerno.tech; h=from:subject:message-id; bh=DvjBy0zh4zjirjYFb5EqVavFERIHbMTKbPtmYKYxPik=; b=owGbwMvMwCX2+D1vfrpE4FHG02pJDMkT6lbeMmX59k8pK0F3d9l7qbYAxmuMeyLeCYskXQv/efxz 7Du3jlIWBjEuBlkxRZYYYfMlcadmve5k45sHM4eVCWQIAxenAEykZTojw9LTG8MmzX3K0LVV6Zp15+ qZc3enL/0fkL9b6W9tYGp6Di/DP8UpByxL2q4GlRXc9N/dvrbnXXrAocMth1fsM90r9mC9GRMA X-Developer-Key: i=maxime@cerno.tech; a=openpgp; fpr=BE5675C37E818C8B5764241C254BCFC56BF6CE8D Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Dave Stevenson The hardware supports the 332 8bpp and 4:4:4:4 16bpp formats, but the table of supported formats didn't include them. Add them in. In theory they are supported for T-format as well as linear, but without a way to test them just add them as linear for now. Signed-off-by: Dave Stevenson Signed-off-by: Maxime Ripard --- drivers/gpu/drm/vc4/vc4_plane.c | 70 +++++++++++++++++++++++++++++++++++++= ++++ 1 file changed, 70 insertions(+) diff --git a/drivers/gpu/drm/vc4/vc4_plane.c b/drivers/gpu/drm/vc4/vc4_plan= e.c index 7b7bbe94d47a..dee525bacd4b 100644 --- a/drivers/gpu/drm/vc4/vc4_plane.c +++ b/drivers/gpu/drm/vc4/vc4_plane.c @@ -175,6 +175,66 @@ static const struct hvs_format { .pixel_order_hvs5 =3D HVS_PIXEL_ORDER_ABGR, .hvs5_only =3D true, }, + { + .drm =3D DRM_FORMAT_RGB332, + .hvs =3D HVS_PIXEL_FORMAT_RGB332, + .pixel_order =3D HVS_PIXEL_ORDER_ARGB, + .pixel_order_hvs5 =3D HVS_PIXEL_ORDER_ARGB, + }, + { + .drm =3D DRM_FORMAT_BGR233, + .hvs =3D HVS_PIXEL_FORMAT_RGB332, + .pixel_order =3D HVS_PIXEL_ORDER_ABGR, + .pixel_order_hvs5 =3D HVS_PIXEL_ORDER_ABGR, + }, + { + .drm =3D DRM_FORMAT_XRGB4444, + .hvs =3D HVS_PIXEL_FORMAT_RGBA4444, + .pixel_order =3D HVS_PIXEL_ORDER_ABGR, + .pixel_order_hvs5 =3D HVS_PIXEL_ORDER_ARGB, + }, + { + .drm =3D DRM_FORMAT_ARGB4444, + .hvs =3D HVS_PIXEL_FORMAT_RGBA4444, + .pixel_order =3D HVS_PIXEL_ORDER_ABGR, + .pixel_order_hvs5 =3D HVS_PIXEL_ORDER_ARGB, + }, + { + .drm =3D DRM_FORMAT_XBGR4444, + .hvs =3D HVS_PIXEL_FORMAT_RGBA4444, + .pixel_order =3D HVS_PIXEL_ORDER_ARGB, + .pixel_order_hvs5 =3D HVS_PIXEL_ORDER_ABGR, + }, + { + .drm =3D DRM_FORMAT_ABGR4444, + .hvs =3D HVS_PIXEL_FORMAT_RGBA4444, + .pixel_order =3D HVS_PIXEL_ORDER_ARGB, + .pixel_order_hvs5 =3D HVS_PIXEL_ORDER_ABGR, + }, + { + .drm =3D DRM_FORMAT_BGRX4444, + .hvs =3D HVS_PIXEL_FORMAT_RGBA4444, + .pixel_order =3D HVS_PIXEL_ORDER_RGBA, + .pixel_order_hvs5 =3D HVS_PIXEL_ORDER_BGRA, + }, + { + .drm =3D DRM_FORMAT_BGRA4444, + .hvs =3D HVS_PIXEL_FORMAT_RGBA4444, + .pixel_order =3D HVS_PIXEL_ORDER_RGBA, + .pixel_order_hvs5 =3D HVS_PIXEL_ORDER_BGRA, + }, + { + .drm =3D DRM_FORMAT_RGBX4444, + .hvs =3D HVS_PIXEL_FORMAT_RGBA4444, + .pixel_order =3D HVS_PIXEL_ORDER_BGRA, + .pixel_order_hvs5 =3D HVS_PIXEL_ORDER_RGBA, + }, + { + .drm =3D DRM_FORMAT_RGBA4444, + .hvs =3D HVS_PIXEL_FORMAT_RGBA4444, + .pixel_order =3D HVS_PIXEL_ORDER_BGRA, + .pixel_order_hvs5 =3D HVS_PIXEL_ORDER_RGBA, + }, }; =20 static const struct hvs_format *vc4_get_hvs_format(u32 drm_format) @@ -1521,6 +1581,16 @@ static bool vc4_format_mod_supported(struct drm_plan= e *plane, case DRM_FORMAT_BGRX1010102: case DRM_FORMAT_RGBA1010102: case DRM_FORMAT_BGRA1010102: + case DRM_FORMAT_XRGB4444: + case DRM_FORMAT_ARGB4444: + case DRM_FORMAT_XBGR4444: + case DRM_FORMAT_ABGR4444: + case DRM_FORMAT_RGBX4444: + case DRM_FORMAT_RGBA4444: + case DRM_FORMAT_BGRX4444: + case DRM_FORMAT_BGRA4444: + case DRM_FORMAT_RGB332: + case DRM_FORMAT_BGR233: case DRM_FORMAT_YUV422: case DRM_FORMAT_YVU422: case DRM_FORMAT_YUV420: --=20 2.38.1 From nobody Mon Feb 9 08:47:03 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 451EFC4708E for ; Wed, 7 Dec 2022 11:56:32 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230239AbiLGL4a (ORCPT ); Wed, 7 Dec 2022 06:56:30 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56700 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229846AbiLGLzf (ORCPT ); Wed, 7 Dec 2022 06:55:35 -0500 Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com [66.111.4.27]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8FAED1E3 for ; Wed, 7 Dec 2022 03:55:34 -0800 (PST) Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.nyi.internal (Postfix) with ESMTP id 0AD5D5C01D9; Wed, 7 Dec 2022 06:55:34 -0500 (EST) Received: from mailfrontend2 ([10.202.2.163]) by compute5.internal (MEProxy); Wed, 07 Dec 2022 06:55:34 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cerno.tech; h=cc :cc:content-transfer-encoding:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to; s=fm2; t=1670414134; x= 1670500534; bh=kzn7DswEsZBG72MZ502pUhHCXI7AVBomop8HSk+V4rI=; b=H MfiUAMN/8GxI9f8LdvSwzysAOhTR1839hey0OE6HW1fUbyoPfHX7LfWdxlZivYV2 kIuJh08ybyqq8Y8jy5M/eVWS1S3GDNBnK8d6n96Jdwp5LN5o9wEO19h4b+uXTgLD ydSYgGQj5kopcnYErAazClOb9xiNtg/FJoKs2cpsFXX4tDWc7EcA4mvzG42k3n5+ NcjccztZqeabEVhd8E/5pDeoUlI4LSXFQLfxZqdo359DOm6v+owOyL6hmi++2FFS RkLYK3ET7DSgDkAxDyqWJ5mSlnGe8XQJfYXnhpLguGOAVjMwQ/yI/D8pbZWbdOsF m8pQJTHRNAY72RytnldCA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1670414134; x= 1670500534; bh=kzn7DswEsZBG72MZ502pUhHCXI7AVBomop8HSk+V4rI=; b=e qjCLt0UR207Eyy5f3uSTQEcpye1laZFwzP6fM4tOs9/W2AbyUXmyoZxUXpxojkqG eM6SnZ1oElKcXYv30sdugvLcPOmcaCwTru6/x5FqQ/M6cQhvyKYmPrSXbaY2hfth aNeEia46bVQOFBgrzZOqbH2XQaMYMdOwwQmOGkoITLXd9cIbNFX3jZswLJr8RGI9 vSG0BhdJUtg+iZvEzkhQnOJfc5RV9PQN8ejO5uiO/wgvJoomCNCaEUdM9V103ojg xkjgnohUr4nKuJiqMaH29+wsayOjIoIz7dlLkQWFCcA73Ncrib6yFOsGU0jsEqel WfRLx72LzzoET1Ww9VbYw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrudekgdefgecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefhfffugggtgffkfhgjvfevofesthejredtredtjeenucfhrhhomhepofgrgihi mhgvucftihhprghrugcuoehmrgigihhmvgestggvrhhnohdrthgvtghhqeenucggtffrrg htthgvrhhnpeevvdelieejgedvkeffheekheeilefhgefgffehteekueelvddtueffheet ledtffenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpe hmrgigihhmvgestggvrhhnohdrthgvtghh X-ME-Proxy: Feedback-ID: i8771445c:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 7 Dec 2022 06:55:33 -0500 (EST) From: Maxime Ripard Date: Wed, 07 Dec 2022 12:53:23 +0100 Subject: [PATCH 12/15] drm/vc4: Add comments for which HVS_PIXEL_ORDER_xxx defines apply MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20221207-rpi-hvs-crtc-misc-v1-12-1f8e0770798b@cerno.tech> References: <20221207-rpi-hvs-crtc-misc-v1-0-1f8e0770798b@cerno.tech> In-Reply-To: <20221207-rpi-hvs-crtc-misc-v1-0-1f8e0770798b@cerno.tech> To: Emma Anholt , Maxime Ripard , David Airlie , Daniel Vetter , Eric Anholt Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Dave Stevenson , Mateusz Kwiatkowski , Maxime Ripard X-Mailer: b4 0.11.0-dev-8c583 X-Developer-Signature: v=1; a=openpgp-sha256; l=1228; i=maxime@cerno.tech; h=from:subject:message-id; bh=1LzaaBh0lTOudTNhILem3dXqKIZSSxQD4rTtQVTyIi0=; b=owGbwMvMwCX2+D1vfrpE4FHG02pJDMkT6la+6AyRO7UzzEuatSXFvm5Joo/K7/eS0kzP1LsF/4ht Ys3tKGVhEONikBVTZIkRNl8Sd2rW6042vnkwc1iZQIYwcHEKwEQm1DH8L5GKnPyGY517XN98blMpl+ DVHf6mB9rCeHb4LZ7i6eTYwvBXRHzOF4V/S68nXik4cne6tV9vKtPCqfNmxc2aNlWq2/4zIwA= X-Developer-Key: i=maxime@cerno.tech; a=openpgp; fpr=BE5675C37E818C8B5764241C254BCFC56BF6CE8D Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Dave Stevenson The HVS_PIXEL_ORDER_xxx defines apply to specific HVS_PIXEL_FORMAT_xxx modes, so add comments to make this obvious. Signed-off-by: Dave Stevenson Signed-off-by: Maxime Ripard --- drivers/gpu/drm/vc4/vc4_regs.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/gpu/drm/vc4/vc4_regs.h b/drivers/gpu/drm/vc4/vc4_regs.h index 1256f0877ff6..f3763bd600f6 100644 --- a/drivers/gpu/drm/vc4/vc4_regs.h +++ b/drivers/gpu/drm/vc4/vc4_regs.h @@ -848,16 +848,19 @@ enum hvs_pixel_format { /* Note: the LSB is the rightmost character shown. Only valid for * HVS_PIXEL_FORMAT_RGB8888, not RGB888. */ +/* For modes 332, 4444, 555, 5551, 6666, 8888, 10:10:10:2 */ #define HVS_PIXEL_ORDER_RGBA 0 #define HVS_PIXEL_ORDER_BGRA 1 #define HVS_PIXEL_ORDER_ARGB 2 #define HVS_PIXEL_ORDER_ABGR 3 =20 +/* For modes 666 and 888 (4 & 5) */ #define HVS_PIXEL_ORDER_XBRG 0 #define HVS_PIXEL_ORDER_XRBG 1 #define HVS_PIXEL_ORDER_XRGB 2 #define HVS_PIXEL_ORDER_XBGR 3 =20 +/* For YCbCr modes (8-12, and 17) */ #define HVS_PIXEL_ORDER_XYCBCR 0 #define HVS_PIXEL_ORDER_XYCRCB 1 #define HVS_PIXEL_ORDER_YXCBCR 2 --=20 2.38.1 From nobody Mon Feb 9 08:47:03 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8BB04C352A1 for ; Wed, 7 Dec 2022 11:56:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230268AbiLGL4f (ORCPT ); Wed, 7 Dec 2022 06:56:35 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56014 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229813AbiLGLzh (ORCPT ); Wed, 7 Dec 2022 06:55:37 -0500 Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com [66.111.4.27]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 835F61E4 for ; Wed, 7 Dec 2022 03:55:36 -0800 (PST) Received: from compute2.internal (compute2.nyi.internal [10.202.2.46]) by mailout.nyi.internal (Postfix) with ESMTP id EF51B5C01BF; Wed, 7 Dec 2022 06:55:35 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute2.internal (MEProxy); Wed, 07 Dec 2022 06:55:35 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cerno.tech; h=cc :cc:content-transfer-encoding:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to; s=fm2; t=1670414135; x= 1670500535; bh=Wm2sdSf8u2q2uQlXhqnmSxLJ4nHWBcCS1Wr6SNkE9cg=; b=D s5+LsKeA/mXx7512s56pQK5x4ldUNcS5XPL6+zCoUZGm0fEkUV+LIX3nqm3tlk6O Y/vZiT3A525yht4LOkwDbKo104g6sesecN1VgYRJ9t+7r2FMrQ5JfbTCw9OLHqgn 1XZi+bvu3sLhmPPN81nEkrsS8o8385ngQAHxQ233rMNmDLGaIWQZw5SrbPxusN+A ZhDLB1L4tvP4pyujNgW3FHZizTQFDemNnf0UTlySVk70sKjXm1BoigMxRbbhtXVl va0DOgfpvGOXA+I18hgJLC2TDSwQRj0BpWbauKriEzbNz+6TLqc30Vl2PKu6F7lM aO2tLBbglCqYkKYEQMa/g== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1670414135; x= 1670500535; bh=Wm2sdSf8u2q2uQlXhqnmSxLJ4nHWBcCS1Wr6SNkE9cg=; b=a tdm9i4e4UcLJpm0mUNzKi1LE4eTMPQLEkzQpJg1UK30xVf1xmUz1hb7qtLMy7U5O wX3QyATDTpOK8CJEEih0oNjt91dBXP4T/iBcXjY6zBoGaQ9NaRQDZdgWWzcvPW7I 90+wOU2nXAQ7JYrXCqgrmsLg7DlYL5vaWeiMsCj8KTy1bpD0ZQayB4bVZhPjrF+p Qc8phaEda0jixrbxu47mg0AW6CtoDPAES+lshtciAFV2C2QKHvYYov1sATPcIPT/ u3FDI5B501wjPdhEla5T2DLGzrMjVdYgJUAlF2sFPLvZqpKWUyTOA1Hv2x/rZdc1 ZZnBoHk37zD3n9O76Z0Lw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrudekgdefgecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefhfffugggtgffkfhgjvfevofesthejredtredtjeenucfhrhhomhepofgrgihi mhgvucftihhprghrugcuoehmrgigihhmvgestggvrhhnohdrthgvtghhqeenucggtffrrg htthgvrhhnpeevvdelieejgedvkeffheekheeilefhgefgffehteekueelvddtueffheet ledtffenucevlhhushhtvghrufhiiigvpeegnecurfgrrhgrmhepmhgrihhlfhhrohhmpe hmrgigihhmvgestggvrhhnohdrthgvtghh X-ME-Proxy: Feedback-ID: i8771445c:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 7 Dec 2022 06:55:35 -0500 (EST) From: Maxime Ripard Date: Wed, 07 Dec 2022 12:53:24 +0100 Subject: [PATCH 13/15] drm/vc4: crtc: Fix timings for VEC modes MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20221207-rpi-hvs-crtc-misc-v1-13-1f8e0770798b@cerno.tech> References: <20221207-rpi-hvs-crtc-misc-v1-0-1f8e0770798b@cerno.tech> In-Reply-To: <20221207-rpi-hvs-crtc-misc-v1-0-1f8e0770798b@cerno.tech> To: Emma Anholt , Maxime Ripard , David Airlie , Daniel Vetter , Eric Anholt Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Dave Stevenson , Mateusz Kwiatkowski , Maxime Ripard X-Mailer: b4 0.11.0-dev-8c583 X-Developer-Signature: v=1; a=openpgp-sha256; l=4655; i=maxime@cerno.tech; h=from:subject:message-id; bh=8MEVk2yY+UhcSNlj2wPChZWHKoYLQ+Me0jsSJnr2jVI=; b=owGbwMvMwCX2+D1vfrpE4FHG02pJDMkT6lYuCKsze6d1LOCZqXF9zfxDfxLnCF74IHFhQVJvfubc P45OHaUsDGJcDLJiiiwxwuZL4k7Net3JxjcPZg4rE8gQBi5OAZjIy+sM/4sORgsw396aeXB50vGamx yHioN5KldJ32fz235/c/IKT0+G/xVmt1+43F11OOqO3endHT8nKVZ/Zf0SunDH/QfCsjsY1BgB X-Developer-Key: i=maxime@cerno.tech; a=openpgp; fpr=BE5675C37E818C8B5764241C254BCFC56BF6CE8D Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Mateusz Kwiatkowski This commit fixes vertical timings of the VEC (composite output) modes to accurately represent the 525-line ("NTSC") and 625-line ("PAL") ITU-R standards. Previous timings were actually defined as 502 and 601 lines, resulting in non-standard 62.69 Hz and 52 Hz signals being generated, respectively. Changes to vc4_crtc.c have also been made, to make the PixelValve vertical timings accurately correspond to the DRM modeline in interlaced modes. The resulting VERTA/VERTB register values have been verified against the reference values set by the Raspberry Pi firmware. Signed-off-by: Mateusz Kwiatkowski Signed-off-by: Maxime Ripard --- drivers/gpu/drm/vc4/vc4_crtc.c | 71 ++++++++++++++++++++++++++------------= ---- 1 file changed, 44 insertions(+), 27 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_crtc.c b/drivers/gpu/drm/vc4/vc4_crtc.c index 333529ed3a0d..91181cac01e4 100644 --- a/drivers/gpu/drm/vc4/vc4_crtc.c +++ b/drivers/gpu/drm/vc4/vc4_crtc.c @@ -326,8 +326,14 @@ static void vc4_crtc_config_pv(struct drm_crtc *crtc, = struct drm_encoder *encode bool is_dsi =3D (vc4_encoder->type =3D=3D VC4_ENCODER_TYPE_DSI0 || vc4_encoder->type =3D=3D VC4_ENCODER_TYPE_DSI1); bool is_dsi1 =3D vc4_encoder->type =3D=3D VC4_ENCODER_TYPE_DSI1; + bool is_vec =3D vc4_encoder->type =3D=3D VC4_ENCODER_TYPE_VEC; u32 format =3D is_dsi1 ? PV_CONTROL_FORMAT_DSIV_24 : PV_CONTROL_FORMAT_24; u8 ppc =3D pv_data->pixels_per_clock; + + u16 vert_bp =3D mode->crtc_vtotal - mode->crtc_vsync_end; + u16 vert_sync =3D mode->crtc_vsync_end - mode->crtc_vsync_start; + u16 vert_fp =3D mode->crtc_vsync_start - mode->crtc_vdisplay; + bool debug_dump_regs =3D false; int idx; =20 @@ -355,49 +361,60 @@ static void vc4_crtc_config_pv(struct drm_crtc *crtc,= struct drm_encoder *encode VC4_SET_FIELD(mode->hdisplay * pixel_rep / ppc, PV_HORZB_HACTIVE)); =20 - CRTC_WRITE(PV_VERTA, - VC4_SET_FIELD(mode->crtc_vtotal - mode->crtc_vsync_end + - interlace, - PV_VERTA_VBP) | - VC4_SET_FIELD(mode->crtc_vsync_end - mode->crtc_vsync_start, - PV_VERTA_VSYNC)); - CRTC_WRITE(PV_VERTB, - VC4_SET_FIELD(mode->crtc_vsync_start - mode->crtc_vdisplay, - PV_VERTB_VFP) | - VC4_SET_FIELD(mode->crtc_vdisplay, PV_VERTB_VACTIVE)); - if (interlace) { + bool odd_field_first =3D false; + u32 field_delay =3D mode->htotal * pixel_rep / (2 * ppc); + u16 vert_bp_even =3D vert_bp; + u16 vert_fp_even =3D vert_fp; + + if (is_vec) { + /* VEC (composite output) */ + ++field_delay; + if (mode->htotal =3D=3D 858) { + /* 525-line mode (NTSC or PAL-M) */ + odd_field_first =3D true; + } + } + + if (odd_field_first) + ++vert_fp_even; + else + ++vert_bp; + CRTC_WRITE(PV_VERTA_EVEN, - VC4_SET_FIELD(mode->crtc_vtotal - - mode->crtc_vsync_end, - PV_VERTA_VBP) | - VC4_SET_FIELD(mode->crtc_vsync_end - - mode->crtc_vsync_start, - PV_VERTA_VSYNC)); + VC4_SET_FIELD(vert_bp_even, PV_VERTA_VBP) | + VC4_SET_FIELD(vert_sync, PV_VERTA_VSYNC)); CRTC_WRITE(PV_VERTB_EVEN, - VC4_SET_FIELD(mode->crtc_vsync_start - - mode->crtc_vdisplay, - PV_VERTB_VFP) | + VC4_SET_FIELD(vert_fp_even, PV_VERTB_VFP) | VC4_SET_FIELD(mode->crtc_vdisplay, PV_VERTB_VACTIVE)); =20 - /* We set up first field even mode for HDMI. VEC's - * NTSC mode would want first field odd instead, once - * we support it (to do so, set ODD_FIRST and put the - * delay in VSYNCD_EVEN instead). + /* We set up first field even mode for HDMI and VEC's PAL. + * For NTSC, we need first field odd. */ CRTC_WRITE(PV_V_CONTROL, PV_VCONTROL_CONTINUOUS | (is_dsi ? PV_VCONTROL_DSI : 0) | PV_VCONTROL_INTERLACE | - VC4_SET_FIELD(mode->htotal * pixel_rep / (2 * ppc), - PV_VCONTROL_ODD_DELAY)); - CRTC_WRITE(PV_VSYNCD_EVEN, 0); + (odd_field_first + ? PV_VCONTROL_ODD_FIRST + : VC4_SET_FIELD(field_delay, + PV_VCONTROL_ODD_DELAY))); + CRTC_WRITE(PV_VSYNCD_EVEN, + (odd_field_first ? field_delay : 0)); } else { CRTC_WRITE(PV_V_CONTROL, PV_VCONTROL_CONTINUOUS | (is_dsi ? PV_VCONTROL_DSI : 0)); + CRTC_WRITE(PV_VSYNCD_EVEN, 0); } =20 + CRTC_WRITE(PV_VERTA, + VC4_SET_FIELD(vert_bp, PV_VERTA_VBP) | + VC4_SET_FIELD(vert_sync, PV_VERTA_VSYNC)); + CRTC_WRITE(PV_VERTB, + VC4_SET_FIELD(vert_fp, PV_VERTB_VFP) | + VC4_SET_FIELD(mode->crtc_vdisplay, PV_VERTB_VACTIVE)); + if (is_dsi) CRTC_WRITE(PV_HACT_ACT, mode->hdisplay * pixel_rep); =20 --=20 2.38.1 From nobody Mon Feb 9 08:47:03 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id AC852C352A1 for ; Wed, 7 Dec 2022 11:56:41 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230274AbiLGL4j (ORCPT ); Wed, 7 Dec 2022 06:56:39 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56728 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229937AbiLGLzj (ORCPT ); Wed, 7 Dec 2022 06:55:39 -0500 Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com [66.111.4.27]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 58004109D for ; Wed, 7 Dec 2022 03:55:38 -0800 (PST) Received: from compute6.internal (compute6.nyi.internal [10.202.2.47]) by mailout.nyi.internal (Postfix) with ESMTP id C613F5C01D2; Wed, 7 Dec 2022 06:55:37 -0500 (EST) Received: from mailfrontend2 ([10.202.2.163]) by compute6.internal (MEProxy); Wed, 07 Dec 2022 06:55:37 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cerno.tech; h=cc :cc:content-transfer-encoding:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to; s=fm2; t=1670414137; x= 1670500537; bh=KDXnofUNT0I/LkLW2Xe++pwe0GlWoAoqzj43/HZ72T4=; b=F C9ZYvM4xYi843Q2Mbz5jmzjroekj2WSzYl5MtVzUFvJ+zjPdfMD9rwD/pfysarB5 JPTKlm/9yTBqMoz4XBhF8kRKxqvv6WNyBblKklUyh+YB83FoEfQY+ufAb4f7gWEr cZTqQP/vf635WUwWCOOGp7R7WJIpzTcuk/pSS0pBsKdUWLtZhV5TZ6mUg5MtjGUx gfZTfemltkyBpDV8Wf57ITDdSSvIl1Q08TbJak49Ci5p7R6Pn+kFpdsrplgelRyq YaFOueHcVGzuaD5fKo9cVUh1oBuL3T8fLAagdBY1o4ZpZ5c8OLyVuJSWksbi4wI8 J6HJwNHBWOUEB9jFwyUiA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1670414137; x= 1670500537; bh=KDXnofUNT0I/LkLW2Xe++pwe0GlWoAoqzj43/HZ72T4=; b=O 7eF9M92z4LzKfQPWFkJD948iQYfszcp+HfweaoYNlgvbIgY/ePMUf1X9s1HXOUXy LleScZagN/HKmqd3CcHYrfU7KDdqk+zpEpOhMXDTwFBh01MLbHQIYIXJ98OOppiq 7DrOgKG8zbRRGoMZ59vB6N+/cmiZDrNYZxS0OO+KFsLLf9A3sq0cQbS8Ydy2aUDO I142lhmF7amIglBDO1x6wAcaIZGpPHG/s0xgAhVMO989T0zrS1t9/d1gkj/dKiCV gt1ffm8MA9y/bZl6rYb32Rr1PQWa+uzrKhZpYN4rbI08ZeBA48GlLMnUhSe1/y42 2UTm9E8eB4/KhMu9a4rCw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrudekgdefgecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefhfffugggtgffkfhgjvfevofesthejredtredtjeenucfhrhhomhepofgrgihi mhgvucftihhprghrugcuoehmrgigihhmvgestggvrhhnohdrthgvtghhqeenucggtffrrg htthgvrhhnpeevvdelieejgedvkeffheekheeilefhgefgffehteekueelvddtueffheet ledtffenucevlhhushhtvghrufhiiigvpeefnecurfgrrhgrmhepmhgrihhlfhhrohhmpe hmrgigihhmvgestggvrhhnohdrthgvtghh X-ME-Proxy: Feedback-ID: i8771445c:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 7 Dec 2022 06:55:37 -0500 (EST) From: Maxime Ripard Date: Wed, 07 Dec 2022 12:53:25 +0100 Subject: [PATCH 14/15] drm/vc4: hdmi: Correct interlaced timings again MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20221207-rpi-hvs-crtc-misc-v1-14-1f8e0770798b@cerno.tech> References: <20221207-rpi-hvs-crtc-misc-v1-0-1f8e0770798b@cerno.tech> In-Reply-To: <20221207-rpi-hvs-crtc-misc-v1-0-1f8e0770798b@cerno.tech> To: Emma Anholt , Maxime Ripard , David Airlie , Daniel Vetter , Eric Anholt Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Dave Stevenson , Mateusz Kwiatkowski , Maxime Ripard X-Mailer: b4 0.11.0-dev-8c583 X-Developer-Signature: v=1; a=openpgp-sha256; l=1375; i=maxime@cerno.tech; h=from:subject:message-id; bh=2Svk6pZ3lWM5+mLTO01TRJl0JjlnLEjaMR/enj/vUCc=; b=owGbwMvMwCX2+D1vfrpE4FHG02pJDMkT6lb2qtkW3Z7X+fCoW5fyptnbzOfOrUnzYAiftvSYvL5p rO3zjlIWBjEuBlkxRZYYYfMlcadmve5k45sHM4eVCWQIAxenAEzk8DyGf2rlLa1r7vxJ5342I5b72q rd0tOVNr178S77jat40LzXHZKMDDc++jXoPFU5VXdw17OO54UPv8X+M02/cVgxknftFoWeGm4A X-Developer-Key: i=maxime@cerno.tech; a=openpgp; fpr=BE5675C37E818C8B5764241C254BCFC56BF6CE8D Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Dave Stevenson The back porch timings were correct, only the sync offset was wrong. Correct timing is now reported for 1080i and 576i, but the h offset is incorrect for 480i for non-obvious reasons. Fixes: c0ba150ce468 ("drm/vc4: Correct HDMI timing registers for interlaced= modes") Signed-off-by: Dave Stevenson Signed-off-by: Maxime Ripard --- drivers/gpu/drm/vc4/vc4_hdmi.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c index 12a00d644b61..e027381b7331 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c @@ -1298,11 +1298,12 @@ static void vc5_hdmi_set_timings(struct vc4_hdmi *v= c4_hdmi, VC4_SET_FIELD(mode->crtc_vdisplay, VC5_HDMI_VERTA_VAL)); u32 vertb =3D (VC4_SET_FIELD(mode->htotal >> (2 - pixel_rep), VC5_HDMI_VERTB_VSPO) | - VC4_SET_FIELD(mode->crtc_vtotal - mode->crtc_vsync_end, + VC4_SET_FIELD(mode->crtc_vtotal - mode->crtc_vsync_end + + interlaced, VC4_HDMI_VERTB_VBP)); u32 vertb_even =3D (VC4_SET_FIELD(0, VC5_HDMI_VERTB_VSPO) | VC4_SET_FIELD(mode->crtc_vtotal - - mode->crtc_vsync_end - interlaced, + mode->crtc_vsync_end, VC4_HDMI_VERTB_VBP)); unsigned long flags; unsigned char gcp; --=20 2.38.1 From nobody Mon Feb 9 08:47:03 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9B4F8C63705 for ; Wed, 7 Dec 2022 11:56:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229782AbiLGL4m (ORCPT ); Wed, 7 Dec 2022 06:56:42 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56926 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230165AbiLGLzr (ORCPT ); Wed, 7 Dec 2022 06:55:47 -0500 Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com [66.111.4.27]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 858E2192B3 for ; Wed, 7 Dec 2022 03:55:40 -0800 (PST) Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id 85FAC5C01EE; Wed, 7 Dec 2022 06:55:39 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute1.internal (MEProxy); Wed, 07 Dec 2022 06:55:39 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cerno.tech; h=cc :cc:content-transfer-encoding:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to; s=fm2; t=1670414139; x= 1670500539; bh=Npz2axg7ni5/pXnzdbHAnJGDrMXGf+lZqvI4NKtz7EQ=; b=d GP6KFnH1Nod0i7Iw7lGdxQyTjRDhgMASUu4OYUPqfmCMCN75kMIySRdoIIOOX+sG l3i7vzbUfIb7rTuTHGKA18UdaUS+cJXzg/Sz8b0SSYPwTujd7SghInI+baZetV3N famlTPO6L6PUqqVnz1r6n1GDT+5doFQ+DfhDZLo76gRvJQdn+JMZOKY6k/j4ZD8k awbDo9K5oHMV7kKQO71LUK02Jmgs3fioedqlnu+beffgpcEkIP6A0G58JDqyouoT GhHmGw9/4txIXdHtrBk+b8f632PBU5stCOYoTtpdbHxtQHyhrTS96fex2knpfm/Z +D+SmOCWQLeTXHG8BGKmw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1670414139; x= 1670500539; bh=Npz2axg7ni5/pXnzdbHAnJGDrMXGf+lZqvI4NKtz7EQ=; b=D DtsbANV472ZiQfa8FeRD8INfcsKN2uP4bXX4MLJXAUJpFYbJ5w1gvQe+CL/ZMlkZ STmOQuD6lrj3VS6mBk8c50alCBXw1rCuXmjqdIZUZMzQ0oBA5ohAwLOz+mYsC4OX fuXSE5J6IkXlEIq8XCcfCYv4j1mxJFkhKAEROEIP8yBLmzHYx6hEBzkDK7yOMsO+ dmRsfFT99JSL+VCifvgchLDvLVp/eo/k85dk+5jYm1qTAAkrS8IfV9o+UnilZptl LPlR+hrKIXjLgyU/YvCRldIRrVe+xF+Q5z/wTMc/goqy43ifUQ/4mYBHup8NMJtB 5Am2u02xPC4HJfQhZ42cw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrudekgdefgecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefhfffugggtgffkfhgjvfevofesthejredtredtjeenucfhrhhomhepofgrgihi mhgvucftihhprghrugcuoehmrgigihhmvgestggvrhhnohdrthgvtghhqeenucggtffrrg htthgvrhhnpeevvdelieejgedvkeffheekheeilefhgefgffehteekueelvddtueffheet ledtffenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpe hmrgigihhmvgestggvrhhnohdrthgvtghh X-ME-Proxy: Feedback-ID: i8771445c:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 7 Dec 2022 06:55:38 -0500 (EST) From: Maxime Ripard Date: Wed, 07 Dec 2022 12:53:26 +0100 Subject: [PATCH 15/15] drm/vc4: vec: Support progressive modes MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20221207-rpi-hvs-crtc-misc-v1-15-1f8e0770798b@cerno.tech> References: <20221207-rpi-hvs-crtc-misc-v1-0-1f8e0770798b@cerno.tech> In-Reply-To: <20221207-rpi-hvs-crtc-misc-v1-0-1f8e0770798b@cerno.tech> To: Emma Anholt , Maxime Ripard , David Airlie , Daniel Vetter , Eric Anholt Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Dave Stevenson , Mateusz Kwiatkowski , Maxime Ripard X-Mailer: b4 0.11.0-dev-8c583 X-Developer-Signature: v=1; a=openpgp-sha256; l=1032; i=maxime@cerno.tech; h=from:subject:message-id; bh=8XMGwt1sm1yn4PfStLaGoPrjbrnpbzbehFBDzRGb44o=; b=owGbwMvMwCX2+D1vfrpE4FHG02pJDMkT6laqrtq0bivnt3ezDx1eVvm3OpBzhsej2/dFw57pi/Pr FajLdJSyMIhxMciKKbLECJsviTs163UnG988mDmsTCBDGLg4BWAiFmcYGS55/F9mI8rtwaQ0wcFYaC ubW0n/8+KdUids0rT0Jmm4FjAyzJ2xnzMyyWD7heepzN83v5/SZMl6/MLRT9O+P2JP/mn0iRMA X-Developer-Key: i=maxime@cerno.tech; a=openpgp; fpr=BE5675C37E818C8B5764241C254BCFC56BF6CE8D Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Mateusz Kwiatkowski The VEC is able to output progressive analog modes, but the driver has never set the proper bit to do so. Signed-off-by: Mateusz Kwiatkowski Signed-off-by: Maxime Ripard --- drivers/gpu/drm/vc4/vc4_vec.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/vc4/vc4_vec.c b/drivers/gpu/drm/vc4/vc4_vec.c index e270a4099be3..66359d0debbc 100644 --- a/drivers/gpu/drm/vc4/vc4_vec.c +++ b/drivers/gpu/drm/vc4/vc4_vec.c @@ -604,7 +604,9 @@ static void vc4_vec_encoder_enable(struct drm_encoder *= encoder, VEC_WRITE(VEC_CLMP0_START, 0xac); VEC_WRITE(VEC_CLMP0_END, 0xec); VEC_WRITE(VEC_CONFIG2, - VEC_CONFIG2_UV_DIG_DIS | VEC_CONFIG2_RGB_DIG_DIS); + VEC_CONFIG2_UV_DIG_DIS | + VEC_CONFIG2_RGB_DIG_DIS | + ((adjusted_mode->flags & DRM_MODE_FLAG_INTERLACE) ? 0 : VEC_CONFIG2_PR= OG_SCAN)); VEC_WRITE(VEC_CONFIG3, VEC_CONFIG3_HORIZ_LEN_STD); VEC_WRITE(VEC_DAC_CONFIG, vec->variant->dac_config); =20 --=20 2.38.1