From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 111C746A606; Tue, 21 Jul 2026 15:48:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784648896; cv=none; b=Z4xVmycS95gOeQHdih/qJK5oAaVCZtbuT99XEuUm8lo3d4ReJe3FsuyySvtfbVCH5js1+l/d6b5bWUn0PYQpyjPwinSBNURBmS2NotwEV8cC1CVfN1F/vamxA2gHm1sX8SMXbfeTR1ew2csd+rXksWZd9cuG6XOIOb/JvFHABak= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784648896; c=relaxed/simple; bh=AmHq2VHbXzhnHJt0snpYucqcv8NmDvrelN2dKFyudyk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=bnMD7/RdXjgAoyKghYATE+XyiELxqtcQ3+tBfvY5015MMrCkti536LSwJMhtGYzsd/E3Hk1Zp8WU9+A057KM6lxigcaRWgsJwOFYOYGA8+134oxMRhCGtP/4bUcKmAKElB5UryXsQ6P1pFL2ghny5Qfr+n9Q8LGuA0Qix/AgZyQ= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.b=lUQcnLAN; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.b="lUQcnLAN" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E31B01F00A3A; Tue, 21 Jul 2026 15:48:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linuxfoundation.org; s=korg; t=1784648894; bh=ycGn9HBuzxq02E2e/8rChgYHUs6/9Vv+na0cadcIQro=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=lUQcnLANt2BavFZvBK7qfwHeXvLJNurAyRoBQedTPy2+RanvjR8P04IVW65xsbtGS JCL0tx2P8LLT+HiMDKAPW50nCFyv2tP3KmnBmlVvaEkcJQOnp9imYLFax8EA+j/2gQ nRD06FDC3+A/UD3NDG742WlRYGkIX/R4+l3MakMQ= From: Greg Kroah-Hartman To: stable@vger.kernel.org Cc: Greg Kroah-Hartman , patches@lists.linux.dev, Tudor Ambarus , Peter Griffin , Krzysztof Kozlowski , Sasha Levin Subject: [PATCH 7.1 0373/2077] firmware: samsung: acpm: Add devm_acpm_get_by_phandle helper Date: Tue, 21 Jul 2026 17:00:46 +0200 Message-ID: <20260721152601.486934202@linuxfoundation.org> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260721152552.646164743@linuxfoundation.org> References: <20260721152552.646164743@linuxfoundation.org> User-Agent: quilt/0.69 X-stable: review X-Patchwork-Hint: ignore Precedence: bulk X-Mailing-List: patches@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 7.1-stable review patch. If anyone has any objections, please let me know. ------------------ From: Tudor Ambarus [ Upstream commit fc13a4b9b9c8cb0b8e5ba54b21712d00f810496c ] Introduce devm_acpm_get_by_phandle() to standardize how consumer drivers acquire a handle to the ACPM IPC interface. Enforce the use of the "samsung,acpm-ipc" property name across the SoC and simplify the boilerplate code in client drivers. The first consumer of this helper is the Exynos ACPM Thermal Management Unit (TMU) driver. The TMU utilizes a hybrid management approach: direct register access from the Application Processor (AP) is restricted to the interrupt pending (INTPEND) registers for event identification. High-level functional tasks, such as sensor initialization, threshold programming, and temperature reads, are delegated to the ACPM firmware via this IPC interface. Signed-off-by: Tudor Ambarus Reviewed-by: Peter Griffin Link: https://patch.msgid.link/20260515-acpm-tmu-helpers-v2-6-8ca011d5a965@linaro.org Signed-off-by: Krzysztof Kozlowski Stable-dep-of: 7b661285aa75 ("firmware: samsung: acpm: remove compile-testing stubs") Signed-off-by: Sasha Levin --- drivers/firmware/samsung/exynos-acpm.c | 23 +++++++++++++++++++ .../firmware/samsung/exynos-acpm-protocol.h | 6 +++++ 2 files changed, 29 insertions(+) diff --git a/drivers/firmware/samsung/exynos-acpm.c b/drivers/firmware/samsung/exynos-acpm.c index 19db3674a28f3e..65949e7fd430d9 100644 --- a/drivers/firmware/samsung/exynos-acpm.c +++ b/drivers/firmware/samsung/exynos-acpm.c @@ -819,6 +819,29 @@ struct acpm_handle *devm_acpm_get_by_node(struct device *dev, } EXPORT_SYMBOL_GPL(devm_acpm_get_by_node); +/** + * devm_acpm_get_by_phandle - Resource managed lookup of the standardized + * "samsung,acpm-ipc" handle. + * @dev: consumer device + * + * Return: pointer to handle on success, ERR_PTR(-errno) otherwise. + */ +struct acpm_handle *devm_acpm_get_by_phandle(struct device *dev) +{ + struct acpm_handle *handle; + struct device_node *np; + + np = of_parse_phandle(dev->of_node, "samsung,acpm-ipc", 0); + if (!np) + return ERR_PTR(-ENODEV); + + handle = devm_acpm_get_by_node(dev, np); + of_node_put(np); + + return handle; +} +EXPORT_SYMBOL_GPL(devm_acpm_get_by_phandle); + static const struct acpm_match_data acpm_gs101 = { .initdata_base = ACPM_GS101_INITDATA_BASE, .acpm_clk_dev_name = "gs101-acpm-clk", diff --git a/include/linux/firmware/samsung/exynos-acpm-protocol.h b/include/linux/firmware/samsung/exynos-acpm-protocol.h index 13f17dc4443b8f..596d17f0384f43 100644 --- a/include/linux/firmware/samsung/exynos-acpm-protocol.h +++ b/include/linux/firmware/samsung/exynos-acpm-protocol.h @@ -52,6 +52,7 @@ struct device; #if IS_ENABLED(CONFIG_EXYNOS_ACPM_PROTOCOL) struct acpm_handle *devm_acpm_get_by_node(struct device *dev, struct device_node *np); +struct acpm_handle *devm_acpm_get_by_phandle(struct device *dev); #else static inline struct acpm_handle *devm_acpm_get_by_node(struct device *dev, @@ -59,6 +60,11 @@ static inline struct acpm_handle *devm_acpm_get_by_node(struct device *dev, { return NULL; } + +static inline struct acpm_handle *devm_acpm_get_by_phandle(struct device *dev) +{ + return ERR_PTR(-ENODEV); +} #endif #endif /* __EXYNOS_ACPM_PROTOCOL_H */ -- 2.53.0