Re: [PATCH 3/3] regulator: qcom_spmi: don't take a sleeping lock in the SAW IPI
From: Sebastian Andrzej Siewior
Date: Tue Oct 20 2026 - 03:44:17 EST
On 2026-10-19 17:39:21 [+0300], Dmitry Baryshkov wrote:
> --- a/drivers/regulator/qcom_spmi-regulator.c
> +++ b/drivers/regulator/qcom_spmi-regulator.c
> @@ -2523,12 +2532,22 @@ static int qcom_spmi_regulator_probe(struct platform_device *pdev)
> if (!reg)
> return -ENODEV;
>
> - syscon = of_parse_phandle(node, "qcom,saw-reg", 0);
> - if (syscon) {
> - saw_regmap = syscon_node_to_regmap(syscon);
> - of_node_put(syscon);
> - if (IS_ERR(saw_regmap))
> - dev_err(dev, "ERROR reading SAW regmap\n");
> + saw = of_parse_phandle(node, "qcom,saw-reg", 0);
> + if (saw) {
> + saw_base = devm_of_iomap(dev, saw, 0, NULL);
I was asking if the syscon could be made using a raw_spinlock_t if all
users do simple reads/writes.
https://lore.kernel.org/all/20260929-rbrue-suez-upstreaming-mtk-pinctrl-raw-regmap-v1-1-db92943f42cb@xxxxxxxxx/T/#u
If the qcom,saw-reg registers are not shared anywhere, then this should
work, too.
> + of_node_put(saw);
Sebastian