Thread (1 message) 1 message, 1 author, 2011-11-18

Re: Best practice for compatible strings?

From: Dave Martin <hidden>
Date: 2011-11-18 10:23:44

On Thu, Nov 17, 2011 at 08:46:04AM -1000, Mitch Bradley wrote:
As the original instigator of the generic names scheme, I can tell
you what I had in mind.  That may not be the way things have
evolved, but at least it's a data point.

The idea is that there are devices for which there are preexisting
drivers.  Hardware designers often design new hardware that is
compatible with older hardware so that the old driver can be used.
The new hardware often has additional features that can be used with
new drivers, but at least the device is basically functional with
the old driver.

The point of a non-specific fallback entry in a compatible property
is to match an old driver that is known to be present in some
important extant version of an OS.

In the absence of a preexisting legacy programming model and the
corresponding old driver, there isn't much point in trying to
"invent" a non-specific name.  I suppose that, theoretically, it
might be possible to come up with a least-common-denominator
programming model across a family of newly-designed devices, but
that's not the way it usually works in practice, except in the case
of a programming model defined by a standards committee.  More
typically, a particular device gets some traction in the market, and
then people copy that.

This model of driver evolution is more compelling for operating
systems with a different development and distribution model than
Linux's.  In the Linux world, it is hard to point to a specific
shipping version and say "we must be compatible with that because it
is what is already out there".

The bottom line:  In my opinion, if there is no preexisting driver
that you can't change, there is little need for a non-specific name
in the compatible list.
I think that answers my question -- in the absence of preexisting
drivers, a DT node would list the one compatible string exactly
identifying the device, and drivers list the compatible strings for
the devices they are known to support.

More generic compatible strings may be useful sometimes, but we
probably shouldn't have them by default when defining new bindings,
unless there's a compelling reason for it.

Does anyone feel uncomfortable with that?

Cheers
---Dave
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help