Messages in this thread | | | Date | Tue, 15 Nov 2022 11:41:36 +0000 | Subject | Re: [PATCH 2/4] soundwire: Provide build stubs for common functions | From | Richard Fitzgerald <> |
| |
On 15/11/2022 11:03, Charles Keepax wrote: > On Mon, Nov 14, 2022 at 10:13:07AM -0600, Pierre-Louis Bossart wrote: >> >> >> On 11/14/22 04:29, Charles Keepax wrote: >>> Provide stub functions when CONFIG_SOUNDWIRE is not set for functions >>> that are quite likely to be used from common code on devices supporting >>> multiple control buses. >> >> So far this case has been covered by splitting SoundWire related code >> away from, say I2C, and with a clear 'depends on SOUNDWIRE'. This is the >> case for rt5682, max98373, etc. >> >> Is this not good enough? >> >> I am not against this patch, just wondering if allowing code for >> different interfaces to be part of the same file will lead to confusions >> with e.g. register offsets or functionality exposed with different >> registers. >> > > I guess this is a bit of a grey area this one. Both work, I guess > the reason I was leaning this way is that in order to avoid a > circular dependency if I put all the soundwire DAI handling into > the soundwire code then I have to duplicate the snd_soc_dai_driver > structure into both the sdw and i2c specific code (worth noting > the I2S DAIs are still usable when the part is sdw to the host). But > there are also downsides to this approach in that it will likely have > some small impact on driver size when soundwire is not built in. >
I think we should just add the stubs. Other subsystems use stubs to help with code that references stuff that might not be available.
Splitting all the soundwire-specifics out into a separate module works for simple chips that are either I2S or soundwire. but can get messy for a complex codec. I used the separate file method for CS42L42, but for a driver I'm working on I abandoned that and put both DAIs in the core code. I didn't notice the missing stubs because my defconfig that was intended to omit soundwire apparently has something that is selecting it anyway.
| |