Commit d813d900 authored by Andy Shevchenko's avatar Andy Shevchenko Committed by Greg Kroah-Hartman

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: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20240219150627.2101198-7-andriy.shevchenko@linux.intel.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 82f9cefa
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
#include <asm/byteorder.h> #include <asm/byteorder.h>
#include "8250.h" #include "8250.h"
#include "8250_pcilib.h"
#define PCI_DEVICE_ID_ACCESSIO_COM_2S 0x1052 #define PCI_DEVICE_ID_ACCESSIO_COM_2S 0x1052
#define PCI_DEVICE_ID_ACCESSIO_COM_4S 0x105d #define PCI_DEVICE_ID_ACCESSIO_COM_4S 0x105d
...@@ -230,13 +231,12 @@ static int default_setup(struct exar8250 *priv, struct pci_dev *pcidev, ...@@ -230,13 +231,12 @@ static int default_setup(struct exar8250 *priv, struct pci_dev *pcidev,
struct uart_8250_port *port) struct uart_8250_port *port)
{ {
const struct exar8250_board *board = priv->board; const struct exar8250_board *board = priv->board;
unsigned int bar = 0;
unsigned char status; unsigned char status;
int err;
port->port.iotype = UPIO_MEM; err = serial8250_pci_setup_port(pcidev, port, 0, offset, board->reg_shift);
port->port.mapbase = pci_resource_start(pcidev, bar) + offset; if (err)
port->port.membase = priv->virt + offset; return err;
port->port.regshift = board->reg_shift;
/* /*
* XR17V35x UARTs have an extra divisor register, DLD that gets enabled * XR17V35x UARTs have an extra divisor register, DLD that gets enabled
...@@ -941,6 +941,7 @@ static struct pci_driver exar_pci_driver = { ...@@ -941,6 +941,7 @@ static struct pci_driver exar_pci_driver = {
}; };
module_pci_driver(exar_pci_driver); module_pci_driver(exar_pci_driver);
MODULE_IMPORT_NS(SERIAL_8250_PCI);
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("Exar Serial Driver"); MODULE_DESCRIPTION("Exar Serial Driver");
MODULE_AUTHOR("Sudip Mukherjee <sudip.mukherjee@codethink.co.uk>"); MODULE_AUTHOR("Sudip Mukherjee <sudip.mukherjee@codethink.co.uk>");
...@@ -149,6 +149,7 @@ config SERIAL_8250_PCI ...@@ -149,6 +149,7 @@ config SERIAL_8250_PCI
config SERIAL_8250_EXAR config SERIAL_8250_EXAR
tristate "8250/16550 Exar/Commtech PCI/PCIe device support" tristate "8250/16550 Exar/Commtech PCI/PCIe device support"
depends on SERIAL_8250 && PCI depends on SERIAL_8250 && PCI
select SERIAL_8250_PCILIB
default SERIAL_8250 default SERIAL_8250
help help
This builds support for XR17C1xx, XR17V3xx and some Commtech This builds support for XR17C1xx, XR17V3xx and some Commtech
......
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