linux-next.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] serial: fix Kconfig for Freescale 16550
@ 2011-12-13  0:31 Michael Neuling
  2011-12-13  0:54 ` Greg KH
  0 siblings, 1 reply; 5+ messages in thread
From: Michael Neuling @ 2011-12-13  0:31 UTC (permalink / raw)
  To: Paul Gortmaker
  Cc: Alan Cox, Greg Kroah-Hartman, linux-kernel, sfr, linux-next,
	Steven Rostedt, Michal Marek

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 <mikey@neuling.org>
---
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
 	default PPC
 
 config SERIAL_8250_HP300

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH] serial: fix Kconfig for Freescale 16550
  2011-12-13  0:31 [PATCH] serial: fix Kconfig for Freescale 16550 Michael Neuling
@ 2011-12-13  0:54 ` Greg KH
  2011-12-13  1:53   ` Michael Neuling
  0 siblings, 1 reply; 5+ messages in thread
From: Greg KH @ 2011-12-13  0:54 UTC (permalink / raw)
  To: Michael Neuling
  Cc: Paul Gortmaker, Alan Cox, linux-kernel, sfr, linux-next,
	Steven Rostedt, Michal Marek

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 <mikey@neuling.org>
> ---
> 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?  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?

greg k-h

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] serial: fix Kconfig for Freescale 16550
  2011-12-13  0:54 ` Greg KH
@ 2011-12-13  1:53   ` Michael Neuling
  2011-12-13  2:47     ` Paul Gortmaker
  0 siblings, 1 reply; 5+ messages in thread
From: Michael Neuling @ 2011-12-13  1:53 UTC (permalink / raw)
  To: Paul Gortmaker, Greg KH
  Cc: Alan Cox, linux-kernel, sfr, linux-next, Steven Rostedt, Michal Marek

In message <20111213005444.GA27190@suse.de> 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 <mikey@neuling.org>
> > ---
> > 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 <mikey@neuling.org>

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 <mikey@neuling.org>
Suggested-by: Greg KH <gregkh@suse.de>

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
 

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH] serial: fix Kconfig for Freescale 16550
  2011-12-13  1:53   ` Michael Neuling
@ 2011-12-13  2:47     ` Paul Gortmaker
  2011-12-13  2:58       ` Michael Neuling
  0 siblings, 1 reply; 5+ messages in thread
From: Paul Gortmaker @ 2011-12-13  2:47 UTC (permalink / raw)
  To: Michael Neuling
  Cc: Greg KH, Alan Cox, linux-kernel, sfr, linux-next, Steven Rostedt,
	Michal Marek

[Re: [PATCH] serial: fix Kconfig for Freescale 16550] On 13/12/2011 (Tue 12:53) Michael Neuling wrote:

> In message <20111213005444.GA27190@suse.de> you wrote:

[...]

> > 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. 

This will still be broken, but in a different place and for different
boards.  [The legacy_serial.c won't link for 8250=m on FSL boards.]

I think your original fix was closer to the right one.   Let me expand
on that.   This thing isn't a real stand alone driver.  It is an errata
fix that is specific to Freescale boards, and only is relevant in fixing
magic SysRQ functionality on the serial console.   The Freescale boards
are almost exclusively headless, with a serial console interface to
u-boot as the only way to do initial interaction with the board at
bootup.  So having serial as a module on these boards is largely
academic.  (But if you want modular serial, you still can, and you
dont need the errata fix for that.)

So, with all that in mind, I think this is the right fix.  I'll launch
some build coverage against it, but it seems straightforward.  Thanks
for the report, and sorry for catching pmac in the fallout.

Paul.
---

 From 675520f2d175bd71bf857b75a5a9b5a08ee0ee54 Mon Sep 17 00:00:00 2001
From: Paul Gortmaker <paul.gortmaker@windriver.com>
Date: Mon, 12 Dec 2011 21:18:15 -0500
Subject: [PATCH] serial: make FSL errata depend on 8250_CONSOLE, not just
 8250

The recent commit "serial: add irq handler for Freescale 16550 errata"
would allow Kconfig choices that had 8250 support as a module and
yet still try and build in the errata fix non-modular, resulting
in build failures for some non-embedded PPC targets.

Since we hook in the errata fix from legacy_serial.c, which is
built only for PPC_UDBG_16550, and since the errata is only really
relevant for SysRQ on serial console, tighten up the dependencies
to be exactly that.

We'll get coverage on the relevant Freescale boards because the
Kconfig for their CPU types all select the PPC_UDBG_16550 option,
and the defconfigs also all select the 8250_CONSOLE option.  Also,
the 8250_CONSOLE option has a strict dependency on "SERIAL_8250=y"
which resolves the reported problem for non Freescale targets.

Reported-by: Michael Neuling <mikey@neuling.org>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>

diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig
index aa46993..5c46e90 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_CONSOLE && PPC_UDBG_16550
 	default PPC
 
 config SERIAL_8250_HP300
-- 
1.7.7

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH] serial: fix Kconfig for Freescale 16550
  2011-12-13  2:47     ` Paul Gortmaker
@ 2011-12-13  2:58       ` Michael Neuling
  0 siblings, 0 replies; 5+ messages in thread
From: Michael Neuling @ 2011-12-13  2:58 UTC (permalink / raw)
  To: Paul Gortmaker
  Cc: Greg KH, Alan Cox, linux-kernel, sfr, linux-next, Steven Rostedt,
	Michal Marek

In message <20111213024738.GA17663@windriver.com> you wrote:
> [Re: [PATCH] serial: fix Kconfig for Freescale 16550] On 13/12/2011 (Tue 12:5
3) Michael Neuling wrote:
> 
> > In message <20111213005444.GA27190@suse.de> you wrote:
> 
> [...]
> 
> > > 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. 
> 
> This will still be broken, but in a different place and for different
> boards.  [The legacy_serial.c won't link for 8250=m on FSL boards.]
> 
> I think your original fix was closer to the right one.   Let me expand
> on that.   This thing isn't a real stand alone driver.  It is an errata
> fix that is specific to Freescale boards, and only is relevant in fixing
> magic SysRQ functionality on the serial console.   The Freescale boards
> are almost exclusively headless, with a serial console interface to
> u-boot as the only way to do initial interaction with the board at
> bootup.  So having serial as a module on these boards is largely
> academic.  (But if you want modular serial, you still can, and you
> dont need the errata fix for that.)
> 
> So, with all that in mind, I think this is the right fix.  I'll launch
> some build coverage against it, but it seems straightforward.  Thanks
> for the report, and sorry for catching pmac in the fallout.
> 
> Paul.
> ---
> 
>  From 675520f2d175bd71bf857b75a5a9b5a08ee0ee54 Mon Sep 17 00:00:00 2001
> From: Paul Gortmaker <paul.gortmaker@windriver.com>
> Date: Mon, 12 Dec 2011 21:18:15 -0500
> Subject: [PATCH] serial: make FSL errata depend on 8250_CONSOLE, not just
>  8250
> 
> The recent commit "serial: add irq handler for Freescale 16550 errata"
> would allow Kconfig choices that had 8250 support as a module and
> yet still try and build in the errata fix non-modular, resulting
> in build failures for some non-embedded PPC targets.
> 
> Since we hook in the errata fix from legacy_serial.c, which is
> built only for PPC_UDBG_16550, and since the errata is only really
> relevant for SysRQ on serial console, tighten up the dependencies
> to be exactly that.
> 
> We'll get coverage on the relevant Freescale boards because the
> Kconfig for their CPU types all select the PPC_UDBG_16550 option,
> and the defconfigs also all select the 8250_CONSOLE option.  Also,
> the 8250_CONSOLE option has a strict dependency on "SERIAL_8250=y"
> which resolves the reported problem for non Freescale targets.
> 
> Reported-by: Michael Neuling <mikey@neuling.org>
> Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>

Works here for me (although it still seems like a Kconfig bug).

Tested-by: Michael Neuling <mikey@neuling.org>

> 
> diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig
> index aa46993..5c46e90 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_CONSOLE && PPC_UDBG_16550
>  	default PPC
>  
>  config SERIAL_8250_HP300
> -- 
> 1.7.7
> 

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2011-12-13  2:58 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-12-13  0:31 [PATCH] serial: fix Kconfig for Freescale 16550 Michael Neuling
2011-12-13  0:54 ` Greg KH
2011-12-13  1:53   ` Michael Neuling
2011-12-13  2:47     ` Paul Gortmaker
2011-12-13  2:58       ` Michael Neuling

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).