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 7D2F9C531D0 for ; Mon, 27 Jul 2026 09:16:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Transfer-Encoding: MIME-Version:Message-ID:Date:Subject:Cc:To:From:Reply-To:Content-Type: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Owner; bh=wN/kx/SBk8bE5KK0ql4+gLcojF8uiq2QeEJ40jwABjk=; b=LqUCXkYh1svvrhRYHmhug/NRke DXgLQIArxPbJGBHoBSwjAu4GSH3xpilOuRY1BQLuL/NdHZ1IykYR8WN8UbzqnSuVqjgewQxrM7vtJ mDYQQJZrLjwVnNYLWJ7r11gbLmSefpZd3rDNfeEnYe5g0HjHXjY2WDAojZxn5i5R01MZf4X2G6Q8r 5ITw51d2g6kwkyZzAVwQ0rnbeLxPM5/XoVN6epiifxaTCZB5p7eO+RsnNY16pZCdnttzPE1m944sb 1Fchq/J736iBq+sUdRocUAE+VXiydWegFW6MWPh+Cp2+n/6x/qAWhb/P8SdmfwGk3R3kBblbGMlPe SWwHyGTQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1woHRm-00000002IoL-0Kbu; Mon, 27 Jul 2026 09:16:30 +0000 Received: from mail-pf1-x42a.google.com ([2607:f8b0:4864:20::42a]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1woHRi-00000002InQ-404i for linux-arm-kernel@lists.infradead.org; Mon, 27 Jul 2026 09:16:28 +0000 Received: by mail-pf1-x42a.google.com with SMTP id d2e1a72fcca58-848479c9bd5so1741420b3a.3 for ; Mon, 27 Jul 2026 02:16:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1785143786; x=1785748586; darn=lists.infradead.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=wN/kx/SBk8bE5KK0ql4+gLcojF8uiq2QeEJ40jwABjk=; b=Xau2sxNcavRGGbpLrb1wvWvLRdZK/Q64M7zxVD2Vam9BLmvm0oTjny9C3j2mxeooyQ eBvz1WdhZlmDjAulk9nv0xZfKHrX1pSrF5UkxEmRFa04Joqob+MmXrMucZZGZQ3+ZFP8 hS97oTB9zyJ/p5osZDc/5wt/Soaxc8w0NboMI= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785143786; x=1785748586; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=wN/kx/SBk8bE5KK0ql4+gLcojF8uiq2QeEJ40jwABjk=; b=CrP6Awzka8bOLaX+aEYIvXNL79K2fuwKK9NsYSKdM0Ic3/lXm71oD6piU+4ICBhfBd oz3i8yw8WXcU0h7S8oVoUWt7MuYtVaDS3hDZ4yCGiAf2e4Mrk6qgyI/TFRDlAjwgUYwG 6F6qyjXTsd1V5P2bsHCyFvYRqtepJ1ABOFle6PmKL3A90PK1mWEf+H+QIt3oWkrOyI11 tFwmHqui1C1WQGYqIDGLu1liwmxVO8P1DoJ/VZ/gknZ8UVJzusoZZP5xYAQsSxSnca4S 98d0+40ZaUcy6XnY+mhOgNkyhvgD3w53zrGw4irwLt5YUceeOAbNgU9rPG/W0SbOHspT NR1w== X-Forwarded-Encrypted: i=1; AHgh+RrCIkhGj71Q3DxNnUtTi/rt/MXdXyyZyVL49UCYkL7DVEf05iUeIwTTR6mqxAKoJVcbSB9V6GRAy2Ja+iqJEE40@lists.infradead.org X-Gm-Message-State: AOJu0YwbegkNcv+BPDizc5fOVZyzW1QvHs8a0IeBdhsferhfNUg3MOod yC51Owc5LV9VD7NsU9lmaNvHrJD6jTaQnGnE7EGJuBvNEuzLNODYGlzJQjHxf//HFg== X-Gm-Gg: AR+sD11YsRGZc4htvAPL4pgVebnwM8whZJgDMOkw7FyTzaN0Rqlqn+BVCX27RqiK+re Zn09nTGSFeAtO/xUS48tjMT3adxpOdnD+UyRMEBzLQDrAu1hZZd4HO4UQvpHq22VeHRpF9C7+Te FjPxw75S0ZgrYsZ6EAVJxGYiICH5KNVp6Jvms0MLVBuk5SAK5uI8BO9rVsDpA9U86huNkm3paSG 0j/jZWS8KgvqV+e6/S8+B5yspqUh+tgWErMcxwXr2lF8MKMKo4yK085vJW3zPfMlPZilkVbvZk9 d4hlZQtihcSS+Ng0omTFlXhCduJPrZbI84PTfWxla2mQ5OM0fhpoUs77paDV4ekirTesdAk+FMJ xHNJS2WKWPbx0uDTFnp53SmWnkM7GZ1DFPfuQLvDZDYJM9eXDzNp3Rf09K6xVx7NnPjtfMBacjw RheIFspA/9tbu4YP1yhMQPhY5BNFKQCD4xxsb5TSybknd4cRKP5L4ER3s/qA== X-Received: by 2002:a05:6a20:6a09:b0:3c3:b5db:cd93 with SMTP id adf61e73a8af0-3c67d9b3da3mr7135247637.13.1785143785620; Mon, 27 Jul 2026 02:16:25 -0700 (PDT) Received: from wenstp920.tpe.corp.google.com ([2a00:79e0:201d:8:440:c713:a2b0:6f14]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-cbbb662329fsm2870049a12.9.2026.07.27.02.16.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Jul 2026 02:16:25 -0700 (PDT) From: Chen-Yu Tsai To: Stephen Boyd , Brian Masney , Matthias Brugger , AngeloGioacchino Del Regno , Alessio Belle , Luigi Santivetti , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann Cc: Dan Carpenter , Chen-Yu Tsai , David Airlie , Simona Vetter , linux-clk@vger.kernel.org, devicetree@vger.kernel.org, linux-mediatek@lists.infradead.org, linux-arm-kernel@lists.infradead.org, imagination@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Icenowy Zheng , YoungJoon Lee Subject: [PATCH v3 0/5] powervr: MT8173 GPU support Date: Mon, 27 Jul 2026 17:15:49 +0800 Message-ID: <20260727091555.1023910-1-wenst@chromium.org> X-Mailer: git-send-email 2.55.0.229.g6434b31f56-goog MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260727_021627_046696_CDB62EE5 X-CRM114-Status: GOOD ( 23.81 ) 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: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Hi everyone, This is v3 of my MT8173 PowerVR GPU support series. I got another inquiry on the status of this patch series, so I thought I'd dig it out, fix all the issues and send another version. This time around Mesa was ready for basic testing, using both vulkanmark and glmark2-es2-drm (with Zink). Details below. Changes since v2 (all in the clk driver patch): - Made COMMON_CLK_MT8173_MFGTOP depend on PM - Needed since the driver implements PM domains using the generic PM domain library, which also depends on PM - Fixes build breakage (kernel test robot) - Fixed "RST_DELAY_CNT" name (Brian) - Dropped unused mfg_desc (Brian) - Added check of clk_prepare_enable()'s return value in clk_mt8173_mfgtop_power_on() (Brian) - Saved error value for return in IS_ERR(data->clk_26m) branch (Dan Carpenter / kernel test robot w/ smatch) Changes since v1: - Adapted to changed DT bindings - Dropped driver change - Use same power domain for "a" and "b" GPU power domains This series enables the PowerVR GPU found in the MT8173 SoC, found in some Chromebooks. This version is different from the initial powervr driver submission [1] in that it splits out the GPU glue layer support out of the powervr driver and into a separate clock and power domain driver. The glue code is otherwise the same, and also the same as found in the ChromeOS kernels, with some extra comments and macro names added where possible. Patch 1 adds a binding for the glue layer, called mfgtop. The glue layer contains clock and power controls for the GPU. Patch 2 adds a driver for the glue layer, implemented as a clock driver that also provides power domains. Patch 3 adds an entry for the MT8173 GPU and 6XT series to the PowerVR binding. Patch 4 corrects the clock for the GPU (called MFG) power domain. Patch 5 adds device nodes for the GPU and glue layer to the MT8173 dtsi file. The kernel driver successfully probes the hardware and loads the "rogue_4.40.2.51_v1.fw" firmware provided by Imagination Technologies [2]. The "exp_hw_support" module parameter needs to be set for the driver to probe successfully. This was tested with Mesa 26.1.5 from Debian Forky. With this version vkmark and glmark2-es2 (over Zink) both run fine. Mesa spits out a bunch of warnings since the GX6250 core is not officially supported. # PVR_I_WANT_A_BROKEN_VULKAN_DRIVER=1 vkmark WARNING: powervr is not a conformant Vulkan implementation, testing use only. WARNING: powervr is not a conformant Vulkan implementation, testing use only. MESA: warning: ../src/imagination/vulkan/pvr_arch_job_context.c:73: FINISHME: Missing reset support for brn51764 MESA: warning: ../src/imagination/vulkan/pvr_arch_job_context.c:76: FINISHME: Missing reset support for brn58839 MESA: warning: ../src/imagination/vulkan/pvr_arch_job_context.c:523: FINISHME: Missing support for brn62269 MESA: warning: ../src/imagination/vulkan/pvr_arch_border.c:244: FINISHME: Devices without tpu_border_colour_enhanced require entries for compressed formats to be stored in the table pre-compressed. WARNING: powervr is not a conformant Vulkan implementation, testing use only. ======================================================= vkmark 2025.01 ======================================================= Vendor ID: 0x1010 Device ID: 0x6250 Device Name: PowerVR Rogue GX6250 Driver Version: 109056005 Device UUID: d04cd6f3a25fd4900f89c151bccfdfcf ======================================================= [vertex] device-local=true: FPS: 251 FrameTime: 3.984 ms [vertex] device-local=false: FPS: 220 FrameTime: 4.545 ms [texture] anisotropy=0:^C FPS: 223 FrameTime: 4.484 ms ======================================================= vkmark Score: 231 ======================================================= # PVR_I_WANT_A_BROKEN_VULKAN_DRIVER=1 glmark2-es2-drm WARNING: powervr is not a conformant Vulkan implementation, testing use only. MESA: warning: ../src/imagination/vulkan/pvr_arch_job_context.c:73: FINISHME: Missing reset support for brn51764 MESA: warning: ../src/imagination/vulkan/pvr_arch_job_context.c:76: FINISHME: Missing reset support for brn58839 MESA: warning: ../src/imagination/vulkan/pvr_arch_job_context.c:523: FINISHME: Missing support for brn62269 MESA: warning: ../src/imagination/vulkan/pvr_arch_border.c:244: FINISHME: Devices without tpu_border_colour_enhanced require entries for compressed formats to be stored in the table pre-compressed. Warning: DRM_CAP_ASYNC_PAGE_FLIP not supported, falling back to 'mailbox' mode for SwapInterval(0). ======================================================= glmark2 2023.01 ======================================================= OpenGL Information GL_VENDOR: Mesa GL_RENDERER: zink Vulkan 1.2(PowerVR Rogue GX6250 (IMAGINATION_OPEN_SOURCE_MESA)) GL_VERSION: OpenGL ES 2.0 Mesa 26.1.5-1 Surface Config: buf=32 r=8 g=8 b=8 a=8 depth=24 stencil=0 samples=0 Surface Size: 1366x768 fullscreen ======================================================= [build] use-vbo=false: FPS: 49 FrameTime: 20.473 ms [build] use-vbo=true: FPS: 45 FrameTime: 22.660 ms [texture] texture-filter=nearest: FPS: 45 FrameTime: 22.642 ms [texture] texture-filter=linear:^C FPS: 50 FrameTime: 20.172 ms ======================================================= glmark2 Score: 46 ======================================================= Please have a look. Thanks ChenYu [1] https://lore.kernel.org/dri-devel/20220815165156.118212-2-sarah.walker@imgtec.com/ [2] https://gitlab.freedesktop.org/imagination/linux-firmware/-/tree/powervr Chen-Yu Tsai (5): dt-bindings: clock: mediatek: Add mt8173 mfgtop clk: mediatek: Add mt8173-mfgtop driver dt-bindings: gpu: powervr-rogue: Add MediaTek MT8173 GPU arm64: dts: mediatek: mt8173: Fix MFG_ASYNC power domain clock arm64: dts: mediatek: mt8173: Add GPU device nodes .../clock/mediatek,mt8173-mfgtop.yaml | 70 +++++ .../bindings/gpu/img,powervr-rogue.yaml | 1 + arch/arm64/boot/dts/mediatek/mt8173.dtsi | 33 ++- drivers/clk/mediatek/Kconfig | 10 + drivers/clk/mediatek/Makefile | 1 + drivers/clk/mediatek/clk-mt8173-mfgtop.c | 241 ++++++++++++++++++ include/dt-bindings/clock/mt8173-clk.h | 7 + 7 files changed, 362 insertions(+), 1 deletion(-) create mode 100644 Documentation/devicetree/bindings/clock/mediatek,mt8173-mfgtop.yaml create mode 100644 drivers/clk/mediatek/clk-mt8173-mfgtop.c -- 2.55.0.229.g6434b31f56-goog