mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-05 10:31:46 +09:00
UPSTREAM: 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: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Link: https://lore.kernel.org/r/20221229155030.418800-3-brgl@bgdev.pl
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Bug: 370629635
Change-Id: If741a90295960d502af58641c4db61ab14b1dabe
(cherry picked from commit d0fabb0dc1)
Signed-off-by: Praveen Talari <quic_ptalari@quicinc.com>
This commit is contained in:
committed by
John Stultz
parent
d75a50763e
commit
6e6cda8f06
@@ -148,11 +148,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)
|
||||||
@@ -591,6 +586,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;
|
||||||
@@ -636,25 +636,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) >>
|
||||||
|
RX_LAST_BYTE_VALID_SHFT;
|
||||||
|
|
||||||
geni_se_setup_s_cmd(&port->se, UART_START_READ, 0);
|
if (!word_cnt)
|
||||||
|
return;
|
||||||
irq_en = readl(uport->membase + SE_GENI_S_IRQ_EN);
|
total_bytes = BYTES_PER_FIFO_WORD * (word_cnt - 1);
|
||||||
irq_en |= S_RX_FIFO_WATERMARK_EN | S_RX_FIFO_LAST_EN;
|
if (last_word_partial && last_word_byte_cnt)
|
||||||
writel(irq_en, uport->membase + SE_GENI_S_IRQ_EN);
|
total_bytes += last_word_byte_cnt;
|
||||||
|
else
|
||||||
irq_en = readl(uport->membase + SE_GENI_M_IRQ_EN);
|
total_bytes += BYTES_PER_FIFO_WORD;
|
||||||
irq_en |= M_RX_FIFO_WATERMARK_EN | M_RX_FIFO_LAST_EN;
|
port->handle_rx(uport, total_bytes, drop);
|
||||||
writel(irq_en, uport->membase + SE_GENI_M_IRQ_EN);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void qcom_geni_serial_stop_rx(struct uart_port *uport)
|
static void qcom_geni_serial_stop_rx(struct uart_port *uport)
|
||||||
@@ -695,29 +699,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,
|
||||||
@@ -1141,11 +1141,6 @@ out_restart_rx:
|
|||||||
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)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user