Subject: Re: [PATCH] serial: fix Kconfig for Freescale 16550

From: Michael Neuling <[email-masked]>
Date: Tue, 13 Dec 2011 12:53:22 +1100

In message <[email-masked]> you wrote:
> On Tue, Dec 13, 2011 at 11:31:03AM +1100, Michael Neuling wrote:
> > next-20111212 breaks with linking a pmac32_defconfig with:
> >   drivers/built-in.o: In function `fsl8250_handle_irq':
> >   (.text+0x7ba74): undefined reference to `serial8250_modem_status'
> >   drivers/built-in.o: In function `fsl8250_handle_irq':
> >   (.text+0x7baa4): undefined reference to `serial8250_tx_chars'
> >   drivers/built-in.o: In function `fsl8250_handle_irq':
> >   (.text+0x7bab4): undefined reference to `serial8250_rx_chars'
> > 
> > Caused by:
> >   9deaa53 serial: add irq handler for Freescale 16550 errata.
> > 
> > pmac32_defconfig results in SERIAL_8250_FSL=y but SERIAL_8250=m so
> > 8250_fsl.c doesn't link properly.  
> > 
> > This explicitly makes SERIAL_8250_FSL depends on SERIAL_8250=y. 
> > 
> > Signed-off-by: Michael Neuling <[email-masked]>
> > ---
> > I'm not sure this is the right fix as it seems like a Kconfig bug.  
> > 
> > diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig
> > index a1d55c3..c9046de 100644
> > --- a/drivers/tty/serial/Kconfig
> > +++ b/drivers/tty/serial/Kconfig
> > @@ -99,7 +99,7 @@ config SERIAL_8250_PNP
> >  
> >  config SERIAL_8250_FSL
> >  	bool
> > -	depends on SERIAL_8250 && PPC
> > +	depends on SERIAL_8250=y && PPC
> 
> Then you can't select SERIAL_8250 as a module at all, right?  

Correct, unless SERIAL_8250_FOL=n of course.

> Perhaps you should allow SERIAL_8250_FSL to be a module as well here?
> So changing the bool to a tristate should be the correct option?  Can
> you try that?

Yep, that works also.  New patch below.  

This should probably be aced by Paul to ensure he's cool with it being
a module now. 

Mikey

From: Michael Neuling <[email-masked]>

serial: fix Kconfig for Freescale 16550

next-20111212 breaks with linking a pmac32_defconfig with:
  drivers/built-in.o: In function `fsl8250_handle_irq':
  (.text+0x7ba74): undefined reference to `serial8250_modem_status'
  drivers/built-in.o: In function `fsl8250_handle_irq':
  (.text+0x7baa4): undefined reference to `serial8250_tx_chars'
  drivers/built-in.o: In function `fsl8250_handle_irq':
  (.text+0x7bab4): undefined reference to `serial8250_rx_chars'

Caused by:
  9deaa53 serial: add irq handler for Freescale 16550 errata.

pmac32_defconfig results in SERIAL_8250_FSL=y but SERIAL_8250=m so
8250_fsl.c doesn't link properly for the kernel.  

This makes SERIAL_8250_FSL tristate.

Signed-off-by: Michael Neuling <[email-masked]>
Suggested-by: Greg KH <[email-masked]>

diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig
index a1d55c3..d8832a4 100644
--- a/drivers/tty/serial/Kconfig
+++ b/drivers/tty/serial/Kconfig
@@ -98,7 +98,7 @@ config SERIAL_8250_PNP
 	  disable this feature if you only need legacy serial support.
 
 config SERIAL_8250_FSL
-	bool
+	tristate
 	depends on SERIAL_8250 && PPC
 	default PPC