#include <linux/bitops.h>
#include <linux/module.h>
#include <linux/pci.h>
#include <linux/rational.h>
#include <linux/dmaengine.h>
#include <linux/dma/dw.h>
#include "8250_dwlib.h"
#define PCI_DEVICE_ID_INTEL_QRK_UARTx …
#define PCI_DEVICE_ID_INTEL_BYT_UART1 …
#define PCI_DEVICE_ID_INTEL_BYT_UART2 …
#define PCI_DEVICE_ID_INTEL_BSW_UART1 …
#define PCI_DEVICE_ID_INTEL_BSW_UART2 …
#define PCI_DEVICE_ID_INTEL_EHL_UART0 …
#define PCI_DEVICE_ID_INTEL_EHL_UART1 …
#define PCI_DEVICE_ID_INTEL_EHL_UART2 …
#define PCI_DEVICE_ID_INTEL_EHL_UART3 …
#define PCI_DEVICE_ID_INTEL_EHL_UART4 …
#define PCI_DEVICE_ID_INTEL_EHL_UART5 …
#define PCI_DEVICE_ID_INTEL_BDW_UART1 …
#define PCI_DEVICE_ID_INTEL_BDW_UART2 …
#define BYT_PRV_CLK …
#define BYT_PRV_CLK_EN …
#define BYT_PRV_CLK_M_VAL_SHIFT …
#define BYT_PRV_CLK_N_VAL_SHIFT …
#define BYT_PRV_CLK_UPDATE …
#define BYT_TX_OVF_INT …
#define BYT_TX_OVF_INT_MASK …
struct lpss8250;
struct lpss8250_board { … };
struct lpss8250 { … };
static inline struct lpss8250 *to_lpss8250(struct dw8250_port_data *data)
{ … }
static void byt_set_termios(struct uart_port *p, struct ktermios *termios,
const struct ktermios *old)
{ … }
static unsigned int byt_get_mctrl(struct uart_port *port)
{ … }
static int byt_serial_setup(struct lpss8250 *lpss, struct uart_port *port)
{ … }
static void byt_serial_exit(struct lpss8250 *lpss)
{ … }
static int ehl_serial_setup(struct lpss8250 *lpss, struct uart_port *port)
{ … }
static void ehl_serial_exit(struct lpss8250 *lpss)
{ … }
#ifdef CONFIG_SERIAL_8250_DMA
static const struct dw_dma_platform_data qrk_serial_dma_pdata = …;
static void qrk_serial_setup_dma(struct lpss8250 *lpss, struct uart_port *port)
{ … }
static void qrk_serial_exit_dma(struct lpss8250 *lpss)
{ … }
#else
static void qrk_serial_setup_dma(struct lpss8250 *lpss, struct uart_port *port) {}
static void qrk_serial_exit_dma(struct lpss8250 *lpss) {}
#endif
static int qrk_serial_setup(struct lpss8250 *lpss, struct uart_port *port)
{ … }
static void qrk_serial_exit(struct lpss8250 *lpss)
{ … }
static bool lpss8250_dma_filter(struct dma_chan *chan, void *param)
{ … }
static int lpss8250_dma_setup(struct lpss8250 *lpss, struct uart_8250_port *port)
{ … }
static int lpss8250_probe(struct pci_dev *pdev, const struct pci_device_id *id)
{ … }
static void lpss8250_remove(struct pci_dev *pdev)
{ … }
static const struct lpss8250_board byt_board = …;
static const struct lpss8250_board ehl_board = …;
static const struct lpss8250_board qrk_board = …;
static const struct pci_device_id pci_ids[] = …;
MODULE_DEVICE_TABLE(pci, pci_ids);
static struct pci_driver lpss8250_pci_driver = …;
module_pci_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;
MODULE_DESCRIPTION(…) …;