diff options
author | Andy Shevchenko <andriy.shevchenko@linux.intel.com> | 2024-02-19 17:05:02 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2024-03-02 21:52:06 +0100 |
commit | d813d90085aefacc3500db94d82c60e0702965fa (patch) | |
tree | 9bbb378508adcb7bc0269ab4e331be87c4470bc6 /drivers/tty/serial/8250/8250_exar.c | |
parent | 82f9cefadac4e7e360bb1b4266c2e2d35a862425 (diff) | |
download | linux-stable-d813d90085aefacc3500db94d82c60e0702965fa.tar.gz linux-stable-d813d90085aefacc3500db94d82c60e0702965fa.tar.bz2 linux-stable-d813d90085aefacc3500db94d82c60e0702965fa.zip |
serial: 8250_exar: Use 8250 PCI library to map and assign resources
8250 PCI library provides a common code to map and assign resources.
Use it in order to deduplicate existing code and support IO port
variants.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20240219150627.2101198-7-andriy.shevchenko@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/tty/serial/8250/8250_exar.c')
-rw-r--r-- | drivers/tty/serial/8250/8250_exar.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/drivers/tty/serial/8250/8250_exar.c b/drivers/tty/serial/8250/8250_exar.c index cf00335d953f..afe577860ac5 100644 --- a/drivers/tty/serial/8250/8250_exar.c +++ b/drivers/tty/serial/8250/8250_exar.c @@ -24,6 +24,7 @@ #include <asm/byteorder.h> #include "8250.h" +#include "8250_pcilib.h" #define PCI_DEVICE_ID_ACCESSIO_COM_2S 0x1052 #define PCI_DEVICE_ID_ACCESSIO_COM_4S 0x105d @@ -230,13 +231,12 @@ static int default_setup(struct exar8250 *priv, struct pci_dev *pcidev, struct uart_8250_port *port) { const struct exar8250_board *board = priv->board; - unsigned int bar = 0; unsigned char status; + int err; - port->port.iotype = UPIO_MEM; - port->port.mapbase = pci_resource_start(pcidev, bar) + offset; - port->port.membase = priv->virt + offset; - port->port.regshift = board->reg_shift; + err = serial8250_pci_setup_port(pcidev, port, 0, offset, board->reg_shift); + if (err) + return err; /* * XR17V35x UARTs have an extra divisor register, DLD that gets enabled @@ -941,6 +941,7 @@ static struct pci_driver exar_pci_driver = { }; module_pci_driver(exar_pci_driver); +MODULE_IMPORT_NS(SERIAL_8250_PCI); MODULE_LICENSE("GPL"); MODULE_DESCRIPTION("Exar Serial Driver"); MODULE_AUTHOR("Sudip Mukherjee <sudip.mukherjee@codethink.co.uk>"); |