Message ID | 20231129092956.250129-3-paul.elder@ideasonboard.com |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:a5a7:0:b0:403:3b70:6f57 with SMTP id d7csp220754vqn; Wed, 29 Nov 2023 01:31:57 -0800 (PST) X-Google-Smtp-Source: AGHT+IFLI1kBN2v+OxBp+CGG8tBU4Pr0nVGFgEqZw0PSBMxxrHaNbE03s0ktZk2MFXaPWi8g0JEK X-Received: by 2002:a05:6a20:258b:b0:18c:64e0:447b with SMTP id k11-20020a056a20258b00b0018c64e0447bmr14484605pzd.28.1701250317695; Wed, 29 Nov 2023 01:31:57 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701250317; cv=none; d=google.com; s=arc-20160816; b=xnj3Zg+XqtS0Iyw3jUmZtNJWFjCD3X05BS5WoKBXWxJgJWTRAQxUPKQB6TGICv8vsJ GIrMI8HVudFTIK7ESfesac32T0wgCbB2H15em94cqqFFSpt2ztJ34QidztPQtUjxFpKi NPui/LvFHSGlOC73biHK0UjNpTAgowgfcafF9cYeTFkYDZwczzFCJbIJhVT7llPgirp7 UYrwXmU22qo9hRn2ow4D5zRbXxvhuSwPLszhlUdq+OqBcLfcqHKVgCN6yBXnWJWAxs8b Bo937/qlCLsl5x5+NPdUBWg5+OH+OOFKtlKlPOiEiUwRdE5xHwmMMmZc3DIC02tS325Z ifsg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=7+T0YLVOdjR5NcyT7945Pqw8DX7lkxv3RJVpilUfopE=; fh=sjrW0lfW1FUbL5BQ2TXJmxg1ub0EbXH9xdAY/SMrThg=; b=ylq0s6dRsHnuoxfuT2OnlJTWmnubvIJvH/8ajm9X7V76pilVI2+yOpKCZ8aqIO6d+V CfVpfpnvT1J4UwWx5zYrY5rtH3ysGFPaoVn3AdAp+ixU36DfyELEdKH+4Hi2dF8u5v+O vNjC8i7lsPqkSIaN+HIbtkWSsw3aHPrcd2OCNfjiJezR8hJc1HgbFAvppQ7Beaqbwn8U clu12xwXhlXGb9FHnIQtoAr03dcJaBgWTiR8NM1uLzl+nHZFtPeZNY96mZ07EiYyyCio +31Bjdt74L23JBHIRRWBLqbi8kHLtJX4ATlP0FtdfbHYHLqZBjoE3mZ4EP8hjcm9DQsb PYDQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass (test mode) header.i=@ideasonboard.com header.s=mail header.b="nhfCHa/U"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:5 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from groat.vger.email (groat.vger.email. [2620:137:e000::3:5]) by mx.google.com with ESMTPS id eg24-20020a056a00801800b006cc2e23edbcsi8701069pfb.137.2023.11.29.01.31.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Nov 2023 01:31:57 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:5 as permitted sender) client-ip=2620:137:e000::3:5; Authentication-Results: mx.google.com; dkim=pass (test mode) header.i=@ideasonboard.com header.s=mail header.b="nhfCHa/U"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:5 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by groat.vger.email (Postfix) with ESMTP id 08DC9804A9D4; Wed, 29 Nov 2023 01:31:53 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at groat.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231360AbjK2Jbi (ORCPT <rfc822;toshivichauhan@gmail.com> + 99 others); Wed, 29 Nov 2023 04:31:38 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43882 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230298AbjK2JbS (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Wed, 29 Nov 2023 04:31:18 -0500 Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4827126A2; Wed, 29 Nov 2023 01:30:23 -0800 (PST) Received: from pyrite.hamster-moth.ts.net (h175-177-049-135.catv02.itscom.jp [175.177.49.135]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 565F289D; Wed, 29 Nov 2023 10:29:40 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1701250184; bh=x5DGL3arJhhL6cHx1o46byLPKXKRQq29+jIxhF3wWFY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nhfCHa/UZW2Ewa8Uz+2l85e5dnvhDjW2zCDWDhZ/HjrqSnbeQ6CjnYYHM04tp4sSK 9YTW7mvC0UeQM9BEdQkQS1fR+0ofIp5zOkd/UsVTWewly106P5pm23k/kko0/szIeh gO4BvK3sc4SdMKUJjYjvsGWbIHAITa9eb5BA8aB0= From: Paul Elder <paul.elder@ideasonboard.com> To: linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org Cc: kieran.bingham@ideasonboard.com, tomi.valkeinen@ideasonboard.com, umang.jain@ideasonboard.com, Paul Elder <paul.elder@ideasonboard.com>, Dafna Hirschfeld <dafna@fastmail.com>, Laurent Pinchart <laurent.pinchart@ideasonboard.com>, Mauro Carvalho Chehab <mchehab@kernel.org>, Heiko Stuebner <heiko@sntech.de>, linux-arm-kernel@lists.infradead.org (moderated list:ARM/Rockchip SoC support), linux-kernel@vger.kernel.org (open list) Subject: [PATCH 2/3] media: rkisp1: debug: Add register dump for IS Date: Wed, 29 Nov 2023 18:29:55 +0900 Message-Id: <20231129092956.250129-3-paul.elder@ideasonboard.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20231129092956.250129-1-paul.elder@ideasonboard.com> References: <20231129092956.250129-1-paul.elder@ideasonboard.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-0.9 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on groat.vger.email Precedence: bulk List-ID: <linux-kernel.vger.kernel.org> X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (groat.vger.email [0.0.0.0]); Wed, 29 Nov 2023 01:31:53 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1783890252823732218 X-GMAIL-MSGID: 1783890252823732218 |
Series |
[1/3] media: rkisp1: regs: Consolidate MI interrupt wrap fields
|
|
Commit Message
Paul Elder
Nov. 29, 2023, 9:29 a.m. UTC
Add register dump for the image stabilizer module to debugfs.
Signed-off-by: Paul Elder <paul.elder@ideasonboard.com>
---
.../platform/rockchip/rkisp1/rkisp1-debug.c | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
Comments
Hi Paul, thanks for the patch. Am Mittwoch, 29. November 2023, 10:29:55 CET schrieb Paul Elder: > Add register dump for the image stabilizer module to debugfs. > > Signed-off-by: Paul Elder <paul.elder@ideasonboard.com> Tested with a 1080p and 720p stream, without offsets. Tested-by: Alexander Stein <alexander.stein@ew.tq-group.com> > --- > .../platform/rockchip/rkisp1/rkisp1-debug.c | 18 ++++++++++++++++++ > 1 file changed, 18 insertions(+) > > diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c > b/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c index > 71df3dc95e6f..f66b9754472e 100644 > --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c > +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c > @@ -139,6 +139,21 @@ static int rkisp1_debug_dump_mi_mp_show(struct seq_file > *m, void *p) } > DEFINE_SHOW_ATTRIBUTE(rkisp1_debug_dump_mi_mp); > > +static int rkisp1_debug_dump_is_show(struct seq_file *m, void *p) > +{ > + static const struct rkisp1_debug_register registers[] = { > + RKISP1_DEBUG_SHD_REG(ISP_IS_H_OFFS), > + RKISP1_DEBUG_SHD_REG(ISP_IS_V_OFFS), > + RKISP1_DEBUG_SHD_REG(ISP_IS_H_SIZE), > + RKISP1_DEBUG_SHD_REG(ISP_IS_V_SIZE), > + { /* Sentinel */ }, > + }; > + struct rkisp1_device *rkisp1 = m->private; > + > + return rkisp1_debug_dump_regs(rkisp1, m, 0, registers); > +} > +DEFINE_SHOW_ATTRIBUTE(rkisp1_debug_dump_is); > + > #define RKISP1_DEBUG_DATA_COUNT_BINS 32 > #define RKISP1_DEBUG_DATA_COUNT_STEP (4096 / RKISP1_DEBUG_DATA_COUNT_BINS) > > @@ -235,6 +250,9 @@ void rkisp1_debug_init(struct rkisp1_device *rkisp1) > > debugfs_create_file("mi_mp", 0444, regs_dir, rkisp1, > &rkisp1_debug_dump_mi_mp_fops); > + > + debugfs_create_file("is", 0444, regs_dir, rkisp1, > + &rkisp1_debug_dump_is_fops); > } > > void rkisp1_debug_cleanup(struct rkisp1_device *rkisp1)
Quoting Paul Elder (2023-11-29 09:29:55) > Add register dump for the image stabilizer module to debugfs. > Is the Image Stabilizer on all variants of the ISP? I.e. is it valid register space on the RK3399 implementation? If so then: Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> > Signed-off-by: Paul Elder <paul.elder@ideasonboard.com> > --- > .../platform/rockchip/rkisp1/rkisp1-debug.c | 18 ++++++++++++++++++ > 1 file changed, 18 insertions(+) > > diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c b/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c > index 71df3dc95e6f..f66b9754472e 100644 > --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c > +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c > @@ -139,6 +139,21 @@ static int rkisp1_debug_dump_mi_mp_show(struct seq_file *m, void *p) > } > DEFINE_SHOW_ATTRIBUTE(rkisp1_debug_dump_mi_mp); > > +static int rkisp1_debug_dump_is_show(struct seq_file *m, void *p) > +{ > + static const struct rkisp1_debug_register registers[] = { > + RKISP1_DEBUG_SHD_REG(ISP_IS_H_OFFS), > + RKISP1_DEBUG_SHD_REG(ISP_IS_V_OFFS), > + RKISP1_DEBUG_SHD_REG(ISP_IS_H_SIZE), > + RKISP1_DEBUG_SHD_REG(ISP_IS_V_SIZE), I expect so as you haven't added the register macros in this series so they must already be there ... > + { /* Sentinel */ }, > + }; > + struct rkisp1_device *rkisp1 = m->private; > + > + return rkisp1_debug_dump_regs(rkisp1, m, 0, registers); > +} > +DEFINE_SHOW_ATTRIBUTE(rkisp1_debug_dump_is); > + > #define RKISP1_DEBUG_DATA_COUNT_BINS 32 > #define RKISP1_DEBUG_DATA_COUNT_STEP (4096 / RKISP1_DEBUG_DATA_COUNT_BINS) > > @@ -235,6 +250,9 @@ void rkisp1_debug_init(struct rkisp1_device *rkisp1) > > debugfs_create_file("mi_mp", 0444, regs_dir, rkisp1, > &rkisp1_debug_dump_mi_mp_fops); > + > + debugfs_create_file("is", 0444, regs_dir, rkisp1, > + &rkisp1_debug_dump_is_fops); > } > > void rkisp1_debug_cleanup(struct rkisp1_device *rkisp1) > -- > 2.39.2 >
On Wed, Nov 29, 2023 at 08:05:42PM +0000, Kieran Bingham wrote: > Quoting Paul Elder (2023-11-29 09:29:55) > > Add register dump for the image stabilizer module to debugfs. > > > > Is the Image Stabilizer on all variants of the ISP? > > I.e. is it valid register space on the RK3399 implementation? Yes, it is. > > If so then: > Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> > > > Signed-off-by: Paul Elder <paul.elder@ideasonboard.com> > > --- > > .../platform/rockchip/rkisp1/rkisp1-debug.c | 18 ++++++++++++++++++ > > 1 file changed, 18 insertions(+) > > > > diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c b/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c > > index 71df3dc95e6f..f66b9754472e 100644 > > --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c > > +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c > > @@ -139,6 +139,21 @@ static int rkisp1_debug_dump_mi_mp_show(struct seq_file *m, void *p) > > } > > DEFINE_SHOW_ATTRIBUTE(rkisp1_debug_dump_mi_mp); > > > > +static int rkisp1_debug_dump_is_show(struct seq_file *m, void *p) > > +{ > > + static const struct rkisp1_debug_register registers[] = { > > + RKISP1_DEBUG_SHD_REG(ISP_IS_H_OFFS), > > + RKISP1_DEBUG_SHD_REG(ISP_IS_V_OFFS), > > + RKISP1_DEBUG_SHD_REG(ISP_IS_H_SIZE), > > + RKISP1_DEBUG_SHD_REG(ISP_IS_V_SIZE), > > I expect so as you haven't added the register macros in this series so > they must already be there ... Yep :) Paul > > > > + { /* Sentinel */ }, > > + }; > > + struct rkisp1_device *rkisp1 = m->private; > > + > > + return rkisp1_debug_dump_regs(rkisp1, m, 0, registers); > > +} > > +DEFINE_SHOW_ATTRIBUTE(rkisp1_debug_dump_is); > > + > > #define RKISP1_DEBUG_DATA_COUNT_BINS 32 > > #define RKISP1_DEBUG_DATA_COUNT_STEP (4096 / RKISP1_DEBUG_DATA_COUNT_BINS) > > > > @@ -235,6 +250,9 @@ void rkisp1_debug_init(struct rkisp1_device *rkisp1) > > > > debugfs_create_file("mi_mp", 0444, regs_dir, rkisp1, > > &rkisp1_debug_dump_mi_mp_fops); > > + > > + debugfs_create_file("is", 0444, regs_dir, rkisp1, > > + &rkisp1_debug_dump_is_fops); > > } > > > > void rkisp1_debug_cleanup(struct rkisp1_device *rkisp1) > > -- > > 2.39.2 > >
Hi Paul, Am Donnerstag, 30. November 2023, 10:47:00 CET schrieb Paul Elder: > On Wed, Nov 29, 2023 at 08:05:42PM +0000, Kieran Bingham wrote: > > Quoting Paul Elder (2023-11-29 09:29:55) > > > > > Add register dump for the image stabilizer module to debugfs. > > > > Is the Image Stabilizer on all variants of the ISP? > > > > I.e. is it valid register space on the RK3399 implementation? > > Yes, it is. Is there some public documentation available how this ISP works? For RK3399 or i.MX8MP. Best regards, Alexander > > > If so then: > > Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> > > > > > Signed-off-by: Paul Elder <paul.elder@ideasonboard.com> > > > --- > > > > > > .../platform/rockchip/rkisp1/rkisp1-debug.c | 18 ++++++++++++++++++ > > > 1 file changed, 18 insertions(+) > > > > > > diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c > > > b/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c index > > > 71df3dc95e6f..f66b9754472e 100644 > > > --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c > > > +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c > > > @@ -139,6 +139,21 @@ static int rkisp1_debug_dump_mi_mp_show(struct > > > seq_file *m, void *p)> > > > > } > > > DEFINE_SHOW_ATTRIBUTE(rkisp1_debug_dump_mi_mp); > > > > > > +static int rkisp1_debug_dump_is_show(struct seq_file *m, void *p) > > > +{ > > > + static const struct rkisp1_debug_register registers[] = { > > > + RKISP1_DEBUG_SHD_REG(ISP_IS_H_OFFS), > > > + RKISP1_DEBUG_SHD_REG(ISP_IS_V_OFFS), > > > + RKISP1_DEBUG_SHD_REG(ISP_IS_H_SIZE), > > > + RKISP1_DEBUG_SHD_REG(ISP_IS_V_SIZE), > > > > I expect so as you haven't added the register macros in this series so > > they must already be there ... > > Yep :) > > > Paul > > > > + { /* Sentinel */ }, > > > + }; > > > + struct rkisp1_device *rkisp1 = m->private; > > > + > > > + return rkisp1_debug_dump_regs(rkisp1, m, 0, registers); > > > +} > > > +DEFINE_SHOW_ATTRIBUTE(rkisp1_debug_dump_is); > > > + > > > > > > #define RKISP1_DEBUG_DATA_COUNT_BINS 32 > > > #define RKISP1_DEBUG_DATA_COUNT_STEP (4096 / > > > RKISP1_DEBUG_DATA_COUNT_BINS)> > > > > @@ -235,6 +250,9 @@ void rkisp1_debug_init(struct rkisp1_device *rkisp1) > > > > > > debugfs_create_file("mi_mp", 0444, regs_dir, rkisp1, > > > > > > &rkisp1_debug_dump_mi_mp_fops); > > > > > > + > > > + debugfs_create_file("is", 0444, regs_dir, rkisp1, > > > + &rkisp1_debug_dump_is_fops); > > > > > > } > > > > > > void rkisp1_debug_cleanup(struct rkisp1_device *rkisp1)
Hi Alexander, On Thu, Nov 30, 2023 at 10:54:46AM +0100, Alexander Stein wrote: > Hi Paul, > > Am Donnerstag, 30. November 2023, 10:47:00 CET schrieb Paul Elder: > > On Wed, Nov 29, 2023 at 08:05:42PM +0000, Kieran Bingham wrote: > > > Quoting Paul Elder (2023-11-29 09:29:55) > > > > > > > Add register dump for the image stabilizer module to debugfs. > > > > > > Is the Image Stabilizer on all variants of the ISP? > > > > > > I.e. is it valid register space on the RK3399 implementation? > > > > Yes, it is. > > Is there some public documentation available how this ISP works? For RK3399 or > i.MX8MP. For the ISP there is some public docs into imx8mp reference manual at page 5895 chapter: 13.14 Image Signal Processor (ISP) https://www.nxp.com/webapp/Download?colCode=IMX8MPRM https://www.nxp.com/design/development-boards/i-mx-evaluation-and-development-boards/evaluation-kit-for-the-i-mx-8m-plus-applications-processor:8MPLUSLPD4-EVK This is not the full docs I think but cover some part of the ISP functionality. Hope this help. Regards, Tommaso > > Best regards, > Alexander > > > > > > If so then: > > > Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> > > > > > > > Signed-off-by: Paul Elder <paul.elder@ideasonboard.com> > > > > --- > > > > > > > > .../platform/rockchip/rkisp1/rkisp1-debug.c | 18 ++++++++++++++++++ > > > > 1 file changed, 18 insertions(+) > > > > > > > > diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c > > > > b/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c index > > > > 71df3dc95e6f..f66b9754472e 100644 > > > > --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c > > > > +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c > > > > @@ -139,6 +139,21 @@ static int rkisp1_debug_dump_mi_mp_show(struct > > > > seq_file *m, void *p)> > > > > > } > > > > DEFINE_SHOW_ATTRIBUTE(rkisp1_debug_dump_mi_mp); > > > > > > > > +static int rkisp1_debug_dump_is_show(struct seq_file *m, void *p) > > > > +{ > > > > + static const struct rkisp1_debug_register registers[] = { > > > > + RKISP1_DEBUG_SHD_REG(ISP_IS_H_OFFS), > > > > + RKISP1_DEBUG_SHD_REG(ISP_IS_V_OFFS), > > > > + RKISP1_DEBUG_SHD_REG(ISP_IS_H_SIZE), > > > > + RKISP1_DEBUG_SHD_REG(ISP_IS_V_SIZE), > > > > > > I expect so as you haven't added the register macros in this series so > > > they must already be there ... > > > > Yep :) > > > > > > Paul > > > > > > + { /* Sentinel */ }, > > > > + }; > > > > + struct rkisp1_device *rkisp1 = m->private; > > > > + > > > > + return rkisp1_debug_dump_regs(rkisp1, m, 0, registers); > > > > +} > > > > +DEFINE_SHOW_ATTRIBUTE(rkisp1_debug_dump_is); > > > > + > > > > > > > > #define RKISP1_DEBUG_DATA_COUNT_BINS 32 > > > > #define RKISP1_DEBUG_DATA_COUNT_STEP (4096 / > > > > RKISP1_DEBUG_DATA_COUNT_BINS)> > > > > > @@ -235,6 +250,9 @@ void rkisp1_debug_init(struct rkisp1_device *rkisp1) > > > > > > > > debugfs_create_file("mi_mp", 0444, regs_dir, rkisp1, > > > > > > > > &rkisp1_debug_dump_mi_mp_fops); > > > > > > > > + > > > > + debugfs_create_file("is", 0444, regs_dir, rkisp1, > > > > + &rkisp1_debug_dump_is_fops); > > > > > > > > } > > > > > > > > void rkisp1_debug_cleanup(struct rkisp1_device *rkisp1) > > > -- > TQ-Systems GmbH | Mühlstraße 2, Gut Delling | 82229 Seefeld, Germany > Amtsgericht München, HRB 105018 > Geschäftsführer: Detlef Schneider, Rüdiger Stahl, Stefan Schneider > http://www.tq-group.com/ > > >
On Thu, Nov 30, 2023 at 10:54:46AM +0100, Alexander Stein wrote: > Hi Paul, > > Am Donnerstag, 30. November 2023, 10:47:00 CET schrieb Paul Elder: > > On Wed, Nov 29, 2023 at 08:05:42PM +0000, Kieran Bingham wrote: > > > Quoting Paul Elder (2023-11-29 09:29:55) > > > > > > > Add register dump for the image stabilizer module to debugfs. > > > > > > Is the Image Stabilizer on all variants of the ISP? > > > > > > I.e. is it valid register space on the RK3399 implementation? > > > > Yes, it is. > > Is there some public documentation available how this ISP works? For RK3399 or > i.MX8MP. Not that I'm aware of. I've been told there's some leaked documentation in the RK3288 (without registers), and another one for the RK3399 (with registers)? Paul > > > > > > If so then: > > > Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> > > > > > > > Signed-off-by: Paul Elder <paul.elder@ideasonboard.com> > > > > --- > > > > > > > > .../platform/rockchip/rkisp1/rkisp1-debug.c | 18 ++++++++++++++++++ > > > > 1 file changed, 18 insertions(+) > > > > > > > > diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c > > > > b/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c index > > > > 71df3dc95e6f..f66b9754472e 100644 > > > > --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c > > > > +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c > > > > @@ -139,6 +139,21 @@ static int rkisp1_debug_dump_mi_mp_show(struct > > > > seq_file *m, void *p)> > > > > > } > > > > DEFINE_SHOW_ATTRIBUTE(rkisp1_debug_dump_mi_mp); > > > > > > > > +static int rkisp1_debug_dump_is_show(struct seq_file *m, void *p) > > > > +{ > > > > + static const struct rkisp1_debug_register registers[] = { > > > > + RKISP1_DEBUG_SHD_REG(ISP_IS_H_OFFS), > > > > + RKISP1_DEBUG_SHD_REG(ISP_IS_V_OFFS), > > > > + RKISP1_DEBUG_SHD_REG(ISP_IS_H_SIZE), > > > > + RKISP1_DEBUG_SHD_REG(ISP_IS_V_SIZE), > > > > > > I expect so as you haven't added the register macros in this series so > > > they must already be there ... > > > > Yep :) > > > > > > Paul > > > > > > + { /* Sentinel */ }, > > > > + }; > > > > + struct rkisp1_device *rkisp1 = m->private; > > > > + > > > > + return rkisp1_debug_dump_regs(rkisp1, m, 0, registers); > > > > +} > > > > +DEFINE_SHOW_ATTRIBUTE(rkisp1_debug_dump_is); > > > > + > > > > > > > > #define RKISP1_DEBUG_DATA_COUNT_BINS 32 > > > > #define RKISP1_DEBUG_DATA_COUNT_STEP (4096 / > > > > RKISP1_DEBUG_DATA_COUNT_BINS)> > > > > > @@ -235,6 +250,9 @@ void rkisp1_debug_init(struct rkisp1_device *rkisp1) > > > > > > > > debugfs_create_file("mi_mp", 0444, regs_dir, rkisp1, > > > > > > > > &rkisp1_debug_dump_mi_mp_fops); > > > > > > > > + > > > > + debugfs_create_file("is", 0444, regs_dir, rkisp1, > > > > + &rkisp1_debug_dump_is_fops); > > > > > > > > } > > > > > > > > void rkisp1_debug_cleanup(struct rkisp1_device *rkisp1) > > > -- > TQ-Systems GmbH | Mühlstraße 2, Gut Delling | 82229 Seefeld, Germany > Amtsgericht München, HRB 105018 > Geschäftsführer: Detlef Schneider, Rüdiger Stahl, Stefan Schneider > http://www.tq-group.com/ > >
Hi Paul, Thank you for the patch. On Wed, Nov 29, 2023 at 06:29:55PM +0900, Paul Elder wrote: > Add register dump for the image stabilizer module to debugfs. > > Signed-off-by: Paul Elder <paul.elder@ideasonboard.com> > --- > .../platform/rockchip/rkisp1/rkisp1-debug.c | 18 ++++++++++++++++++ > 1 file changed, 18 insertions(+) > > diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c b/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c > index 71df3dc95e6f..f66b9754472e 100644 > --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c > +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c > @@ -139,6 +139,21 @@ static int rkisp1_debug_dump_mi_mp_show(struct seq_file *m, void *p) > } > DEFINE_SHOW_ATTRIBUTE(rkisp1_debug_dump_mi_mp); > > +static int rkisp1_debug_dump_is_show(struct seq_file *m, void *p) > +{ > + static const struct rkisp1_debug_register registers[] = { > + RKISP1_DEBUG_SHD_REG(ISP_IS_H_OFFS), > + RKISP1_DEBUG_SHD_REG(ISP_IS_V_OFFS), > + RKISP1_DEBUG_SHD_REG(ISP_IS_H_SIZE), > + RKISP1_DEBUG_SHD_REG(ISP_IS_V_SIZE), As these are ISP registers, how about adding them to the list of ISP registers ? media: rkisp1: debug: Add register dump for IS Add register dump for the ISP image stabilizer module to debugfs. This helps debugging issues related to digital zoom. Signed-off-by: Paul Elder <paul.elder@ideasonboard.com> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c b/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c index 71df3dc95e6f..d2fbed42164e 100644 --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c @@ -92,6 +92,10 @@ static int rkisp1_debug_dump_isp_regs_show(struct seq_file *m, void *p) RKISP1_DEBUG_REG(ISP_FLAGS_SHD), RKISP1_DEBUG_REG(ISP_RIS), RKISP1_DEBUG_REG(ISP_ERR), + RKISP1_DEBUG_SHD_REG(ISP_IS_H_OFFS), + RKISP1_DEBUG_SHD_REG(ISP_IS_V_OFFS), + RKISP1_DEBUG_SHD_REG(ISP_IS_H_SIZE), + RKISP1_DEBUG_SHD_REG(ISP_IS_V_SIZE), { /* Sentinel */ }, }; struct rkisp1_device *rkisp1 = m->private; > + { /* Sentinel */ }, > + }; > + struct rkisp1_device *rkisp1 = m->private; > + > + return rkisp1_debug_dump_regs(rkisp1, m, 0, registers); > +} > +DEFINE_SHOW_ATTRIBUTE(rkisp1_debug_dump_is); > + > #define RKISP1_DEBUG_DATA_COUNT_BINS 32 > #define RKISP1_DEBUG_DATA_COUNT_STEP (4096 / RKISP1_DEBUG_DATA_COUNT_BINS) > > @@ -235,6 +250,9 @@ void rkisp1_debug_init(struct rkisp1_device *rkisp1) > > debugfs_create_file("mi_mp", 0444, regs_dir, rkisp1, > &rkisp1_debug_dump_mi_mp_fops); > + > + debugfs_create_file("is", 0444, regs_dir, rkisp1, > + &rkisp1_debug_dump_is_fops); > } > > void rkisp1_debug_cleanup(struct rkisp1_device *rkisp1)
diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c b/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c index 71df3dc95e6f..f66b9754472e 100644 --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c @@ -139,6 +139,21 @@ static int rkisp1_debug_dump_mi_mp_show(struct seq_file *m, void *p) } DEFINE_SHOW_ATTRIBUTE(rkisp1_debug_dump_mi_mp); +static int rkisp1_debug_dump_is_show(struct seq_file *m, void *p) +{ + static const struct rkisp1_debug_register registers[] = { + RKISP1_DEBUG_SHD_REG(ISP_IS_H_OFFS), + RKISP1_DEBUG_SHD_REG(ISP_IS_V_OFFS), + RKISP1_DEBUG_SHD_REG(ISP_IS_H_SIZE), + RKISP1_DEBUG_SHD_REG(ISP_IS_V_SIZE), + { /* Sentinel */ }, + }; + struct rkisp1_device *rkisp1 = m->private; + + return rkisp1_debug_dump_regs(rkisp1, m, 0, registers); +} +DEFINE_SHOW_ATTRIBUTE(rkisp1_debug_dump_is); + #define RKISP1_DEBUG_DATA_COUNT_BINS 32 #define RKISP1_DEBUG_DATA_COUNT_STEP (4096 / RKISP1_DEBUG_DATA_COUNT_BINS) @@ -235,6 +250,9 @@ void rkisp1_debug_init(struct rkisp1_device *rkisp1) debugfs_create_file("mi_mp", 0444, regs_dir, rkisp1, &rkisp1_debug_dump_mi_mp_fops); + + debugfs_create_file("is", 0444, regs_dir, rkisp1, + &rkisp1_debug_dump_is_fops); } void rkisp1_debug_cleanup(struct rkisp1_device *rkisp1)