Subject: Re: Kconfig warnings on latest GIT

From: Timur Tabi <[email-masked]>
Date: Tue, 08 May 2007 15:11:52 -0500

Kim Phillips wrote:
> On Tue, 8 May 2007 00:04:14 +0300
> Ismail Dönmez <[email-masked]> wrote:
> 
>> drivers/net/Kconfig:2279:warning: 'select' used by config symbol 'UCC_GETH' 
>> refers to undefined symbol 'UCC_FAST'
> 
> looks like this introduces the error:
> 
> commit 7d776cb596994219584257eb5956b87628e5deaf
> Author: Timur Tabi <[email-masked]>
> Date:   Mon Mar 12 15:40:27 2007 -0500
> 
>     [POWERPC] QE: automatically select QE options

I have a dilemma, so I need help fixing this bug.

This particular patch is necessary because without it, selecting support for the QE is too 
complicated.

Background: The QUICC Engine (QE) is a microcontroller on some Freescale CPUs that can 
mimic a wide variety of devices.  It has multiple controllers (called UCCs), and each one 
can be an ethernet device, or a UART, or an HDLC thingy, etc.  There's a QE library and a 
bunch of other support code in the arch/powerpc directory, so the QE is a powerpc-specific 
device.  However, all of the drivers that use it are located in drivers/xxx.

This isn't a new problem.  The common solution is to define some intermediate Kconfig 
option, like UCC_FAST_TEMP in the driver's Kconfig.  Selecting UCC_FAST will then also set 
UCC_FAST_TEMP.  The device driver then depends on UCC_FAST_TEMP.

There's also a UCC_SLOW option with the same problem.

The dillema is that there is no single device driver class that depends on UCC_FAST. 
Currently, there's only one that uses UCC_FAST: the ucc_geth driver.  But I'm also working 
on a UART driver.

So my question is: in which Kconfig do I define "UCC_FAST_TEMP" and "UCC_SLOW_TEMP"?  At 
first I thought, just put it in drivers/Kconfig, but that Kconfig does nothing but 
including other Kconfigs.  I believe that if I submit a patch that adds "UCC_FAST_TEMP" 
and "UCC_SLOW_TEMP" to drivers/Kconfig, it will be rejected.  Either that, or I'll spend 
six weeks trying to persuade everyone that it's a good idea.

Does anyone have any suggestions on how I can fix this?

-- 
Timur Tabi
Linux Kernel Developer @ Freescale