tty: serial: fsl_lpuart: select SERIAL_FSL_LPUART for SERIAL_FSL_LPUART_CONSOLE

Message ID 20230225173949.651311-1-trix@redhat.com
State New
Headers
Series tty: serial: fsl_lpuart: select SERIAL_FSL_LPUART for SERIAL_FSL_LPUART_CONSOLE |

Commit Message

Tom Rix Feb. 25, 2023, 5:39 p.m. UTC
  A rand config causes this link error
ld: drivers/tty/serial/earlycon.o: in function `parse_options':
drivers/tty/serial/earlycon.c:99: undefined reference to `uart_parse_earlycon'

The rand config has
CONFIG_SERIAL_CORE=m
CONFIG_SERIAL_EARLYCON=y
CONFIG_SERIAL_FSL_LPUART=m
CONFIG_SERIAL_FSL_LPUART_CONSOLE=y

SERIAL_FSL_LPUART should have been selected instead of depends on-ed.

Signed-off-by: Tom Rix <trix@redhat.com>
---
 drivers/tty/serial/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Randy Dunlap Feb. 25, 2023, 6:16 p.m. UTC | #1
On 2/25/23 10:03, Randy Dunlap wrote:
> 
> 
> On 2/25/23 09:51, Tom Rix wrote:
>>
>> On 2/25/23 9:46 AM, Randy Dunlap wrote:
>>> Hi--
>>>
>>> On 2/25/23 09:39, Tom Rix wrote:
>>>> A rand config causes this link error
>>>> ld: drivers/tty/serial/earlycon.o: in function `parse_options':
>>>> drivers/tty/serial/earlycon.c:99: undefined reference to `uart_parse_earlycon'
>>>>
>>>> The rand config has
>>>> CONFIG_SERIAL_CORE=m
>>>> CONFIG_SERIAL_EARLYCON=y
>>>> CONFIG_SERIAL_FSL_LPUART=m
>>>> CONFIG_SERIAL_FSL_LPUART_CONSOLE=y
>>>>
>>>> SERIAL_FSL_LPUART should have been selected instead of depends on-ed.
>>>>
>>>> Signed-off-by: Tom Rix <trix@redhat.com>
>>>> ---
>>>>   drivers/tty/serial/Kconfig | 2 +-
>>>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>>>
>>>> diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig
>>>> index 625358f44419..b24d74d389fc 100644
>>>> --- a/drivers/tty/serial/Kconfig
>>>> +++ b/drivers/tty/serial/Kconfig
>>>> @@ -1313,7 +1313,7 @@ config SERIAL_FSL_LPUART
>>>>     config SERIAL_FSL_LPUART_CONSOLE
>>>>       bool "Console on Freescale lpuart serial port"
>>>> -    depends on SERIAL_FSL_LPUART
>>>> +    select SERIAL_FSL_LPUART
>>> Most other _CONSOLE Kconfig have:
>>>
>>>     depends on SERIAL_FSL_LPUART=y
>>
>> commit 5779a072c248db7a40cfd0f5ea958097fd1d9a30 removed the =y. so it could be built as a module.
>>
> 
> uh. But it's still a bool, not a tristate. How does that work?

OK, I see. :)

Well, I don't see another decent solution ATM.

Tom, does your patch fix the build error?

What are the listed CONFIG settings after the patch?

Thanks.

>>> e.g.
>>>
>>> but I noticed a few others with a similar problem.
>>>
>>>>       select SERIAL_CORE_CONSOLE
>>>>       select SERIAL_EARLYCON
>>>>       help
>>
>
  
Randy Dunlap Feb. 25, 2023, 6:38 p.m. UTC | #2
On 2/25/23 10:16, Randy Dunlap wrote:
> 
> 
> On 2/25/23 10:03, Randy Dunlap wrote:
>>
>>
>> On 2/25/23 09:51, Tom Rix wrote:
>>>
>>> On 2/25/23 9:46 AM, Randy Dunlap wrote:
>>>> Hi--
>>>>
>>>> On 2/25/23 09:39, Tom Rix wrote:
>>>>> A rand config causes this link error
>>>>> ld: drivers/tty/serial/earlycon.o: in function `parse_options':
>>>>> drivers/tty/serial/earlycon.c:99: undefined reference to `uart_parse_earlycon'
>>>>>
>>>>> The rand config has
>>>>> CONFIG_SERIAL_CORE=m
>>>>> CONFIG_SERIAL_EARLYCON=y
>>>>> CONFIG_SERIAL_FSL_LPUART=m
>>>>> CONFIG_SERIAL_FSL_LPUART_CONSOLE=y
>>>>>
>>>>> SERIAL_FSL_LPUART should have been selected instead of depends on-ed.
>>>>>
>>>>> Signed-off-by: Tom Rix <trix@redhat.com>
>>>>> ---
>>>>>   drivers/tty/serial/Kconfig | 2 +-
>>>>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>>>>
>>>>> diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig
>>>>> index 625358f44419..b24d74d389fc 100644
>>>>> --- a/drivers/tty/serial/Kconfig
>>>>> +++ b/drivers/tty/serial/Kconfig
>>>>> @@ -1313,7 +1313,7 @@ config SERIAL_FSL_LPUART
>>>>>     config SERIAL_FSL_LPUART_CONSOLE
>>>>>       bool "Console on Freescale lpuart serial port"
>>>>> -    depends on SERIAL_FSL_LPUART
>>>>> +    select SERIAL_FSL_LPUART
>>>> Most other _CONSOLE Kconfig have:
>>>>
>>>>     depends on SERIAL_FSL_LPUART=y
>>>
>>> commit 5779a072c248db7a40cfd0f5ea958097fd1d9a30 removed the =y. so it could be built as a module.
>>>
>>
>> uh. But it's still a bool, not a tristate. How does that work?
> 
> OK, I see. :)
> 
> Well, I don't see another decent solution ATM.
> 
> Tom, does your patch fix the build error?
> 
> What are the listed CONFIG settings after the patch?

OK, after I apply the patch, all of the listed config symbols are
changed to =y (builtin), so not built as a loadable module.

Do you see something different?


>>>> e.g.
>>>>
>>>> but I noticed a few others with a similar problem.
>>>>
>>>>>       select SERIAL_CORE_CONSOLE
>>>>>       select SERIAL_EARLYCON
>>>>>       help
>>>
>>
>
  
Tom Rix Feb. 26, 2023, 3:02 p.m. UTC | #3
On 2/25/23 10:38 AM, Randy Dunlap wrote:
>
> On 2/25/23 10:16, Randy Dunlap wrote:
>>
>> On 2/25/23 10:03, Randy Dunlap wrote:
>>>
>>> On 2/25/23 09:51, Tom Rix wrote:
>>>> On 2/25/23 9:46 AM, Randy Dunlap wrote:
>>>>> Hi--
>>>>>
>>>>> On 2/25/23 09:39, Tom Rix wrote:
>>>>>> A rand config causes this link error
>>>>>> ld: drivers/tty/serial/earlycon.o: in function `parse_options':
>>>>>> drivers/tty/serial/earlycon.c:99: undefined reference to `uart_parse_earlycon'
>>>>>>
>>>>>> The rand config has
>>>>>> CONFIG_SERIAL_CORE=m
>>>>>> CONFIG_SERIAL_EARLYCON=y
>>>>>> CONFIG_SERIAL_FSL_LPUART=m
>>>>>> CONFIG_SERIAL_FSL_LPUART_CONSOLE=y
>>>>>>
>>>>>> SERIAL_FSL_LPUART should have been selected instead of depends on-ed.
>>>>>>
>>>>>> Signed-off-by: Tom Rix <trix@redhat.com>
>>>>>> ---
>>>>>>    drivers/tty/serial/Kconfig | 2 +-
>>>>>>    1 file changed, 1 insertion(+), 1 deletion(-)
>>>>>>
>>>>>> diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig
>>>>>> index 625358f44419..b24d74d389fc 100644
>>>>>> --- a/drivers/tty/serial/Kconfig
>>>>>> +++ b/drivers/tty/serial/Kconfig
>>>>>> @@ -1313,7 +1313,7 @@ config SERIAL_FSL_LPUART
>>>>>>      config SERIAL_FSL_LPUART_CONSOLE
>>>>>>        bool "Console on Freescale lpuart serial port"
>>>>>> -    depends on SERIAL_FSL_LPUART
>>>>>> +    select SERIAL_FSL_LPUART
>>>>> Most other _CONSOLE Kconfig have:
>>>>>
>>>>>      depends on SERIAL_FSL_LPUART=y
>>>> commit 5779a072c248db7a40cfd0f5ea958097fd1d9a30 removed the =y. so it could be built as a module.
>>>>
>>> uh. But it's still a bool, not a tristate. How does that work?
>> OK, I see. :)
>>
>> Well, I don't see another decent solution ATM.
>>
>> Tom, does your patch fix the build error?
>>
>> What are the listed CONFIG settings after the patch?
> OK, after I apply the patch, all of the listed config symbols are
> changed to =y (builtin), so not built as a loadable module.
>
> Do you see something different?

No, all y's.

Since the showing the after state is useful, I added it to v2

>
>
>>>>> e.g.
>>>>>
>>>>> but I noticed a few others with a similar problem.
>>>>>
>>>>>>        select SERIAL_CORE_CONSOLE
>>>>>>        select SERIAL_EARLYCON
>>>>>>        help
  

Patch

diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig
index 625358f44419..b24d74d389fc 100644
--- a/drivers/tty/serial/Kconfig
+++ b/drivers/tty/serial/Kconfig
@@ -1313,7 +1313,7 @@  config SERIAL_FSL_LPUART
 
 config SERIAL_FSL_LPUART_CONSOLE
 	bool "Console on Freescale lpuart serial port"
-	depends on SERIAL_FSL_LPUART
+	select SERIAL_FSL_LPUART
 	select SERIAL_CORE_CONSOLE
 	select SERIAL_EARLYCON
 	help