Subject: Re: [PATCH -next] sound/soc/codecs: Mark snd-soc-wm2200 and snd-soc-wm-adsp as BROKEN

From: Xiong Zhou <[email-masked]>
Date: Sat, 30 Mar 2013 20:30:39 +0800 (CST)

On Fri, 29 Mar 2013, Mark Brown wrote:

> On Fri, Mar 29, 2013 at 02:45:54PM -0400, Peter Hurley wrote:
> 
> > This is stock Ubuntu configs.
> 
> Then the stock Ubuntu configuration is not a sensible one, enabling
> SND_SOC_ALL_CODECS for any purpose other than build coverage testing is
> just a waste of time - that's all it does.
> 

Take a look at this:

MFD_ARIZONA_I2C   select
               > -------- > MFD_ARIZONA <-|
MDF_ARIZONA_SPI                           |
                                          |
					  |depends on
					  |
					  |
SND_SOC_ALL_CODECS-\		         / \
      I2C ---------/|	       MFD_WM5110  MFD_WM5102
		    |		     |           |
		    |		     |select     | select
		    |		     |           |
		    v		     v           v
          SND_SOC_WM2200     SND_SOC_WM5102   SND_SOC_WM5110
                |                    | |           |
		|____________________| |___________|
		        |                   |
			| if M/Y            | if M/Y
			v                   v
		SND_SOC_WM_ADSP        SND_SOC_ARIZONA

If I2C is enabled normally, and SND_SOC_ALL_CODECS is keeped in the
sound card configure options.

Then, disable ALL options in:

	Device drivers  ---->
		Multifunction device drivers --->

which includes MFD_ARIZONA_I2C and MDF_ARIZONA_SPI. 

So the failure comes. Yes, this config is kind of specific, not much.

The definition of one array which is cited by one module comes in 
another module, and this dependence does not appear in Kconfig 
architecture. Indeed, the help text of ALL_CODECS reminds the 
separated surpporting bus options. Still I think this is unreasonable.
Even though build coverage test is the only proper purpose. It breaks
the whole building procedure.

I think copying the same array definition across c file is ugly, and Mark
said that this is not a Kconfig issue. So far, I have not got any other
idea to fix this. Code cruising.