Commit d0fabb0d authored by Bartosz Golaszewski's avatar Bartosz Golaszewski Committed by Greg Kroah-Hartman

tty: serial: qcom-geni-serial: drop unneeded forward definitions

If we shuffle the code a bit, we can drop all forward definitions of
various static functions.
Signed-off-by: default avatarBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Reviewed-by: default avatarKonrad Dybcio <konrad.dybcio@linaro.org>
Link: https://lore.kernel.org/r/20221229155030.418800-3-brgl@bgdev.plSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent d8aca2f9
...@@ -147,11 +147,6 @@ static const struct uart_ops qcom_geni_console_pops; ...@@ -147,11 +147,6 @@ static const struct uart_ops qcom_geni_console_pops;
static const struct uart_ops qcom_geni_uart_pops; static const struct uart_ops qcom_geni_uart_pops;
static struct uart_driver qcom_geni_console_driver; static struct uart_driver qcom_geni_console_driver;
static struct uart_driver qcom_geni_uart_driver; static struct uart_driver qcom_geni_uart_driver;
static int handle_rx_console(struct uart_port *uport, u32 bytes, bool drop);
static int handle_rx_uart(struct uart_port *uport, u32 bytes, bool drop);
static unsigned int qcom_geni_serial_tx_empty(struct uart_port *port);
static void qcom_geni_serial_stop_rx(struct uart_port *uport);
static void qcom_geni_serial_handle_rx(struct uart_port *uport, bool drop);
#define to_dev_port(ptr, member) \ #define to_dev_port(ptr, member) \
container_of(ptr, struct qcom_geni_serial_port, member) container_of(ptr, struct qcom_geni_serial_port, member)
...@@ -590,6 +585,11 @@ static int handle_rx_uart(struct uart_port *uport, u32 bytes, bool drop) ...@@ -590,6 +585,11 @@ static int handle_rx_uart(struct uart_port *uport, u32 bytes, bool drop)
return ret; return ret;
} }
static unsigned int qcom_geni_serial_tx_empty(struct uart_port *uport)
{
return !readl(uport->membase + SE_GENI_TX_FIFO_STATUS);
}
static void qcom_geni_serial_start_tx(struct uart_port *uport) static void qcom_geni_serial_start_tx(struct uart_port *uport)
{ {
u32 irq_en; u32 irq_en;
...@@ -635,25 +635,29 @@ static void qcom_geni_serial_stop_tx(struct uart_port *uport) ...@@ -635,25 +635,29 @@ static void qcom_geni_serial_stop_tx(struct uart_port *uport)
writel(M_CMD_CANCEL_EN, uport->membase + SE_GENI_M_IRQ_CLEAR); writel(M_CMD_CANCEL_EN, uport->membase + SE_GENI_M_IRQ_CLEAR);
} }
static void qcom_geni_serial_start_rx(struct uart_port *uport) static void qcom_geni_serial_handle_rx(struct uart_port *uport, bool drop)
{ {
u32 irq_en;
u32 status; u32 status;
u32 word_cnt;
u32 last_word_byte_cnt;
u32 last_word_partial;
u32 total_bytes;
struct qcom_geni_serial_port *port = to_dev_port(uport, uport); struct qcom_geni_serial_port *port = to_dev_port(uport, uport);
status = readl(uport->membase + SE_GENI_STATUS); status = readl(uport->membase + SE_GENI_RX_FIFO_STATUS);
if (status & S_GENI_CMD_ACTIVE) word_cnt = status & RX_FIFO_WC_MSK;
qcom_geni_serial_stop_rx(uport); last_word_partial = status & RX_LAST;
last_word_byte_cnt = (status & RX_LAST_BYTE_VALID_MSK) >>
geni_se_setup_s_cmd(&port->se, UART_START_READ, 0); RX_LAST_BYTE_VALID_SHFT;
irq_en = readl(uport->membase + SE_GENI_S_IRQ_EN);
irq_en |= S_RX_FIFO_WATERMARK_EN | S_RX_FIFO_LAST_EN;
writel(irq_en, uport->membase + SE_GENI_S_IRQ_EN);
irq_en = readl(uport->membase + SE_GENI_M_IRQ_EN); if (!word_cnt)
irq_en |= M_RX_FIFO_WATERMARK_EN | M_RX_FIFO_LAST_EN; return;
writel(irq_en, uport->membase + SE_GENI_M_IRQ_EN); total_bytes = BYTES_PER_FIFO_WORD * (word_cnt - 1);
if (last_word_partial && last_word_byte_cnt)
total_bytes += last_word_byte_cnt;
else
total_bytes += BYTES_PER_FIFO_WORD;
port->handle_rx(uport, total_bytes, drop);
} }
static void qcom_geni_serial_stop_rx(struct uart_port *uport) static void qcom_geni_serial_stop_rx(struct uart_port *uport)
...@@ -694,29 +698,25 @@ static void qcom_geni_serial_stop_rx(struct uart_port *uport) ...@@ -694,29 +698,25 @@ static void qcom_geni_serial_stop_rx(struct uart_port *uport)
qcom_geni_serial_abort_rx(uport); qcom_geni_serial_abort_rx(uport);
} }
static void qcom_geni_serial_handle_rx(struct uart_port *uport, bool drop) static void qcom_geni_serial_start_rx(struct uart_port *uport)
{ {
u32 irq_en;
u32 status; u32 status;
u32 word_cnt;
u32 last_word_byte_cnt;
u32 last_word_partial;
u32 total_bytes;
struct qcom_geni_serial_port *port = to_dev_port(uport, uport); struct qcom_geni_serial_port *port = to_dev_port(uport, uport);
status = readl(uport->membase + SE_GENI_RX_FIFO_STATUS); status = readl(uport->membase + SE_GENI_STATUS);
word_cnt = status & RX_FIFO_WC_MSK; if (status & S_GENI_CMD_ACTIVE)
last_word_partial = status & RX_LAST; qcom_geni_serial_stop_rx(uport);
last_word_byte_cnt = (status & RX_LAST_BYTE_VALID_MSK) >>
RX_LAST_BYTE_VALID_SHFT;
if (!word_cnt) geni_se_setup_s_cmd(&port->se, UART_START_READ, 0);
return;
total_bytes = BYTES_PER_FIFO_WORD * (word_cnt - 1); irq_en = readl(uport->membase + SE_GENI_S_IRQ_EN);
if (last_word_partial && last_word_byte_cnt) irq_en |= S_RX_FIFO_WATERMARK_EN | S_RX_FIFO_LAST_EN;
total_bytes += last_word_byte_cnt; writel(irq_en, uport->membase + SE_GENI_S_IRQ_EN);
else
total_bytes += BYTES_PER_FIFO_WORD; irq_en = readl(uport->membase + SE_GENI_M_IRQ_EN);
port->handle_rx(uport, total_bytes, drop); irq_en |= M_RX_FIFO_WATERMARK_EN | M_RX_FIFO_LAST_EN;
writel(irq_en, uport->membase + SE_GENI_M_IRQ_EN);
} }
static void qcom_geni_serial_handle_tx(struct uart_port *uport, bool done, static void qcom_geni_serial_handle_tx(struct uart_port *uport, bool done,
...@@ -1125,11 +1125,6 @@ static void qcom_geni_serial_set_termios(struct uart_port *uport, ...@@ -1125,11 +1125,6 @@ static void qcom_geni_serial_set_termios(struct uart_port *uport,
qcom_geni_serial_start_rx(uport); qcom_geni_serial_start_rx(uport);
} }
static unsigned int qcom_geni_serial_tx_empty(struct uart_port *uport)
{
return !readl(uport->membase + SE_GENI_TX_FIFO_STATUS);
}
#ifdef CONFIG_SERIAL_QCOM_GENI_CONSOLE #ifdef CONFIG_SERIAL_QCOM_GENI_CONSOLE
static int qcom_geni_console_setup(struct console *co, char *options) static int qcom_geni_console_setup(struct console *co, char *options)
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment