#include <linux/bitops.h>
#include <linux/module.h>
#include <linux/pci.h>
#include <linux/rational.h>
#include <linux/dma/hsu.h>
#include "8250.h"
#define PCI_DEVICE_ID_INTEL_PNW_UART1 …
#define PCI_DEVICE_ID_INTEL_PNW_UART2 …
#define PCI_DEVICE_ID_INTEL_PNW_UART3 …
#define PCI_DEVICE_ID_INTEL_TNG_UART …
#define PCI_DEVICE_ID_INTEL_CDF_UART …
#define PCI_DEVICE_ID_INTEL_DNV_UART …
#define INTEL_MID_UART_FISR …
#define INTEL_MID_UART_PS …
#define INTEL_MID_UART_MUL …
#define INTEL_MID_UART_DIV …
struct mid8250;
struct mid8250_board { … };
struct mid8250 { … };
static int pnw_setup(struct mid8250 *mid, struct uart_port *p)
{ … }
static void pnw_exit(struct mid8250 *mid)
{ … }
static int tng_handle_irq(struct uart_port *p)
{ … }
static int tng_setup(struct mid8250 *mid, struct uart_port *p)
{ … }
static void tng_exit(struct mid8250 *mid)
{ … }
static int dnv_handle_irq(struct uart_port *p)
{ … }
#define DNV_DMA_CHAN_OFFSET …
static int dnv_setup(struct mid8250 *mid, struct uart_port *p)
{ … }
static void dnv_exit(struct mid8250 *mid)
{ … }
static void mid8250_set_termios(struct uart_port *p, struct ktermios *termios,
const struct ktermios *old)
{ … }
static bool mid8250_dma_filter(struct dma_chan *chan, void *param)
{ … }
static int mid8250_dma_setup(struct mid8250 *mid, struct uart_8250_port *port)
{ … }
static int mid8250_probe(struct pci_dev *pdev, const struct pci_device_id *id)
{ … }
static void mid8250_remove(struct pci_dev *pdev)
{ … }
static const struct mid8250_board pnw_board = …;
static const struct mid8250_board tng_board = …;
static const struct mid8250_board dnv_board = …;
static const struct pci_device_id pci_ids[] = …;
MODULE_DEVICE_TABLE(pci, pci_ids);
static struct pci_driver mid8250_pci_driver = …;
module_pci_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;
MODULE_DESCRIPTION(…) …;