From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id C6D5DC3DA7A for ; Fri, 6 Jan 2023 12:27:17 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233768AbjAFM1Q (ORCPT ); Fri, 6 Jan 2023 07:27:16 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57318 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233783AbjAFM0y (ORCPT ); Fri, 6 Jan 2023 07:26:54 -0500 Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3FD82DECF; Fri, 6 Jan 2023 04:26:47 -0800 (PST) Received: from pendragon.ideasonboard.com (213-243-189-158.bb.dnainternet.fi [213.243.189.158]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 593824AE; Fri, 6 Jan 2023 13:26:45 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1673008005; bh=m1X1odnCfIlRirABQHd6+2sZ5MgpsXnuOJErlg4T9sg=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=lIYxJI4G+CD9daaD0OAkdLSkja0ME1TA2DGcB16j9i5nFPWC0yCyBIzNoiKtgjAvQ wbey/Of6iXy9ftN/IpaplyGIiQM5KHpGKIDW2zHDnm4pZsurIxdEzzkHtOWebYqKHz hmRgBoXbJsSlRHjsUHByAS5SIyTIzLLRVFAuODgQ= Date: Fri, 6 Jan 2023 14:26:40 +0200 From: Laurent Pinchart To: Michael Tretter Cc: linux-media@vger.kernel.org, devicetree@vger.kernel.org, Philipp Zabel , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Fabio Estevam , kernel@pengutronix.de, linux-imx@nxp.com, linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH 4/8] media: imx-pxp: explicitly disable unused blocks Message-ID: References: <20230105134729.59542-1-m.tretter@pengutronix.de> <20230105134729.59542-5-m.tretter@pengutronix.de> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20230105134729.59542-5-m.tretter@pengutronix.de> Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org Hi Michael, Thank you for the patch. On Thu, Jan 05, 2023 at 02:47:25PM +0100, Michael Tretter wrote: > Various multiplexers in the pipeline are not used with the currently > configured data path. Disable all unused multiplexers by selecting the > "no output" (3) option. > > The datasheet doesn't explicitly require this, but the PXP has been seen > to hang after processing a few hundreds of frames otherwise. On which platform(s) have you noticed that ? > As at it, add documentation for the multiplexers that are actually > relevant for the data path. > > Signed-off-by: Michael Tretter > --- > drivers/media/platform/nxp/imx-pxp.c | 30 +++++++++++++++++----------- > 1 file changed, 18 insertions(+), 12 deletions(-) > > diff --git a/drivers/media/platform/nxp/imx-pxp.c b/drivers/media/platform/nxp/imx-pxp.c > index a957fee88829..6ffd07cda965 100644 > --- a/drivers/media/platform/nxp/imx-pxp.c > +++ b/drivers/media/platform/nxp/imx-pxp.c > @@ -731,22 +731,28 @@ static u32 pxp_data_path_ctrl0(struct pxp_ctx *ctx) > u32 ctrl0; > > ctrl0 = 0; > - ctrl0 |= BF_PXP_DATA_PATH_CTRL0_MUX15_SEL(0); > + ctrl0 |= BF_PXP_DATA_PATH_CTRL0_MUX15_SEL(3); > + /* Bypass Dithering x3CH */ > ctrl0 |= BF_PXP_DATA_PATH_CTRL0_MUX14_SEL(1); > - ctrl0 |= BF_PXP_DATA_PATH_CTRL0_MUX13_SEL(0); > + ctrl0 |= BF_PXP_DATA_PATH_CTRL0_MUX13_SEL(3); > + /* Select Rotation */ > ctrl0 |= BF_PXP_DATA_PATH_CTRL0_MUX12_SEL(0); > + /* Select LUT */ > ctrl0 |= BF_PXP_DATA_PATH_CTRL0_MUX11_SEL(0); > - ctrl0 |= BF_PXP_DATA_PATH_CTRL0_MUX10_SEL(0); > + ctrl0 |= BF_PXP_DATA_PATH_CTRL0_MUX10_SEL(3); > + /* Select MUX8 for LUT */ > ctrl0 |= BF_PXP_DATA_PATH_CTRL0_MUX9_SEL(1); > + /* Select CSC 2 */ > ctrl0 |= BF_PXP_DATA_PATH_CTRL0_MUX8_SEL(0); > - ctrl0 |= BF_PXP_DATA_PATH_CTRL0_MUX7_SEL(0); > - ctrl0 |= BF_PXP_DATA_PATH_CTRL0_MUX6_SEL(0); > - ctrl0 |= BF_PXP_DATA_PATH_CTRL0_MUX5_SEL(0); > - ctrl0 |= BF_PXP_DATA_PATH_CTRL0_MUX4_SEL(0); > + ctrl0 |= BF_PXP_DATA_PATH_CTRL0_MUX7_SEL(3); > + ctrl0 |= BF_PXP_DATA_PATH_CTRL0_MUX6_SEL(3); > + ctrl0 |= BF_PXP_DATA_PATH_CTRL0_MUX5_SEL(3); > + ctrl0 |= BF_PXP_DATA_PATH_CTRL0_MUX4_SEL(3); > + /* Bypass Rotation 2 */ > ctrl0 |= BF_PXP_DATA_PATH_CTRL0_MUX3_SEL(0); > - ctrl0 |= BF_PXP_DATA_PATH_CTRL0_MUX2_SEL(0); > - ctrl0 |= BF_PXP_DATA_PATH_CTRL0_MUX1_SEL(0); > - ctrl0 |= BF_PXP_DATA_PATH_CTRL0_MUX0_SEL(0); > + ctrl0 |= BF_PXP_DATA_PATH_CTRL0_MUX2_SEL(3); > + ctrl0 |= BF_PXP_DATA_PATH_CTRL0_MUX1_SEL(3); > + ctrl0 |= BF_PXP_DATA_PATH_CTRL0_MUX0_SEL(3); The muxes being disabled look fine to me, but the values of MUX8, MUX12 and MUX14 look strange based on the i.MX7D reference manual. Maybe the register values were different in previous SoCs ? I haven't found any other relevant reference manual that document the mux values, I may have overlooked something. Anyway, this isn't an issue with this patch, so Reviewed-by: Laurent Pinchart > > return ctrl0; > } > @@ -760,8 +766,8 @@ static void pxp_set_data_path(struct pxp_ctx *ctx) > ctrl0 = pxp_data_path_ctrl0(ctx); > > ctrl1 = 0; > - ctrl1 |= BF_PXP_DATA_PATH_CTRL1_MUX17_SEL(1); > - ctrl1 |= BF_PXP_DATA_PATH_CTRL1_MUX16_SEL(1); > + ctrl1 |= BF_PXP_DATA_PATH_CTRL1_MUX17_SEL(3); > + ctrl1 |= BF_PXP_DATA_PATH_CTRL1_MUX16_SEL(3); > > writel(ctrl0, dev->mmio + HW_PXP_DATA_PATH_CTRL0); > writel(ctrl1, dev->mmio + HW_PXP_DATA_PATH_CTRL1); -- Regards, Laurent Pinchart From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 162DDC3DA7A for ; Fri, 6 Jan 2023 12:27:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=We1vtN0zrZUbG6BUfUPnzANnjZJDiK0WGP7Z+Zrmys4=; b=2iagfE8xKShVfB iYbcwpTQDVYYlQTAdjvavsc5p5HEqRuEdUckUkWXiaMF24d5WZxOhK445U2vl5CTN3N4rt46iwgYq 3HpF8qhsBFjDOYjD4Aw/Xuj1k5bx/P0KBiOPKQT1PDAlDGlHaMVDZwHQl2RMU0fGgkGwRr7s9QHcF BSPhnYOQnzqOTrif+xuwa/+4cl/SipqQK2xkcAc2YLfa9Ll+r21ycJEUHJ332oR+gW7gVRH8qpkTQ ahNWXdZQKcbUXGVJ6FYWq2ytFVRLENjWgAvSNDJU6KTY0DX/SR2SzcN9+AzqkhMqQRgGWd+d5GPxo SpCLPcwn1KVnC48lDN1g==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pDloB-0082wl-MM; Fri, 06 Jan 2023 12:26:51 +0000 Received: from perceval.ideasonboard.com ([213.167.242.64]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pDlo7-0082ux-W0 for linux-arm-kernel@lists.infradead.org; Fri, 06 Jan 2023 12:26:49 +0000 Received: from pendragon.ideasonboard.com (213-243-189-158.bb.dnainternet.fi [213.243.189.158]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 593824AE; Fri, 6 Jan 2023 13:26:45 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1673008005; bh=m1X1odnCfIlRirABQHd6+2sZ5MgpsXnuOJErlg4T9sg=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=lIYxJI4G+CD9daaD0OAkdLSkja0ME1TA2DGcB16j9i5nFPWC0yCyBIzNoiKtgjAvQ wbey/Of6iXy9ftN/IpaplyGIiQM5KHpGKIDW2zHDnm4pZsurIxdEzzkHtOWebYqKHz hmRgBoXbJsSlRHjsUHByAS5SIyTIzLLRVFAuODgQ= Date: Fri, 6 Jan 2023 14:26:40 +0200 From: Laurent Pinchart To: Michael Tretter Cc: linux-media@vger.kernel.org, devicetree@vger.kernel.org, Philipp Zabel , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Fabio Estevam , kernel@pengutronix.de, linux-imx@nxp.com, linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH 4/8] media: imx-pxp: explicitly disable unused blocks Message-ID: References: <20230105134729.59542-1-m.tretter@pengutronix.de> <20230105134729.59542-5-m.tretter@pengutronix.de> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20230105134729.59542-5-m.tretter@pengutronix.de> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230106_042648_210585_C42D8CDB X-CRM114-Status: GOOD ( 21.46 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Hi Michael, Thank you for the patch. On Thu, Jan 05, 2023 at 02:47:25PM +0100, Michael Tretter wrote: > Various multiplexers in the pipeline are not used with the currently > configured data path. Disable all unused multiplexers by selecting the > "no output" (3) option. > > The datasheet doesn't explicitly require this, but the PXP has been seen > to hang after processing a few hundreds of frames otherwise. On which platform(s) have you noticed that ? > As at it, add documentation for the multiplexers that are actually > relevant for the data path. > > Signed-off-by: Michael Tretter > --- > drivers/media/platform/nxp/imx-pxp.c | 30 +++++++++++++++++----------- > 1 file changed, 18 insertions(+), 12 deletions(-) > > diff --git a/drivers/media/platform/nxp/imx-pxp.c b/drivers/media/platform/nxp/imx-pxp.c > index a957fee88829..6ffd07cda965 100644 > --- a/drivers/media/platform/nxp/imx-pxp.c > +++ b/drivers/media/platform/nxp/imx-pxp.c > @@ -731,22 +731,28 @@ static u32 pxp_data_path_ctrl0(struct pxp_ctx *ctx) > u32 ctrl0; > > ctrl0 = 0; > - ctrl0 |= BF_PXP_DATA_PATH_CTRL0_MUX15_SEL(0); > + ctrl0 |= BF_PXP_DATA_PATH_CTRL0_MUX15_SEL(3); > + /* Bypass Dithering x3CH */ > ctrl0 |= BF_PXP_DATA_PATH_CTRL0_MUX14_SEL(1); > - ctrl0 |= BF_PXP_DATA_PATH_CTRL0_MUX13_SEL(0); > + ctrl0 |= BF_PXP_DATA_PATH_CTRL0_MUX13_SEL(3); > + /* Select Rotation */ > ctrl0 |= BF_PXP_DATA_PATH_CTRL0_MUX12_SEL(0); > + /* Select LUT */ > ctrl0 |= BF_PXP_DATA_PATH_CTRL0_MUX11_SEL(0); > - ctrl0 |= BF_PXP_DATA_PATH_CTRL0_MUX10_SEL(0); > + ctrl0 |= BF_PXP_DATA_PATH_CTRL0_MUX10_SEL(3); > + /* Select MUX8 for LUT */ > ctrl0 |= BF_PXP_DATA_PATH_CTRL0_MUX9_SEL(1); > + /* Select CSC 2 */ > ctrl0 |= BF_PXP_DATA_PATH_CTRL0_MUX8_SEL(0); > - ctrl0 |= BF_PXP_DATA_PATH_CTRL0_MUX7_SEL(0); > - ctrl0 |= BF_PXP_DATA_PATH_CTRL0_MUX6_SEL(0); > - ctrl0 |= BF_PXP_DATA_PATH_CTRL0_MUX5_SEL(0); > - ctrl0 |= BF_PXP_DATA_PATH_CTRL0_MUX4_SEL(0); > + ctrl0 |= BF_PXP_DATA_PATH_CTRL0_MUX7_SEL(3); > + ctrl0 |= BF_PXP_DATA_PATH_CTRL0_MUX6_SEL(3); > + ctrl0 |= BF_PXP_DATA_PATH_CTRL0_MUX5_SEL(3); > + ctrl0 |= BF_PXP_DATA_PATH_CTRL0_MUX4_SEL(3); > + /* Bypass Rotation 2 */ > ctrl0 |= BF_PXP_DATA_PATH_CTRL0_MUX3_SEL(0); > - ctrl0 |= BF_PXP_DATA_PATH_CTRL0_MUX2_SEL(0); > - ctrl0 |= BF_PXP_DATA_PATH_CTRL0_MUX1_SEL(0); > - ctrl0 |= BF_PXP_DATA_PATH_CTRL0_MUX0_SEL(0); > + ctrl0 |= BF_PXP_DATA_PATH_CTRL0_MUX2_SEL(3); > + ctrl0 |= BF_PXP_DATA_PATH_CTRL0_MUX1_SEL(3); > + ctrl0 |= BF_PXP_DATA_PATH_CTRL0_MUX0_SEL(3); The muxes being disabled look fine to me, but the values of MUX8, MUX12 and MUX14 look strange based on the i.MX7D reference manual. Maybe the register values were different in previous SoCs ? I haven't found any other relevant reference manual that document the mux values, I may have overlooked something. Anyway, this isn't an issue with this patch, so Reviewed-by: Laurent Pinchart > > return ctrl0; > } > @@ -760,8 +766,8 @@ static void pxp_set_data_path(struct pxp_ctx *ctx) > ctrl0 = pxp_data_path_ctrl0(ctx); > > ctrl1 = 0; > - ctrl1 |= BF_PXP_DATA_PATH_CTRL1_MUX17_SEL(1); > - ctrl1 |= BF_PXP_DATA_PATH_CTRL1_MUX16_SEL(1); > + ctrl1 |= BF_PXP_DATA_PATH_CTRL1_MUX17_SEL(3); > + ctrl1 |= BF_PXP_DATA_PATH_CTRL1_MUX16_SEL(3); > > writel(ctrl0, dev->mmio + HW_PXP_DATA_PATH_CTRL0); > writel(ctrl1, dev->mmio + HW_PXP_DATA_PATH_CTRL1); -- Regards, Laurent Pinchart _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel