[PATCH 4/5] ASoC: dwc: Add devicetree support for Designware I2S

Andrew Jackson Andrew.Jackson at arm.com
Thu Dec 4 01:42:13 PST 2014


On 12/03/14 18:23, Mark Brown wrote:
> On Wed, Dec 03, 2014 at 04:39:08PM +0000, Andrew Jackson wrote:
> 
>> Convert to driver to use either platform_data or device-tree for configuration
>> of the device.  When using device-tree, the I2S block's configuration is read
>> from the relevant registers: this reduces the amount of information required in
>> the device tree.
> 
> This really needs to be split into two or more patches, there's a whole
> bunch of refactoring to support this DT stuff which should be separate
> from the DT addition itself.  Right now it's hard to tell what each
> individual bit of the code is supposed to be doing, the patch is far too
> large and doing far too many individual things.

I will have look at how it might be split.  The majority of the new code is in reading and processing the device's configuration: I didn't want to change the platform data handling to do that because some of the comments in the driver suggested that there were ST specific changes to the Designware IP.  I wasn't in a position to know whether, if I changed the configuration reading, the driver would still function correctly on the SPEAR platform.

>> +	if (dev->using_pd) {
>> +		ret = dev->i2s_clk_cfg(config);
>> +		if (ret < 0) {
>> +			dev_err(dev->dev, "runtime audio clk config fail\n");
>> +			return ret;
>> +		}
>> +	} else {
>> +		u32	bitclk;
> 
> Having this whole separate path for using platform data feels icky, we
> don't want to have completely separate flows like this.  Checking for
> the callbacks being there is probably fine but just having totally
> separate code paths is a bit icky.

I wasn't very happy either but making the test explicit seemed reasonable at the time.  I'll change the code to test for the presence of the callback instead.

	Andrew






More information about the linux-arm-kernel mailing list