17 Oct, 2013

1 commit

  • This deletes the .set_wake() callback in the struct uart_ops.
    Apparently this has been unused since pre-git times. In the
    old-2.6-bkcvs it is deleted as part of a changeset removing
    the PM_SET_WAKEUP from pm_request_t which is since also deleted
    from the kernel.

    The apropriate way to set wakeups in the kernel is to have a
    code snippet like this in .suspend() or .runtime_suspend()
    callbacks:

    static int foo_suspend(struct device *dev)
    {
    if (device_may_wakeup(dev)) {
    /* Enable wakeups, set internal states */
    }
    }

    This specific callback is not coming back.

    Cc: Rafael J. Wysocki
    Cc: Len Brown
    Cc: Pavel Machek
    Cc: Kevin Hilman
    Cc: Dmitry Artamonow
    Signed-off-by: Linus Walleij
    Signed-off-by: Greg Kroah-Hartman

    Linus Walleij
     

21 May, 2013

1 commit

  • Move "uart_console" definition to serial core header file, so that it can be
    used by serial drivers.
    Get rid of the uart_console defintion from mpc52xx_uart driver.

    Cc: Santosh Shilimkar
    Cc: Rajendra nayak
    Reviewed-by: Felipe Balbi
    Reviewed-by: Kevin Hilman
    Tested-by: Kevin Hilman
    Signed-off-by: Sourav Poddar
    Signed-off-by: Greg Kroah-Hartman

    Sourav Poddar
     

14 Feb, 2013

1 commit

  • The PPS (Pulse-Per-Second) line discipline has developed a number of
    unhealthy attachments to core tty data and functions, ultimately leading
    to its breakage.

    The previous patches fixed the crashing. This one reduces coupling further
    by eliminating the timestamp parameter from the dcd_change ldisc method.
    This reduces header file linkage and makes the extension more generic,
    and the timestamp read is delayed only slightly, from just before the
    ldisc->ops->dcd_change method call to just after.

    Fix attendant build breakage in
    drivers/tty/n_tty.c
    drivers/tty/tty_buffer.c
    drivers/staging/speakup/selection.c
    drivers/staging/dgrp/dgrp_*.c

    Cc: William Hubbs
    Cc: Chris Brannon
    Cc: Kirk Reiser
    Cc: Samuel Thibault
    Signed-off-by: Peter Hurley
    Signed-off-by: George Spelvin
    Acked-by: Rodolfo Giometti
    Signed-off-by: Greg Kroah-Hartman

    George Spelvin
     

30 Jan, 2013

1 commit


16 Jan, 2013

3 commits

  • Signed-off-by: Kevin Cernekee
    Acked-by: Alan Cox
    Signed-off-by: Greg Kroah-Hartman

    Kevin Cernekee
     
  • Now that support for RM9000 and platforms based on it has been removed,
    remove the serial driver for it as well. It's really only been a quirk
    for an almost 8250 compatible UART anyway.

    Signed-off-by: Ralf Baechle

    drivers/tty/serial/8250/8250.c | 70 +----------------------------------------
    drivers/tty/serial/8250/Kconfig | 9 ------
    include/linux/serial_core.h | 1 -
    3 files changed, 1 insertion(+), 79 deletions(-)
    Signed-off-by: Greg Kroah-Hartman

    Ralf Baechle
     
  • The serial core is using power states lifted from ACPI for no
    good reason. Remove this reference from the documentation and
    alter all users to use an enum specific to the serial core
    instead, and define it in .

    Signed-off-by: Linus Walleij
    Acked-by: Alan Cox
    Reviewed-by: Daniel Lezcano
    Signed-off-by: Greg Kroah-Hartman

    Linus Walleij
     

04 Nov, 2012

3 commits


13 Oct, 2012

1 commit


27 Sep, 2012

2 commits

  • It was noticed that polling drivers (like KGDB) are not able to use
    serial ports if the ports were not previously initialized via console.
    I.e. when booting with console=ttyAMA0 kgdboc=ttyAMA0, everything works
    fine, but with console=ttyFOO kgdboc=ttyAMA0, the kgdboc doesn't work.

    This is because we don't initialize the hardware. Calling ->startup() is
    not an option, because drivers request interrupts there, and drivers
    fail to handle situations when tty isn't opened with interrupts enabled.

    So, we have to implement a new callback (actually, tty_ops already have
    a similar callback), which does everything needed to initialize just the
    hardware.

    Signed-off-by: Anton Vorontsov
    Acked-by: Alan Cox
    Signed-off-by: Greg Kroah-Hartman

    Anton Vorontsov
     
  • The legacy serial driver will detect the Winbond CIR device as a serial
    port, since it looks exactly like a serial port unless you know what
    it is from the PNP ID.

    Here we track this port as a special PORT_8250_CIR type, preventing the
    legacy serial driver from probing it.

    Signed-off-by: Sean Young
    Acked-by: Alan Cox
    Signed-off-by: Greg Kroah-Hartman

    Sean Young
     

17 Aug, 2012

1 commit

  • This driver is a replacement for a MAX3107 driver with a lot of
    improvements and new features.
    The main differences from the old version:
    - Using the regmap.
    - Using devm_XXX-related functions.
    - The use of threaded IRQ with IRQF_ONESHOT flag allows the driver to
    the hardware that supports only level IRQ.
    - Improved error handling of serial port, improved FIFO handling,
    improved hardware & software flow control.
    - Advanced flags allows turn on RS-485 mode (Auto direction control).
    - Ability to load multiple instances of drivers.
    - Added support for MAX3108.
    - GPIO support.
    - Driver is quite ready for adding I2C support and support other ICs
    with compatible registers set (MAX3109, MAX14830).

    Signed-off-by: Alexander Shiyan
    Signed-off-by: Greg Kroah-Hartman

    Alexander Shiyan
     

13 Jun, 2012

1 commit

  • LPC32xx has "Standard" UARTs that are actually 16550A compatible but have
    bigger FIFOs. Since the already supported 16X50 line still doesn't match here,
    we agreed on adding a new type.

    Signed-off-by: Roland Stigge
    Acked-by: Alan Cox
    Acked-by: Arnd Bergmann
    Signed-off-by: Greg Kroah-Hartman

    Roland Stigge
     

19 Apr, 2012

2 commits

  • This allows us to pick up some changes needed for other serial patches.

    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     
  • The "KT" serial port has another use case for a "received break" quirk,
    so before adding another special case to the 8250 core take this
    opportunity to push such quirks out of the core and into a uart_port op.

    Stephen says:
    "If the callback function is to no longer live in 8250.c itself,
    arch/arm/mach-tegra/devices.c isn't logically a good place to put it,
    and that file will be going away once we get rid of all the board files
    and move solely to device tree."

    ...so since 8250_pci.c houses all the quirks for pci serial devices this
    quirk is similarly housed in of_serial.c. Once the open firmware
    conversion completes the infrastructure details
    (include/linux/of_serial.h, and the export) can all be removed to make
    this self contained to of_serial.c.

    Cc: Nhan H Mai
    Cc: Colin Cross
    Cc: Olof Johansson
    [stephen: kill CONFIG_SERIAL_TEGRA in favor just using CONFIG_ARCH_TEGRA]
    Cc: Grant Likely
    Acked-by: Arnd Bergmann
    Acked-by: Sudhakar Mamillapalli
    Reported-by: Alan Cox
    Acked-by: Alan Cox
    Signed-off-by: Dan Williams
    Acked-by: Stephen Warren
    Tested-by: Stephen Warren
    Signed-off-by: Greg Kroah-Hartman

    Dan Williams
     

10 Apr, 2012

2 commits

  • Workaround dropped notifications in the iir register. Register reads
    coincident with new interrupt notifications sometimes result in this
    device clearing the interrupt event without reporting it in the read
    data.

    The serial core already has a heuristic for determining when a device
    has an untrustworthy iir register. In this case when we apriori know
    that the iir is faulty use a flag (UPF_BUG_THRE) to bypass the test and
    force usage of the background timer.

    [stable: 3.3.x]
    Acked-by: Alan Cox
    Cc: stable
    Reported-by: Nhan H Mai
    Reported-by: Sudhakar Mamillapalli
    Tested-by: Nhan H Mai
    Tested-by: Sudhakar Mamillapalli
    Signed-off-by: Dan Williams
    Signed-off-by: Greg Kroah-Hartman

    Dan Williams
     
  • This reverts commit 448ac154c957c4580531fa0c8f2045816fe2f0e7.

    The semantic of UPF_IIR_ONCE is only guaranteed to workaround the race
    condition in the kt serial's iir register if the only source of
    interrupts is THRE (fifo-empty) events. An modem status event at the
    wrong time can again cause an iir read to drop the 'empty' status
    leading to a hang. So, revert this in preparation for using the
    existing "I don't trust my iir register" workaround in the 8250 core
    (UART_BUG_THRE).

    [stable: 3.3.x]
    Cc: stable
    Acked-by: Alan Cox
    Cc: Sudhakar Mamillapalli
    Reported-by: Nhan H Mai
    Signed-off-by: Dan Williams
    Signed-off-by: Greg Kroah-Hartman

    Dan Williams
     

10 Mar, 2012

1 commit

  • Looking at the existing serial drivers (esp. the 8250 derived
    variants) we see a common trend. They create a hardware specific
    port struct, which in turn contains a generic serial_port struct.

    The other trend, is that they all create some sort of shortcut
    to go through the hardware specific struct, to the serial_port
    struct, which has the basic in/out operations within. Looking
    for the serial_in and serial_out in several drivers shows this.

    Rather than let this continue, lets create a generic set of
    similar helper wrappers that can be used on a struct port, so
    we can eliminate bouncing out through hardware specific struct
    pointers just to come back into struct port where possible.

    Signed-off-by: Paul Gortmaker
    Acked-by: Alan Cox
    Signed-off-by: Greg Kroah-Hartman

    Paul Gortmaker
     

27 Jan, 2012

1 commit


15 Jan, 2012

1 commit

  • * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (119 commits)
    MIPS: Delete unused function add_temporary_entry.
    MIPS: Set default pci cache line size.
    MIPS: Flush huge TLB
    MIPS: Octeon: Remove SYS_SUPPORTS_HIGHMEM.
    MIPS: Octeon: Add support for OCTEON II PCIe
    MIPS: Octeon: Update PCI Latency timer and enable more error reporting.
    MIPS: Alchemy: Update cpu-feature-overrides
    MIPS: Alchemy: db1200: Improve PB1200 detection.
    MIPS: Alchemy: merge Au1000 and Au1300-style IRQ controller code.
    MIPS: Alchemy: chain IRQ controllers to MIPS IRQ controller
    MIPS: Alchemy: irq: register pm at irq init time
    MIPS: Alchemy: Touchscreen support on DB1100
    MIPS: Alchemy: Hook up IrDA on DB1000/DB1100
    net/irda: convert au1k_ir to platform driver.
    MIPS: Alchemy: remove unused board headers
    MTD: nand: make au1550nd.c a platform_driver
    MIPS: Netlogic: Mark Netlogic chips as SMT capable
    MIPS: Netlogic: Add support for XLP 3XX cores
    MIPS: Netlogic: Merge some of XLR/XLP wakup code
    MIPS: Netlogic: Add default XLP config.
    ...

    Fix up trivial conflicts in arch/mips/kernel/{perf_event_mipsxx.c,
    traps.c} and drivers/tty/serial/Makefile

    Linus Torvalds
     

08 Dec, 2011

1 commit

  • This patch adds the driver for the built-in UART of the
    Atheros AR933X SoCs.

    Signed-off-by: Gabor Juhos
    Cc: linux-mips@linux-mips.org
    Cc: Kathy Giori
    Cc: "Luis R. Rodriguez"
    Cc: Alan Cox
    Cc: linux-serial@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/2526/
    Signed-off-by: Alan Cox
    Signed-off-by: Ralf Baechle

    Gabor Juhos
     

27 Nov, 2011

1 commit


16 Nov, 2011

1 commit

  • There are some functions (uart_handle_dcd_change, _handle_cts_change,
    _insert_char) which are big enough to not be inlined. So move them
    from .h to .c. We need to export them so that modules can actually use
    them.

    They will be even bigger when we introduce tty refcounting to them.

    While at it, cleanup the "Proud member of Uglyhacks'R'US". It means,
    define uart_handle_sysrq_char only when SUPPORT_SYSRQ is set.
    Otherwise define it as a macro. This is needed for some arm driver
    where the second parameter is undefined if expanded.

    Signed-off-by: Jiri Slaby
    Cc: Alan Cox
    Signed-off-by: Greg Kroah-Hartman

    Jiri Slaby
     

23 Sep, 2011

1 commit

  • The EFR (Enhenced-Features-Register) is located at a different offset
    than the other devices supporting UART_CAP_EFR. This change add a special
    setup quick to set UPF_EXAR_EFR on the port. UPF_EXAR_EFR is then used to
    the port type to PORT_XR17D15X since it is for sure a XR17D15X uart.

    Signed-off-by: Søren Holm
    Acked-by: Alan Cox
    Signed-off-by: Greg Kroah-Hartman

    Søren Holm
     

24 Aug, 2011

3 commits

  • Now that platforms can override the port IRQ handler and the only user
    of these UPIO modes has been converted over, kill off UPIO_DWAPB and
    UPIO_DWAPB32.

    Acked-by: Alan Cox
    Signed-off-by: Jamie Iles
    Signed-off-by: Greg Kroah-Hartman

    Jamie Iles
     
  • Some serial ports may have unusal requirements for interrupt handling
    (e.g. the Synopsys DesignWare 8250-alike port and it's busy detect
    interrupt). Add a .handle_irq callback that can be used for platforms
    to override the interrupt behaviour in a similar fashion to the
    .serial_out and .serial_in callbacks.

    Signed-off-by: Jamie Iles
    Acked-by: Alan Cox
    Signed-off-by: Greg Kroah-Hartman

    Jamie Iles
     
  • tty_wakeup can be called from any context. So there is no need to have
    an extra tasklet for calling that. Hence save some space and remove
    the tasklet completely.

    Signed-off-by: Jiri Slaby
    Cc: Alan Cox
    Signed-off-by: Greg Kroah-Hartman

    Jiri Slaby
     

20 May, 2011

1 commit

  • Tegra's UART is currently auto-detected as PORT_XSCALE due to register
    bit UART_IER.UUE being writable. However, the Tegra documentation states
    that this register bit is reserved. Hence, we should not program it.

    Instead, the documentation specifies that the UART is 16550 compatible.
    However, Tegra does need register bit UART_IER.RTOIE set, which is not
    enabled by any 16550 port type. This was not noticed before, since
    PORT_XSCALE enables CAP_UUE, which conflates both UUE and RTOIE bit
    programming.

    This change defines PORT_TEGRA that doesn't set UART_CAP_UUE, but does
    set UART_CAP_RTOIE, which is a new capability indicating that the RTOIE
    bit needs to be enabled.

    Based-on-code-by: Laxman Dewangan
    Cc: Laxman Dewangan
    Signed-off-by: Stephen Warren
    Acked-by: Alan Cox
    Signed-off-by: Greg Kroah-Hartman

    Stephen Warren
     

04 May, 2011

1 commit


14 Jan, 2011

1 commit


17 Dec, 2010

1 commit


11 Dec, 2010

1 commit

  • Some platforms contain a Synopsys DesignWare APB UART that is attached
    to a 32-bit APB bus where sub-word accesses are not allowed. Add a new
    IO type (UPIO_DWAPB32) that performs 32 bit acccesses to the UART.

    v2:
    - don't test for 32 bit in the output fast path, provide a
    separate dwabp32_serial_out() function. Refactor
    dwabp_serial_out() so that we can reuse the LCR saving
    code.
    v3:
    - rebased on top of "8250: use container_of() instead of
    casting"

    Signed-off-by: Jamie Iles
    Signed-off-by: Greg Kroah-Hartman

    Jamie Iles
     

17 Nov, 2010

1 commit


12 Nov, 2010

1 commit

  • This adds a driver for the serial ports found in VIA and WonderMedia
    Systems-on-Chip. Interrupt-driven FIFO operation is implemented.
    The hardware also supports pure register-based operation (which is
    slower) and DMA-based FIFO operation. As the FIFOs are only 16 bytes
    long, DMA operation is probably not worth the hassle.

    Signed-off-by: Alexey Charkov
    Signed-off-by: Greg Kroah-Hartman

    Alexey Charkov
     

26 Oct, 2010

1 commit

  • * 'omap-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6: (163 commits)
    omap: complete removal of machine_desc.io_pg_offst and .phys_io
    omap: UART: fix wakeup registers for OMAP24xx UART2
    omap: Fix spotty MMC voltages
    ASoC: OMAP4: MCPDM: Remove unnecessary include of plat/control.h
    serial: omap-serial: fix signess error
    OMAP3: DMA: Errata i541: sDMA FIFO draining does not finish
    omap: dma: Fix buffering disable bit setting for omap24xx
    omap: serial: Fix the boot-up crash/reboot without CONFIG_PM
    OMAP3: PM: fix scratchpad memory accesses for off-mode
    omap4: pandaboard: enable the ehci port on pandaboard
    omap4: pandaboard: Fix the init if CONFIG_MMC_OMAP_HS is not set
    omap4: pandaboard: remove unused hsmmc definition
    OMAP: McBSP: Remove null omap44xx ops comment
    OMAP: McBSP: Swap CLKS source definition
    OMAP: McBSP: Fix CLKR and FSR signal muxing
    OMAP2+: clock: reduce the amount of standard debugging while disabling unused clocks
    OMAP: control: move plat-omap/control.h to mach-omap2/control.h
    OMAP: split plat-omap/common.c
    OMAP: McBSP: implement functional clock switching via clock framework
    OMAP: McBSP: implement McBSP CLKR and FSR signal muxing via mach-omap2/mcbsp.c
    ...

    Fixed up trivial conflicts in arch/arm/mach-omap2/
    {board-zoom-peripherals.c,devices.c} as per Tony

    Linus Torvalds
     

23 Oct, 2010

2 commits


30 Sep, 2010

1 commit

  • This patch adds driver support for OMAP2/3/4 high speed UART.

    The driver is made separate from 8250 driver as we cannot
    over load 8250 driver with omap platform specific configuration for
    features like DMA, it makes easier to implement features like DMA and
    hardware flow control and software flow control configuration with
    this driver as required for the omap-platform.
    This patch involves only the core driver and its dependent.

    Cc: Tony Lindgren
    Signed-off-by: Govindraj.R
    Acked-by: Alan Cox
    Acked-by: Greg Kroah-Hartman
    Signed-off-by: Kevin Hilman

    Govindraj.R