From nobody Mon Apr 6 13:30:30 2026 Received: from mail.zeus03.de (zeus03.de [194.117.254.33]) (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 5029B3A9616 for ; Thu, 19 Mar 2026 11:00:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=194.117.254.33 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773918021; cv=none; b=nbhfPvFtItbiCm0z/R4EZ9ECqLnpIqCbheho7PsfYe6xNiC51nMXFm6/AjvE1LxsfCsP5jDtaleTxO8/GPbnXdFFGyB9yrn8BVIgEulwRmItUUMsbtXgAXKL42mWa0HK+tMI8/Mod1whtm3TqYrq9v6bEMe+r+YGTeJfjxZvujM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773918021; c=relaxed/simple; bh=NYiPCzdYDU9BdHcA+eu/2dPkEVePnOw3CoYxF3To1jQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Z6GEHKNyiPwJZDMPYQOCLr75x3g44BMrtzt+mNQSCp/hDMZH07Fjf9flutvuntxxck+kwAl0UqypEQgWvdDIDVgz2h0rNJkRoILJmAUOc5BYSEwj88/F9w3QdWi4HUkscZS1jIsdcXbqtmAzjqnV3ogMNVxK2jvMdSvRD1ckWY8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=sang-engineering.com; spf=pass smtp.mailfrom=sang-engineering.com; dkim=pass (2048-bit key) header.d=sang-engineering.com header.i=@sang-engineering.com header.b=fHwEAvjt; arc=none smtp.client-ip=194.117.254.33 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=sang-engineering.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=sang-engineering.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=sang-engineering.com header.i=@sang-engineering.com header.b="fHwEAvjt" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= sang-engineering.com; h=from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; s=k1; bh=c5DSTYKJVivgA9XXvmh9gEwArmRd1OpMLRV7T5NJLQc=; b=fHwEAv jt7nJiexHdNIGWyO7wr26nuVcMp7pFwk8Phi0O67qiEHdJ3i+9iPQgmf7TMM+YZh EMfBN5dniXX68ivb5yYc1mm2C7yIOTDZcg3fdAqs7ncv6b0ntPaZc0lZ1cgCR7Lt r9bboFNyDH6V+ltAawbZJYkDK5SxXPeLbAS+gmwcJA9Jyj8xfDNLq/q63V+robV6 DJFP1Yzj0qq+y7tTG6k9tXY84mxCznLwDY527Q2ePxsbEVP6AC8eCRp+ilQG79Zn maZgD2n9yebTxCtbMpQ2IoQ2oKcvrCebI40Sfi+fSIN+VbvTRef0odFD/GafN8Xr n9K4+5NmaUMIN6QQ== Received: (qmail 1099573 invoked from network); 19 Mar 2026 11:59:58 +0100 Received: by mail.zeus03.de with ESMTPSA (TLS_AES_256_GCM_SHA384 encrypted, authenticated); 19 Mar 2026 11:59:58 +0100 X-UD-Smtp-Session: l3s3148p1@75wieF5NYJsgAwDPXzF+ANZpdrMKUeLI From: Wolfram Sang To: linux-renesas-soc@vger.kernel.org Cc: linux-kernel@vger.kernel.org, Wolfram Sang , Konrad Dybcio , Bjorn Andersson , Baolin Wang , linux-arm-msm@vger.kernel.org, linux-remoteproc@vger.kernel.org Subject: [PATCH v5 06/15] hwspinlock: qcom: use new callback to initialize hwspinlock priv Date: Thu, 19 Mar 2026 11:59:28 +0100 Message-ID: <20260319105947.6237-7-wsa+renesas@sang-engineering.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260319105947.6237-1-wsa+renesas@sang-engineering.com> References: <20260319105947.6237-1-wsa+renesas@sang-engineering.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" Apply the new helper to avoid using internal structures from the core. Remove superfluous setting of drvdata while here. Signed-off-by: Wolfram Sang Acked-by: Konrad Dybcio --- drivers/hwspinlock/qcom_hwspinlock.c | 45 ++++++++++++++++------------ 1 file changed, 26 insertions(+), 19 deletions(-) diff --git a/drivers/hwspinlock/qcom_hwspinlock.c b/drivers/hwspinlock/qcom= _hwspinlock.c index 7960a4972eab..73b280988109 100644 --- a/drivers/hwspinlock/qcom_hwspinlock.c +++ b/drivers/hwspinlock/qcom_hwspinlock.c @@ -25,6 +25,13 @@ struct qcom_hwspinlock_of_data { const struct regmap_config *regmap_config; }; =20 +struct qcom_hwspinlock_priv_init_data { + struct device *dev; + struct regmap *regmap; + u32 base; + u32 stride; +}; + static int qcom_hwspinlock_trylock(struct hwspinlock *lock) { struct regmap_field *field =3D hwspin_lock_get_priv(lock); @@ -89,10 +96,23 @@ static int qcom_hwspinlock_bust(struct hwspinlock *lock= , unsigned int id) return 0; } =20 +static void *qcom_hwspinlock_init_priv(int local_id, void *init_data) +{ + struct qcom_hwspinlock_priv_init_data *init =3D init_data; + struct reg_field field; + + field.reg =3D init->base + local_id * init->stride; + field.lsb =3D 0; + field.msb =3D 31; + + return devm_regmap_field_alloc(init->dev, init->regmap, field); +} + static const struct hwspinlock_ops qcom_hwspinlock_ops =3D { .trylock =3D qcom_hwspinlock_trylock, .unlock =3D qcom_hwspinlock_unlock, .bust =3D qcom_hwspinlock_bust, + .init_priv =3D qcom_hwspinlock_init_priv, }; =20 static const struct regmap_config sfpb_mutex_config =3D { @@ -202,17 +222,14 @@ static struct regmap *qcom_hwspinlock_probe_mmio(stru= ct platform_device *pdev, =20 static int qcom_hwspinlock_probe(struct platform_device *pdev) { + struct qcom_hwspinlock_priv_init_data init; struct hwspinlock_device *bank; - struct reg_field field; struct regmap *regmap; size_t array_size; - u32 stride; - u32 base; - int i; =20 - regmap =3D qcom_hwspinlock_probe_syscon(pdev, &base, &stride); + regmap =3D qcom_hwspinlock_probe_syscon(pdev, &init.base, &init.stride); if (IS_ERR(regmap) && PTR_ERR(regmap) =3D=3D -ENODEV) - regmap =3D qcom_hwspinlock_probe_mmio(pdev, &base, &stride); + regmap =3D qcom_hwspinlock_probe_mmio(pdev, &init.base, &init.stride); =20 if (IS_ERR(regmap)) return PTR_ERR(regmap); @@ -222,21 +239,11 @@ static int qcom_hwspinlock_probe(struct platform_devi= ce *pdev) if (!bank) return -ENOMEM; =20 - platform_set_drvdata(pdev, bank); - - for (i =3D 0; i < QCOM_MUTEX_NUM_LOCKS; i++) { - field.reg =3D base + i * stride; - field.lsb =3D 0; - field.msb =3D 31; - - bank->lock[i].priv =3D devm_regmap_field_alloc(&pdev->dev, - regmap, field); - if (IS_ERR(bank->lock[i].priv)) - return PTR_ERR(bank->lock[i].priv); - } + init.dev =3D &pdev->dev; + init.regmap =3D regmap; =20 return devm_hwspin_lock_register(&pdev->dev, bank, &qcom_hwspinlock_ops, - 0, QCOM_MUTEX_NUM_LOCKS, NULL); + 0, QCOM_MUTEX_NUM_LOCKS, &init); } =20 static struct platform_driver qcom_hwspinlock_driver =3D { --=20 2.51.0