Re: [PATCH] i2c: Fix Kconfig dependencies

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Michal,

On Tue, 5 Oct 2010 00:30:20 +0200, Michal Marek wrote:
> (Sorry, I missed the patch in your message before)
> 
> On Mon, Oct 04, 2010 at 06:03:46PM +0200, Jean Delvare wrote:
> > On Mon,  4 Oct 2010 15:31:33 +0200, Michal Marek wrote:
> > [...] selects I2C_ALGOBIT which has unmet direct dependencies (I2C && !I2C_HELPER_AUTO)
> > > [...]
> > 
> > This message is obscure. The actual problem is that I2C_ALGOBIT is
> > selected but doesn't exist, isn't it?.
> 
> I2C_ALGOBIT does exist, but depends on a false value if I2C_HELPER_AUTO
> is set. Yes, in this case it does not matter, there won't be any
> unresolved symbols during link, but Kconfig has no way to find out what
> are hard dependencies and what are tricks to improve the user
> experience. 

Ah, OK, makes sense, thanks for clarifying.

Maybe it would be better to introduce a new Kconfig syntax for these
options which are only improving user experience? Something to discuss
with Roman Zippel?

> > I would prefer the fix below, which seems to work for me (but I am no
> > Kconfig expert) and preserves the submenu for algo drivers. Only the
> > indentation is missing, would be nice to solve.
> > 
> > ---
> >  drivers/i2c/Kconfig       |    3 ++-
> >  drivers/i2c/algos/Kconfig |   15 ++++++++++++---
> >  2 files changed, 14 insertions(+), 4 deletions(-)
> > 
> > --- linux-2.6.36-rc6.orig/drivers/i2c/algos/Kconfig	2010-08-02 00:11:14.000000000 +0200
> > +++ linux-2.6.36-rc6/drivers/i2c/algos/Kconfig	2010-10-04 17:33:10.000000000 +0200
> > @@ -2,16 +2,25 @@
> >  # I2C algorithm drivers configuration
> >  #
> >  
> > +config I2C_ALGOBIT
> > +	tristate
> > +
> > +config I2C_ALGOPCF
> > +	tristate
> > +
> > +config I2C_ALGOPCA
> > +	tristate
> > +
> >  menu "I2C Algorithms"
> >  	depends on !I2C_HELPER_AUTO
> >  
> >  config I2C_ALGOBIT
> > -	tristate "I2C bit-banging interfaces"
> > +	prompt "I2C bit-banging interfaces"
> >  
> >  config I2C_ALGOPCF
> > -	tristate "I2C PCF 8584 interfaces"
> > +	prompt "I2C PCF 8584 interfaces"
> >  
> >  config I2C_ALGOPCA
> > -	tristate "I2C PCA 9564 interfaces"
> > +	prompt "I2C PCA 9564 interfaces"
> >  
> >  endmenu
> 
> Unfortunatelly, this fix does not help. Symbol properties are merged
> together, so this just first defines three tristate symbols and later
> makes them depend on !I2C_HELPER_AUTO :-(.

Hmm, too bad. What about the following then? It's nor exactly elegant,
but if it works for you...

---
 drivers/i2c/Kconfig       |    3 ++-
 drivers/i2c/algos/Kconfig |   13 +++++++++++++
 2 files changed, 15 insertions(+), 1 deletion(-)

--- linux-2.6.36-rc6.orig/drivers/i2c/algos/Kconfig	2010-10-05 09:01:34.000000000 +0200
+++ linux-2.6.36-rc6/drivers/i2c/algos/Kconfig	2010-10-05 09:40:40.000000000 +0200
@@ -15,3 +15,16 @@ config I2C_ALGOPCA
 	tristate "I2C PCA 9564 interfaces"
 
 endmenu
+
+# In automatic configuration mode, we still have to define the
+# symbols to avoid unmet dependencies.
+
+if I2C_HELPER_AUTO
+config I2C_ALGOBIT
+	tristate
+config I2C_ALGOPCF
+	tristate
+config I2C_ALGOPCA
+	tristate
+endif
+
--- linux-2.6.36-rc6.orig/drivers/i2c/Kconfig	2010-10-05 09:01:34.000000000 +0200
+++ linux-2.6.36-rc6/drivers/i2c/Kconfig	2010-10-05 09:04:57.000000000 +0200
@@ -75,7 +75,8 @@ config I2C_HELPER_AUTO
 	  In doubt, say Y.
 
 config I2C_SMBUS
-	tristate "SMBus-specific protocols" if !I2C_HELPER_AUTO
+	tristate
+	prompt "SMBus-specific protocols" if !I2C_HELPER_AUTO
 	help
 	  Say Y here if you want support for SMBus extensions to the I2C
 	  specification. At the moment, the only supported extension is


-- 
Jean Delvare
--
To unsubscribe from this list: send the line "unsubscribe linux-i2c" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux GPIO]     [Linux SPI]     [Linux Hardward Monitoring]     [LM Sensors]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux