From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wr1-f44.google.com (mail-wr1-f44.google.com [209.85.221.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D68073054D2 for ; Mon, 8 Sep 2025 17:11:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.44 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757351485; cv=none; b=ANLaYJwX66qYxAEWOJrdsawamS2s6PBnRmzASgUZ6lnZeqKZZ34/BJXRNuve1OlZVo5BDosAadcEGERLzWfAXXG6Q7F18HeD1IurVV7852akFbW0WkNhAD9f5F+tN5GaZe2aEcvB9DKVUfxwcNaBtMPN7UtcQOJ4nGn/tY7nSHo= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757351485; c=relaxed/simple; bh=DavoxOhjLPcLDMahL3Y9U/VbM03JitHAgDMsWBFVdO0=; h=Message-ID:Date:MIME-Version:From:Subject:To:Cc:References: In-Reply-To:Content-Type; b=tZB2iFzWAYFmtMPMv2ygO8Yi/ZYo7sfW4O116O9uccybMWcNu49cMID5wK1IKvOchcxt3e+/ITzMInfDb55vF/laY0MZSVueuU5mbE8UfkC8a1V/j+BHnYIVpfMcuGi6OVgj2u9A1C7hAbGl5mPIfSYipzPMMMPoGljyTMKyQtA= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=IsTeU0Pm; arc=none smtp.client-ip=209.85.221.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="IsTeU0Pm" Received: by mail-wr1-f44.google.com with SMTP id ffacd0b85a97d-3b9edf4cf6cso4102478f8f.3 for ; Mon, 08 Sep 2025 10:11:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1757351482; x=1757956282; darn=vger.kernel.org; h=content-transfer-encoding:in-reply-to:organization:autocrypt :content-language:references:cc:to:subject:reply-to:from:user-agent :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to; bh=JXRt87N5KcbZYpVffvCLbSJic16B7wGhz6E/yGN+Uxg=; b=IsTeU0PmzwSYDbg3EIr3zQLnnf0NAyu84FP2kNyCbJvnuGT0pWQN0tYhfZesdCK+jJ owCDBZ5MrzTyU7GtP65hf7XsbgZD5bzLZAJTDl4OYpCAWyPHy027Uo9hEL644atQMG46 JjOYuYgVBhvBh86fcyS80xnKbQsAdr5K+hLiZQr7Uw4rdVBXiLdnHlo2KAINc14viD60 1gAxsy15XxGLJy4HB5apgJR/CpJU6DG5ss4to+aPE/YZFeMEURMJvQAWbTBYLX9ACk0J JqLHOv3a7G0WRBYJrHPgaQYwYoAkEzBItr5H+MZ+Th6AodrwBBq47TsZhFg7LnJ4G3Pj FaCQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757351482; x=1757956282; h=content-transfer-encoding:in-reply-to:organization:autocrypt :content-language:references:cc:to:subject:reply-to:from:user-agent :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=JXRt87N5KcbZYpVffvCLbSJic16B7wGhz6E/yGN+Uxg=; b=l0jeGlXR/PAeHAVXc3Fhlo/PiZOXttBbz5+5ShlKiaQKdfoqQAYI3A0V7gTMMf42rf S1rA77FGF9IMaDqIBIuPHrPuB5iQcC9VUtu4+hQeqUXR9nimUQjlvueDR6sxnVsuctjZ G82eoiBenZ/8crDut+YmIvGA0pXLHpTFH7s+af3K5rAWS7RwMyUWWn7qOo+KLSGgjXy9 f8xG+Dl4VJWgbZwhxomD57lYKeEHbqAr5liVFOxodqGLz5vJNpzXmzqsojhsRh9sCpIJ kzveHkfQ6FnDXkQKyZjyOJPkEQM6drUkIYQ06pjC3mGEt3sAafhmmovvSJr+tIPGykNR 7DPw== X-Forwarded-Encrypted: i=1; AJvYcCWrP/dWr1M8eRR1KG/sNweLS+fdRCgcn3Uy01yS7JE+yOZzMZL/70kARRAdoQWj66uCEbYP8S6qOpMyivY=@vger.kernel.org X-Gm-Message-State: AOJu0YwZfDhvXnAGTm/t8IaQ/Ke7ZAz2Pk5clm/QdT3FEzdugaLQTC15 CyTEu9TNKRvRtRR9aGymd4cqObQWrcPLu/o07tJVaXTVvIp4w4eq3UkcdE1fgj9ZVM0= X-Gm-Gg: ASbGncsSJ4RQeIaWBWGbjiq9abGTRdHxdZ6r+7UpRPpgBWPHxuB8IfPIYlq/BG3wJe7 qqCD88eyd8/yn79BBALy+kpD31hjHSei6BO8rkztC/rsHjFjPgGq7k/sD1/J8d5A7bXT8dxfGV5 g8pJpv2JFQXazHYTyqkIs4bfPnzAbNQQhemrItzy5hJVOn1UaAdOK6Ayz/EU3WC436nkw8t1dQn FHqohD/kWk0ezRq/JaY6VTZF9B2CoEvN2YLR/g+aWDBufZBbAz5n1ix+HJotGImHZkVGtnhWKiF bSvCUpqQZIVM3mSudDrRh5SVqOYTmGOQj2PMya8st5LGk5ux7SpWB2vkCm9+tVMpsH3YzXhg7md EolgdSMAH/PfHoANzXPZ/OnTpmOkJzF6bw4Ef0PGm0iiPKeh1VFQGFKX7BGmpJW1Z+sbC3k5lq6 s= X-Google-Smtp-Source: AGHT+IEg/f9S1DLAfQQk3JRLZENFZPwKbjav2YVjwZU30nhH+LDJfuSBQA045+uH1/8zST8dM70ckw== X-Received: by 2002:a05:6000:230e:b0:3ca:3206:29f with SMTP id ffacd0b85a97d-3e642f91891mr7571829f8f.40.1757351482100; Mon, 08 Sep 2025 10:11:22 -0700 (PDT) Received: from ?IPV6:2a01:e0a:3d9:2080:61c1:5d31:4427:381b? ([2a01:e0a:3d9:2080:61c1:5d31:4427:381b]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3cf33add504sm41829503f8f.30.2025.09.08.10.11.21 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 08 Sep 2025 10:11:21 -0700 (PDT) Message-ID: <6fe68880-44a4-4b7e-a978-2c65d50f018c@linaro.org> Date: Mon, 8 Sep 2025 19:11:21 +0200 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird From: Neil Armstrong Reply-To: Neil Armstrong Subject: Re: [PATCH v2 00/16] drm/msm: Support for Inter Frame Power Collapse (IFPC) feature To: Akhil P Oommen , Rob Clark , Sean Paul , Konrad Dybcio , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Marijn Suijten , David Airlie , Simona Vetter , Antonino Maniscalco Cc: linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, linux-kernel@vger.kernel.org, Konrad Dybcio , stable@vger.kernel.org References: <20250908-ifpc-support-v2-0-631b1080bf91@oss.qualcomm.com> Content-Language: en-US, fr Autocrypt: addr=neil.armstrong@linaro.org; keydata= xsBNBE1ZBs8BCAD78xVLsXPwV/2qQx2FaO/7mhWL0Qodw8UcQJnkrWmgTFRobtTWxuRx8WWP GTjuhvbleoQ5Cxjr+v+1ARGCH46MxFP5DwauzPekwJUD5QKZlaw/bURTLmS2id5wWi3lqVH4 BVF2WzvGyyeV1o4RTCYDnZ9VLLylJ9bneEaIs/7cjCEbipGGFlfIML3sfqnIvMAxIMZrvcl9 qPV2k+KQ7q+aXavU5W+yLNn7QtXUB530Zlk/d2ETgzQ5FLYYnUDAaRl+8JUTjc0CNOTpCeik 80TZcE6f8M76Xa6yU8VcNko94Ck7iB4vj70q76P/J7kt98hklrr85/3NU3oti3nrIHmHABEB AAHNKk5laWwgQXJtc3Ryb25nIDxuZWlsLmFybXN0cm9uZ0BsaW5hcm8ub3JnPsLAkQQTAQoA OwIbIwULCQgHAwUVCgkICwUWAgMBAAIeAQIXgBYhBInsPQWERiF0UPIoSBaat7Gkz/iuBQJk Q5wSAhkBAAoJEBaat7Gkz/iuyhMIANiD94qDtUTJRfEW6GwXmtKWwl/mvqQtaTtZID2dos04 YqBbshiJbejgVJjy+HODcNUIKBB3PSLaln4ltdsV73SBcwUNdzebfKspAQunCM22Mn6FBIxQ GizsMLcP/0FX4en9NaKGfK6ZdKK6kN1GR9YffMJd2P08EO8mHowmSRe/ExAODhAs9W7XXExw UNCY4pVJyRPpEhv373vvff60bHxc1k/FF9WaPscMt7hlkbFLUs85kHtQAmr8pV5Hy9ezsSRa GzJmiVclkPc2BY592IGBXRDQ38urXeM4nfhhvqA50b/nAEXc6FzqgXqDkEIwR66/Gbp0t3+r yQzpKRyQif3OwE0ETVkGzwEIALyKDN/OGURaHBVzwjgYq+ZtifvekdrSNl8TIDH8g1xicBYp QTbPn6bbSZbdvfeQPNCcD4/EhXZuhQXMcoJsQQQnO4vwVULmPGgtGf8PVc7dxKOeta+qUh6+ SRh3vIcAUFHDT3f/Zdspz+e2E0hPV2hiSvICLk11qO6cyJE13zeNFoeY3ggrKY+IzbFomIZY 4yG6xI99NIPEVE9lNBXBKIlewIyVlkOaYvJWSV+p5gdJXOvScNN1epm5YHmf9aE2ZjnqZGoM Mtsyw18YoX9BqMFInxqYQQ3j/HpVgTSvmo5ea5qQDDUaCsaTf8UeDcwYOtgI8iL4oHcsGtUX oUk33HEAEQEAAcLAXwQYAQIACQUCTVkGzwIbDAAKCRAWmrexpM/4rrXiB/sGbkQ6itMrAIfn M7IbRuiSZS1unlySUVYu3SD6YBYnNi3G5EpbwfBNuT3H8//rVvtOFK4OD8cRYkxXRQmTvqa3 3eDIHu/zr1HMKErm+2SD6PO9umRef8V82o2oaCLvf4WeIssFjwB0b6a12opuRP7yo3E3gTCS KmbUuLv1CtxKQF+fUV1cVaTPMyT25Od+RC1K+iOR0F54oUJvJeq7fUzbn/KdlhA8XPGzwGRy 4zcsPWvwnXgfe5tk680fEKZVwOZKIEuJC3v+/yZpQzDvGYJvbyix0lHnrCzq43WefRHI5XTT QbM0WUIBIcGmq38+OgUsMYu4NzLu7uZFAcmp6h8g Organization: Linaro In-Reply-To: <20250908-ifpc-support-v2-0-631b1080bf91@oss.qualcomm.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 08/09/2025 10:26, Akhil P Oommen wrote: > This patch series introduces the IFPC feature to the DRM-MSM driver for > Adreno GPUs. IFPC enables GMU to quickly transition GPU into a low power > state when idle and quickly resume gpu to active state upon workload > submission, hence the name 'Inter Frame Power Collapse'. Since the KMD is > unaware of these transitions, it must perform a handshake with the > hardware (eg: fenced_write, OOB signaling etc) before accessing registers > in the GX power domain. > > Initial patches address a few existing issues that were not exposed in the > absence of IFPC. Rest of the patches are additional changes required for > IFPC. This series adds the necessary restore register list for X1-85/A750 > GPUs and enables IFPC support for them. > > To: Rob Clark > To: Sean Paul > To: Konrad Dybcio > To: Dmitry Baryshkov > To: Abhinav Kumar > To: Jessica Zhang > To: Marijn Suijten > To: David Airlie > To: Simona Vetter > To: Antonino Maniscalco > To: Neil Armstrong > Cc: linux-arm-msm@vger.kernel.org > Cc: dri-devel@lists.freedesktop.org > Cc: freedreno@lists.freedesktop.org > Cc: linux-kernel@vger.kernel.org > Cc: Antonino Maniscalco > Cc: Neil Armstrong > > Signed-off-by: Akhil P Oommen > --- > Changes in v2: > - Elaborate commit text and add Fixes tags (Dmitry/Konrad) > - Document GMU_IDLE_STATE_RESERVED (Konrad) > - Add a memory barrier in fenced_write > - Move an error print in fenced_write to after polling > - %s/set_keepalive_vote/a6xx[gpu|preempt]_keepalive_vote (Dmitry) > - Add an "unlikely()" to read_gmu_ao_counter() (Konrad/Rob) > - Define IFPC_LONG_HYST to document a magic number > - Add a new patch to enable IFPC on A750 GPU (Neil/Antonino) > - Drop patch 12 & 17 from v1 revision > - Link to v1: https://lore.kernel.org/r/20250720-ifpc-support-v1-0-9347aa5bcbd6@oss.qualcomm.com > > --- > Akhil P Oommen (16): > drm/msm: Update GMU register xml > drm/msm: a6xx: Fix gx_is_on check for a7x family > drm/msm/a6xx: Poll additional DRV status > drm/msm/a6xx: Fix PDC sleep sequence > drm/msm: a6xx: Refactor a6xx_sptprac_enable() > drm/msm: Add an ftrace for gpu register access > drm/msm/adreno: Add fenced regwrite support > drm/msm/a6xx: Set Keep-alive votes to block IFPC > drm/msm/a6xx: Switch to GMU AO counter > drm/msm/a6xx: Poll AHB fence status in GPU IRQ handler > drm/msm: Add support for IFPC > drm/msm/a6xx: Fix hangcheck for IFPC > drm/msm/adreno: Disable IFPC when sysprof is active > drm/msm/a6xx: Make crashstate capture IFPC safe > drm/msm/a6xx: Enable IFPC on Adreno X1-85 > drm/msm/a6xx: Enable IFPC on A750 GPU > > drivers/gpu/drm/msm/adreno/a6xx_catalog.c | 71 ++++++- > drivers/gpu/drm/msm/adreno/a6xx_gmu.c | 105 ++++++++-- > drivers/gpu/drm/msm/adreno/a6xx_gmu.h | 14 ++ > drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 221 ++++++++++++++++++---- > drivers/gpu/drm/msm/adreno/a6xx_gpu.h | 3 + > drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c | 10 +- > drivers/gpu/drm/msm/adreno/a6xx_hfi.c | 34 +++- > drivers/gpu/drm/msm/adreno/a6xx_preempt.c | 40 +++- > drivers/gpu/drm/msm/adreno/adreno_gpu.h | 1 + > drivers/gpu/drm/msm/msm_gpu.h | 9 + > drivers/gpu/drm/msm/msm_gpu_trace.h | 12 ++ > drivers/gpu/drm/msm/msm_submitqueue.c | 4 + > drivers/gpu/drm/msm/registers/adreno/a6xx_gmu.xml | 11 ++ > 13 files changed, 459 insertions(+), 76 deletions(-) > --- > base-commit: 5cc61f86dff464a63b6a6e4758f26557fda4d494 > change-id: 20241216-ifpc-support-3b80167b3532 > > Best regards, Tested-by: Neil Armstrong # on SM8650-HDK Thanks, Neil