On Thu, 21 Dec 2023 at 03:57, Aiqun Yu (Maria) <quic_aiquny@xxxxxxxxxxx> wrote:While even empty "panel@[0-3]" is not required to be written as long as there is no panel being attached. Although the bus do have such kind of 2 bits allocation.
On 12/20/2023 7:10 PM, Dmitry Baryshkov wrote:
On 20 December 2023 12:33:07 EET, "Aiqun Yu (Maria)" <quic_aiquny@xxxxxxxxxxx> wrote:As "#address-cells" "#size-cells" is not marked as required properties
On 12/20/2023 3:06 PM, Dmitry Baryshkov wrote:
On Wed, 20 Dec 2023 at 02:54, Aiqun Yu (Maria) <quic_aiquny@xxxxxxxxxxx> wrote:I can see the panel example now.
On 12/19/2023 6:21 PM, Dmitry Baryshkov wrote:
On Tue, 19 Dec 2023 at 12:09, Aiqun Yu (Maria) <quic_aiquny@xxxxxxxxxxx> wrote:Could you please help to elaborate more on details? Like what's the
On 12/19/2023 5:41 PM, Krzysztof Kozlowski wrote:
On 19/12/2023 10:36, Aiqun Yu (Maria) wrote:I don't find any reason why "qcom,mdss-dsi-ctrl" driver node need to
On 12/19/2023 3:17 PM, Krzysztof Kozlowski wrote:
On 19/12/2023 01:31, Tengfei Fan wrote:Comments can be more readable:
The address/size-cells in mdss_dsi1 node have not ranges and child also
have not reg, then this leads to dtc W=1 warnings:
"mdss_dsi1" node don't have "ranges" or child "reg" property, while it
have address/size-cells properties. This caused
"avoid_unnecessary_addr_size" warning from dtb check.
Remove address/size-cells properties for "mdss_dsi1" node.
I cannot parse it. Address/size cells never have ranges or children.Pls help to comment on the revised commit message. Every time I write a
They cannot have. These are uint32 properties.
commit message, also takes a while for me to double confirm whether
others can understand me correctly as well. Feel free to let us know if
it is not readable to you. It will help us as non-English native developers.
Per my understanding, "qcom,mdss-dsi-ctrl" driver node like "mdss_dsi1"
sm8550.dtsi:2937.27-2992.6: Warning (avoid_unnecessary_addr_size): /soc@0/display-subsystem@ae00000/dsi@ae96000:
unnecessary #address-cells/#size-cells without "ranges" or child "reg" property
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx>
Signed-off-by: Tengfei Fan <quic_tengfan@xxxxxxxxxxx>
---
I disagreed with the patch before. You resubmit it without really
addressing my concerns.
I am not sure if this is correct fix and I want to fix all of such
errors (there are multiple of them) in the same way. Feel free to
propose common solution based on arguments.
don't need to have address/size-cells properties.
Just because dtc says so? And what about bindings?
have address/size-cells properties. Document Bindings should also be fixed.
Our plan is to fix the bindings as well.
Feel free to let us know whether there is different idea of
"address/size-cells" needed for the "qcom,mdss-dsi-ctrl" driver node.
The bindings expressed that idea. If the binding is incorrect, fix the
binding and the DTS. If the binding is correct, provide rationale why it
somehow does not apply here etc.
In case you have missed the question, I just re-place it here:
While there are about 22 different soc dtsi and it's document binding
files needed to be fixed. Shall we fix it for all qcom related soc usage
in one patch, or we'd better to split into different patches according
to soc specifically?
Don't touch the bindings unless you understand what you are doing.
Your patch will be NAKed. There can be a DSI panel attached to the DSI
host, which means there is a need for #address-cells / #size-cells.
right example here for the "qcom,mdss-dsi-ctrl" driver node needed to
have "#address-cells"/"#size-cells".
As I wrote, the attached DSI panels make use of #address-cells / #size-cells.
Please take a look at the sdm845-mtp.dts, which provides a complex
enough example (a panel which is attached to both DSI0 and DSI1
hosts).
While panel@0 likely node is not at in the binding that I've checked. There are quite a few of binding document about the same driver. I checked 5 of the bindings document and moste of them are alike, and don't have the panel example.:(
There is a single bindings documents describing MSM DSI controller, display/MSM/dsi-controller-main.yaml . It explicitly includes ../dsi-controller.yaml, which describes generic DSI host controller. The latter one includes an example of the DSI panel. MSM DSI bindings do not have to include one, there is nothing platform specific there.
Now I understand the issue, here is some thinking from my end, and welcome others to chime in with more ideas:
Thx to chime in that we have put a good amount of time here.
Can't quite catch you here.
Please stop wasting the time on dtc warning. The bindings (and theI don't agree here.
file) are correct.
Either it is a wrong usage of "#address-cells"/"#size-cells", or dtc
warning should be fixed with this usage take into account.
"dtb check" will be a good guideline for developers to follow, I don't
think it is wasting time here.
It is a guideline, but not a rule. No warnings by default is more of
the rule. W=1 enables warnings that developers have to classify and
cope with.
E.g. I don't think dtc correctly handles the case when there are both
with-address and no-address nodes (e.g. 'panel@0' and 'ports'). Note,
I might be mistaken there.
1. Only put "#address-cells" "#size-cells" right before node of panel@0
No. Cells specification is a property of the host/bus. As such they do not belong to the board DT file.
in the Document dsi-controller.yaml. Did it really needed even
"panel@[0-3]" is not present at current dsi node?
That's good that comes to the initial discussion of current patch here. :)
The #address-cells / #size-cells describe the addressing of the bus.
The bus still continues to exist even with no panel being attached.
The reason is that "#address-cells" "#size-cells" are not marked as "required" properties in dsi-controller.yaml.
I can understand that "#address-cells" "#size-cells" cannot be device
tree overlayed by dtbo. While when there is no "panel@[0-3]" nodes shall
we also remove "#address-cells" "#size-cells" properties for dsi node?
But why?
Let me try to describe this in a code way.
Current binding I am talking about is current patch binding file:
2. Align current binding document with "panel@0" examples.
There is already a panel in dsi-controller.yaml. Adding another example is optional. Do you also need an example with the external DSI bridge?
qcom,sm8550-mdss.yaml
Why do you call it a patch? Also if you have read the description, you
would have known that the bindings describe the Mobile Display
Subsystem (MDSS) itself. And then it explicitly tells that the MDSS on
that platform has (among others) DSI blocks with proper compatibles.
It have a ref to mdss-common.yaml, but I cannot find the ref direct me
to dsi-controller.yaml.
Because qcom,sm8550-mdss.yaml doesn't describe the DSI controller. I
think I have already mentioned a file that describes the DSI
controller, it is called display/msm/dsi-controller-main.yaml. Not the
best name, but it is quickly revealed by grepping for either of the
DSI compatible strings. And the dsi-controller-main.yaml has ` -
$ref: ../dsi-controller.yaml#` string inside.
I am thinking of a unified qcom,mdss.yaml instead of "qcom,*each SOC*-mdss.yaml". I will try to have a patch.
In my opinion if the example have "#address-cells" "#size-cells", then
it's better to also include "panel@0" with "reg = <0>" to not confuse.
It is already there, see dsi-controller.yaml.
Currently I mentioned bindings files was searched the compatible3. Too many bindings files for driver "qcom,mdss-dsi-ctrl", shall we align them into 1 binding files.
There is just one.
"qcom,mdss-dsi-ctrl", and find binding docs like "qcom,sm8550-mdss.yaml"
"qcom,sm8450-mdss.yaml" etc.
There is duplicate information on "qcom,sm8550-mdss.yaml" etc, while
"qcom,mdss-common.yaml" is not common enough for my understanding.
If you had compared the qcom,SOC-mdss.yaml, you would have seen that
they provide tight binding between compatible strings used for all the
subblocks. The `mdss-common.yaml` describes MDSS common properties. It
describes everything except the platform specifics. It can not be made
more common. And there is no duplication.
If you think you can improve the bindings, please send the patches.
They must pass the `make dt_binding_check` check.Thx for the remind.
Improving developer efficiency with unnecessary warnings is one of my interest as well.
Already included devicetree@ ML at the very beginning.4. enhance the dtc warning check if we still want to have "#address-cells" "#size-cells" even if there is no "panel@0" attached.
In my opinion this is a way to go, if any. Did you include devicetree@ ML and the corresponding maintainers into the discussion?
Good, thanks for the confirmation.
If the required properties part in each yaml is marked good enough, I
think it can be an input for avoid unnecessary dtc warnings.
Patches are welcome.
@krzy here I try to answer your comments here as well.
I am disagree on leave the warning as it is. And want to do something to improve this. Ideas above.
Let me know if any comments is not right addressed from your comments.