diff mbox

[v2] tty: serial: msm_serial: Remove duplicate code in msm_console_setup

Message ID 1420708545-6477-1-git-send-email-pramod.gurav@smartplayin.com (mailing list archive)
State Superseded, archived
Headers show

Commit Message

Pramod Gurav Jan. 8, 2015, 9:15 a.m. UTC
The changes done here are already being done somewhere else in code.
 - The function msm_init_clock() is also called while doing msm_startup
   hence removing.
 - msm_set_baud_rate() is anyway called in uart_set_options when it calls
   msm_set_termios(). msm_reset() is called when we change the baud rate.
   Hence doing away with both of these calls.
 - CR_CMD_PROTECTION_EN and CR_TX_ENABLE settings are done in msm_set_baud_rate.
   So do away with this here.

Signed-off-by: Pramod Gurav <pramod.gurav@smartplayin.com>
---

Changes since v1:
 - v1 was just removing call to msm_set_baud_rate(). Other code is removed on review
   comments from Stephen Boyd here [1].
 - Removed call to msm_init_clock() as it is called while doing msm_startup

Tested on ifc6410 console.

[1]: https://patchwork.kernel.org/patch/5527551/

 drivers/tty/serial/msm_serial.c |   15 ---------------
 1 file changed, 15 deletions(-)

Comments

Stephen Boyd Jan. 8, 2015, 9:46 p.m. UTC | #1
On 01/08/2015 01:15 AM, Pramod Gurav wrote:
>  drivers/tty/serial/msm_serial.c |   15 ---------------
>  1 file changed, 15 deletions(-)
>
> diff --git a/drivers/tty/serial/msm_serial.c b/drivers/tty/serial/msm_serial.c
> index c88b522..057008d 100644
> --- a/drivers/tty/serial/msm_serial.c
> +++ b/drivers/tty/serial/msm_serial.c
> @@ -932,27 +932,12 @@ static int __init msm_console_setup(struct console *co, char *options)
>  	if (unlikely(!port->membase))
>  		return -ENXIO;
>  
> -	msm_init_clock(port);
> -

Hm.. doesn't the console setup happen before the port is opened though?
I would think that we need to keep this around so that the clock is
actually enabled before we go and write to hardware registers.

>  	if (options)
>  		uart_parse_options(options, &baud, &parity, &bits, &flow);
>  
>  	bits = 8;
>  	parity = 'n';
>  	flow = 'n';

I wonder if we should leave this here? Maybe we can rely on the user
specifying the right values on the command line?

> -	msm_write(port, UART_MR2_BITS_PER_CHAR_8 | UART_MR2_STOP_BIT_LEN_ONE,
> -		  UART_MR2);	/* 8N1 */
> -
> -	if (baud < 300 || baud > 115200)
> -		baud = 115200;
> -	msm_set_baud_rate(port, baud);
> -
> -	msm_reset(port);
> -
> -	if (msm_port->is_uartdm) {

msm_port is unused now. Please remove it in the same patch.
Pramod Gurav Jan. 9, 2015, 6:16 a.m. UTC | #2
Hi Stephen,

On Friday 09 January 2015 03:16 AM, Stephen Boyd wrote:
> On 01/08/2015 01:15 AM, Pramod Gurav wrote:
>>  drivers/tty/serial/msm_serial.c |   15 ---------------
>>  1 file changed, 15 deletions(-)
>>
>> diff --git a/drivers/tty/serial/msm_serial.c b/drivers/tty/serial/msm_serial.c
>> index c88b522..057008d 100644
>> --- a/drivers/tty/serial/msm_serial.c
>> +++ b/drivers/tty/serial/msm_serial.c
>> @@ -932,27 +932,12 @@ static int __init msm_console_setup(struct console *co, char *options)
>>  	if (unlikely(!port->membase))
>>  		return -ENXIO;
>>  
>> -	msm_init_clock(port);
>> -
> 
> Hm.. doesn't the console setup happen before the port is opened though?
> I would think that we need to keep this around so that the clock is
> actually enabled before we go and write to hardware registers.
Thanks. Verified this. Will undo this change.

> 
>>  	if (options)
>>  		uart_parse_options(options, &baud, &parity, &bits, &flow);
>>  
>>  	bits = 8;
>>  	parity = 'n';
>>  	flow = 'n';
> 
> I wonder if we should leave this here? Maybe we can rely on the user
> specifying the right values on the command line?

Ok. Will do.
> 
>> -	msm_write(port, UART_MR2_BITS_PER_CHAR_8 | UART_MR2_STOP_BIT_LEN_ONE,
>> -		  UART_MR2);	/* 8N1 */
>> -
>> -	if (baud < 300 || baud > 115200)
>> -		baud = 115200;
>> -	msm_set_baud_rate(port, baud);
>> -
>> -	msm_reset(port);
>> -
>> -	if (msm_port->is_uartdm) {
> 
> msm_port is unused now. Please remove it in the same patch.
Sure. Thanks.
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Pramod Gurav Jan. 12, 2015, 12:46 p.m. UTC | #3
Hi Stephen,

On Friday 09 January 2015 03:16 AM, Stephen Boyd wrote:
> On 01/08/2015 01:15 AM, Pramod Gurav wrote:
>>  drivers/tty/serial/msm_serial.c |   15 ---------------
>>  1 file changed, 15 deletions(-)
>>
>> diff --git a/drivers/tty/serial/msm_serial.c b/drivers/tty/serial/msm_serial.c
>> index c88b522..057008d 100644
>> --- a/drivers/tty/serial/msm_serial.c
>> +++ b/drivers/tty/serial/msm_serial.c
>> @@ -932,27 +932,12 @@ static int __init msm_console_setup(struct console *co, char *options)
>>  	if (unlikely(!port->membase))
>>  		return -ENXIO;
>>  
>> -	msm_init_clock(port);
>> -
> 
> Hm.. doesn't the console setup happen before the port is opened though?
> I would think that we need to keep this around so that the clock is
> actually enabled before we go and write to hardware registers.
> 
>>  	if (options)
>>  		uart_parse_options(options, &baud, &parity, &bits, &flow);
>>  
>>  	bits = 8;
>>  	parity = 'n';
>>  	flow = 'n';

Checked some of the driver registering console and they mostly have this
but this initialization is done when these variables are declared so
that user provided setting won't be overwritten. I think we too should
follow the same. With these variables initialized when they are declared
user's values will be retained.

> 
> I wonder if we should leave this here? Maybe we can rely on the user
> specifying the right values on the command line?
> 
>> -	msm_write(port, UART_MR2_BITS_PER_CHAR_8 | UART_MR2_STOP_BIT_LEN_ONE,
>> -		  UART_MR2);	/* 8N1 */
>> -
>> -	if (baud < 300 || baud > 115200)
>> -		baud = 115200;
>> -	msm_set_baud_rate(port, baud);
>> -
>> -	msm_reset(port);
>> -
>> -	if (msm_port->is_uartdm) {
> 
> msm_port is unused now. Please remove it in the same patch.
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/tty/serial/msm_serial.c b/drivers/tty/serial/msm_serial.c
index c88b522..057008d 100644
--- a/drivers/tty/serial/msm_serial.c
+++ b/drivers/tty/serial/msm_serial.c
@@ -932,27 +932,12 @@  static int __init msm_console_setup(struct console *co, char *options)
 	if (unlikely(!port->membase))
 		return -ENXIO;
 
-	msm_init_clock(port);
-
 	if (options)
 		uart_parse_options(options, &baud, &parity, &bits, &flow);
 
 	bits = 8;
 	parity = 'n';
 	flow = 'n';
-	msm_write(port, UART_MR2_BITS_PER_CHAR_8 | UART_MR2_STOP_BIT_LEN_ONE,
-		  UART_MR2);	/* 8N1 */
-
-	if (baud < 300 || baud > 115200)
-		baud = 115200;
-	msm_set_baud_rate(port, baud);
-
-	msm_reset(port);
-
-	if (msm_port->is_uartdm) {
-		msm_write(port, UART_CR_CMD_PROTECTION_EN, UART_CR);
-		msm_write(port, UART_CR_TX_ENABLE, UART_CR);
-	}
 
 	pr_info("msm_serial: console setup on port #%d\n", port->line);