From patchwork Sun Feb 27 16:01:15 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Pinchart X-Patchwork-Id: 12761914 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 68B57C433F5 for ; Sun, 27 Feb 2022 16:02:08 +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:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=yzSrjhUmPkqh+yrh5fi9RYm23u+IoLCUfuGlb24k/8o=; b=hia/AhA/PnRaKZ YHqm78PjjvfCGP7704TBRaF7bQkUDGeNmf6EArUoa01yjgf4YR5gwEYApIdnXNMjnPYcuFhfwN1ZW 3zob9TNH4TZTGMg+/tZRUOKsxnDxNGzeA2jZantsbHAYQh5wS/6bCeDov8OKxX3jsoQHGdM6TdF8L PEkv3nX/n/1WiEON3Kw1oSn7q6Ayu8VSy5TgTJgItBbe5GaScorQVdhYCqk98leJxumTHwjvZu8gF OKFxfBHicg67IzgUnLUxQPZG9XjDwMEWP8fOFZGhyHjdndbj0Oi3o47ub5dv+gm+fq1/bJCS6/Pvf azZGD6v1fe7FAVSJn1dw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nOLzn-009daR-5j; Sun, 27 Feb 2022 16:02:03 +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 1nOLzT-009dCo-GC for linux-rockchip@lists.infradead.org; Sun, 27 Feb 2022 16:01:47 +0000 Received: from pendragon.lan (62-78-145-57.bb.dnainternet.fi [62.78.145.57]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 2871CA24; Sun, 27 Feb 2022 17:01:41 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1645977701; bh=heycZim0eKCwx5lxslvOSBxZ3vLPkugfiG4q1xt2AwM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=sOMtFPyS36Mc905q9l90KlcAwmk1JEOBETeuoV5gaIujeMR4mdXArhr43uOoViZJH W8aNbl5usU47idPdeoqcrMvNZ2LnMRkW7+6GVDepdZTRQ9nlxr7PUb28L/kuJ+Wcgh 0HHYyMJ9P0MTiO3E2HRQf49hCcl6HzKMqbpusN4o= From: Laurent Pinchart To: linux-media@vger.kernel.org Cc: Dafna Hirschfeld , Heiko Stuebner , Paul Elder , Tomasz Figa , linux-rockchip@lists.infradead.org Subject: [PATCH 15/16] media: rkisp1: debug: Move resizer register dump to debugfs Date: Sun, 27 Feb 2022 18:01:15 +0200 Message-Id: <20220227160116.18556-16-laurent.pinchart@ideasonboard.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220227160116.18556-1-laurent.pinchart@ideasonboard.com> References: <20220227160116.18556-1-laurent.pinchart@ideasonboard.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220227_080143_789040_DDA7E82F X-CRM114-Status: GOOD ( 11.88 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org The debugfs support already includes support to dump core and ISP registers. Move the resizer register dump there too to make the userspace interface consistent. Signed-off-by: Laurent Pinchart --- .../platform/rockchip/rkisp1/rkisp1-debug.c | 48 +++++++++++++++++++ .../platform/rockchip/rkisp1/rkisp1-resizer.c | 37 -------------- 2 files changed, 48 insertions(+), 37 deletions(-) diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c b/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c index c7872d8dc3df..f9fc8b661bdb 100644 --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c @@ -73,6 +73,50 @@ static int rkisp1_debug_dump_isp_regs_show(struct seq_file *m, void *p) } DEFINE_SHOW_ATTRIBUTE(rkisp1_debug_dump_isp_regs); +#define RKISP1_DEBUG_RSZ_REG_DEC(name) { \ + RKISP1_CIF_##name, RKISP1_CIF_##name##_SHD, #name, false \ +} + +#define RKISP1_DEBUG_RSZ_REG_HEX(name) { \ + RKISP1_CIF_##name, RKISP1_CIF_##name##_SHD, #name, true \ +} + +static int rkisp1_debug_dump_rsz_regs_show(struct seq_file *m, void *p) +{ + static const struct { + u32 reg; + u32 shadow; + const char * const name; + bool hex; + } registers[] = { + RKISP1_DEBUG_RSZ_REG_HEX(RSZ_CTRL), + RKISP1_DEBUG_RSZ_REG_DEC(RSZ_SCALE_HY), + RKISP1_DEBUG_RSZ_REG_DEC(RSZ_SCALE_HCB), + RKISP1_DEBUG_RSZ_REG_DEC(RSZ_SCALE_HCR), + RKISP1_DEBUG_RSZ_REG_DEC(RSZ_SCALE_VY), + RKISP1_DEBUG_RSZ_REG_DEC(RSZ_SCALE_VC), + RKISP1_DEBUG_RSZ_REG_DEC(RSZ_PHASE_HY), + RKISP1_DEBUG_RSZ_REG_DEC(RSZ_PHASE_HC), + RKISP1_DEBUG_RSZ_REG_DEC(RSZ_PHASE_VY), + RKISP1_DEBUG_RSZ_REG_DEC(RSZ_PHASE_VC), + { /* Sentinel */ }, + }; + + struct rkisp1_resizer *rsz = m->private; + typeof(registers[0]) *reg; + u32 val, shd; + + for (reg = registers; reg->name; ++reg) { + val = rkisp1_read(rsz->rkisp1, rsz->regs_base + reg->reg); + shd = rkisp1_read(rsz->rkisp1, rsz->regs_base + reg->shadow); + seq_printf(m, reg->hex ? "%14s: 0x%08x/0x%08x\n" : "%14s: %u/%u\n", + reg->name, val, shd); + } + + return 0; +} +DEFINE_SHOW_ATTRIBUTE(rkisp1_debug_dump_rsz_regs); + #define RKISP1_DEBUG_DATA_COUNT_BINS 32 #define RKISP1_DEBUG_DATA_COUNT_STEP (4096 / RKISP1_DEBUG_DATA_COUNT_BINS) @@ -153,6 +197,10 @@ void rkisp1_debug_init(struct rkisp1_device *rkisp1) &rkisp1_debug_dump_core_regs_fops); debugfs_create_file("isp", 0444, regs_dir, rkisp1, &rkisp1_debug_dump_isp_regs_fops); + debugfs_create_file("mrsz", 0444, regs_dir, &rkisp1->resizer_devs[0], + &rkisp1_debug_dump_rsz_regs_fops); + debugfs_create_file("srsz", 0444, regs_dir, &rkisp1->resizer_devs[1], + &rkisp1_debug_dump_rsz_regs_fops); } void rkisp1_debug_cleanup(struct rkisp1_device *rkisp1) diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-resizer.c b/drivers/media/platform/rockchip/rkisp1/rkisp1-resizer.c index 2135cd40f604..3895c522f49e 100644 --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-resizer.c +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-resizer.c @@ -203,41 +203,6 @@ static void rkisp1_dcrop_config(struct rkisp1_resizer *rsz) * Resizer hw configs */ -static void rkisp1_rsz_dump_regs(struct rkisp1_resizer *rsz) -{ - dev_dbg(rsz->rkisp1->dev, - "RSZ_CTRL 0x%08x/0x%08x\n" - "RSZ_SCALE_HY %d/%d\n" - "RSZ_SCALE_HCB %d/%d\n" - "RSZ_SCALE_HCR %d/%d\n" - "RSZ_SCALE_VY %d/%d\n" - "RSZ_SCALE_VC %d/%d\n" - "RSZ_PHASE_HY %d/%d\n" - "RSZ_PHASE_HC %d/%d\n" - "RSZ_PHASE_VY %d/%d\n" - "RSZ_PHASE_VC %d/%d\n", - rkisp1_rsz_read(rsz, RKISP1_CIF_RSZ_CTRL), - rkisp1_rsz_read(rsz, RKISP1_CIF_RSZ_CTRL_SHD), - rkisp1_rsz_read(rsz, RKISP1_CIF_RSZ_SCALE_HY), - rkisp1_rsz_read(rsz, RKISP1_CIF_RSZ_SCALE_HY_SHD), - rkisp1_rsz_read(rsz, RKISP1_CIF_RSZ_SCALE_HCB), - rkisp1_rsz_read(rsz, RKISP1_CIF_RSZ_SCALE_HCB_SHD), - rkisp1_rsz_read(rsz, RKISP1_CIF_RSZ_SCALE_HCR), - rkisp1_rsz_read(rsz, RKISP1_CIF_RSZ_SCALE_HCR_SHD), - rkisp1_rsz_read(rsz, RKISP1_CIF_RSZ_SCALE_VY), - rkisp1_rsz_read(rsz, RKISP1_CIF_RSZ_SCALE_VY_SHD), - rkisp1_rsz_read(rsz, RKISP1_CIF_RSZ_SCALE_VC), - rkisp1_rsz_read(rsz, RKISP1_CIF_RSZ_SCALE_VC_SHD), - rkisp1_rsz_read(rsz, RKISP1_CIF_RSZ_PHASE_HY), - rkisp1_rsz_read(rsz, RKISP1_CIF_RSZ_PHASE_HY_SHD), - rkisp1_rsz_read(rsz, RKISP1_CIF_RSZ_PHASE_HC), - rkisp1_rsz_read(rsz, RKISP1_CIF_RSZ_PHASE_HC_SHD), - rkisp1_rsz_read(rsz, RKISP1_CIF_RSZ_PHASE_VY), - rkisp1_rsz_read(rsz, RKISP1_CIF_RSZ_PHASE_VY_SHD), - rkisp1_rsz_read(rsz, RKISP1_CIF_RSZ_PHASE_VC), - rkisp1_rsz_read(rsz, RKISP1_CIF_RSZ_PHASE_VC_SHD)); -} - static void rkisp1_rsz_update_shadow(struct rkisp1_resizer *rsz, enum rkisp1_shadow_regs_when when) { @@ -386,8 +351,6 @@ static void rkisp1_rsz_config(struct rkisp1_resizer *rsz, /* set values in the hw */ rkisp1_rsz_config_regs(rsz, &sink_y, &sink_c, &src_y, &src_c, when); - - rkisp1_rsz_dump_regs(rsz); } /* ----------------------------------------------------------------------------