From nobody Sat Feb 7 21:23:57 2026 Received: from mail-wm1-f44.google.com (mail-wm1-f44.google.com [209.85.128.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 1B2E034A797 for ; Fri, 31 Oct 2025 13:08:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761916129; cv=none; b=IAOc7CsezkNTyrX7id9uSVV+MoRVI4zT/tfBvQvC1MPwBnPg0IUdS7ojtijiI+W2/rPcjn2mZfA5Dpduv1zWY6t6ljN/FJXwK/DLRwX+SpCGuJhMAM08n441dNQne+EUUxE+BqZhBgOI8Ufvfs7nu6okBkYccMO3EqcG6TFcCdo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761916129; c=relaxed/simple; bh=EosaKghg3U4iEB4VNfXlrr7R7XRj9cKNCldq2SnVuGE=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Wn1gEZBahIP6GMu1gY98SVDsdoxlLYACZC3lxGdeC2TxP99sxD6U9Hr9I4Ph7AGkta6UB0yZzr2Uxejw1ap6+5NXpfM5MQyntBje5SYDgvBqB2zGgU8+b9nF1iuiqUnH8/XWoUiUPJ7FNq6/BQPRRLozmjqOleZwRInxCeRDsj4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=QUUtjtw5; arc=none smtp.client-ip=209.85.128.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="QUUtjtw5" Received: by mail-wm1-f44.google.com with SMTP id 5b1f17b1804b1-475dbb524e4so13471845e9.2 for ; Fri, 31 Oct 2025 06:08:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1761916125; x=1762520925; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=hqRNM8UJyFRHPSXkcGPHCYH6LJDeMorOhD5X06t/AfM=; b=QUUtjtw5Bec6TU6z6eMOw6xB/T/fzPCeGN83/L2GqjzbyYPbbc81gytTCP0UeHUCFc q1YTUM4MlAQSnRDq5HRH3GO/suyhruk7cAuGS7ZnbrhSlGBUk780+PrBO4H59GW/GnH3 P9FtsLuOBeWm6BFagci/EaunN6LkzbXdZSXtVkUbTuxG3xUfjX1K/ORlMZTm7Bqlb9ue lvtJeP5LACp8/pHJELgey4lkd9LtR2wFDQ/JC1G9GCCsr0e6iiy3hgtIZi4orPKuYHtW JPSKj0zOV4NkE4ANQU36pP1aPlESoHuHKGzErU/nSv1YhWpDVJGFEzZwSocCzuNsHi0p bQlQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761916125; x=1762520925; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=hqRNM8UJyFRHPSXkcGPHCYH6LJDeMorOhD5X06t/AfM=; b=bQuvIncDTNtB4D4Fv6kqEdAvN9S5WKVErs3yTI0TUV97f/PKHDudTRloNMS/l3r4om pBz/PBedeS8zb5AuCWSfJodKTQVMebnCC6UlmlhvrddZ+uUOH42FJg07ROuNytPY1ZOK AxqC3j0beLxSZxqptmUZw8cIiOtSBYbd9lM7TvFRRDxiJCpQmldhGUyVYwtjQYFEmWdt ybZl62atm31rczIvK+DyHB24lXIAd27DmRuX7ackbm5mciviPH/qKVn5rPxKb/+prVBp nq8tcQ2HGibaLM3tAah2Ss7Q/K/giVAkUCeoAYiXnwncxCqu1s/Bd7AOG2EnIBnvDTRk jK4Q== X-Forwarded-Encrypted: i=1; AJvYcCVYzZquCYyr57XFKMA7PP5jw2Y6Haxplwm3M7yGRXtzpwzQQK87Fp4KyAqVKUs1vWlgR9ydUACDIG9smWs=@vger.kernel.org X-Gm-Message-State: AOJu0Yw5qne9H83L4peh1jx8wOnUpC7f8cfYlUOwXH9s2h8W65f7uPfX NDCQfAbm4/+l5ec9dJRu4+zviFbltNmZULwmuBVSgQiQajBKivBwIXLv X-Gm-Gg: ASbGncvT644lJ90jiVoBKBu+mNFwFPj79o3W9j+tvZrc7MC6Rvmpm5wIg8GTELe3+Gr IGFgsVts3TN3OTgfGAnSn3cVJOH7kR6LQ5hP3fyKJ4KHd/r5o1tBaBk1VUqrkxP01LBMHR7bGKX yB9ELXymj3yF59B7dAcGE2eYvHLGA3aQtMHLuIMfwLWULuCNtOltbOB1ot4Zuql2eO6hxYXMAD5 /0GN+xc+9sDEFoIFwkvJlwWpsrGdv+saFpVNyznZ0q9i31X1/NE2XTjh4D2UA15YkEqozGWHXGX CGh2oUBaoue2BqVMwqnmDMl+4/0H6+6uh0Gb+OA5nDilo3+dDvzUfupntlNZK03MYCJW7pNXrlO q0p7kRJ3i0UtYAlnJNYB0Zul2Olz6YdpqR/d99rgUU9B1SWu7Jm9gdA5RaElvGDiueIbsUIJE+R 9PrlIM20R7TbAeGjgIwaBTReo7TqbiD1KqQRfgStWn X-Google-Smtp-Source: AGHT+IEoNfiwO1WHuUv2jGPlp9HRKqmIwSQeCnw3J3BsUZNvSFpBuq37GRGL35QSzOpJZZmZcOGadg== X-Received: by 2002:a05:600c:6304:b0:477:be4:7a52 with SMTP id 5b1f17b1804b1-477308e11bfmr29796555e9.39.1761916125271; Fri, 31 Oct 2025 06:08:45 -0700 (PDT) Received: from Ansuel-XPS24 (93-34-90-37.ip49.fastwebnet.it. [93.34.90.37]) by smtp.googlemail.com with ESMTPSA id 5b1f17b1804b1-477289adc18sm98339815e9.6.2025.10.31.06.08.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 31 Oct 2025 06:08:44 -0700 (PDT) From: Christian Marangi To: Ilia Lin , "Rafael J. Wysocki" , Viresh Kumar , Bjorn Andersson , Konrad Dybcio , Arnd Bergmann , Andy Shevchenko , Christian Marangi , Raag Jadav , linux-arm-msm@vger.kernel.org, linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 1/3] err.h: add INIT_ERR_PTR macro Date: Fri, 31 Oct 2025 14:08:32 +0100 Message-ID: <20251031130835.7953-2-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251031130835.7953-1-ansuelsmth@gmail.com> References: <20251031130835.7953-1-ansuelsmth@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add INIT_ERR_PTR macro to initialize static variables with error pointers. This might be useful for specific case where there is a static variable initialized to an error condition and then later set to the real handle once probe finish/completes. This is to handle compilation problems like: error: initializer element is not constant where ERR_PTR can't be used. Signed-off-by: Christian Marangi Reviewed-by: Andy Shevchenko --- include/linux/err.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/include/linux/err.h b/include/linux/err.h index 1d60aa86db53..8c37be0620ab 100644 --- a/include/linux/err.h +++ b/include/linux/err.h @@ -41,6 +41,14 @@ static inline void * __must_check ERR_PTR(long error) return (void *) error; } =20 +/** + * INIT_ERR_PTR - Init a const error pointer. + * @error: A negative error code. + * + * Like ERR_PTR(), but usable to initialize static variables. + */ +#define INIT_ERR_PTR(error) ((void *)(error)) + /* Return the pointer in the percpu address space. */ #define ERR_PTR_PCPU(error) ((void __percpu *)(unsigned long)ERR_PTR(error= )) =20 --=20 2.51.0 From nobody Sat Feb 7 21:23:57 2026 Received: from mail-wm1-f54.google.com (mail-wm1-f54.google.com [209.85.128.54]) (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 7E9FA34B183 for ; Fri, 31 Oct 2025 13:08:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761916130; cv=none; b=ViV6/5cY2x5/hONaT7ismBs72PXQLidKp51NdLhUsClu8zsi35QgPUGJS7QsZK1qvkaMmCTQJEsm/JIcl3AWKQZxutl3ShFXroY4W68/taRTykDGRNd2SA1BNEvsW+IYA1aJW+v23fJvE1bSjfS3lrF+U/6axj+qPcLu09RzUb4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761916130; c=relaxed/simple; bh=ZQib5/2OIcg170vq6islUB2C6zYKAesFa9FfnPagCaw=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ZzYq1C27ShvTSzwVWKNvUGnXtsLJsFqZ5qtIxEIGKrD1v846wKcm4dJ7v7WPRm3PM/rAE3Baev/8ColiEQOBwMGXZcPoDWKANNInT5SvypHFd+bePSbFHA7VwB4M5hq8Th37xKq3f445s19X/+Xern6U9Dg8JSM3Xv1CG5gcQ7I= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=lH+yK8mH; arc=none smtp.client-ip=209.85.128.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="lH+yK8mH" Received: by mail-wm1-f54.google.com with SMTP id 5b1f17b1804b1-475dbc3c9efso14227015e9.0 for ; Fri, 31 Oct 2025 06:08:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1761916127; x=1762520927; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=ccJbH/4yvf5LooWJONtpx85HNAeF1FVpVodVplgG0co=; b=lH+yK8mHDeN8Lnxa2SRF2CPPMQ72Hr5Z2zIskJzy+lRC9sDwE5FvV5pnsPl/SZyKUN GNYIYuuzn7PD/CCufD/inl61u8MCBKsljTxSqjdxKYfszVEG2xldQIdz3xAkWgfsz6MZ K+P/lSk0d6nstDzeO/88iS2rBMvMaQD+XJLf2WwnNd+r97wGuRUgE7dAwe6OhSogKPUR QFVYnxrOGTn9gWJwLm8BG6FWQzAKHaz5hfFAJFKdQqaSk4xk3IrrRn7YfF+YagH/TD1J 0n4FsbHQpmHaGac+mkRRnCSqx1dYLETpY2gwIchTMq+qzUAGznLBC0f/aAWm7fStjEQ5 QJrw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761916127; x=1762520927; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ccJbH/4yvf5LooWJONtpx85HNAeF1FVpVodVplgG0co=; b=Q6xfQzs9OnjfoYzeq0riUaNayVCDEvWD52em32gdZUelmj/1l93o1psY4bhjqpZkSD FeYHBR9RFxw6XXJNDiOVXohqyNpZpozd8X/9dVsngD31s2oLbqZdO0EB0sik9uhEgJdQ 9od7uygrQmKYbWwvOZp89g5W2vaNJtkMx6b7e01G4pEPUpebQlK3sqOodaROyBPvw4pp 61NLs64Sm7N61nmUjnVTMlcLejX48+8JJpw9dSO86G2AgbvwtSgPKbW/v7gV0cd03xrA j2Y8+K5MPk94X9IhMTVEbcqGuudIJ00S3sQZqMWFzVa0Jt+5k2y+94eTdJ88usPwH4bA MfUw== X-Forwarded-Encrypted: i=1; AJvYcCVqS/CjVXmk1ZNeHLk+RkubB/lybbfsJWi/+BpUWQUQUXvuugP6RJ5SwPqLeBD4Vv7b7hhROXhObBO5yx4=@vger.kernel.org X-Gm-Message-State: AOJu0YwJvaeKM1fM0dBf4hHN6jyCFzwAtJ8h9gttrnIOuztLyUzq07qV L1YdYwiwHa1hOoRCz+X2PvIeHi0WJa5GA3HDNpY7EfaMYkxdKe4wUnwY X-Gm-Gg: ASbGncupKnl700O//F0pdY9qmpxl6egG3pInWvruHY/9PE3TH8pcE5auzMIjSZSwFVe +kp/MmcOH39fBtIg1IFFZOILo35owZOZzW1d58YlnJK2J9AIrUugJnDprGcq+zaSrGDrkAYm4cR mAwl8TvJzIKXwF7ymRtEpT9gHHdhKAUEEKaK10i046Qzm0ygDzDt4WAOaMuRIBNNPzVtbJO8Q/L QtuY79VufHOhjUxQqVWl8i1yitFaFNElVW9s4MothP7ghe8CpxLKmKMXOBzIl00XHtuRqZoieXr lckHXueH9qvHqg8ImALy8i+UENQ4QraajlmAu8yU97/2FWeoswzd0zXNv0uGa99wxuqa2ZsBLu7 uH1mIBgG2h2VqAyP8K/2W125XKxsCW0i98JcjxUPW4kvETVNMYPGd/EHdBX/XW1msWW+/v099WW R1NyA6KN5VlUMTZyY7+rw6PA+B6UDTLejRoO+F7Brw X-Google-Smtp-Source: AGHT+IEpqCi0U/FCAxr0qt6blcRF9KKyqDlQ3rl1LSf7EM78bkfX9BWRYm6r2uYHW58AaeO2vgpvHA== X-Received: by 2002:a05:600c:848d:b0:471:12c2:201f with SMTP id 5b1f17b1804b1-477308b5986mr32940345e9.32.1761916126441; Fri, 31 Oct 2025 06:08:46 -0700 (PDT) Received: from Ansuel-XPS24 (93-34-90-37.ip49.fastwebnet.it. [93.34.90.37]) by smtp.googlemail.com with ESMTPSA id 5b1f17b1804b1-477289adc18sm98339815e9.6.2025.10.31.06.08.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 31 Oct 2025 06:08:46 -0700 (PDT) From: Christian Marangi To: Ilia Lin , "Rafael J. Wysocki" , Viresh Kumar , Bjorn Andersson , Konrad Dybcio , Arnd Bergmann , Andy Shevchenko , Christian Marangi , Raag Jadav , linux-arm-msm@vger.kernel.org, linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 2/3] soc: qcom: smem: better track SMEM uninitialized state Date: Fri, 31 Oct 2025 14:08:33 +0100 Message-ID: <20251031130835.7953-3-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251031130835.7953-1-ansuelsmth@gmail.com> References: <20251031130835.7953-1-ansuelsmth@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" There is currently a problem where, in the specific case of SMEM not initialized by SBL, any SMEM API wrongly returns PROBE_DEFER communicating wrong info to any user of this API. A better way to handle this would be to track the SMEM state and return a different kind of error than PROBE_DEFER. Rework the __smem handle to always init it to the error pointer -EPROBE_DEFER following what is already done by the SMEM API. If we detect that the SBL didn't initialized SMEM, set the __smem handle to the error pointer -ENODEV. Also rework the SMEM API to handle the __smem handle to be an error pointer and return it appropriately. This way user of the API can react and return a proper error or use fallback way for the failing API. While at it, change the return error when SMEM is not initialized by SBL also to -ENODEV to make it consistent with the __smem handle and use dev_err_probe() helper to return the message. Signed-off-by: Christian Marangi --- drivers/soc/qcom/smem.c | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/drivers/soc/qcom/smem.c b/drivers/soc/qcom/smem.c index 592819701809..5b7626528284 100644 --- a/drivers/soc/qcom/smem.c +++ b/drivers/soc/qcom/smem.c @@ -353,8 +353,12 @@ static void *cached_entry_to_item(struct smem_private_= entry *e) return p - le32_to_cpu(e->size); } =20 -/* Pointer to the one and only smem handle */ -static struct qcom_smem *__smem; +/* + * Pointer to the one and only smem handle. + * Init to -EPROBE_DEFER to signal SMEM still has to be probed. + * Can be set to -ENODEV if SMEM is not initialized by SBL. + */ +static struct qcom_smem *__smem =3D INIT_ERR_PTR(-EPROBE_DEFER); =20 /* Timeout (ms) for the trylock of remote spinlocks */ #define HWSPINLOCK_TIMEOUT 1000 @@ -508,8 +512,8 @@ int qcom_smem_alloc(unsigned host, unsigned item, size_= t size) unsigned long flags; int ret; =20 - if (!__smem) - return -EPROBE_DEFER; + if (IS_ERR(__smem)) + return PTR_ERR(__smem); =20 if (item < SMEM_ITEM_LAST_FIXED) { dev_err(__smem->dev, @@ -685,10 +689,10 @@ static void *qcom_smem_get_private(struct qcom_smem *= smem, void *qcom_smem_get(unsigned host, unsigned item, size_t *size) { struct smem_partition *part; - void *ptr =3D ERR_PTR(-EPROBE_DEFER); + void *ptr; =20 - if (!__smem) - return ptr; + if (IS_ERR(__smem)) + return __smem; =20 if (WARN_ON(item >=3D __smem->item_count)) return ERR_PTR(-EINVAL); @@ -723,8 +727,8 @@ int qcom_smem_get_free_space(unsigned host) struct smem_header *header; unsigned ret; =20 - if (!__smem) - return -EPROBE_DEFER; + if (IS_ERR(__smem)) + return PTR_ERR(__smem); =20 if (host < SMEM_HOST_COUNT && __smem->partitions[host].virt_base) { part =3D &__smem->partitions[host]; @@ -1181,8 +1185,8 @@ static int qcom_smem_probe(struct platform_device *pd= ev) header =3D smem->regions[0].virt_base; if (le32_to_cpu(header->initialized) !=3D 1 || le32_to_cpu(header->reserved)) { - dev_err(&pdev->dev, "SMEM is not initialized by SBL\n"); - return -EINVAL; + __smem =3D ERR_PTR(-ENODEV); + return dev_err_probe(&pdev->dev, PTR_ERR(__smem), "SMEM is not initializ= ed by SBL\n"); } =20 hwlock_id =3D of_hwspin_lock_get_id(pdev->dev.of_node, 0); --=20 2.51.0 From nobody Sat Feb 7 21:23:57 2026 Received: from mail-wr1-f47.google.com (mail-wr1-f47.google.com [209.85.221.47]) (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 87C4B34B416 for ; Fri, 31 Oct 2025 13:08:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761916131; cv=none; b=e2jD7SM1VEyXHDPy26kOaWv9AuSgJ+jTDHWFcuCxG74xmdbfRl6dByCUpXiVvF+X3GrdHWDYbTc2nF8HTlp0ZBLGmyS20VlEuPFuQFG6OJHjq30t2V/VmmOR4bIeo4a3Qs+CFhTbDXig/ooHJffRXvCHgwR0k0qmMbqLEXUm3I8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761916131; c=relaxed/simple; bh=5T4we+04phvY12zd5z7NmT493Cbo+MC2XthOf+wVqB4=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=iTBYJem+XgVqrPVw6OSmEjTdLcoynR5svFWGqz7yk5meHTx1Qeg/6rnTnI6ho1bnMJpay/rupmJrOnA/aWJoDAP5pG2ZxOQeN3C5x6eq6kb58ctqUS3JpD1hCAyZ5NXQKHP7wueGKwBSLGWhFWOprj6exr7/MvgBKP8PHJOcMa8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=M8U+3tRc; arc=none smtp.client-ip=209.85.221.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="M8U+3tRc" Received: by mail-wr1-f47.google.com with SMTP id ffacd0b85a97d-3ed20bdfdffso2064397f8f.2 for ; Fri, 31 Oct 2025 06:08:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1761916128; x=1762520928; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=WlG3BHDYyP9oSQCZSrzDbxflKU5lSaGhHgoKQjGdBiQ=; b=M8U+3tRcWLvS5/krGTnFAjtk3+c9AFYqrpDXbxS/bw0RGwvA8GNBXg12gtijGNJwhc 08dytg14s93Pybkl6AmVeDTPNUTOPqIVVKspSkMYZWTjuBnbWTv5v+1JFxLwqD/T/QBU 1R2c5zO7kgs1IqXbMDSL+p9pddvhaBKNATQ5cwx/+9CRNyUHZGBPoL2iN33KZLFfpyVj X6czZVu2CIfJyNCfMzPttdsKgK+FHMELTMBpFS5FhJlOd4IOm0yDq7ptU7ViaT/FKU+i a67tFmkHVt0mGlHV+p6X8C3U3wiVPBfT9amWQfhLbTV2lcKyQc2N8+lXBO2Zj0tBzEit l9CQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761916128; x=1762520928; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=WlG3BHDYyP9oSQCZSrzDbxflKU5lSaGhHgoKQjGdBiQ=; b=gGi4UH1Hl4bXCHjEUrYY5RdEorxMCVA6rfAGTcsptwHiFBdh+1qNP4mdfzAaXgxgVJ hPCBI6WifS0xZbpt10LjSlS6H/pGHrnsML5KN5BCxNJ20u3/xRtBbzPy/83+AF2suePI i1q8WMzWhWzGykfI/oisq5SeSXcdNcyQVxfYACu2/myEtNOp0rMeGUoEna+qxHaVGzmP ctIaWlmKMSAU9KMy9L5Pnzb+cNuNlv2L2ruqHjFWIskSXdrMWetZv/aYC3ZpvPiPE/LV BsRAdDbsMCEhZIFNFqBN8s8i1pztqCPRuLz9IR/2f9XTR3p7KGM8kqMG6hSIPuJ4mtVs 0Z0A== X-Forwarded-Encrypted: i=1; AJvYcCVxBBSMDt7N1zLyUF7rRbItjDD2WKiUC1yNUR2IIyEu51ZeM0Wq44YnnQn5xyIFyc38Zqax7YWHmPrdmEo=@vger.kernel.org X-Gm-Message-State: AOJu0Yz+IyWfSjF0aX71aNZg1lXTiOIdeodPzh4q36ENMTm/lJlcQDBn IVvuMIDYPljc47tpPVTGbTvNpA68fP0dAD5IKxaQU6ZMCtfQ0zdKuOI5 X-Gm-Gg: ASbGncv0ur35QlfXiC75H9ieOQJT8XpeFITBQgErpr8ifWyZzPqkjCJCyooGY2r87RV 85PvDSt5ANpaP0SLb0nPl+JV2mSreEZy4oOEuqLZbc8uBoxSviMHv2XoH7AL2gXcX+IOI4cVJAL PADfq5F7g5CGfDifPu+W3CVyvbG2Mo+784znoGeyc7feu0xt2oxrErKUKVpOOCIKth+fYm9ZuA3 zbISeQOHhRMr7EmmzoZ3HA8TfQ5JncHqUNFOoQCaJS5QBkHalNy9Ye/JJ8dEU6AIR9qNlOa7CCi s6/LI6RkNZDa6JcHF+OKWCTGul4xVlFqsIGjAB3BNjHWQHAfeSUjKQTa9SrCOdzIUnQ8y86Xewy vTT2eNYzrCxzuJaUIixpHkh8YDJVcQlwqQQdBhTZ5iv/9tEjQ6fEPuWDS8LfZTYaBDNYZgjgb8I ivcYoInsev/a0gDU9odufwtWnWaRWWHg== X-Google-Smtp-Source: AGHT+IH8raCMnV70Ei/zEAHR7NrPRko7JMAHoJpdiWkA2AmfdFMM4hloOB2l6vAj+ebL2RRZr6OFhA== X-Received: by 2002:a05:6000:1aca:b0:3e9:ad34:2b2e with SMTP id ffacd0b85a97d-429bd6a9412mr3217291f8f.46.1761916127667; Fri, 31 Oct 2025 06:08:47 -0700 (PDT) Received: from Ansuel-XPS24 (93-34-90-37.ip49.fastwebnet.it. [93.34.90.37]) by smtp.googlemail.com with ESMTPSA id 5b1f17b1804b1-477289adc18sm98339815e9.6.2025.10.31.06.08.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 31 Oct 2025 06:08:47 -0700 (PDT) From: Christian Marangi To: Ilia Lin , "Rafael J. Wysocki" , Viresh Kumar , Bjorn Andersson , Konrad Dybcio , Arnd Bergmann , Andy Shevchenko , Christian Marangi , Raag Jadav , linux-arm-msm@vger.kernel.org, linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 3/3] cpufreq: qcom-nvmem: add compatible fallback for ipq806x for no SMEM Date: Fri, 31 Oct 2025 14:08:34 +0100 Message-ID: <20251031130835.7953-4-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251031130835.7953-1-ansuelsmth@gmail.com> References: <20251031130835.7953-1-ansuelsmth@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" On some IPQ806x SoC SMEM might be not initialized by SBL. This is the case for some Google devices (the OnHub family) that can't make use of SMEM to detect the SoC ID. To handle these specific case, check if the SMEM is not initialized (by checking if the qcom_smem_get_soc_id returns -ENODEV) and fallback to OF machine compatible checking to identify the SoC variant. Notice that the checking order is important as the machine compatible are normally defined with the specific one following the generic SoC (for example compatible =3D "qcom,ipq8065", "qcom,ipq8064"). Signed-off-by: Christian Marangi Reviewed-by: Andy Shevchenko Reviewed-by: Bjorn Andersson --- drivers/cpufreq/qcom-cpufreq-nvmem.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/drivers/cpufreq/qcom-cpufreq-nvmem.c b/drivers/cpufreq/qcom-cp= ufreq-nvmem.c index 3a8ed723a23e..5a9bd780a4f3 100644 --- a/drivers/cpufreq/qcom-cpufreq-nvmem.c +++ b/drivers/cpufreq/qcom-cpufreq-nvmem.c @@ -257,8 +257,8 @@ static int qcom_cpufreq_ipq8064_name_version(struct dev= ice *cpu_dev, char **pvs_name, struct qcom_cpufreq_drv *drv) { + int msm_id =3D -1, ret =3D 0; int speed =3D 0, pvs =3D 0; - int msm_id, ret =3D 0; u8 *speedbin; size_t len; =20 @@ -275,8 +275,21 @@ static int qcom_cpufreq_ipq8064_name_version(struct de= vice *cpu_dev, get_krait_bin_format_a(cpu_dev, &speed, &pvs, speedbin); =20 ret =3D qcom_smem_get_soc_id(&msm_id); - if (ret) + if (ret =3D=3D -ENODEV) { + /* Fallback to compatible match with no SMEM initialized */ + ret =3D 0; + if (of_machine_is_compatible("qcom,ipq8062")) + msm_id =3D QCOM_ID_IPQ8062; + else if (of_machine_is_compatible("qcom,ipq8065") || + of_machine_is_compatible("qcom,ipq8069")) + msm_id =3D QCOM_ID_IPQ8065; + else if (of_machine_is_compatible("qcom,ipq8064") || + of_machine_is_compatible("qcom,ipq8066") || + of_machine_is_compatible("qcom,ipq8068")) + msm_id =3D QCOM_ID_IPQ8064; + } else if (ret) { goto exit; + } =20 switch (msm_id) { case QCOM_ID_IPQ8062: --=20 2.51.0