lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <37BFD75A-5A27-4E3F-A494-A0707E48B236@antoniou-consulting.com>
Date:	Wed, 7 Nov 2012 23:10:34 +0100
From:	Pantelis Antoniou <panto@...oniou-consulting.com>
To:	Stephen Warren <swarren@...dotorg.org>
Cc:	Benoit Cousson <b-cousson@...com>, Kevin Hilman <khilman@...com>,
	Matt Porter <mporter@...com>,
	Koen Kooi <koen@...inion.thruhere.net>,
	linux-kernel <linux-kernel@...r.kernel.org>,
	Felipe Balbi <balbi@...com>,
	Deepak Saxena <dsaxena@...aro.org>,
	Scott Wood <scottwood@...escale.com>,
	Russ Dill <Russ.Dill@...com>, linux-omap@...r.kernel.org,
	devicetree-discuss@...ts.ozlabs.org
Subject: Re: [RFC] Device Tree Overlays Proposal (Was Re: capebus moving omap_devices to mach-omap2)

Hi Stephen,

On Nov 7, 2012, at 6:25 PM, Stephen Warren wrote:

> On 11/07/2012 03:19 AM, Benoit Cousson wrote:
>> Hi Panto,
>> 
>> On 11/07/2012 09:13 AM, Pantelis Antoniou wrote:
>>> Hi Grant
>>> 
>>> On Nov 6, 2012, at 9:45 PM, Grant Likely wrote:
>>> 
>>>> On Tue, Nov 6, 2012 at 7:34 PM, Pantelis Antoniou
>>>> <panto@...oniou-consulting.com> wrote:
>>> 
>>> [ snip ]
>>>> 
>>>> g.
>>> 
>>> Since we've started talking about longer term goals, and the versioning
>>> provision seems to stand, I hope we address how much the fragment versioning
>>> thing is similar to the way board revisions progress.
>>> 
>>> If a versioning syntax is available then one could create a single DT 
>>> file for a bunch of 'almost' similar board and board revisions.
>> 
>> I even think that the version issue is probably much more important for the short term than the overlay aspect. Well at least as important. We start having as well a bunch a panda board version with different HW setup.
>> 
>> Having a single board-XXX.dts that will support all these versions is probably the best approach to avoid choosing that from the bootloader.
>> 
>> We need to figure out a format + mechanism compatible with the current non-versioned format to allow filtering the nodes at runtime to keep only the relevant one.
>> 
>> Something that can find the driver that will provide the proper board version or subsystem version or whatever like that:
>> 
>> 	compatible-version = "ti,panda-version", "panda";
>> 
>> Then at runtime we should create only the node with the correct match between the driver version and the string version.
>> 
>> 
>> /* regular panda audio routing */
>> sound: sound {
>> 	compatible = "ti,abe-twl6040";
>> 	ti,model = "PandaBoard";
>> 	compatible-version = "ti,panda-version", "panda";
>> 
>> 	/* Audio routing */
>> 	ti,audio-routing =
>> 		"Headset Stereophone", "HSOL",
>> 		"Headset Stereophone", "HSOR",
>> 		"Ext Spk", "HFL",
>> 		"Ext Spk", "HFR",
>> 		"Line Out", "AUXL",
>> 		"Line Out", "AUXR",
>> 		"HSMIC", "Headset Mic",
>> 		"Headset Mic", "Headset Mic Bias",
>> 		"AFML", "Line In",
>> 		"AFMR", "Line In";
>> };
>> 
>> 
>> /* Audio routing is different between PandaBoard4430 and PandaBoardES */
>> &sound {
>> 	ti,model = "PandaBoardES";
>> 	compatible-version = "ti,panda-version", "panda-es";
>> 
>> 	/* Audio routing */
>> 	ti,audio-routing =
>> 		"Headset Stereophone", "HSOL",
>> 		"Headset Stereophone", "HSOR",
>> 		"Ext Spk", "HFL",
>> 		"Ext Spk", "HFR",
>> 		"Line Out", "AUXL",
>> 		"Line Out", "AUXR",
>> 		"AFML", "Line In",
>> 		"AFMR", "Line In";
>> };
>> 
>> 
>> Maybe some extra version match table can just be passed during the board machine_init 
>> 
>> 	of_platform_populate(NULL, omap_dt_match_table, NULL, NULL, panda_version_match_table);
> 
> Is the only difference here the content of the ti,audio-routing
> property? If so, then I don't think there's any need for infra-structure
> for this; the driver code already reads that property and adjusts its
> behaviour based upon it.
> 
> I do see that "Headset Mic" exists only in one of the tables above.
> Perhaps the driver could scan the routing table, and only create the
> ASoC object for the headset if it's mentioned in the routing table?
> 
> If there are additional differences, then you can always use the .data
> field in of_device_id to automatically associate some configuration data
> with different compatible values.
> 
> Even better might be to extend the binding so that all HW differences
> are represented explicitly as properties; that way you wouldn't even
> need different compatible values.

I think that perhaps the choice of the SoC specific driver was unfortunate.

There are cases where a standard driver should be configured differently
depending on the board revision/model. In that case per-revision 
driver changes are out of the question.

Regards

-- Pantelis

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ