]> Git Repo - linux.git/commitdiff
Merge tag 'tty-4.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty
authorLinus Torvalds <[email protected]>
Tue, 21 Apr 2015 16:33:10 +0000 (09:33 -0700)
committerLinus Torvalds <[email protected]>
Tue, 21 Apr 2015 16:33:10 +0000 (09:33 -0700)
Pull tty/serial updates from Greg KH:
 "Here's the big tty/serial driver update for 4.1-rc1.

  It was delayed for a bit due to some questions surrounding some of the
  console command line parsing changes that are in here.  There's still
  one tiny regression for people who were previously putting multiple
  console command lines and expecting them all to be ignored for some
  odd reason, but Peter is working on fixing that.  If not, I'll send a
  revert for the offending patch, but I have faith that Peter can
  address it.

  Other than the console work here, there's the usual serial driver
  updates and changes, and a buch of 8250 reworks to try to make that
  driver easier to maintain over time, and have it support more devices
  in the future.

  All of these have been in linux-next for a while"

* tag 'tty-4.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (119 commits)
  n_gsm: Drop unneeded cast on netdev_priv
  sc16is7xx: expose RTS inversion in RS-485 mode
  serial: 8250_pci: port failed after wakeup from S3
  earlycon: 8250: Document kernel command line options
  earlycon: 8250: Fix command line regression
  earlycon: Fix __earlycon_table stride
  tty: clean up the tty time logic a bit
  serial: 8250_dw: only get the clock rate in one place
  serial: 8250_dw: remove useless ACPI ID check
  dmaengine: hsu: move memory allocation to GFP_NOWAIT
  dmaengine: hsu: remove redundant pieces of code
  serial: 8250_pci: add Intel Tangier support
  dmaengine: hsu: add Intel Tangier PCI ID
  serial: 8250_pci: replace switch-case by formula for Intel MID
  serial: 8250_pci: replace switch-case by formula
  tty: cpm_uart: replace CONFIG_8xx by CONFIG_CPM1
  serial: jsm: some off by one bugs
  serial: xuartps: Fix check in console_setup().
  serial: xuartps: Get rid of register access macros.
  serial: xuartps: Fix iobase use.
  ...

1  2 
Documentation/kernel-parameters.txt
arch/x86/kernel/early_printk.c
drivers/dma/Kconfig
drivers/dma/Makefile
include/asm-generic/vmlinux.lds.h
kernel/printk/printk.c

index 274252f205b7073ad909d19e2628e466b6b76c0e,1facf0bebb31df9c2976475be135c8a675489fb9..84960c66c77b08186fc3be50dc2e487d7a7c8cc0
@@@ -713,10 -713,18 +713,18 @@@ bytes respectively. Such letter suffixe
  
                uart[8250],io,<addr>[,options]
                uart[8250],mmio,<addr>[,options]
+               uart[8250],mmio32,<addr>[,options]
+               uart[8250],0x<addr>[,options]
                        Start an early, polled-mode console on the 8250/16550
                        UART at the specified I/O port or MMIO address,
-                       switching to the matching ttyS device later.  The
-                       options are the same as for ttyS, above.
+                       switching to the matching ttyS device later.
+                       MMIO inter-register address stride is either 8-bit
+                       (mmio) or 32-bit (mmio32).
+                       If none of [io|mmio|mmio32], <addr> is assumed to be
+                       equivalent to 'mmio'. 'options' are specified in the
+                       same format described for ttyS above; if unspecified,
+                       the h/w is not re-initialized.
                hvc<n>  Use the hypervisor console device <n>. This is for
                        both Xen and PowerPC hypervisors.
  
                        Enable debug messages at boot time.  See
                        Documentation/dynamic-debug-howto.txt for details.
  
 +      eagerfpu=       [X86]
 +                      on      enable eager fpu restore
 +                      off     disable eager fpu restore
 +                      auto    selects the default scheme, which automatically
 +                              enables eagerfpu restore for xsaveopt.
 +
        early_ioremap_debug [KNL]
                        Enable debug messages in early_ioremap support. This
                        is useful for tracking down temporary early mappings
                uart[8250],io,<addr>[,options]
                uart[8250],mmio,<addr>[,options]
                uart[8250],mmio32,<addr>[,options]
+               uart[8250],0x<addr>[,options]
                        Start an early, polled-mode console on the 8250/16550
                        UART at the specified I/O port or MMIO address.
                        MMIO inter-register address stride is either 8-bit
                        (mmio) or 32-bit (mmio32).
-                       The options are the same as for ttyS, above.
+                       If none of [io|mmio|mmio32], <addr> is assumed to be
+                       equivalent to 'mmio'. 'options' are specified in the
+                       same format described for "console=ttyS<n>"; if
+                       unspecified, the h/w is not initialized.
  
                pl011,<addr>
                        Start an early, polled-mode console on a pl011 serial
                        Format: {"off" | "on" | "skip[mbr]"}
  
        efi=            [EFI]
 -                      Format: { "old_map", "nochunk", "noruntime" }
 +                      Format: { "old_map", "nochunk", "noruntime", "debug" }
                        old_map [X86-64]: switch to the old ioremap-based EFI
                        runtime services mapping. 32-bit still uses this one by
                        default.
                        boot stub, as chunking can cause problems with some
                        firmware implementations.
                        noruntime : disable EFI runtime services support
 +                      debug: enable misc debug output
  
        efi_no_storage_paranoia [EFI; X86]
                        Using this parameter you can use more than 50% of
                                 or
                                 memmap=0x10000$0x18690000
  
 +      memmap=nn[KMG]!ss[KMG]
 +                      [KNL,X86] Mark specific memory as protected.
 +                      Region of memory to be used, from ss to ss+nn.
 +                      The memory region may be marked as e820 type 12 (0xc)
 +                      and is NVDIMM or ADR memory.
 +
        memory_corruption_check=0/1 [X86]
                        Some BIOSes seem to corrupt the first 64k of
                        memory when doing things like suspend/resume.
                        seconds.  Use this parameter to check at some
                        other rate.  0 disables periodic checking.
  
 -      memtest=        [KNL,X86] Enable memtest
 +      memtest=        [KNL,X86,ARM] Enable memtest
                        Format: <integer>
                        default : 0 <disable>
                        Specifies the number of memtest passes to be
  
        nmi_watchdog=   [KNL,BUGS=X86] Debugging features for SMP kernels
                        Format: [panic,][nopanic,][num]
 -                      Valid num: 0
 +                      Valid num: 0 or 1
                        0 - turn nmi_watchdog off
 +                      1 - turn nmi_watchdog on
                        When panic is specified, panic when an NMI watchdog
                        timeout occurs (or 'nopanic' to override the opposite
                        default).
                        noexec32=off: disable non-executable mappings
                                read implies executable mappings
  
 -      nofpu           [SH] Disable hardware FPU at boot time.
 +      nofpu           [MIPS,SH] Disable hardware FPU at boot time.
  
        nofxsr          [BUGS=X86-32] Disables x86 floating point extended
                        register save and restore. The kernel will only save
                        legacy floating-point registers on task switch.
  
 +      nohugeiomap     [KNL,x86] Disable kernel huge I/O mappings.
 +
        noxsave         [BUGS=X86] Disables x86 extended register state save
                        and restore using xsave. The kernel will fallback to
                        enabling legacy floating-point and sse state.
                        parameter, xsave area per process might occupy more
                        memory on xsaves enabled systems.
  
 -      eagerfpu=       [X86]
 -                      on      enable eager fpu restore
 -                      off     disable eager fpu restore
 -                      auto    selects the default scheme, which automatically
 -                              enables eagerfpu restore for xsaveopt.
 -
        nohlt           [BUGS=ARM,SH] Tells the kernel that the sleep(SH) or
                        wfi(ARM) instruction doesn't work correctly and not to
                        use it. This is also useful when using JTAG debugger.
  
        nousb           [USB] Disable the USB subsystem
  
 -      nowatchdog      [KNL] Disable the lockup detector (NMI watchdog).
 +      nowatchdog      [KNL] Disable both lockup detectors, i.e.
 +                        soft-lockup and NMI watchdog (hard-lockup).
  
        nowb            [ARM]
  
                        Set maximum number of finished RCU callbacks to
                        process in one batch.
  
 +      rcutree.gp_init_delay=  [KNL]
 +                      Set the number of jiffies to delay each step of
 +                      RCU grace-period initialization.  This only has
 +                      effect when CONFIG_RCU_TORTURE_TEST_SLOW_INIT is
 +                      set.
 +
        rcutree.rcu_fanout_leaf= [KNL]
                        Increase the number of CPUs assigned to each
                        leaf rcu_node structure.  Useful for very large
                        value is one, and maximum value is HZ.
  
        rcutree.kthread_prio=    [KNL,BOOT]
 -                      Set the SCHED_FIFO priority of the RCU
 -                      per-CPU kthreads (rcuc/N). This value is also
 -                      used for the priority of the RCU boost threads
 -                      (rcub/N). Valid values are 1-99 and the default
 -                      is 1 (the least-favored priority).
 +                      Set the SCHED_FIFO priority of the RCU per-CPU
 +                      kthreads (rcuc/N). This value is also used for
 +                      the priority of the RCU boost threads (rcub/N)
 +                      and for the RCU grace-period kthreads (rcu_bh,
 +                      rcu_preempt, and rcu_sched). If RCU_BOOST is
 +                      set, valid values are 1-99 and the default is 1
 +                      (the least-favored priority).  Otherwise, when
 +                      RCU_BOOST is not set, valid values are 0-99 and
 +                      the default is zero (non-realtime operation).
  
        rcutree.rcu_nocb_leader_stride= [KNL]
                        Set the number of NOCB kthread groups, which
                        improve throughput, but will also increase the
                        amount of memory reserved for use by the client.
  
 +      suspend.pm_test_delay=
 +                      [SUSPEND]
 +                      Sets the number of seconds to remain in a suspend test
 +                      mode before resuming the system (see
 +                      /sys/power/pm_test). Only available when CONFIG_PM_DEBUG
 +                      is set. Default value is 5.
 +
        swapaccount=[0|1]
                        [KNL] Enable accounting of swap in memory resource
                        controller if no parameter or 1 is given or disable
index 49ff55ef9b26cba11af5d9b36c694926ea3e7f6b,f85e3fb50f287e0d4e5f8e6142131d7e777b71c6..89427d8d4fc53addcb429b994f02de7d0bb7dfa4
@@@ -95,6 -95,20 +95,6 @@@ static unsigned long early_serial_base 
  #define DLL             0       /*  Divisor Latch Low         */
  #define DLH             1       /*  Divisor latch High        */
  
 -static void mem32_serial_out(unsigned long addr, int offset, int value)
 -{
 -      uint32_t *vaddr = (uint32_t *)addr;
 -      /* shift implied by pointer type */
 -      writel(value, vaddr + offset);
 -}
 -
 -static unsigned int mem32_serial_in(unsigned long addr, int offset)
 -{
 -      uint32_t *vaddr = (uint32_t *)addr;
 -      /* shift implied by pointer type */
 -      return readl(vaddr + offset);
 -}
 -
  static unsigned int io_serial_in(unsigned long addr, int offset)
  {
        return inb(addr + offset);
@@@ -191,20 -205,6 +191,20 @@@ static __init void early_serial_init(ch
  }
  
  #ifdef CONFIG_PCI
 +static void mem32_serial_out(unsigned long addr, int offset, int value)
 +{
 +      u32 *vaddr = (u32 *)addr;
 +      /* shift implied by pointer type */
 +      writel(value, vaddr + offset);
 +}
 +
 +static unsigned int mem32_serial_in(unsigned long addr, int offset)
 +{
 +      u32 *vaddr = (u32 *)addr;
 +      /* shift implied by pointer type */
 +      return readl(vaddr + offset);
 +}
 +
  /*
   * early_pci_serial_init()
   *
@@@ -217,8 -217,8 +217,8 @@@ static __init void early_pci_serial_ini
        unsigned divisor;
        unsigned long baud = DEFAULT_BAUD;
        u8 bus, slot, func;
 -      uint32_t classcode, bar0;
 -      uint16_t cmdreg;
 +      u32 classcode, bar0;
 +      u16 cmdreg;
        char *e;
  
  
@@@ -375,12 -375,6 +375,6 @@@ static int __init setup_early_printk(ch
                if (!strncmp(buf, "xen", 3))
                        early_console_register(&xenboot_console, keep);
  #endif
- #ifdef CONFIG_EARLY_PRINTK_INTEL_MID
-               if (!strncmp(buf, "hsu", 3)) {
-                       hsu_early_console_init(buf + 3);
-                       early_console_register(&early_hsu_console, keep);
-               }
- #endif
  #ifdef CONFIG_EARLY_PRINTK_EFI
                if (!strncmp(buf, "efi", 3))
                        early_console_register(&early_efi_console, keep);
diff --combined drivers/dma/Kconfig
index 942ca541dcbdc293e7a3dc11ef494584503f4a4e,074ffad334a70bcf444974b4f7c2225666f31d2b..91eced044321610ef6dd2a9cf3dac415d154bd9f
@@@ -51,6 -51,19 +51,6 @@@ config INTEL_MIC_X100_DM
          OS and tools for MIC to use with this driver are available from
          <http://software.intel.com/en-us/mic-developer>.
  
 -config INTEL_MID_DMAC
 -      tristate "Intel MID DMA support for Peripheral DMA controllers"
 -      depends on PCI && X86
 -      select DMA_ENGINE
 -      default n
 -      help
 -        Enable support for the Intel(R) MID DMA engine present
 -        in Intel MID chipsets.
 -
 -        Say Y here if you have such a chipset.
 -
 -        If unsure, say N.
 -
  config ASYNC_TX_ENABLE_CHANNEL_SWITCH
        bool
  
@@@ -112,6 -125,8 +112,8 @@@ config FSL_DM
          EloPlus is on mpc85xx and mpc86xx and Pxxx parts, and the Elo3 is on
          some Txxx and Bxxx parts.
  
+ source "drivers/dma/hsu/Kconfig"
  config MPC512X_DMA
        tristate "Freescale MPC512x built-in DMA engine support"
        depends on PPC_MPC512x || PPC_MPC831x
diff --combined drivers/dma/Makefile
index 539d4825bd766ed956629e0b1d0aa4e9b91acf25,bf4485800c60d9b9ef138efbc2b410d82155606d..7e8301cb489dee7dd682b8bc15b304fec9a6e223
@@@ -6,10 -6,12 +6,11 @@@ obj-$(CONFIG_DMA_VIRTUAL_CHANNELS) += v
  obj-$(CONFIG_DMA_ACPI) += acpi-dma.o
  obj-$(CONFIG_DMA_OF) += of-dma.o
  
 -obj-$(CONFIG_INTEL_MID_DMAC) += intel_mid_dma.o
  obj-$(CONFIG_DMATEST) += dmatest.o
  obj-$(CONFIG_INTEL_IOATDMA) += ioat/
  obj-$(CONFIG_INTEL_IOP_ADMA) += iop-adma.o
  obj-$(CONFIG_FSL_DMA) += fsldma.o
+ obj-$(CONFIG_HSU_DMA) += hsu/
  obj-$(CONFIG_MPC512X_DMA) += mpc512x_dma.o
  obj-$(CONFIG_PPC_BESTCOMM) += bestcomm/
  obj-$(CONFIG_MV_XOR) += mv_xor.o
index 5c48c58514e551ab66ee158802aec6fe3905ea69,561daf49e52f78687184192207379821f4307cf3..8bd374d3cf21fb0ee32e217f7f7eb6915c992514
  #define FTRACE_EVENTS()       . = ALIGN(8);                                   \
                        VMLINUX_SYMBOL(__start_ftrace_events) = .;      \
                        *(_ftrace_events)                               \
 -                      VMLINUX_SYMBOL(__stop_ftrace_events) = .;
 +                      VMLINUX_SYMBOL(__stop_ftrace_events) = .;       \
 +                      VMLINUX_SYMBOL(__start_ftrace_enum_maps) = .;   \
 +                      *(_ftrace_enum_map)                             \
 +                      VMLINUX_SYMBOL(__stop_ftrace_enum_maps) = .;
  #else
  #define FTRACE_EVENTS()
  #endif
  #define TRACE_SYSCALLS()
  #endif
  
+ #ifdef CONFIG_SERIAL_EARLYCON
+ #define EARLYCON_TABLE() STRUCT_ALIGN();                      \
+                        VMLINUX_SYMBOL(__earlycon_table) = .;  \
+                        *(__earlycon_table)                    \
+                        *(__earlycon_table_end)
+ #else
+ #define EARLYCON_TABLE()
+ #endif
  
  #define ___OF_TABLE(cfg, name)        _OF_TABLE_##cfg(name)
  #define __OF_TABLE(cfg, name) ___OF_TABLE(cfg, name)
  #define IOMMU_OF_TABLES()     OF_TABLE(CONFIG_OF_IOMMU, iommu)
  #define RESERVEDMEM_OF_TABLES()       OF_TABLE(CONFIG_OF_RESERVED_MEM, reservedmem)
  #define CPU_METHOD_OF_TABLES()        OF_TABLE(CONFIG_SMP, cpu_method)
 +#define CPUIDLE_METHOD_OF_TABLES() OF_TABLE(CONFIG_CPU_IDLE, cpuidle_method)
  #define EARLYCON_OF_TABLES()  OF_TABLE(CONFIG_SERIAL_EARLYCON, earlycon)
  
  #define KERNEL_DTB()                                                  \
  #define TEXT_TEXT                                                     \
                ALIGN_FUNCTION();                                       \
                *(.text.hot)                                            \
 -              *(.text)                                                \
 +              *(.text .text.fixup)                                    \
                *(.ref.text)                                            \
        MEM_KEEP(init.text)                                             \
        MEM_KEEP(exit.text)                                             \
        CLKSRC_OF_TABLES()                                              \
        IOMMU_OF_TABLES()                                               \
        CPU_METHOD_OF_TABLES()                                          \
 +      CPUIDLE_METHOD_OF_TABLES()                                      \
        KERNEL_DTB()                                                    \
        IRQCHIP_OF_MATCH_TABLE()                                        \
+       EARLYCON_TABLE()                                                \
        EARLYCON_OF_TABLES()
  
  #define INIT_TEXT                                                     \
diff --combined kernel/printk/printk.c
index 879edfc5ee52d2985d4fb925ec820ba6b113d6d0,dda9592210866ab2f1f5d800f9188395a9cab466..c099b082cd0272dc486e57ded2b9fc8413e40da3
@@@ -32,6 -32,7 +32,6 @@@
  #include <linux/security.h>
  #include <linux/bootmem.h>
  #include <linux/memblock.h>
 -#include <linux/aio.h>
  #include <linux/syscalls.h>
  #include <linux/kexec.h>
  #include <linux/kdb.h>
@@@ -45,7 -46,6 +45,7 @@@
  #include <linux/irq_work.h>
  #include <linux/utsname.h>
  #include <linux/ctype.h>
 +#include <linux/uio.h>
  
  #include <asm/uaccess.h>
  
@@@ -521,7 -521,7 +521,7 @@@ static ssize_t devkmsg_write(struct kio
        int i;
        int level = default_message_loglevel;
        int facility = 1;       /* LOG_USER */
 -      size_t len = iocb->ki_nbytes;
 +      size_t len = iov_iter_count(from);
        ssize_t ret = len;
  
        if (len > LOG_LINE_MAX)
@@@ -2017,24 -2017,6 +2017,6 @@@ int add_preferred_console(char *name, i
        return __add_preferred_console(name, idx, options, NULL);
  }
  
- int update_console_cmdline(char *name, int idx, char *name_new, int idx_new, char *options)
- {
-       struct console_cmdline *c;
-       int i;
-       for (i = 0, c = console_cmdline;
-            i < MAX_CMDLINECONSOLES && c->name[0];
-            i++, c++)
-               if (strcmp(c->name, name) == 0 && c->index == idx) {
-                       strlcpy(c->name, name_new, sizeof(c->name));
-                       c->options = options;
-                       c->index = idx_new;
-                       return i;
-               }
-       /* not found */
-       return -1;
- }
  bool console_suspend_enabled = true;
  EXPORT_SYMBOL(console_suspend_enabled);
  
@@@ -2436,9 -2418,6 +2418,6 @@@ void register_console(struct console *n
        if (preferred_console < 0 || bcon || !console_drivers)
                preferred_console = selected_console;
  
-       if (newcon->early_setup)
-               newcon->early_setup();
        /*
         *      See if we want to use this console driver. If we
         *      didn't select a console we take the first one
        for (i = 0, c = console_cmdline;
             i < MAX_CMDLINECONSOLES && c->name[0];
             i++, c++) {
-               BUILD_BUG_ON(sizeof(c->name) != sizeof(newcon->name));
-               if (strcmp(c->name, newcon->name) != 0)
-                       continue;
-               if (newcon->index >= 0 &&
-                   newcon->index != c->index)
-                       continue;
-               if (newcon->index < 0)
-                       newcon->index = c->index;
+               if (!newcon->match ||
+                   newcon->match(newcon, c->name, c->index, c->options) != 0) {
+                       /* default matching */
+                       BUILD_BUG_ON(sizeof(c->name) != sizeof(newcon->name));
+                       if (strcmp(c->name, newcon->name) != 0)
+                               continue;
+                       if (newcon->index >= 0 &&
+                           newcon->index != c->index)
+                               continue;
+                       if (newcon->index < 0)
+                               newcon->index = c->index;
  
-               if (_braille_register_console(newcon, c))
-                       return;
+                       if (_braille_register_console(newcon, c))
+                               return;
+                       if (newcon->setup &&
+                           newcon->setup(newcon, c->options) != 0)
+                               break;
+               }
  
-               if (newcon->setup &&
-                   newcon->setup(newcon, console_cmdline[i].options) != 0)
-                       break;
                newcon->flags |= CON_ENABLED;
-               newcon->index = c->index;
                if (i == selected_console) {
                        newcon->flags |= CON_CONSDEV;
                        preferred_console = selected_console;
This page took 0.184512 seconds and 4 git commands to generate.