Re: ARM, SoC: About the use DT-defined properties by 3rd-party drivers
From: Timur Tabi
Date: Mon Sep 12 2016 - 12:21:42 EST
Sebastian Frias wrote:
You're not changing the code, but you are creating a binding.
Bindings
are intended to be stable (i.e. a working DTB from today should
continue to work in future), and thus there are ramifications.
Ok, but who is responsible for such guarantee?
The developers who create the driver and modify it. Only upstream
contributions count.
How is it enforced and verified?
The upstream reviewers verify it, and if they see a problem, they reject
the patch.
Exactly, that's why to I'm having trouble to understand why there is
so much insistence on "getting the DT 100% right", since a HW change
could imply that what made 100% sense yesterday, does not today.
I'm not sure what you're getting at. Everything is best-effort. The
binding for a given device is supposed to accurately, but minimally,
describe the hardware so that the driver can program the device
properly. Specific properties are added to the binding to handle
specific cases. If a binding includes a description of properties that
are not used by the driver, the developer is typically asked to remove
those.
So I don't understand the "100% right" comment.
Could you be more precise on those two issues? Namely: "the effort"
and the "lack of benefit for the community"?
1) The effort = the effort by upstream developers to review the binding.
2) lack of benefit = proprietary and out-of-tree drivers do not benefit
the community.
I can understand the effort it takes to review a binding and some
driver, but if there's no driver, why would it matter if the DT
binding is 100% right?
Why bother creating a binding if there's no driver to use it?
> Hence, why would it take more effort?
Furthermore, if there's no driver, there's no backward compatibility
to guarantee. Shouldn't it require less effort?
If a developer creates a binding without a driver, then it's very hard
to know if that binding is correct. That's like creating a recipe
without attempting to make the food. How do you know it actually tastes
good? No one would ever ask a chef to create a "technically correct"
recipe without cooking it first and tasting it.
Also, what sort of "benefits" does the community expects or
requires? Because the idea behind the proposal is to put the HW
description in DT, so basically the HW would be documented. Maybe
there wouldn't be a driver right away, but the HW description would
allow for drivers to exist.
I'm not sure how many times we need to repeat this, but the idea that
the DT binding documentation can be used as official documentation for
the hardware is absurd. What's wrong with the ACTUAL hardware
documentation provided by the manufacturer in PDF format? The DT
binding has no value without an actual driver.