From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f182.google.com (mail-pl1-f182.google.com [209.85.214.182]) (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 2BE822D3ED1 for ; Tue, 31 Mar 2026 18:02:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.182 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774980166; cv=none; b=b34QO4s64s0hHM1DyolmtoMxsGHTT0vwamp21OKA9y/Tj795mxoYnzMESs20VYPbl3+URsolAGgjRyiqKSgxUe/hQ2l613GQdWYORzn1Mmk0fy/WZSmS7WWL+vbLNduIwG0DbwHlOCOAEKsmnRf1XQ5hWHgZpDujw6yCIvC54Ys= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774980166; c=relaxed/simple; bh=B80umtLIZS5subJgAr0wxYi+vOd9cDmQ2COsNCERNps=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=Zf9V6gs1lPX/CBUWhZg4vpYt5XwTmhPqZrAI4C0T7dJoAz/WlygEOPDdWIxJ22rwTKaK3Nmmlhwk2DQOZfeYEfREyNa3WPl/gcZKNVyiBxHYYZ4tCTFTsBD/dMJp27D0wWsxOD/8c+ZJg9NVu6M/eCJCBWZI8QeNLVy/9CWCNQw= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=orb.net; spf=pass smtp.mailfrom=orb.net; dkim=pass (2048-bit key) header.d=orb-net.20230601.gappssmtp.com header.i=@orb-net.20230601.gappssmtp.com header.b=If0Hxwm8; arc=none smtp.client-ip=209.85.214.182 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=orb.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=orb.net Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=orb-net.20230601.gappssmtp.com header.i=@orb-net.20230601.gappssmtp.com header.b="If0Hxwm8" Received: by mail-pl1-f182.google.com with SMTP id d9443c01a7336-2b2503753efso21508805ad.0 for ; Tue, 31 Mar 2026 11:02:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=orb-net.20230601.gappssmtp.com; s=20230601; t=1774980163; x=1775584963; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=sWjwEy9m9KvnFnDU5TKVoimvwkRXdMUl6feyPSdFKhg=; b=If0Hxwm8tJOrFO3fXFpXlJsHp5etCRn8n9DREFeIbprmuXezUPRkn4Nf0WvYJdwUZE tCvNcfrF9h7kB39l/wnBXPNHeZpMMnHW6Ghrpd/FNZBwhmSbfkwdFJSoEf5wA1aWjIka aEdrIkcoHXZrOcElslSO3p9E7tmDDIkvTMwVZd54zzSwzUZ22h4NrK9LMGZhL8l3kfJ0 BuruX1u8jeRGqurgBIVh0240KGv7k/TKKfNnnLj+a58WDZNlSf49seltQToHsS46O1NU nbmchfPkfLCIstTP5ZRvUUyWoeqmzjELLKAB+w3B2nuuLzL6QcROr4TuaO6QgCmZhvh7 dg3g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774980163; x=1775584963; 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; bh=sWjwEy9m9KvnFnDU5TKVoimvwkRXdMUl6feyPSdFKhg=; b=ASOH/habe3MvjiqeO5VUg8FpwdWpVL+a7hm0DyBqiB6XxYVHPZBNXPcyils8vTzRou NsdAFNg1Sp7SfHNb7gFQQOM5kQGQgP9VyFbUBh+ng3fRBiaDvc0gDLex0x6yKTgVPSnj WQXS2K/P5DdnGnikaiYlqmk3STPZmd8H0yi0fmrBFOTJLJdeNejm/Jjbx7phqcrMj6hh KWORo8gyPFikWO8CnIXzo7PPRfHLFmwSlXfiK4PMKzjmD1TnBbGw11SEZrWjf2lP0AOp 1cDm8PKKlyPttAkNv9vjd5Cu5DUB3xo4yPqLAe/q/zI5dx421u9UEN+PCNtARZof6jnc tUaw== X-Forwarded-Encrypted: i=1; AJvYcCUGmpTMbCdWsW5nQj5OsvwLwJ3XS2iUA4S5dnKx7LJIE9xmRoUMzTRD8ucxAKvRN3JvEzZY15FvWFYo8DQ=@vger.kernel.org X-Gm-Message-State: AOJu0Yx8L8NG6jSZp+q+4dnW+OKp3yAjK6x6GnRrNvls9oVOhOdZOZaL /bZ8x3y0GFPkWGjWDlS8z9qLuja5XKTa7vPceNnviRIvywAWKPkqUYBoip/UCuXLlEA= X-Gm-Gg: ATEYQzxRQzcdogStDd6DEVilrSXD4RK4SdsYwVL6UgdS5mHPSgLw6yFmpZVMfiLdvcd XSPJ+xbxF5NdgygeyNwK0/ACazfo315rycb3lPX/llb6lt6j/zLnLDygUzlqO0e3CJvJBVr4G6t XW7JbRMcNwVI/qCVpXuiHM4Vnir12A2FZQcRzibTfeDBuLxmngLmqr7FSVPMIPTALqpO65n9gFE mnR/GPlJ86IkvXhZDF32ApxV4otegZgy5P46sY/P6I8PZWjk55/GX+B1QQ2MlkCz9o8qKFaqcGO qgvqzD1WuUUPb/pPSBet8qhylJH/GSpU1mxPEzCt6G79lz1SghsrjwbjJGmv13gJ5TxrR5wstvu Ht0Ir79L9fLbgqAe4KpYYMsko6kS/mU51re4MRinCyJcs5/8GlKFJtJ562GHfKquplqOKUabadH 5r2R9hBLQQCBDEdmNY1JzeOCS+mpuGnFe+Ast5WwdZhIsoguhMFjxt5g61nJ/2f/x9aIRmaGYZI LNsGw== X-Received: by 2002:a17:903:a86:b0:2b0:571f:6f07 with SMTP id d9443c01a7336-2b269d05c7bmr1235555ad.39.1774980163386; Tue, 31 Mar 2026 11:02:43 -0700 (PDT) Received: from claude-dev.lan ([50.125.94.20]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2b242680132sm125240315ad.32.2026.03.31.11.02.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 31 Mar 2026 11:02:43 -0700 (PDT) From: Daniel Bozeman To: ulf.hansson@linaro.org, heiko@sntech.de Cc: linux-pm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, Daniel Bozeman Subject: [PATCH 1/2] pmdomain/rockchip: skip QoS operations for idle-only domains Date: Tue, 31 Mar 2026 18:02:22 +0000 Message-ID: <20260331180223.1682283-1-daniel@orb.net> X-Mailer: git-send-email 2.43.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Idle-only power domains (pwr_mask == 0) cannot actually be powered on or off. rockchip_do_pmu_set_power_domain() already returns early for these domains, but rockchip_pd_power() still attempts QoS save and idle requests before reaching that check. On RK3528, the idle-only domains (PD_RKVENC, PD_VO, PD_VPU) have QoS registers that may be inaccessible when the generic power domain framework attempts to power them off, leading to synchronous external aborts. Return early from rockchip_pd_power() when pwr_mask is zero, matching the existing guard in rockchip_do_pmu_set_power_domain(). Fixes: 1fe767a56c32 ("soc: rockchip: power-domain: allow domains only handling idle requests") Signed-off-by: Daniel Bozeman --- drivers/pmdomain/rockchip/pm-domains.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/pmdomain/rockchip/pm-domains.c b/drivers/pmdomain/rockchip/pm-domains.c index 490bbb1d1d..2eecae092a 100644 --- a/drivers/pmdomain/rockchip/pm-domains.c +++ b/drivers/pmdomain/rockchip/pm-domains.c @@ -640,6 +640,9 @@ static int rockchip_pd_power(struct rockchip_pm_domain *pd, bool power_on) if (rockchip_pmu_domain_is_on(pd) == power_on) return 0; + if (pd->info->pwr_mask == 0) + return 0; + ret = clk_bulk_enable(pd->num_clks, pd->clks); if (ret < 0) { dev_err(pmu->dev, "failed to enable clocks\n"); base-commit: bc330699801d3b4f99110365512caed5adcfaca3 -- 2.43.0