mirror of
https://github.com/torvalds/linux.git
synced 2026-06-03 20:14:06 +02:00
serial: 8250_omap: use uart_port pointer when available
There are unnecessary "up->port." accesses on many places in 8250_omap. "port" is avalable on most places, so instead simply use "port->". And make port available in omap8250_restore_regs() too. It's used on many places in there. Signed-off-by: "Jiri Slaby (SUSE)" <jirislaby@kernel.org> Link: https://lore.kernel.org/r/20250611100319.186924-34-jirislaby@kernel.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
0a6fb2dc93
commit
20ca8be9ad
|
|
@ -176,7 +176,7 @@ static u32 uart_read(struct omap8250_priv *priv, u32 reg)
|
|||
static void __omap8250_set_mctrl(struct uart_port *port, unsigned int mctrl)
|
||||
{
|
||||
struct uart_8250_port *up = up_to_u8250p(port);
|
||||
struct omap8250_priv *priv = up->port.private_data;
|
||||
struct omap8250_priv *priv = port->private_data;
|
||||
u8 lcr;
|
||||
|
||||
serial8250_do_set_mctrl(port, mctrl);
|
||||
|
|
@ -303,12 +303,13 @@ static void omap8250_update_mdr1(struct uart_8250_port *up,
|
|||
|
||||
static void omap8250_restore_regs(struct uart_8250_port *up)
|
||||
{
|
||||
struct omap8250_priv *priv = up->port.private_data;
|
||||
struct uart_port *port = &up->port;
|
||||
struct omap8250_priv *priv = port->private_data;
|
||||
struct uart_8250_dma *dma = up->dma;
|
||||
u8 mcr = serial8250_in_MCR(up);
|
||||
|
||||
/* Port locked to synchronize UART_IER access against the console. */
|
||||
lockdep_assert_held_once(&up->port.lock);
|
||||
lockdep_assert_held_once(&port->lock);
|
||||
|
||||
if (dma && dma->tx_running) {
|
||||
/*
|
||||
|
|
@ -359,12 +360,12 @@ static void omap8250_restore_regs(struct uart_8250_port *up)
|
|||
|
||||
omap8250_update_mdr1(up, priv);
|
||||
|
||||
__omap8250_set_mctrl(&up->port, up->port.mctrl);
|
||||
__omap8250_set_mctrl(port, port->mctrl);
|
||||
|
||||
serial_out(up, UART_OMAP_MDR3, priv->mdr3);
|
||||
|
||||
if (up->port.rs485.flags & SER_RS485_ENABLED &&
|
||||
up->port.rs485_config == serial8250_em485_config)
|
||||
if (port->rs485.flags & SER_RS485_ENABLED &&
|
||||
port->rs485_config == serial8250_em485_config)
|
||||
serial8250_em485_stop_tx(up, true);
|
||||
}
|
||||
|
||||
|
|
@ -377,7 +378,7 @@ static void omap_8250_set_termios(struct uart_port *port,
|
|||
const struct ktermios *old)
|
||||
{
|
||||
struct uart_8250_port *up = up_to_u8250p(port);
|
||||
struct omap8250_priv *priv = up->port.private_data;
|
||||
struct omap8250_priv *priv = port->private_data;
|
||||
unsigned char cval = 0;
|
||||
unsigned int baud;
|
||||
|
||||
|
|
@ -418,39 +419,39 @@ static void omap_8250_set_termios(struct uart_port *port,
|
|||
* ignoring of characters only occurs if the bit is set
|
||||
* in @ignore_status_mask as well.
|
||||
*/
|
||||
up->port.read_status_mask = UART_LSR_OE | UART_LSR_DR;
|
||||
port->read_status_mask = UART_LSR_OE | UART_LSR_DR;
|
||||
if (termios->c_iflag & INPCK)
|
||||
up->port.read_status_mask |= UART_LSR_FE | UART_LSR_PE;
|
||||
port->read_status_mask |= UART_LSR_FE | UART_LSR_PE;
|
||||
if (termios->c_iflag & (IGNBRK | PARMRK))
|
||||
up->port.read_status_mask |= UART_LSR_BI;
|
||||
port->read_status_mask |= UART_LSR_BI;
|
||||
|
||||
/*
|
||||
* Characters to ignore
|
||||
*/
|
||||
up->port.ignore_status_mask = 0;
|
||||
port->ignore_status_mask = 0;
|
||||
if (termios->c_iflag & IGNPAR)
|
||||
up->port.ignore_status_mask |= UART_LSR_PE | UART_LSR_FE;
|
||||
port->ignore_status_mask |= UART_LSR_PE | UART_LSR_FE;
|
||||
if (termios->c_iflag & IGNBRK) {
|
||||
up->port.ignore_status_mask |= UART_LSR_BI;
|
||||
port->ignore_status_mask |= UART_LSR_BI;
|
||||
/*
|
||||
* If we're ignoring parity and break indicators,
|
||||
* ignore overruns too (for real raw support).
|
||||
*/
|
||||
if (termios->c_iflag & IGNPAR)
|
||||
up->port.ignore_status_mask |= UART_LSR_OE;
|
||||
port->ignore_status_mask |= UART_LSR_OE;
|
||||
}
|
||||
|
||||
/*
|
||||
* ignore all characters if CREAD is not set
|
||||
*/
|
||||
if ((termios->c_cflag & CREAD) == 0)
|
||||
up->port.ignore_status_mask |= UART_LSR_DR;
|
||||
port->ignore_status_mask |= UART_LSR_DR;
|
||||
|
||||
/*
|
||||
* Modem status interrupts
|
||||
*/
|
||||
up->ier &= ~UART_IER_MSI;
|
||||
if (UART_ENABLE_MS(&up->port, termios->c_cflag))
|
||||
if (UART_ENABLE_MS(port, termios->c_cflag))
|
||||
up->ier |= UART_IER_MSI;
|
||||
|
||||
up->lcr = cval;
|
||||
|
|
@ -488,15 +489,15 @@ static void omap_8250_set_termios(struct uart_port *port,
|
|||
priv->xoff = termios->c_cc[VSTOP];
|
||||
|
||||
priv->efr = 0;
|
||||
up->port.status &= ~(UPSTAT_AUTOCTS | UPSTAT_AUTORTS | UPSTAT_AUTOXOFF);
|
||||
port->status &= ~(UPSTAT_AUTOCTS | UPSTAT_AUTORTS | UPSTAT_AUTOXOFF);
|
||||
|
||||
if (termios->c_cflag & CRTSCTS && up->port.flags & UPF_HARD_FLOW &&
|
||||
if (termios->c_cflag & CRTSCTS && port->flags & UPF_HARD_FLOW &&
|
||||
!mctrl_gpio_to_gpiod(up->gpios, UART_GPIO_RTS) &&
|
||||
!mctrl_gpio_to_gpiod(up->gpios, UART_GPIO_CTS)) {
|
||||
/* Enable AUTOCTS (autoRTS is enabled when RTS is raised) */
|
||||
up->port.status |= UPSTAT_AUTOCTS | UPSTAT_AUTORTS;
|
||||
port->status |= UPSTAT_AUTOCTS | UPSTAT_AUTORTS;
|
||||
priv->efr |= UART_EFR_CTS;
|
||||
} else if (up->port.flags & UPF_SOFT_FLOW) {
|
||||
} else if (port->flags & UPF_SOFT_FLOW) {
|
||||
/*
|
||||
* OMAP rx s/w flow control is borked; the transmitter remains
|
||||
* stuck off even if rx flow control is subsequently disabled
|
||||
|
|
@ -508,7 +509,7 @@ static void omap_8250_set_termios(struct uart_port *port,
|
|||
* Transmit XON1, XOFF1
|
||||
*/
|
||||
if (termios->c_iflag & IXOFF) {
|
||||
up->port.status |= UPSTAT_AUTOXOFF;
|
||||
port->status |= UPSTAT_AUTOXOFF;
|
||||
priv->efr |= OMAP_UART_SW_TX;
|
||||
}
|
||||
}
|
||||
|
|
@ -770,7 +771,7 @@ static int omap_8250_startup(struct uart_port *port)
|
|||
uart_port_unlock_irq(port);
|
||||
}
|
||||
|
||||
enable_irq(up->port.irq);
|
||||
enable_irq(port->irq);
|
||||
|
||||
pm_runtime_mark_last_busy(port->dev);
|
||||
pm_runtime_put_autosuspend(port->dev);
|
||||
|
|
@ -797,7 +798,7 @@ static void omap_8250_shutdown(struct uart_port *port)
|
|||
up->ier = 0;
|
||||
serial_out(up, UART_IER, 0);
|
||||
uart_port_unlock_irq(port);
|
||||
disable_irq_nosync(up->port.irq);
|
||||
disable_irq_nosync(port->irq);
|
||||
dev_pm_clear_wake_irq(port->dev);
|
||||
|
||||
serial8250_release_dma(up);
|
||||
|
|
@ -1310,7 +1311,7 @@ static void am654_8250_handle_rx_dma(struct uart_8250_port *up, u8 iir,
|
|||
static int omap_8250_dma_handle_irq(struct uart_port *port)
|
||||
{
|
||||
struct uart_8250_port *up = up_to_u8250p(port);
|
||||
struct omap8250_priv *priv = up->port.private_data;
|
||||
struct omap8250_priv *priv = port->private_data;
|
||||
u16 status;
|
||||
u8 iir;
|
||||
|
||||
|
|
@ -1332,8 +1333,8 @@ static int omap_8250_dma_handle_irq(struct uart_port *port)
|
|||
|
||||
serial8250_modem_status(up);
|
||||
if (status & UART_LSR_THRE && up->dma->tx_err) {
|
||||
if (uart_tx_stopped(&up->port) ||
|
||||
kfifo_is_empty(&up->port.state->port.xmit_fifo)) {
|
||||
if (uart_tx_stopped(port) ||
|
||||
kfifo_is_empty(&port->state->port.xmit_fifo)) {
|
||||
up->dma->tx_err = 0;
|
||||
serial8250_tx_chars(up);
|
||||
} else {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user