• Andy Shevchenko's avatar
    serial: 8250_lpss: split LPSS driver to separate module · a13e19cf
    Andy Shevchenko authored
    The SoCs, such as Intel Braswell, have DesignWare UART IP. Split out the
    support of such chips to a separate module which also will be used for Intel
    Quark later.
    
    The rationale to have the separate driver to be existing:
    - Do not contaminate 8250_pci.c anymore with LPSS related quirks
    - All of them are using same DMA engine and they are Designware IP which means
      that in the future we might share the code between 8250_dw.c and 8250_lpss.c
    - It reduces the kernel memory footprint on non-X86 machines where 8250_pci.c
      is in use
    
    Besides the split the driver also has been refactored, in particular a) the DMA
    and port setup are separate functions, b) the two new structures lpss8250 and
    lpss8250_board are introduced to keep necessary data instead of
    pciserial_board, c) DMA parameters are passed to the DMA setup via mentioned
    custom structure. Most of the changes are done due to the future support of
    UART DMA on Intel Quark.
    
    The Intel Quark UART DMA support is based on bits taking from BSP code
    published by Intel earlier.
    
    The driver does not use any specific power management. PCI core takes care of
    the default behaviour during suspend and resume.
    Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
    Tested-by: default avatarBryan O'Donoghue <pure.logic@nexus-software.ie>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    a13e19cf
8250_pci.c 139 KB