2018-08-11 01:36:42

by Baolin Wang

[permalink] [raw]
Subject: [PATCH 1/5] serial: sprd: Remove unused structure

Remove the unused reg_backup structure.

Signed-off-by: Baolin Wang <[email protected]>
---
drivers/tty/serial/sprd_serial.c | 11 -----------
1 file changed, 11 deletions(-)

diff --git a/drivers/tty/serial/sprd_serial.c b/drivers/tty/serial/sprd_serial.c
index 828f114..1b0e3fb 100644
--- a/drivers/tty/serial/sprd_serial.c
+++ b/drivers/tty/serial/sprd_serial.c
@@ -95,19 +95,8 @@
#define SPRD_IMSR_BREAK_DETECT BIT(7)
#define SPRD_IMSR_TIMEOUT BIT(13)

-struct reg_backup {
- u32 ien;
- u32 ctrl0;
- u32 ctrl1;
- u32 ctrl2;
- u32 clkd0;
- u32 clkd1;
- u32 dspwait;
-};
-
struct sprd_uart_port {
struct uart_port port;
- struct reg_backup reg_bak;
char name[16];
};

--
1.9.1



2018-08-11 01:36:42

by Baolin Wang

[permalink] [raw]
Subject: [PATCH 3/5] serial: sprd: Remove unnecessary resource validation

The devm_ioremap_resource() will valid the resources, thus remove the
unnecessary resource validation in the driver.

Signed-off-by: Baolin Wang <[email protected]>
---
drivers/tty/serial/sprd_serial.c | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/drivers/tty/serial/sprd_serial.c b/drivers/tty/serial/sprd_serial.c
index e18d8af..03b0cd4 100644
--- a/drivers/tty/serial/sprd_serial.c
+++ b/drivers/tty/serial/sprd_serial.c
@@ -710,15 +710,12 @@ static int sprd_probe(struct platform_device *pdev)
up->uartclk = clk_get_rate(clk);

res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
- if (!res) {
- dev_err(&pdev->dev, "not provide mem resource\n");
- return -ENODEV;
- }
- up->mapbase = res->start;
up->membase = devm_ioremap_resource(&pdev->dev, res);
if (IS_ERR(up->membase))
return PTR_ERR(up->membase);

+ up->mapbase = res->start;
+
irq = platform_get_irq(pdev, 0);
if (irq < 0) {
dev_err(&pdev->dev, "not provide irq resource: %d\n", irq);
--
1.9.1


2018-08-11 01:36:42

by Baolin Wang

[permalink] [raw]
Subject: [PATCH 2/5] serial: sprd: Use readable macros instead of magic number

Define readable macros instead of magic number to make code more readable.

Signed-off-by: Baolin Wang <[email protected]>
---
drivers/tty/serial/sprd_serial.c | 25 +++++++++++++++++--------
1 file changed, 17 insertions(+), 8 deletions(-)

diff --git a/drivers/tty/serial/sprd_serial.c b/drivers/tty/serial/sprd_serial.c
index 1b0e3fb..e18d8af 100644
--- a/drivers/tty/serial/sprd_serial.c
+++ b/drivers/tty/serial/sprd_serial.c
@@ -45,6 +45,8 @@

/* data number in TX and RX fifo */
#define SPRD_STS1 0x000C
+#define SPRD_RX_FIFO_CNT_MASK GENMASK(7, 0)
+#define SPRD_TX_FIFO_CNT_MASK GENMASK(15, 8)

/* interrupt enable register and its BITs */
#define SPRD_IEN 0x0010
@@ -82,11 +84,15 @@
/* fifo threshold register */
#define SPRD_CTL2 0x0020
#define THLD_TX_EMPTY 0x40
+#define THLD_TX_EMPTY_SHIFT 8
#define THLD_RX_FULL 0x40

/* config baud rate register */
#define SPRD_CLKD0 0x0024
+#define SPRD_CLKD0_MASK GENMASK(15, 0)
#define SPRD_CLKD1 0x0028
+#define SPRD_CLKD1_MASK GENMASK(20, 16)
+#define SPRD_CLKD1_SHIFT 16

/* interrupt mask status register */
#define SPRD_IMSR 0x002C
@@ -115,7 +121,7 @@ static inline void serial_out(struct uart_port *port, int offset, int value)

static unsigned int sprd_tx_empty(struct uart_port *port)
{
- if (serial_in(port, SPRD_STS1) & 0xff00)
+ if (serial_in(port, SPRD_STS1) & SPRD_TX_FIFO_CNT_MASK)
return 0;
else
return TIOCSER_TEMT;
@@ -213,7 +219,8 @@ static inline void sprd_rx(struct uart_port *port)
struct tty_port *tty = &port->state->port;
unsigned int ch, flag, lsr, max_count = SPRD_TIMEOUT;

- while ((serial_in(port, SPRD_STS1) & 0x00ff) && max_count--) {
+ while ((serial_in(port, SPRD_STS1) & SPRD_RX_FIFO_CNT_MASK) &&
+ max_count--) {
lsr = serial_in(port, SPRD_LSR);
ch = serial_in(port, SPRD_RXD);
flag = TTY_NORMAL;
@@ -303,16 +310,17 @@ static int sprd_startup(struct uart_port *port)
struct sprd_uart_port *sp;
unsigned long flags;

- serial_out(port, SPRD_CTL2, ((THLD_TX_EMPTY << 8) | THLD_RX_FULL));
+ serial_out(port, SPRD_CTL2,
+ THLD_TX_EMPTY << THLD_TX_EMPTY_SHIFT | THLD_RX_FULL);

/* clear rx fifo */
timeout = SPRD_TIMEOUT;
- while (timeout-- && serial_in(port, SPRD_STS1) & 0x00ff)
+ while (timeout-- && serial_in(port, SPRD_STS1) & SPRD_RX_FIFO_CNT_MASK)
serial_in(port, SPRD_RXD);

/* clear tx fifo */
timeout = SPRD_TIMEOUT;
- while (timeout-- && serial_in(port, SPRD_STS1) & 0xff00)
+ while (timeout-- && serial_in(port, SPRD_STS1) & SPRD_TX_FIFO_CNT_MASK)
cpu_relax();

/* clear interrupt */
@@ -433,10 +441,11 @@ static void sprd_set_termios(struct uart_port *port,
}

/* clock divider bit0~bit15 */
- serial_out(port, SPRD_CLKD0, quot & 0xffff);
+ serial_out(port, SPRD_CLKD0, quot & SPRD_CLKD0_MASK);

/* clock divider bit16~bit20 */
- serial_out(port, SPRD_CLKD1, (quot & 0x1f0000) >> 16);
+ serial_out(port, SPRD_CLKD1,
+ (quot & SPRD_CLKD1_MASK) >> SPRD_CLKD1_SHIFT);
serial_out(port, SPRD_LCR, lcr);
fc |= RX_TOUT_THLD_DEF | RX_HFC_THLD_DEF;
serial_out(port, SPRD_CTL1, fc);
@@ -510,7 +519,7 @@ static void wait_for_xmitr(struct uart_port *port)
if (--tmout == 0)
break;
udelay(1);
- } while (status & 0xff00);
+ } while (status & SPRD_TX_FIFO_CNT_MASK);
}

static void sprd_console_putchar(struct uart_port *port, int ch)
--
1.9.1


2018-08-11 01:36:45

by Baolin Wang

[permalink] [raw]
Subject: [PATCH 4/5] serial: sprd: Change 'int' to 'unsigned int'

The register offset value should be 'unsigned int' type.

Moreover, prefer 'unsigned int' to bare use of 'unsigned'.

Signed-off-by: Baolin Wang <[email protected]>
---
drivers/tty/serial/sprd_serial.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/drivers/tty/serial/sprd_serial.c b/drivers/tty/serial/sprd_serial.c
index 03b0cd4..8d5c9cd 100644
--- a/drivers/tty/serial/sprd_serial.c
+++ b/drivers/tty/serial/sprd_serial.c
@@ -109,12 +109,14 @@ struct sprd_uart_port {
static struct sprd_uart_port *sprd_port[UART_NR_MAX];
static int sprd_ports_num;

-static inline unsigned int serial_in(struct uart_port *port, int offset)
+static inline unsigned int serial_in(struct uart_port *port,
+ unsigned int offset)
{
return readl_relaxed(port->membase + offset);
}

-static inline void serial_out(struct uart_port *port, int offset, int value)
+static inline void serial_out(struct uart_port *port, unsigned int offset,
+ int value)
{
writel_relaxed(value, port->membase + offset);
}
@@ -598,8 +600,7 @@ static void sprd_putc(struct uart_port *port, int c)
writeb(c, port->membase + SPRD_TXD);
}

-static void sprd_early_write(struct console *con, const char *s,
- unsigned n)
+static void sprd_early_write(struct console *con, const char *s, unsigned int n)
{
struct earlycon_device *dev = con->data;

--
1.9.1


2018-08-11 01:37:28

by Baolin Wang

[permalink] [raw]
Subject: [PATCH 5/5] serial: sprd: Fix the indentation issue

Make the macros' definition and code have the same correct indentation.

Signed-off-by: Baolin Wang <[email protected]>
---
drivers/tty/serial/sprd_serial.c | 46 +++++++++++++++++++---------------------
1 file changed, 22 insertions(+), 24 deletions(-)

diff --git a/drivers/tty/serial/sprd_serial.c b/drivers/tty/serial/sprd_serial.c
index 8d5c9cd..4287ca3 100644
--- a/drivers/tty/serial/sprd_serial.c
+++ b/drivers/tty/serial/sprd_serial.c
@@ -68,24 +68,24 @@
#define SPRD_LCR_DATA_LEN6 0x4
#define SPRD_LCR_DATA_LEN7 0x8
#define SPRD_LCR_DATA_LEN8 0xc
-#define SPRD_LCR_PARITY (BIT(0) | BIT(1))
+#define SPRD_LCR_PARITY (BIT(0) | BIT(1))
#define SPRD_LCR_PARITY_EN 0x2
#define SPRD_LCR_EVEN_PAR 0x0
#define SPRD_LCR_ODD_PAR 0x1

/* control register 1 */
-#define SPRD_CTL1 0x001C
+#define SPRD_CTL1 0x001C
#define RX_HW_FLOW_CTL_THLD BIT(6)
#define RX_HW_FLOW_CTL_EN BIT(7)
#define TX_HW_FLOW_CTL_EN BIT(8)
#define RX_TOUT_THLD_DEF 0x3E00
-#define RX_HFC_THLD_DEF 0x40
+#define RX_HFC_THLD_DEF 0x40

/* fifo threshold register */
#define SPRD_CTL2 0x0020
-#define THLD_TX_EMPTY 0x40
+#define THLD_TX_EMPTY 0x40
#define THLD_TX_EMPTY_SHIFT 8
-#define THLD_RX_FULL 0x40
+#define THLD_RX_FULL 0x40

/* config baud rate register */
#define SPRD_CLKD0 0x0024
@@ -95,11 +95,11 @@
#define SPRD_CLKD1_SHIFT 16

/* interrupt mask status register */
-#define SPRD_IMSR 0x002C
-#define SPRD_IMSR_RX_FIFO_FULL BIT(0)
+#define SPRD_IMSR 0x002C
+#define SPRD_IMSR_RX_FIFO_FULL BIT(0)
#define SPRD_IMSR_TX_FIFO_EMPTY BIT(1)
-#define SPRD_IMSR_BREAK_DETECT BIT(7)
-#define SPRD_IMSR_TIMEOUT BIT(13)
+#define SPRD_IMSR_BREAK_DETECT BIT(7)
+#define SPRD_IMSR_TIMEOUT BIT(13)

struct sprd_uart_port {
struct uart_port port;
@@ -229,7 +229,7 @@ static inline void sprd_rx(struct uart_port *port)
port->icount.rx++;

if (lsr & (SPRD_LSR_BI | SPRD_LSR_PE |
- SPRD_LSR_FE | SPRD_LSR_OE))
+ SPRD_LSR_FE | SPRD_LSR_OE))
if (handle_lsr_errors(port, &lsr, &flag))
continue;
if (uart_handle_sysrq_char(port, ch))
@@ -292,8 +292,8 @@ static irqreturn_t sprd_handle_irq(int irq, void *dev_id)
if (ims & SPRD_IMSR_TIMEOUT)
serial_out(port, SPRD_ICLR, SPRD_ICLR_TIMEOUT);

- if (ims & (SPRD_IMSR_RX_FIFO_FULL |
- SPRD_IMSR_BREAK_DETECT | SPRD_IMSR_TIMEOUT))
+ if (ims & (SPRD_IMSR_RX_FIFO_FULL | SPRD_IMSR_BREAK_DETECT |
+ SPRD_IMSR_TIMEOUT))
sprd_rx(port);

if (ims & SPRD_IMSR_TX_FIFO_EMPTY)
@@ -333,7 +333,7 @@ static int sprd_startup(struct uart_port *port)
sp = container_of(port, struct sprd_uart_port, port);
snprintf(sp->name, sizeof(sp->name), "sprd_serial%d", port->line);
ret = devm_request_irq(port->dev, port->irq, sprd_handle_irq,
- IRQF_SHARED, sp->name, port);
+ IRQF_SHARED, sp->name, port);
if (ret) {
dev_err(port->dev, "fail to request serial irq %d, ret=%d\n",
port->irq, ret);
@@ -361,8 +361,8 @@ static void sprd_shutdown(struct uart_port *port)
}

static void sprd_set_termios(struct uart_port *port,
- struct ktermios *termios,
- struct ktermios *old)
+ struct ktermios *termios,
+ struct ktermios *old)
{
unsigned int baud, quot;
unsigned int lcr = 0, fc;
@@ -480,8 +480,7 @@ static void sprd_config_port(struct uart_port *port, int flags)
port->type = PORT_SPRD;
}

-static int sprd_verify_port(struct uart_port *port,
- struct serial_struct *ser)
+static int sprd_verify_port(struct uart_port *port, struct serial_struct *ser)
{
if (ser->type != PORT_SPRD)
return -EINVAL;
@@ -531,7 +530,7 @@ static void sprd_console_putchar(struct uart_port *port, int ch)
}

static void sprd_console_write(struct console *co, const char *s,
- unsigned int count)
+ unsigned int count)
{
struct uart_port *port = &sprd_port[co->index]->port;
int locked = 1;
@@ -594,7 +593,7 @@ static void sprd_putc(struct uart_port *port, int c)
unsigned int timeout = SPRD_TIMEOUT;

while (timeout-- &&
- !(readl(port->membase + SPRD_LSR) & SPRD_LSR_TX_OVER))
+ !(readl(port->membase + SPRD_LSR) & SPRD_LSR_TX_OVER))
cpu_relax();

writeb(c, port->membase + SPRD_TXD);
@@ -607,9 +606,8 @@ static void sprd_early_write(struct console *con, const char *s, unsigned int n)
uart_console_write(&dev->port, s, n, sprd_putc);
}

-static int __init sprd_early_console_setup(
- struct earlycon_device *device,
- const char *opt)
+static int __init sprd_early_console_setup(struct earlycon_device *device,
+ const char *opt)
{
if (!device->port.membase)
return -ENODEV;
@@ -691,8 +689,8 @@ static int sprd_probe(struct platform_device *pdev)

index = sprd_probe_dt_alias(index, &pdev->dev);

- sprd_port[index] = devm_kzalloc(&pdev->dev,
- sizeof(*sprd_port[index]), GFP_KERNEL);
+ sprd_port[index] = devm_kzalloc(&pdev->dev, sizeof(*sprd_port[index]),
+ GFP_KERNEL);
if (!sprd_port[index])
return -ENOMEM;

--
1.9.1


2018-09-04 05:40:00

by Baolin Wang

[permalink] [raw]
Subject: Re: [PATCH 1/5] serial: sprd: Remove unused structure

Hi,

On 11 August 2018 at 09:34, Baolin Wang <[email protected]> wrote:
> Remove the unused reg_backup structure.
>
> Signed-off-by: Baolin Wang <[email protected]>
> ---

Do you have any comments for this patch set? Thanks.

--
Baolin Wang
Best Regards

2018-09-04 06:54:17

by Chunyan Zhang

[permalink] [raw]
Subject: Re: [PATCH 1/5] serial: sprd: Remove unused structure

On 11 August 2018 at 09:34, Baolin Wang <[email protected]> wrote:
> Remove the unused reg_backup structure.
>
> Signed-off-by: Baolin Wang <[email protected]>

Acked-by: Chunyan Zhang <[email protected]>

> ---
> drivers/tty/serial/sprd_serial.c | 11 -----------
> 1 file changed, 11 deletions(-)
>
> diff --git a/drivers/tty/serial/sprd_serial.c b/drivers/tty/serial/sprd_serial.c
> index 828f114..1b0e3fb 100644
> --- a/drivers/tty/serial/sprd_serial.c
> +++ b/drivers/tty/serial/sprd_serial.c
> @@ -95,19 +95,8 @@
> #define SPRD_IMSR_BREAK_DETECT BIT(7)
> #define SPRD_IMSR_TIMEOUT BIT(13)
>
> -struct reg_backup {
> - u32 ien;
> - u32 ctrl0;
> - u32 ctrl1;
> - u32 ctrl2;
> - u32 clkd0;
> - u32 clkd1;
> - u32 dspwait;
> -};
> -
> struct sprd_uart_port {
> struct uart_port port;
> - struct reg_backup reg_bak;
> char name[16];
> };
>
> --
> 1.9.1
>

2018-09-04 06:56:40

by Chunyan Zhang

[permalink] [raw]
Subject: Re: [PATCH 2/5] serial: sprd: Use readable macros instead of magic number

On 11 August 2018 at 09:34, Baolin Wang <[email protected]> wrote:
> Define readable macros instead of magic number to make code more readable.
>
> Signed-off-by: Baolin Wang <[email protected]>

Acked-by: Chunyan Zhang <[email protected]>

> ---
> drivers/tty/serial/sprd_serial.c | 25 +++++++++++++++++--------
> 1 file changed, 17 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/tty/serial/sprd_serial.c b/drivers/tty/serial/sprd_serial.c
> index 1b0e3fb..e18d8af 100644
> --- a/drivers/tty/serial/sprd_serial.c
> +++ b/drivers/tty/serial/sprd_serial.c
> @@ -45,6 +45,8 @@
>
> /* data number in TX and RX fifo */
> #define SPRD_STS1 0x000C
> +#define SPRD_RX_FIFO_CNT_MASK GENMASK(7, 0)
> +#define SPRD_TX_FIFO_CNT_MASK GENMASK(15, 8)
>
> /* interrupt enable register and its BITs */
> #define SPRD_IEN 0x0010
> @@ -82,11 +84,15 @@
> /* fifo threshold register */
> #define SPRD_CTL2 0x0020
> #define THLD_TX_EMPTY 0x40
> +#define THLD_TX_EMPTY_SHIFT 8
> #define THLD_RX_FULL 0x40
>
> /* config baud rate register */
> #define SPRD_CLKD0 0x0024
> +#define SPRD_CLKD0_MASK GENMASK(15, 0)
> #define SPRD_CLKD1 0x0028
> +#define SPRD_CLKD1_MASK GENMASK(20, 16)
> +#define SPRD_CLKD1_SHIFT 16
>
> /* interrupt mask status register */
> #define SPRD_IMSR 0x002C
> @@ -115,7 +121,7 @@ static inline void serial_out(struct uart_port *port, int offset, int value)
>
> static unsigned int sprd_tx_empty(struct uart_port *port)
> {
> - if (serial_in(port, SPRD_STS1) & 0xff00)
> + if (serial_in(port, SPRD_STS1) & SPRD_TX_FIFO_CNT_MASK)
> return 0;
> else
> return TIOCSER_TEMT;
> @@ -213,7 +219,8 @@ static inline void sprd_rx(struct uart_port *port)
> struct tty_port *tty = &port->state->port;
> unsigned int ch, flag, lsr, max_count = SPRD_TIMEOUT;
>
> - while ((serial_in(port, SPRD_STS1) & 0x00ff) && max_count--) {
> + while ((serial_in(port, SPRD_STS1) & SPRD_RX_FIFO_CNT_MASK) &&
> + max_count--) {
> lsr = serial_in(port, SPRD_LSR);
> ch = serial_in(port, SPRD_RXD);
> flag = TTY_NORMAL;
> @@ -303,16 +310,17 @@ static int sprd_startup(struct uart_port *port)
> struct sprd_uart_port *sp;
> unsigned long flags;
>
> - serial_out(port, SPRD_CTL2, ((THLD_TX_EMPTY << 8) | THLD_RX_FULL));
> + serial_out(port, SPRD_CTL2,
> + THLD_TX_EMPTY << THLD_TX_EMPTY_SHIFT | THLD_RX_FULL);
>
> /* clear rx fifo */
> timeout = SPRD_TIMEOUT;
> - while (timeout-- && serial_in(port, SPRD_STS1) & 0x00ff)
> + while (timeout-- && serial_in(port, SPRD_STS1) & SPRD_RX_FIFO_CNT_MASK)
> serial_in(port, SPRD_RXD);
>
> /* clear tx fifo */
> timeout = SPRD_TIMEOUT;
> - while (timeout-- && serial_in(port, SPRD_STS1) & 0xff00)
> + while (timeout-- && serial_in(port, SPRD_STS1) & SPRD_TX_FIFO_CNT_MASK)
> cpu_relax();
>
> /* clear interrupt */
> @@ -433,10 +441,11 @@ static void sprd_set_termios(struct uart_port *port,
> }
>
> /* clock divider bit0~bit15 */
> - serial_out(port, SPRD_CLKD0, quot & 0xffff);
> + serial_out(port, SPRD_CLKD0, quot & SPRD_CLKD0_MASK);
>
> /* clock divider bit16~bit20 */
> - serial_out(port, SPRD_CLKD1, (quot & 0x1f0000) >> 16);
> + serial_out(port, SPRD_CLKD1,
> + (quot & SPRD_CLKD1_MASK) >> SPRD_CLKD1_SHIFT);
> serial_out(port, SPRD_LCR, lcr);
> fc |= RX_TOUT_THLD_DEF | RX_HFC_THLD_DEF;
> serial_out(port, SPRD_CTL1, fc);
> @@ -510,7 +519,7 @@ static void wait_for_xmitr(struct uart_port *port)
> if (--tmout == 0)
> break;
> udelay(1);
> - } while (status & 0xff00);
> + } while (status & SPRD_TX_FIFO_CNT_MASK);
> }
>
> static void sprd_console_putchar(struct uart_port *port, int ch)
> --
> 1.9.1
>

2018-09-04 06:57:09

by Chunyan Zhang

[permalink] [raw]
Subject: Re: [PATCH 3/5] serial: sprd: Remove unnecessary resource validation

On 11 August 2018 at 09:34, Baolin Wang <[email protected]> wrote:
> The devm_ioremap_resource() will valid the resources, thus remove the
> unnecessary resource validation in the driver.
>
> Signed-off-by: Baolin Wang <[email protected]>

Acked-by: Chunyan Zhang <[email protected]>

> ---
> drivers/tty/serial/sprd_serial.c | 7 ++-----
> 1 file changed, 2 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/tty/serial/sprd_serial.c b/drivers/tty/serial/sprd_serial.c
> index e18d8af..03b0cd4 100644
> --- a/drivers/tty/serial/sprd_serial.c
> +++ b/drivers/tty/serial/sprd_serial.c
> @@ -710,15 +710,12 @@ static int sprd_probe(struct platform_device *pdev)
> up->uartclk = clk_get_rate(clk);
>
> res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> - if (!res) {
> - dev_err(&pdev->dev, "not provide mem resource\n");
> - return -ENODEV;
> - }
> - up->mapbase = res->start;
> up->membase = devm_ioremap_resource(&pdev->dev, res);
> if (IS_ERR(up->membase))
> return PTR_ERR(up->membase);
>
> + up->mapbase = res->start;
> +
> irq = platform_get_irq(pdev, 0);
> if (irq < 0) {
> dev_err(&pdev->dev, "not provide irq resource: %d\n", irq);
> --
> 1.9.1
>

2018-09-04 06:57:54

by Chunyan Zhang

[permalink] [raw]
Subject: Re: [PATCH 4/5] serial: sprd: Change 'int' to 'unsigned int'

On 11 August 2018 at 09:34, Baolin Wang <[email protected]> wrote:
> The register offset value should be 'unsigned int' type.
>
> Moreover, prefer 'unsigned int' to bare use of 'unsigned'.
>
> Signed-off-by: Baolin Wang <[email protected]>

Acked-by: Chunyan Zhang <[email protected]>

> ---
> drivers/tty/serial/sprd_serial.c | 9 +++++----
> 1 file changed, 5 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/tty/serial/sprd_serial.c b/drivers/tty/serial/sprd_serial.c
> index 03b0cd4..8d5c9cd 100644
> --- a/drivers/tty/serial/sprd_serial.c
> +++ b/drivers/tty/serial/sprd_serial.c
> @@ -109,12 +109,14 @@ struct sprd_uart_port {
> static struct sprd_uart_port *sprd_port[UART_NR_MAX];
> static int sprd_ports_num;
>
> -static inline unsigned int serial_in(struct uart_port *port, int offset)
> +static inline unsigned int serial_in(struct uart_port *port,
> + unsigned int offset)
> {
> return readl_relaxed(port->membase + offset);
> }
>
> -static inline void serial_out(struct uart_port *port, int offset, int value)
> +static inline void serial_out(struct uart_port *port, unsigned int offset,
> + int value)
> {
> writel_relaxed(value, port->membase + offset);
> }
> @@ -598,8 +600,7 @@ static void sprd_putc(struct uart_port *port, int c)
> writeb(c, port->membase + SPRD_TXD);
> }
>
> -static void sprd_early_write(struct console *con, const char *s,
> - unsigned n)
> +static void sprd_early_write(struct console *con, const char *s, unsigned int n)
> {
> struct earlycon_device *dev = con->data;
>
> --
> 1.9.1
>

2018-09-04 06:59:07

by Chunyan Zhang

[permalink] [raw]
Subject: Re: [PATCH 5/5] serial: sprd: Fix the indentation issue

On 11 August 2018 at 09:34, Baolin Wang <[email protected]> wrote:
> Make the macros' definition and code have the same correct indentation.
>
> Signed-off-by: Baolin Wang <[email protected]>

Acked-by: Chunyan Zhang <[email protected]>

> ---
> drivers/tty/serial/sprd_serial.c | 46 +++++++++++++++++++---------------------
> 1 file changed, 22 insertions(+), 24 deletions(-)
>
> diff --git a/drivers/tty/serial/sprd_serial.c b/drivers/tty/serial/sprd_serial.c
> index 8d5c9cd..4287ca3 100644
> --- a/drivers/tty/serial/sprd_serial.c
> +++ b/drivers/tty/serial/sprd_serial.c
> @@ -68,24 +68,24 @@
> #define SPRD_LCR_DATA_LEN6 0x4
> #define SPRD_LCR_DATA_LEN7 0x8
> #define SPRD_LCR_DATA_LEN8 0xc
> -#define SPRD_LCR_PARITY (BIT(0) | BIT(1))
> +#define SPRD_LCR_PARITY (BIT(0) | BIT(1))
> #define SPRD_LCR_PARITY_EN 0x2
> #define SPRD_LCR_EVEN_PAR 0x0
> #define SPRD_LCR_ODD_PAR 0x1
>
> /* control register 1 */
> -#define SPRD_CTL1 0x001C
> +#define SPRD_CTL1 0x001C
> #define RX_HW_FLOW_CTL_THLD BIT(6)
> #define RX_HW_FLOW_CTL_EN BIT(7)
> #define TX_HW_FLOW_CTL_EN BIT(8)
> #define RX_TOUT_THLD_DEF 0x3E00
> -#define RX_HFC_THLD_DEF 0x40
> +#define RX_HFC_THLD_DEF 0x40
>
> /* fifo threshold register */
> #define SPRD_CTL2 0x0020
> -#define THLD_TX_EMPTY 0x40
> +#define THLD_TX_EMPTY 0x40
> #define THLD_TX_EMPTY_SHIFT 8
> -#define THLD_RX_FULL 0x40
> +#define THLD_RX_FULL 0x40
>
> /* config baud rate register */
> #define SPRD_CLKD0 0x0024
> @@ -95,11 +95,11 @@
> #define SPRD_CLKD1_SHIFT 16
>
> /* interrupt mask status register */
> -#define SPRD_IMSR 0x002C
> -#define SPRD_IMSR_RX_FIFO_FULL BIT(0)
> +#define SPRD_IMSR 0x002C
> +#define SPRD_IMSR_RX_FIFO_FULL BIT(0)
> #define SPRD_IMSR_TX_FIFO_EMPTY BIT(1)
> -#define SPRD_IMSR_BREAK_DETECT BIT(7)
> -#define SPRD_IMSR_TIMEOUT BIT(13)
> +#define SPRD_IMSR_BREAK_DETECT BIT(7)
> +#define SPRD_IMSR_TIMEOUT BIT(13)
>
> struct sprd_uart_port {
> struct uart_port port;
> @@ -229,7 +229,7 @@ static inline void sprd_rx(struct uart_port *port)
> port->icount.rx++;
>
> if (lsr & (SPRD_LSR_BI | SPRD_LSR_PE |
> - SPRD_LSR_FE | SPRD_LSR_OE))
> + SPRD_LSR_FE | SPRD_LSR_OE))
> if (handle_lsr_errors(port, &lsr, &flag))
> continue;
> if (uart_handle_sysrq_char(port, ch))
> @@ -292,8 +292,8 @@ static irqreturn_t sprd_handle_irq(int irq, void *dev_id)
> if (ims & SPRD_IMSR_TIMEOUT)
> serial_out(port, SPRD_ICLR, SPRD_ICLR_TIMEOUT);
>
> - if (ims & (SPRD_IMSR_RX_FIFO_FULL |
> - SPRD_IMSR_BREAK_DETECT | SPRD_IMSR_TIMEOUT))
> + if (ims & (SPRD_IMSR_RX_FIFO_FULL | SPRD_IMSR_BREAK_DETECT |
> + SPRD_IMSR_TIMEOUT))
> sprd_rx(port);
>
> if (ims & SPRD_IMSR_TX_FIFO_EMPTY)
> @@ -333,7 +333,7 @@ static int sprd_startup(struct uart_port *port)
> sp = container_of(port, struct sprd_uart_port, port);
> snprintf(sp->name, sizeof(sp->name), "sprd_serial%d", port->line);
> ret = devm_request_irq(port->dev, port->irq, sprd_handle_irq,
> - IRQF_SHARED, sp->name, port);
> + IRQF_SHARED, sp->name, port);
> if (ret) {
> dev_err(port->dev, "fail to request serial irq %d, ret=%d\n",
> port->irq, ret);
> @@ -361,8 +361,8 @@ static void sprd_shutdown(struct uart_port *port)
> }
>
> static void sprd_set_termios(struct uart_port *port,
> - struct ktermios *termios,
> - struct ktermios *old)
> + struct ktermios *termios,
> + struct ktermios *old)
> {
> unsigned int baud, quot;
> unsigned int lcr = 0, fc;
> @@ -480,8 +480,7 @@ static void sprd_config_port(struct uart_port *port, int flags)
> port->type = PORT_SPRD;
> }
>
> -static int sprd_verify_port(struct uart_port *port,
> - struct serial_struct *ser)
> +static int sprd_verify_port(struct uart_port *port, struct serial_struct *ser)
> {
> if (ser->type != PORT_SPRD)
> return -EINVAL;
> @@ -531,7 +530,7 @@ static void sprd_console_putchar(struct uart_port *port, int ch)
> }
>
> static void sprd_console_write(struct console *co, const char *s,
> - unsigned int count)
> + unsigned int count)
> {
> struct uart_port *port = &sprd_port[co->index]->port;
> int locked = 1;
> @@ -594,7 +593,7 @@ static void sprd_putc(struct uart_port *port, int c)
> unsigned int timeout = SPRD_TIMEOUT;
>
> while (timeout-- &&
> - !(readl(port->membase + SPRD_LSR) & SPRD_LSR_TX_OVER))
> + !(readl(port->membase + SPRD_LSR) & SPRD_LSR_TX_OVER))
> cpu_relax();
>
> writeb(c, port->membase + SPRD_TXD);
> @@ -607,9 +606,8 @@ static void sprd_early_write(struct console *con, const char *s, unsigned int n)
> uart_console_write(&dev->port, s, n, sprd_putc);
> }
>
> -static int __init sprd_early_console_setup(
> - struct earlycon_device *device,
> - const char *opt)
> +static int __init sprd_early_console_setup(struct earlycon_device *device,
> + const char *opt)
> {
> if (!device->port.membase)
> return -ENODEV;
> @@ -691,8 +689,8 @@ static int sprd_probe(struct platform_device *pdev)
>
> index = sprd_probe_dt_alias(index, &pdev->dev);
>
> - sprd_port[index] = devm_kzalloc(&pdev->dev,
> - sizeof(*sprd_port[index]), GFP_KERNEL);
> + sprd_port[index] = devm_kzalloc(&pdev->dev, sizeof(*sprd_port[index]),
> + GFP_KERNEL);
> if (!sprd_port[index])
> return -ENOMEM;
>
> --
> 1.9.1
>

2018-09-11 06:11:45

by Baolin Wang

[permalink] [raw]
Subject: Re: [PATCH 1/5] serial: sprd: Remove unused structure

Hi,

On 4 September 2018 at 14:52, Chunyan Zhang <[email protected]> wrote:
> On 11 August 2018 at 09:34, Baolin Wang <[email protected]> wrote:
>> Remove the unused reg_backup structure.
>>
>> Signed-off-by: Baolin Wang <[email protected]>
>
> Acked-by: Chunyan Zhang <[email protected]>

Thanks Chunyan.

Greg, could you apply this patch set if there are no other issues? Thanks.

>> ---
>> drivers/tty/serial/sprd_serial.c | 11 -----------
>> 1 file changed, 11 deletions(-)
>>
>> diff --git a/drivers/tty/serial/sprd_serial.c b/drivers/tty/serial/sprd_serial.c
>> index 828f114..1b0e3fb 100644
>> --- a/drivers/tty/serial/sprd_serial.c
>> +++ b/drivers/tty/serial/sprd_serial.c
>> @@ -95,19 +95,8 @@
>> #define SPRD_IMSR_BREAK_DETECT BIT(7)
>> #define SPRD_IMSR_TIMEOUT BIT(13)
>>
>> -struct reg_backup {
>> - u32 ien;
>> - u32 ctrl0;
>> - u32 ctrl1;
>> - u32 ctrl2;
>> - u32 clkd0;
>> - u32 clkd1;
>> - u32 dspwait;
>> -};
>> -
>> struct sprd_uart_port {
>> struct uart_port port;
>> - struct reg_backup reg_bak;
>> char name[16];
>> };
>>
>> --
>> 1.9.1
>>



--
Baolin Wang
Best Regards