mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-04-05 09:36:39 -04:00
serial: sh-sci: Add sci_is_rsci_type()
Add sci_is_rsci_type() for RSCI port type. This will simplify the code when the support added for RSCI_PORT_SCIF32 private PORT type. Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com> Tested-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> Link: https://patch.msgid.link/20251129164325.209213-11-biju.das.jz@bp.renesas.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
850ec92892
commit
7d8b226bf9
@@ -1182,6 +1182,11 @@ static int sci_handle_errors(struct uart_port *port)
|
||||
return copied;
|
||||
}
|
||||
|
||||
static bool sci_is_rsci_type(u8 type)
|
||||
{
|
||||
return (type == SCI_PORT_RSCI);
|
||||
}
|
||||
|
||||
static int sci_handle_fifo_overrun(struct uart_port *port)
|
||||
{
|
||||
struct tty_port *tport = &port->state->port;
|
||||
@@ -1190,7 +1195,7 @@ static int sci_handle_fifo_overrun(struct uart_port *port)
|
||||
int copied = 0;
|
||||
u32 status;
|
||||
|
||||
if (s->type != SCI_PORT_RSCI) {
|
||||
if (!sci_is_rsci_type(s->type)) {
|
||||
reg = sci_getreg(port, s->params->overrun_reg);
|
||||
if (!reg->size)
|
||||
return 0;
|
||||
@@ -1198,7 +1203,7 @@ static int sci_handle_fifo_overrun(struct uart_port *port)
|
||||
|
||||
status = s->ops->read_reg(port, s->params->overrun_reg);
|
||||
if (status & s->params->overrun_mask) {
|
||||
if (s->type == SCI_PORT_RSCI) {
|
||||
if (sci_is_rsci_type(s->type)) {
|
||||
/*
|
||||
* All of the CFCLR_*C clearing bits match the corresponding
|
||||
* CSR_*status bits. So, reuse the overrun mask for clearing.
|
||||
@@ -2015,7 +2020,7 @@ static irqreturn_t sci_tx_end_interrupt(int irq, void *ptr)
|
||||
unsigned long flags;
|
||||
u32 ctrl;
|
||||
|
||||
if (s->type != PORT_SCI && s->type != SCI_PORT_RSCI)
|
||||
if (s->type != PORT_SCI && !sci_is_rsci_type(s->type))
|
||||
return sci_tx_interrupt(irq, ptr);
|
||||
|
||||
uart_port_lock_irqsave(port, &flags);
|
||||
@@ -3289,7 +3294,7 @@ static int sci_init_single(struct platform_device *dev,
|
||||
* The fourth interrupt on SCI and RSCI port is transmit end interrupt, so
|
||||
* shuffle the interrupts.
|
||||
*/
|
||||
if (p->type == PORT_SCI || p->type == SCI_PORT_RSCI)
|
||||
if (p->type == PORT_SCI || sci_is_rsci_type(p->type))
|
||||
swap(sci_port->irqs[SCIx_BRI_IRQ], sci_port->irqs[SCIx_TEI_IRQ]);
|
||||
|
||||
/* The SCI generates several interrupts. They can be muxed together or
|
||||
|
||||
Reference in New Issue
Block a user