From: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
To: Manivannan Sadhasivam <mani@kernel.org>
Cc: manivannan.sadhasivam@oss.qualcomm.com,
Bjorn Andersson <andersson@kernel.org>,
Konrad Dybcio <konradybcio@kernel.org>,
Abel Vesa <abel.vesa@linaro.org>,
Adrian Hunter <adrian.hunter@intel.com>,
Ulf Hansson <ulf.hansson@linaro.org>,
"James E.J. Bottomley" <James.Bottomley@hansenpartnership.com>,
"Martin K. Petersen" <martin.petersen@oracle.com>,
linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-mmc@vger.kernel.org, linux-scsi@vger.kernel.org,
Sumit Garg <sumit.garg@oss.qualcomm.com>,
stable@vger.kernel.org, Abel Vesa <abel.vesa@oss.qualcomm.com>
Subject: Re: [PATCH v2 1/4] soc: qcom: ice: Remove platform_driver support and expose as a pure library
Date: Thu, 12 Feb 2026 13:05:20 +0100 [thread overview]
Message-ID: <fe57b3f0-cda1-4bde-a215-12e3aa9ea344@oss.qualcomm.com> (raw)
In-Reply-To: <jkrkp74jgjg6d63ro4inl7ily4p6s35hmhpxeroyzue3o55tto@sgl2b4uv6ysv>
On 2/10/26 1:19 PM, Manivannan Sadhasivam wrote:
> On Tue, Feb 10, 2026 at 10:39:54AM +0100, Konrad Dybcio wrote:
>> On 2/10/26 7:56 AM, Manivannan Sadhasivam via B4 Relay wrote:
>>> From: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com>
>>>
>>> The current platform driver design causes probe ordering races with
>>> consumers (UFS, eMMC) due to ICE's dependency on SCM firmware calls. If ICE
>>> probe fails (missing ICE SCM or DT registers), devm_of_qcom_ice_get() loops
>>> with -EPROBE_DEFER, leaving consumers non-functional even when ICE should
>>> be gracefully disabled. devm_of_qcom_ice_get() cannot know if the ICE
>>> driver probe has failed due to above reasons or it is waiting for the SCM
>>> driver.
>>
>> [...]
>>
>>> -static void qcom_ice_put(const struct qcom_ice *ice)
>>> +static void qcom_ice_put(struct kref *kref)
>>> {
>>> - struct platform_device *pdev = to_platform_device(ice->dev);
>>> -
>>> - if (!platform_get_resource_byname(pdev, IORESOURCE_MEM, "ice"))
>>> - platform_device_put(pdev);
>>> + platform_device_put(to_platform_device(ice_handle->dev));
>>> + ice_handle = NULL;
>>> }
>>>
>>> static void devm_of_qcom_ice_put(struct device *dev, void *res)
>>> {
>>> - qcom_ice_put(*(struct qcom_ice **)res);
>>> + const struct qcom_ice *ice = *(struct qcom_ice **)res;
>>> + struct platform_device *pdev = to_platform_device(ice->dev);
>>> +
>>> + if (!platform_get_resource_byname(pdev, IORESOURCE_MEM, "ice"))
>>> + kref_put(&ice_handle->refcount, qcom_ice_put);
>>
>> IIUC this makes the refcount go down only in the legacy DT case - why?
>>
>
> It is the other way around, no? Absence of 'ice' reg range in the consumer node
> means it is using *new* binding.
Yeah obviously you're right
I suppose in the legacy case we don't need any refcounting, since there's only
a single reference, from the storage controller device..
This assumption would break if someone had a funny idea to specify the same
"ice" range for sdcc and ufs though (via the legacy binding), but let's hope
no one does that..
Konrad
next prev parent reply other threads:[~2026-02-12 12:05 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-10 6:56 [PATCH v2 0/4] soc: qcom: ice: Remove platform_driver support and expose as a pure library Manivannan Sadhasivam via B4 Relay
2026-02-10 6:56 ` [PATCH v2 1/4] " Manivannan Sadhasivam via B4 Relay
2026-02-10 9:39 ` Konrad Dybcio
2026-02-10 12:08 ` Abel Vesa
2026-02-10 12:19 ` Manivannan Sadhasivam
2026-02-12 12:05 ` Konrad Dybcio [this message]
2026-02-13 1:02 ` Eric Biggers
2026-02-13 2:17 ` Manivannan Sadhasivam
2026-02-10 6:56 ` [PATCH v2 2/4] soc: qcom: ice: Return proper error codes from devm_of_qcom_ice_get() instead of NULL Manivannan Sadhasivam via B4 Relay
2026-02-10 9:32 ` Konrad Dybcio
2026-02-10 6:56 ` [PATCH v2 3/4] mmc: sdhci-msm: Remove NULL check from devm_of_qcom_ice_get() Manivannan Sadhasivam via B4 Relay
2026-02-10 8:37 ` Adrian Hunter
2026-02-10 9:32 ` Konrad Dybcio
2026-02-10 15:23 ` Ulf Hansson
2026-02-10 6:56 ` [PATCH v2 4/4] scsi: ufs: ufs-qcom: " Manivannan Sadhasivam via B4 Relay
2026-02-10 9:32 ` Konrad Dybcio
2026-02-10 13:43 ` [PATCH v2 0/4] soc: qcom: ice: Remove platform_driver support and expose as a pure library Ulf Hansson
2026-02-10 13:54 ` Manivannan Sadhasivam
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=fe57b3f0-cda1-4bde-a215-12e3aa9ea344@oss.qualcomm.com \
--to=konrad.dybcio@oss.qualcomm.com \
--cc=James.Bottomley@hansenpartnership.com \
--cc=abel.vesa@linaro.org \
--cc=abel.vesa@oss.qualcomm.com \
--cc=adrian.hunter@intel.com \
--cc=andersson@kernel.org \
--cc=konradybcio@kernel.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mmc@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=mani@kernel.org \
--cc=manivannan.sadhasivam@oss.qualcomm.com \
--cc=martin.petersen@oracle.com \
--cc=stable@vger.kernel.org \
--cc=sumit.garg@oss.qualcomm.com \
--cc=ulf.hansson@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox