From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.remote-ip=209.85.161.54 ARC-Seal: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; cv=none; t=1793297494; b=LEy7H93X+ljofrGdVY6VhZKCr+EZrPl4zpFWsVD+P5B1yJ5exr+Ax57JfPZZaXfp9XtV sZu9FX9SU9bqxJlcVeiH+SpT5bWfhaIdfQ0HC0etkDjryuREtOyvRkFJEu3W3/9yGKl6u VYHkZctnBZNRAKiyPK1l/0tShnQQdBZ2TweR0S3uyZA1ntaWHk0ll4FaP7aSmWnGHJRZP lMnzGMZAcApd4EGZm7xgzlzeV5iPTmeRhqhk/cPRDQWHpFHRr30aB9WNG87AYfgunW1XQ sdKQzQp8Ce2/66llG75ROCKS+SnDaAVQsFLOdOkie0eVVv/2SZiUrfGghrrIogKodLw== ARC-Message-Signature: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; c=relaxed/relaxed; t=1793297494; h=DMARC-Filter:Received:DKIM-Signature:X-Google-DKIM-Signature: X-Forwarded-Encrypted:X-Gm-Message-State:X-Gm-Gg:X-Received:Received: Message-ID:Date:MIME-Version:User-Agent:Subject:To:Cc:References: Content-Language:From:In-Reply-To:Content-Type: Content-Transfer-Encoding; bh=gLjComLCp2esLTingR9be9ipRIp36YyskRA+PmDaCHo=; b=5ITWSDMH9sYp+arXKUxbt+b15bX8SAa1mte0nBQq45PXM8xe3x7Vlt0+wSP4uQ18XbD6 FNdRP37m6To3OBAf5sBoMGoNwMyQ3LUKLUyYYQ+YHgafvWychiwOLBORuZ7x20RnTsp5o 79fYPNpGQLxlYeRyQ5RpNGDo/NMffU/U0ySRoq49v4zpbTzgJi5J8yvrI82dB3qYk0I+r bGxh+ZncmnZlqxRf/ZiCBDkj5D0yBj6qfptP8+rziRdiO6cD7FQyVIp5/RjTGG8TpzcRs 0zrfA5lIN7AUi9Zf7pzuN9mOu/u2w/PB1XACrMgpwMKq3MR/sSmKHKjAM8nGujbXQqQ== ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass header.from=ieee.org; spf=pass smtp.mailfrom=ieee.org; dkim=pass header.d=ieee.org header.i=@ieee.org header.a=rsa-sha256 header.s=google header.b=fdZANVTe; arc=none smtp.remote-ip=209.85.161.54 Received: from mail-oo1-f54.google.com (mail-oo1-f54.google.com [209.85.161.54]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 79C31606A33E for ; Thu, 29 Oct 2026 18:11:33 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.2 smtp.subspace.kernel.org 79C31606A33E Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=ieee.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ieee.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key, unprotected) header.d=ieee.org header.i=@ieee.org header.a=rsa-sha256 header.s=google header.b=fdZANVTe Received: by mail-oo1-f54.google.com with SMTP id 006d021491bc7-6f74f6b46abso1358904eaf.0 for ; Thu, 29 Oct 2026 11:11:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ieee.org; s=google; t=1793297492; x=1793902292; darn=vger.kernel.org; h=content-transfer-encoding:content-type:in-reply-to:from :content-language:references:cc:to:subject:user-agent:mime-version :date:message-id:from:to:cc:subject:date:message-id:reply-to :content-type; bh=gLjComLCp2esLTingR9be9ipRIp36YyskRA+PmDaCHo=; b=fdZANVTefeMje8xR+EIuw4/nI7763+/Yz/5vlZWfvSqosuhvndQtMIEStX/ApdcvQH Kadsyxyirf7upD8Zk5eCu1Q/ykSha+nTzbhn2gDuzn2Q65BnAf5Gi6sSFrIpTK3q6+35 CULybsUQ6m4ZK2vmknVFnSgzKIJGwv2V1SqIw= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1793297492; x=1793902292; h=content-transfer-encoding:content-type:in-reply-to:from :content-language:references:cc:to:subject:user-agent:mime-version :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=gLjComLCp2esLTingR9be9ipRIp36YyskRA+PmDaCHo=; b=sl28RkWqUZMi1HKwWLhoUs1+GI6YqBiNDGh9JkyozPmttl8Be5eLJNFJyfcub0C5GH K8O4hDC93rptfae353aL/WmzPuz4ZW5W8mp8/bD+rOG1RiOCPzjmVfY5oS1RfWUvkB9N TYzrV62iF5kbhEODTjDG/PfySnVO0Bf3L6kjwNlCKJKvH2zs5b7LhbaXNEGp4mvYY7tR 4qQCUgWTzeDnHA5/s/nudWgmNtxpntPIJ+q1XDXZGj7T+jKN48UlYOWfVUG7WWq5MmVa C2N+ddqaG+mynYnQEuBpkTbCQTPH1liKJR7x+Avu7TvQqAQ3I4oOYJVgA5nseyew4DGU aZQQ== X-Forwarded-Encrypted: i=1; AKwUvBwuQHDNLGL2k6UrUhG6Bt0rXJBlH0SPierJ75vOwlaCsLWjGM5sEGWmsemFDc6HOafX7uOUaCk=@vger.kernel.org X-Gm-Message-State: AFq9FYKm8+BP91hfZq54meuIbw6Kouv75VB5eqUfjhfKkR0gAsIZf0lY u3XzUEGESqQkAeJlZWlgXC71TytphEeHNP4w/RMbdowJKgrC8i5d/9icR2F2K/3mng== X-Gm-Gg: AYBFou17p3/bp4/VqIN5m/nkZeE2iyXOSnRy8AKu4Dp/oQiIxjwh1At9tmOwLgyZdjd MmZnGgWZeqHDhiu+VY7Cx1GaH9Me4kYqT+Q6Pw2EJIqwcbpeKRdE6AqdfEz4dXlBGLVHKB+iVoT VDYi69tFRp1FqqDrUM5l6KNlAtngtRZCa2S3CZd/MKtwYFhtV/HWDTfCtEG6SJqL6I7Fa95gE7d pKh2zSPBSjx8w/PayHbDuY24cSybzFqhygRwzjLuH31sZsyfh2Wxq7UQsaXFy9foacQOhQIgd5U RU7ohC5BJ4RgRsxqQy+fGZK2e47I+jnWl6l1cQJACsM+fdhZnMPpCEKdDdRyfl6/XU1FRKKnvt8 i56gFv3upTp/aStDJmo/T0T3Fn1U/mtOd0wjsqI1PYes0DNfxIdq/T514LHRaZIR7JBXGkFU6wC dE1Dpg9FKpJ5bY7eslXWWSOyzXAAx5nciXIUid0HuwaNWoU5SQKfoX/dQdKgVSqxHKBYFIdgM3/ pJTacNx2Do2n13z+stlVFa2YdziLc2Y26LzDi35vM2ZeUb0f3Hwi4zc0tUpjk5JLJ7vqsIjUTqV wnKGRoE76dUqciQpGbBPyoWRGWpngTjySbMoMJAUlICpiA== X-Received: by 2002:a05:6820:5710:10b0:6de:aeea:5c89 with SMTP id 006d021491bc7-714f288a10fmr36729eaf.23.1793297492247; Thu, 29 Oct 2026 11:11:32 -0700 (PDT) Received: from [172.22.22.28] ([73.62.185.64]) by smtp.googlemail.com with ESMTPSA id 586e51a60fabf-4a904856f09sm130363fac.3.2026.10.29.11.11.29 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 29 Oct 2026 11:11:31 -0700 (PDT) Message-ID: <4c7a6635-7382-4e57-ae16-6bc2ee694f46@ieee.org> Date: Thu, 29 Oct 2026 13:11:29 -0500 X-Mailing-List: netdev@vger.kernel.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 1/1] PM: runtime: change stub pm_runtime_get_if_active() return 1 when !CONFIG_PM To: Frank.Li@oss.nxp.com Cc: Frank Li , "Rafael J. Wysocki" , Greg Kroah-Hartman , Andrzej Kacprowski , Karol Wachowski , Oded Gabbay , Jani Nikula , Joonas Lahtinen , Rodrigo Vivi , Tvrtko Ursulin , Matthew Brost , Thomas Hellstrom , David Airlie , Simona Vetter , Alex Elder , Will Deacon , Robin Murphy , Joerg Roedel , Rob Clark , Sakari Ailus , Mauro Carvalho Chehab , Guenter Roeck , Guan-Yu Lin , Mathias Nyman , linux-pm@vger.kernel.org, linux-usb@vger.kernel.org, dri-devel@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org, linux-hwmon@vger.kernel.org, linux-arm-kernel@lists.infradead.org, iommu@lists.linux.dev, linux-arm-msm@vger.kernel.org, linux-media@vger.kernel.org, linux-staging@lists.linux.dev, netdev@vger.kernel.org, imx@lists.linux.dev, Rob Herring References: <20261029163044.3062958-1-Frank.Li@oss.nxp.com> Content-Language: en-US From: Alex Elder In-Reply-To: <20261029163044.3062958-1-Frank.Li@oss.nxp.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 10/29/26 11:30 AM, Frank.Li@oss.nxp.com wrote: > From: Frank Li > > When CONFIG_PM is not enabled, all devices runtime PM state should be > treated as active. Should be treated as if runtime PM were enabled for the device, and the runtime status is active. It's a subtle distinction but the previous behavior returned EINVAL, which means "runtime PM is disabled for the device". Anyway, for the IPA use of this function, this looks correct. Acked-by: Alex Elder > > __pm_runtime_resume() returns 1 (called by pm_runtime_get()). > pm_runtime_get_if_active() is the try-and-get version of pm_runtime_get(). > stub pm_runtime_active() also returns true. So pm_runtime_get_if_active() > should return the same value as the stub pm_runtime_get(), which is 1. > > Analysis of all callers and their behavior with old (-EINVAL) vs new (1): > > Pattern A: if (!pm_runtime_get_if_active(dev)) -- no impact > Both -EINVAL and 1 are non-zero, so !ret is false in both cases. > Callers: drivers/accel/ethosu/ethosu_perfmon.c, > drivers/gpu/drm/msm/adreno/a6xx_gmu.c, > drivers/gpu/drm/msm/msm_perfcntr.c, > drivers/gpu/drm/v3d/v3d_mmu.c, > drivers/gpu/drm/v3d/v3d_perfmon.c (x4), > drivers/media/i2c/gc08a3.c gc05a2.c og0ve1b.c ov6211.c, > drivers/media/i2c/ccs/ccs-core.c s5kjn1.c lm3560.c (x2), > drivers/media/i2c/s5k3m5.c thp7312.c imx283.c ov64a40.c, > drivers/media/pci/intel/ipu6/ipu6-buttress.c, > sound/hda/core/device.c > > Pattern B: if (!ret) after get -- no impact > Both -EINVAL and 1 are non-zero, !ret is false in both cases. > drivers/gpu/drm/amd/pm/amdgpu_pm.c (comment says "allow access" > in kernels without CONFIG_PM), drivers/pci/pci.c > > Pattern C: ret > 0 / ret <= 0 / ret != 1 checks -- FIXED > drivers/usb/core/offload.c: checks (!= 1), old -EINVAL caused > -EBUSY even with !CONFIG_PM. Fixed: now returns 1, proceeds. > drivers/accel/ivpu/ivpu_job.c: drm_WARN_ON(<= 0), old -EINVAL > spuriously triggered WARN. Fixed: 1 > 0, no warn. > drivers/gpu/drm/i915/intel_runtime_pm.c: checks (<= 0), old > -EINVAL triggered error path. Fixed: 1 > 0, correct path. > drivers/accel/ivpu/ivpu_sysfs.c: (> 0), old skipped freq read. > Fixed: proceeds correctly without CONFIG_PM. > drivers/gpu/drm/xe/xe_pm.c: wraps (> 0), all xe callers > (xe_bo.c, xe_shrinker.c, xe_vsec.c, xe_ggtt.c, xe_guc_ct.c, > xe_pxp.c) now correctly treat !CONFIG_PM as active. > drivers/net/ipa/ipa_smp2p.c: power_on = (> 0), now correctly true. > drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c: (> 0), now correctly > executes stall register update. > drivers/staging/media/ipu7/ipu7-buttress.c: active (<= 0) early > return now skipped, correctly proceeds. > > Pattern D: explicit -EINVAL check > drivers/hwmon/prom21-xhci.c: checks (> 0) then (== -EINVAL). > Old: took -EINVAL fallback. New: takes (> 0) fast path. > Both succeed when CONFIG_PM is disabled; functionally equivalent. > drivers/hwmon/eic7700-pvt.c: call is guarded by IS_ENABLED(CONFIG_PM), > stub is never reached. No impact. > > Signed-off-by: Frank Li > --- > Cc: "Rafael J. Wysocki" > Cc: Greg Kroah-Hartman > Cc: Andrzej Kacprowski > Cc: Karol Wachowski > Cc: Oded Gabbay > Cc: Jani Nikula > Cc: Joonas Lahtinen > Cc: Rodrigo Vivi > Cc: Tvrtko Ursulin > Cc: Matthew Brost > Cc: "Thomas Hellstrom" > Cc: David Airlie > Cc: Simona Vetter > Cc: Alex Elder > Cc: Will Deacon > Cc: Robin Murphy > Cc: "Joerg Roedel" > Cc: Rob Clark > Cc: Sakari Ailus > Cc: Mauro Carvalho Chehab > Cc: Guenter Roeck > Cc: Guan-Yu Lin > Cc: Mathias Nyman > Cc: linux-pm@vger.kernel.org > Cc: linux-usb@vger.kernel.org > Cc: dri-devel@lists.freedesktop.org > Cc: intel-gfx@lists.freedesktop.org > Cc: intel-xe@lists.freedesktop.org > Cc: linux-hwmon@vger.kernel.org > Cc: linux-arm-kernel@lists.infradead.org > Cc: iommu@lists.linux.dev > Cc: linux-arm-msm@vger.kernel.org > Cc: linux-media@vger.kernel.org > Cc: linux-staging@lists.linux.dev > Cc: netdev@vger.kernel.org > Cc: imx@lists.linux.dev > Cc: Rob Herring (Arm) > --- > include/linux/pm_runtime.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/include/linux/pm_runtime.h b/include/linux/pm_runtime.h > index 64921b10ac74f..de9e7518ecef2 100644 > --- a/include/linux/pm_runtime.h > +++ b/include/linux/pm_runtime.h > @@ -280,7 +280,7 @@ static inline int pm_runtime_get_if_in_use(struct device *dev) > } > static inline int pm_runtime_get_if_active(struct device *dev) > { > - return -EINVAL; > + return 1; > } > static inline int __pm_runtime_set_status(struct device *dev, > unsigned int status) { return 0; }