From: Rajendra Nayak <rnayak@codeaurora.org>
To: Stephen Boyd <sboyd@codeaurora.org>
Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>,
linux-arm-msm@vger.kernel.org, lina.iyer@linaro.org,
nrajan@codeaurora.org, linux-arm-kernel@lists.infradead.org,
linux-pm@vger.kernel.org
Subject: Re: [PATCH 5/9] clk: qcom: gcc-msm8960: add child devices support.
Date: Mon, 07 Sep 2015 12:09:26 +0530 [thread overview]
Message-ID: <55ED311E.1070404@codeaurora.org> (raw)
In-Reply-To: <20150903172743.GE15099@codeaurora.org>
[]..
>>>> No. The driver should work just fine without having to
>>>> interrogate the device's compatible string. If we still need the
>>>> compatible check for some reason, then we can always match based
>>>> on qcom,gcc-msm8960, qcom,gcc-apq8064, etc. But I don't see why
>>>
>>> Thats not quite possible I guess. 2 drivers (gcc and tsens) matching
>>> the same compatibles? Will it not just depend on which ends up being
>>> the first match?
>>
>> Any thoughts on how to move forward with this?
>>
>> I tried what you were suggesting, and here's what I had to do to get
>> things working
>>
>> * Created a gcc node in DT with gcc and tsens compatibles, with gcc and
>> tsens properties
>
> This is not what I had in mind. This is what's should be in DT
>
> clock-controller@f000 {
> compatible = "qcom,gcc-msm8916";
> reg = <0xf000 ...>;
> ....
> };
>
>> * gcc driver probes the device/node first given gcc is registered with
>> a core_initcall()
>> * creates a virtual child device attaching the same of_node (having
>> both gcc and tsens compatibles)
>> * gcc ends up probing the virtual device/node _again_ (due to the gcc
>> compatible match), fails
>> * At a later point, tsens driver gets registered (using module_initcall)
>> ends up probing the virtual child node and succeeds
>
> Yeah this might happen though because we've assigned the of_node
> pointer to the tsens device before we register it on the platform
> bus. The other way to pass that data down from gcc to tsens would
> be to not have an of_node assigned to the tsens device, and check
> for that case in the tsens driver. If there isn't an of_node,
> then we look at the parent device's of_node to figure out which
> gcc it is (if this even matters) and parse DT properties.
Parsing DT properties from parent (in the tsens driver) is fine, but
the nvmem apis still expect an of_node for the tsens device and hence
fail.
Associating the of_node of the parent to the tsens device while being
probed ends up with the same issues of gcc ending up probing the device
and failing because tsens defers probe a couple times before a
successful probe.
WARNING: multiple messages have this Message-ID (diff)
From: rnayak@codeaurora.org (Rajendra Nayak)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 5/9] clk: qcom: gcc-msm8960: add child devices support.
Date: Mon, 07 Sep 2015 12:09:26 +0530 [thread overview]
Message-ID: <55ED311E.1070404@codeaurora.org> (raw)
In-Reply-To: <20150903172743.GE15099@codeaurora.org>
[]..
>>>> No. The driver should work just fine without having to
>>>> interrogate the device's compatible string. If we still need the
>>>> compatible check for some reason, then we can always match based
>>>> on qcom,gcc-msm8960, qcom,gcc-apq8064, etc. But I don't see why
>>>
>>> Thats not quite possible I guess. 2 drivers (gcc and tsens) matching
>>> the same compatibles? Will it not just depend on which ends up being
>>> the first match?
>>
>> Any thoughts on how to move forward with this?
>>
>> I tried what you were suggesting, and here's what I had to do to get
>> things working
>>
>> * Created a gcc node in DT with gcc and tsens compatibles, with gcc and
>> tsens properties
>
> This is not what I had in mind. This is what's should be in DT
>
> clock-controller at f000 {
> compatible = "qcom,gcc-msm8916";
> reg = <0xf000 ...>;
> ....
> };
>
>> * gcc driver probes the device/node first given gcc is registered with
>> a core_initcall()
>> * creates a virtual child device attaching the same of_node (having
>> both gcc and tsens compatibles)
>> * gcc ends up probing the virtual device/node _again_ (due to the gcc
>> compatible match), fails
>> * At a later point, tsens driver gets registered (using module_initcall)
>> ends up probing the virtual child node and succeeds
>
> Yeah this might happen though because we've assigned the of_node
> pointer to the tsens device before we register it on the platform
> bus. The other way to pass that data down from gcc to tsens would
> be to not have an of_node assigned to the tsens device, and check
> for that case in the tsens driver. If there isn't an of_node,
> then we look at the parent device's of_node to figure out which
> gcc it is (if this even matters) and parse DT properties.
Parsing DT properties from parent (in the tsens driver) is fine, but
the nvmem apis still expect an of_node for the tsens device and hence
fail.
Associating the of_node of the parent to the tsens device while being
probed ends up with the same issues of gcc ending up probing the device
and failing because tsens defers probe a couple times before a
successful probe.
next prev parent reply other threads:[~2015-09-07 6:39 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-08 9:47 [PATCH 0/9] qcom: Add support for TSENS driver Rajendra Nayak
2015-07-08 9:47 ` Rajendra Nayak
2015-07-08 9:47 ` [PATCH 1/9] thermal: qcom: tsens: Add a skeletal TSENS drivers Rajendra Nayak
2015-07-08 9:47 ` Rajendra Nayak
2015-07-08 9:47 ` [PATCH 2/9] thermal: qcom: tsens-8916: Add support for 8916 family of SoCs Rajendra Nayak
2015-07-08 9:47 ` Rajendra Nayak
2015-07-08 9:47 ` [PATCH 3/9] thermal: qcom: tsens-8974: Add support for 8974 " Rajendra Nayak
2015-07-08 9:47 ` Rajendra Nayak
2015-07-08 9:47 ` [PATCH 4/9] thermal: qcom: tsens-8960: Add support for 8960 " Rajendra Nayak
2015-07-08 9:47 ` Rajendra Nayak
2015-07-08 9:47 ` [PATCH 5/9] clk: qcom: gcc-msm8960: add child devices support Rajendra Nayak
2015-07-08 9:47 ` Rajendra Nayak
2015-08-11 22:49 ` Stephen Boyd
2015-08-11 22:49 ` Stephen Boyd
2015-08-12 9:00 ` Srinivas Kandagatla
2015-08-12 9:00 ` Srinivas Kandagatla
2015-08-13 4:28 ` Rajendra Nayak
2015-08-13 4:28 ` Rajendra Nayak
2015-08-14 0:42 ` Stephen Boyd
2015-08-14 0:42 ` Stephen Boyd
2015-08-14 3:09 ` Rajendra Nayak
2015-08-14 3:09 ` Rajendra Nayak
2015-09-02 2:37 ` Rajendra Nayak
2015-09-02 2:37 ` Rajendra Nayak
2015-09-03 17:27 ` Stephen Boyd
2015-09-03 17:27 ` Stephen Boyd
2015-09-07 6:39 ` Rajendra Nayak [this message]
2015-09-07 6:39 ` Rajendra Nayak
2015-09-08 19:21 ` Stephen Boyd
2015-09-08 19:21 ` Stephen Boyd
2015-09-09 3:33 ` Rajendra Nayak
2015-09-09 3:33 ` Rajendra Nayak
2015-09-09 5:15 ` Rajendra Nayak
2015-09-09 5:15 ` Rajendra Nayak
2015-09-09 9:11 ` Srinivas Kandagatla
2015-09-09 9:11 ` Srinivas Kandagatla
2015-08-12 20:18 ` Bjorn Andersson
2015-08-12 20:18 ` Bjorn Andersson
2015-08-12 21:57 ` Stephen Boyd
2015-08-12 21:57 ` Stephen Boyd
2015-08-13 4:14 ` Bjorn Andersson
2015-08-13 4:14 ` Bjorn Andersson
2015-08-14 0:46 ` Stephen Boyd
2015-08-14 0:46 ` Stephen Boyd
2015-07-08 9:47 ` [PATCH 6/9] arm: dts: msm8974: Add thermal zones, tsens and eeprom nodes Rajendra Nayak
2015-07-08 9:47 ` Rajendra Nayak
2015-07-08 9:47 ` [PATCH 7/9] arm: dts: apq8064: " Rajendra Nayak
2015-07-08 9:47 ` Rajendra Nayak
2015-07-08 9:47 ` [PATCH 8/9] arm: dts: apq8084: " Rajendra Nayak
2015-07-08 9:47 ` Rajendra Nayak
2015-07-08 9:47 ` [PATCH 9/9] arm64: dts: msm8916: " Rajendra Nayak
2015-07-08 9:47 ` Rajendra Nayak
2015-08-11 8:26 ` [PATCH 0/9] qcom: Add support for TSENS driver Srinivas Kandagatla
2015-08-11 8:26 ` Srinivas Kandagatla
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=55ED311E.1070404@codeaurora.org \
--to=rnayak@codeaurora.org \
--cc=lina.iyer@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=nrajan@codeaurora.org \
--cc=sboyd@codeaurora.org \
--cc=srinivas.kandagatla@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.