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 gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 24024C433F5 for ; Fri, 25 Mar 2022 12:48:40 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 8011610E3CC; Fri, 25 Mar 2022 12:48:36 +0000 (UTC) Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com [66.111.4.27]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4A5BC10E327 for ; Fri, 25 Mar 2022 12:48:34 +0000 (UTC) Received: from compute2.internal (compute2.nyi.internal [10.202.2.46]) by mailout.nyi.internal (Postfix) with ESMTP id A1C355C0113; Fri, 25 Mar 2022 08:48:33 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute2.internal (MEProxy); Fri, 25 Mar 2022 08:48:33 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cerno.tech; h=cc :cc:content-transfer-encoding:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:sender :subject:subject:to:to; s=fm3; bh=jsDresXrhssR3JsOu8GLvpWRrubqWq c/nHfmp6S2ak4=; b=BdebYP3vSgRckBTLKrReTtOxibc2xQVIlfZuovq+wv1EmA Q6xfw/tCYhO3rECiF1DT2tZFJbkeSJReI/4Lyw531eYV0eyyIWdYjz1sOOPFrp+5 K/pbDc6pe8Ydje3y/2rhDHEBD+nIPAV9Xm7QvJVpLza36wqtp0wwkcHTfFkijYjP FCZN9NPo0zlyaAU9L/fU7JHwTM+1uGbiv9jwPNLG9ZKegrtCI89cFcb/tbA7BEHt OJs+KTNVZn6CI2fHGOCvORUxiazWhB1fWJ4GgssYcj4G34ZPsUD8o8bbE6kVp7tL DzOASVm3UWNCv3TCc1m97u62IjYKWYg0uVhlkEjw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding:date:date :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=fm3; bh=jsDres XrhssR3JsOu8GLvpWRrubqWqc/nHfmp6S2ak4=; b=YYjwXxQazUHKwWZe29Fr1x y4E/puq0b1nOexT073Iy42s8kHlifmZNI5VbERwC0sZmnCIqdFiVUfHojw+2kXRM GTF3ioCGsfHVUEiBubGSyxA7wxftmVMhn0mnBztOy81zwDaUrOElAlabxWUoqq+P ZHGQesr87t2MejzZOBBpIjMZqEKAIjre2Vuv2Xe9JBo5sNdEd1S6Ku92tz+E/+6u x5wKQVT8Ch9rGWwUazZKepkYVocpXaCNsaANp7sMJhAASn/VAWUDuzCA6a8HmDjU rTH7ES4jS0oMVRP5gLuC5oRxF+WLEjb7amIKR+r+tZUHEqHjIGTYLZiS3nw9uG/A == X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvvddrudehuddggeegucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhephffvufffkffojghfggfgsedtkeertdertddtnecuhfhrohhmpeforgigihhm vgcutfhiphgrrhguuceomhgrgihimhgvsegtvghrnhhordhtvggthheqnecuggftrfgrth htvghrnhepvdekleevfeffkeejhfffueelteelfeduieefheduudfggffhhfffheevveeh hedvnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmh grgihimhgvsegtvghrnhhordhtvggthh X-ME-Proxy: Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri, 25 Mar 2022 08:48:33 -0400 (EDT) From: Maxime Ripard To: dri-devel@lists.freedesktop.org Subject: [PATCH v2 4/4] drm/vc4: Implement atomic_print_state for HVS channel state Date: Fri, 25 Mar 2022 13:48:22 +0100 Message-Id: <20220325124822.1785070-5-maxime@cerno.tech> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220325124822.1785070-1-maxime@cerno.tech> References: <20220325124822.1785070-1-maxime@cerno.tech> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: David Airlie , Daniel Vetter , Sean Paul , Maxime Ripard , Thomas Zimmermann , Daniel Vetter Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" The HVS state configuration is useful when debugging what's going on in the vc4 hardware pipeline. Add an implementation of .atomic_print_state. Acked-by: Daniel Vetter Signed-off-by: Maxime Ripard --- drivers/gpu/drm/vc4/vc4_kms.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/drivers/gpu/drm/vc4/vc4_kms.c b/drivers/gpu/drm/vc4/vc4_kms.c index 26b771c919b1..bffd81d4bfcf 100644 --- a/drivers/gpu/drm/vc4/vc4_kms.c +++ b/drivers/gpu/drm/vc4/vc4_kms.c @@ -701,9 +701,26 @@ static void vc4_hvs_channels_destroy_state(struct drm_private_obj *obj, kfree(hvs_state); } +static void vc4_hvs_channels_print_state(struct drm_printer *p, + const struct drm_private_state *state) +{ + struct vc4_hvs_state *hvs_state = to_vc4_hvs_state(state); + unsigned int i; + + drm_printf(p, "HVS State\n"); + drm_printf(p, "\tCore Clock Rate: %lu\n", hvs_state->core_clock_rate); + + for (i = 0; i < HVS_NUM_CHANNELS; i++) { + drm_printf(p, "\tChannel %d\n", i); + drm_printf(p, "\t\tin use=%d\n", hvs_state->fifo_state[i].in_use); + drm_printf(p, "\t\tload=%lu\n", hvs_state->fifo_state[i].fifo_load); + } +} + static const struct drm_private_state_funcs vc4_hvs_state_funcs = { .atomic_duplicate_state = vc4_hvs_channels_duplicate_state, .atomic_destroy_state = vc4_hvs_channels_destroy_state, + .atomic_print_state = vc4_hvs_channels_print_state, }; static void vc4_hvs_channels_obj_fini(struct drm_device *dev, void *unused) -- 2.35.1