From patchwork Mon Dec 9 17:25:49 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Johnny Liu X-Patchwork-Id: 2020184 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=Nvidia.com header.i=@Nvidia.com header.a=rsa-sha256 header.s=selector2 header.b=dpiB5M2P; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2604:1380:4601:e00::3; helo=am.mirrors.kernel.org; envelope-from=linux-tegra+bounces-4275-incoming=patchwork.ozlabs.org@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from am.mirrors.kernel.org (am.mirrors.kernel.org [IPv6:2604:1380:4601:e00::3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Y6TLM3s04z1yRL for ; Tue, 10 Dec 2024 04:26:35 +1100 (AEDT) Received: from smtp.subspace.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id 0678E188391A for ; Mon, 9 Dec 2024 17:26:34 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 3A7F41547D2; Mon, 9 Dec 2024 17:26:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="dpiB5M2P" X-Original-To: linux-tegra@vger.kernel.org Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2059.outbound.protection.outlook.com [40.107.92.59]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 52EEB1547E9 for ; Mon, 9 Dec 2024 17:26:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.92.59 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1733765192; cv=fail; b=mrlh2ST1Hq/DXDLt+tEO8Mj1wG8Fo7vCMBOEZJZ7zaAhjBpInE8oRGXTZfY63/ucxdtfekKqpM2yBXpMK25cyZUrvpNKxEUTEuRZTeYD0OvLDkk2SxRI4az/OY+npCi2/aa/N7P3SyzwFH3wDurStt8MrBeSTeqw0uTWFeDGCTk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1733765192; c=relaxed/simple; bh=wuuE5CV1VRhAL4cyFhQCq5qOFyKt/IkFDMl7xbXVEJs=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=XgAHqed30XnUWIcbdD5KJVtFTMa9EgpmuGAbrrctzEchQdR9MIiVlcTN2Y5ie2zeXRNLSjv8qc9cilLRagFic8wO2+zVmBwhHYmAg+xgM0Z8bRidtD+q5JfqZ2ZG9rtYSvn4D8HqWOCY8n2QBAFKz7Q0LYjB+ix37sgoHdyBbKU= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=dpiB5M2P; arc=fail smtp.client-ip=40.107.92.59 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=AQDywiRwpFkXi4nrSMMKXK3NQxK+Y1PxtI2flrISbeytguBDsVl7MKBcBfySPbs4ilkmkvFaftYeiXlKiDbaCoEWVxGDFLTy8i8C5T9RIJNTlKvOewd4+avcScDnleQ/yRT7nwm13dQT2T9l06TdkOiXFf1nF5WvJj5fa7ODKvna+epwsScGGyiFA13GQ5J8Yp079ogPMrJ3cANxfb1N9ovF0r49kAmMBJohBPCvt4DG9YvGjpGKnjX1phy/XPVKtP70QdjKnf4MT9IbvRcZ7jq/LrUv7PYADgpJPfSprpCx8Yq+mGzpS8BIfRA/55FdT7l8IJmyhgdvI40NXFXR2w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=pvSPjiHQE1JGgGbLhhm3JMtlOwLlMfxxNXE4P/q6KW8=; b=aZPniZHz1TbZQ0OVqjPSv0f2Pj8+xK7xmCxs1/maksAO1m1yqhfsksM2O+8JCBEqsbvN0AK4vj2zM1u2oRuwE+sLgoWO/vAU6UcbJ8XBXP8KDtsgqueA6b0BMtJGq1S73+TinECFHsG/uoAtjiJkVxS8q8F05Ho3ZZIjLoR2fPXSA9ogSOIP55p3SxrOQS0oYII50Oz7azs/luI1maEjOZuphLF1bzSfoyXxAlbSpOOQcPKk3yup3nNX6Gl34tEz+KmZbOlImGoRAfx2Qx97SfhG5w0slzQomYUOerZFK3VN59gfgJZ0zOZNCXtrEAlDgcXHm9kf16XUkfH3thRsaQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=gmail.com smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=pvSPjiHQE1JGgGbLhhm3JMtlOwLlMfxxNXE4P/q6KW8=; b=dpiB5M2P+wGSZlZv/iSzgNI7ns/ut3GQZAm+RVUQbR8x+OERkQohIyxXF7XY6yGSo72ChGxmXf0Dyj1B93EUH77dN3E1eNZuWeXDQJVTvs+xwLw3ehAC58otUWWBjQc8JYnMZcQmTvZIoCqZnaVrACket/PVUvT0cn/RAMGBbkOUXVCM4k4LXl+U5uifEYyR1heZ5kW0B2+fHd9YnjxDijlgiaXpaT86yVbo45C3lJc6SZfbJ+MNkgxw3dLy+vYjKn6qzsVZGSr+y5g/Efxe1SWyVGuFLLfDq0cBtkXjDCgkPG84TY7p987or0mVMoiusWxSTvFEbUXgOzD+yNoUMQ== Received: from PH7PR17CA0038.namprd17.prod.outlook.com (2603:10b6:510:323::17) by DS0PR12MB7770.namprd12.prod.outlook.com (2603:10b6:8:138::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8230.18; Mon, 9 Dec 2024 17:26:24 +0000 Received: from CY4PEPF0000EE38.namprd03.prod.outlook.com (2603:10b6:510:323:cafe::45) by PH7PR17CA0038.outlook.office365.com (2603:10b6:510:323::17) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8230.14 via Frontend Transport; Mon, 9 Dec 2024 17:26:23 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by CY4PEPF0000EE38.mail.protection.outlook.com (10.167.242.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8230.7 via Frontend Transport; Mon, 9 Dec 2024 17:26:23 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Mon, 9 Dec 2024 09:26:05 -0800 Received: from rnnvmail204.nvidia.com (10.129.68.6) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Mon, 9 Dec 2024 09:26:04 -0800 Received: from thinkpad-t480.nvidia.com (10.127.8.10) by mail.nvidia.com (10.129.68.6) with Microsoft SMTP Server id 15.2.1544.4 via Frontend Transport; Mon, 9 Dec 2024 09:26:04 -0800 From: Johnny Liu To: , , , , , CC: , , , Subject: [PATCH 5/5] drm/tegra: vic: Register the device with actmon Date: Mon, 9 Dec 2024 09:25:49 -0800 Message-ID: <20241209172549.5624-6-johnliu@nvidia.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20241209172549.5624-1-johnliu@nvidia.com> References: <20241209172549.5624-1-johnliu@nvidia.com> X-NVConfidentiality: public Precedence: bulk X-Mailing-List: linux-tegra@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY4PEPF0000EE38:EE_|DS0PR12MB7770:EE_ X-MS-Office365-Filtering-Correlation-Id: 9532aea0-0979-493a-b237-08dd18769ab3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|36860700013|376014|82310400026; X-Microsoft-Antispam-Message-Info: UobFKeMJvc0x9nr2y6J2He6BK+RR/W1VEBVx931FXN0xk4N9vU788IqO0lmzfJpTOFYz2+aNhpbwc0kO5imnCj1FI4Qim47SRuhnTaLkapeNdqeRFccYjglY1cqwbvhUBU9SOCJb4aAjznEkFOI2pDFNeOgThdswFerm794uOLp6sU89qhJTfen9kfX3zYR9oxv3fBB78F0nxjRSRzN7+Wjv8ww41PIVztjBJ7OU+vqMDHgqDOzvLrM5d79dimQcVK4IsUv1B0bxxs6efbq78xQuTwsJAwVeeiVd9KwwEdoTtpH6FwQq0dNr8P0l8Slh5cD1u8fMtSPd4FRMN/Lj51mR8oHWKSF8VXACqUOVSRjxpEOKoJA6hIYHhGwRmJmNX0hGIgqj43JAgTv2exLPLkpJZslKN8KsaQXtkmQjuPQOlx5dU56DM+CDkVJaoa90YEVXzfr7m940pW3MBQfwhMHkIV8IqQRnNZyYv3FPm57NOd4uLBdX5IQYZUqCu5AbXbbdm7eEUsVkDJCCDhTkOJnG5FuXw9VjXauaZ8SrjjKriq/8jZVc5+FzqCLlHjIUP8z49vXg/1+49ofnC5U6zx+LGLonSezipDDlrXqmYsgdSDrkUnhKvBB41m82vGCE4RLM6pHBFSRc221lPeWJmdr9lyAAKByKogB1jsxxlhN1OiESDwaZ65kwF8tkpcxsNKsIpKa62nMUo6ey1YZ2qDPBRji5jHuBYKo3315rrIO3xEXmW3OeGuWdpHjXZiLwt6zRyxIq/YX6vumF8NIjFTDhDExbTSKeiveWt/S3eIQPoZ+JIlMLfp8d8AsoGexJXgap7EZ5lfoPo8e2ayNKHqZC1sUOLUIYtjvXVGwL/5gKhfBiou7J4bHIkJWL0pMXsX9vzdKU2yNk16h5U00Ooi1cX8Qexj2bP9mRfxLp2w2JNGZCeaRerROBrpZ7BCCnif5oKLSgtAjpyl4jucyoPqTQyi4CDFdmy5J4bKdpILUG4nj6nMgpAGTdbg2eINMi7H7zeqxPVgWnudJb6D1Dz3kRStXU1jaka+OAFO3s28EuyO/5WfOzzXREwpRgbO5U4SGh0xuWD1Sbg0Z5PUE6PtTZ5L+LwT/Jbd5XiHxNEpeM3huStDDMuTwqikX4pQ04+msUyRpTo91NPz4Fgi5d5ocgMf3N4P9ZI/pnYtlYbBwMeEPkfbOw13CTxYcuyiPfp/itMUpbFHUb+N8JULK/ZHWC14F+H8bw6/loFGsN/4CtkSqwr0m3nY+VkWOAckE9EBv1Ehxz/LFtJD1fdZxiXVrfZHWBqan1xEqcCK3lFOwhCfqpFI9HeOnOKdE4+DidUNVx2xyDMLhStBM9xOtms4DEWryotlCYmaFo7dr/xwEodubMvVlq5fpR1Vzcfh1ZTH3HTRGxBKE1cnU7FAslQpuMOfIs0ToFq7Z81EK4K2UKJZRS1+LA8ib2a5OGeDuc X-Forefront-Antispam-Report: CIP:216.228.117.161;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge2.nvidia.com;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(376014)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Dec 2024 17:26:23.6060 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 9532aea0-0979-493a-b237-08dd18769ab3 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.161];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CY4PEPF0000EE38.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7770 By registering the vic with actmon, engine load information can be exported to the user through debugfs for engine profiling purpose. Signed-off-by: Johnny Liu --- drivers/gpu/drm/tegra/vic.c | 39 ++++++++++++++++++++++++++++++++++++- drivers/gpu/drm/tegra/vic.h | 9 +++++++++ 2 files changed, 47 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/tegra/vic.c b/drivers/gpu/drm/tegra/vic.c index 73c356f1c9012..629cc8244c285 100644 --- a/drivers/gpu/drm/tegra/vic.c +++ b/drivers/gpu/drm/tegra/vic.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0-only /* - * Copyright (c) 2015, NVIDIA Corporation. + * SPDX-FileCopyrightText: Copyright (c) 2015-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved. */ #include @@ -302,6 +302,28 @@ static int vic_load_firmware(struct vic *vic) return err; } +static void vic_actmon_reg_init(struct vic *vic) +{ + vic_writel(vic, + VIC_TFBIF_ACTMON_ACTIVE_MASK_STARVED | + VIC_TFBIF_ACTMON_ACTIVE_MASK_STALLED | + VIC_TFBIF_ACTMON_ACTIVE_MASK_DELAYED, + NV_PVIC_TFBIF_ACTMON_ACTIVE_MASK); + vic_writel(vic, + VIC_TFBIF_ACTMON_ACTIVE_BORPS_ACTIVE, + NV_PVIC_TFBIF_ACTMON_ACTIVE_BORPS); +} + +static void vic_count_weight_init(struct vic *vic, unsigned long rate) +{ + struct host1x_client *client = &vic->client.base; + u32 weight = 0; + + host1x_actmon_update_client_rate(client, rate, &weight); + + if (weight) + vic_writel(vic, weight, NV_PVIC_TFBIF_ACTMON_ACTIVE_WEIGHT); +} static int __maybe_unused vic_runtime_resume(struct device *dev) { @@ -328,6 +350,10 @@ static int __maybe_unused vic_runtime_resume(struct device *dev) if (err < 0) goto assert; + vic_actmon_reg_init(vic); + vic_count_weight_init(vic, clk_get_rate(vic->clk)); + host1x_actmon_enable(&vic->client.base); + return 0; assert: @@ -352,6 +378,8 @@ static int __maybe_unused vic_runtime_suspend(struct device *dev) clk_disable_unprepare(vic->clk); + host1x_actmon_disable(&vic->client.base); + return 0; } @@ -520,12 +548,20 @@ static int vic_probe(struct platform_device *pdev) goto exit_falcon; } + err = host1x_actmon_register(&vic->client.base); + if (err < 0) { + dev_info(&pdev->dev, "failed to register host1x actmon: %d\n", err); + goto exit_client; + } + pm_runtime_enable(dev); pm_runtime_use_autosuspend(dev); pm_runtime_set_autosuspend_delay(dev, 500); return 0; +exit_client: + host1x_client_unregister(&vic->client.base); exit_falcon: falcon_exit(&vic->falcon); @@ -537,6 +573,7 @@ static void vic_remove(struct platform_device *pdev) struct vic *vic = platform_get_drvdata(pdev); pm_runtime_disable(&pdev->dev); + host1x_actmon_unregister(&vic->client.base); host1x_client_unregister(&vic->client.base); falcon_exit(&vic->falcon); } diff --git a/drivers/gpu/drm/tegra/vic.h b/drivers/gpu/drm/tegra/vic.h index acf35aac948b2..905cd7bfde2f6 100644 --- a/drivers/gpu/drm/tegra/vic.h +++ b/drivers/gpu/drm/tegra/vic.h @@ -21,6 +21,15 @@ #define CG_IDLE_CG_EN (1 << 6) #define CG_WAKEUP_DLY_CNT(val) ((val & 0xf) << 16) +#define NV_PVIC_TFBIF_ACTMON_ACTIVE_MASK 0x0000204c +#define NV_PVIC_TFBIF_ACTMON_ACTIVE_BORPS 0x00002050 +#define NV_PVIC_TFBIF_ACTMON_ACTIVE_WEIGHT 0x00002054 + +#define VIC_TFBIF_ACTMON_ACTIVE_MASK_STARVED BIT(0) +#define VIC_TFBIF_ACTMON_ACTIVE_MASK_STALLED BIT(1) +#define VIC_TFBIF_ACTMON_ACTIVE_MASK_DELAYED BIT(2) +#define VIC_TFBIF_ACTMON_ACTIVE_BORPS_ACTIVE BIT(7) + #define VIC_TFBIF_TRANSCFG 0x00002044 #define TRANSCFG_ATT(i, v) (((v) & 0x3) << (i * 4)) #define TRANSCFG_SID_HW 0