21 Feb, 2012

1 commit


04 Feb, 2012

2 commits


27 Jan, 2012

3 commits


25 Jan, 2012

10 commits

  • The synchronize_rcu() call resulting from making every serial driver
    wake-up capable (commit b3b708fa) slows boot down on my Tegra2x system
    (with CONFIG_PREEMPT disabled).

    But this is avoidable since it is the device_set_wakeup_enable() and then
    subsequence disable which causes the delay. We might as well just make
    the device wakeup capable but not actually enable it for wakeup until
    needed.

    Effectively the current code does this:

    device_set_wakeup_capable(dev, 1);
    device_set_wakeup_enable(dev, 1);
    device_set_wakeup_enable(dev, 0);

    We can just drop the last two lines.

    Before this change my boot log says:
    [ 0.227062] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
    [ 0.702928] serial8250.0: ttyS0 at MMIO 0x70006040 (irq = 69) is a Tegra

    after:
    [ 0.227264] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
    [ 0.227983] serial8250.0: ttyS0 at MMIO 0x70006040 (irq = 69) is a Tegra

    for saving of 450ms.

    Suggested-by: Rafael J. Wysocki
    Acked-by: Rafael J. Wysocki
    Signed-off-by: Simon Glass
    Signed-off-by: Greg Kroah-Hartman

    Simon Glass
     
  • Protect against pl011_console_write() and the interrupt for
    the console UART running concurrently on different CPUs.

    Otherwise the console_write could spin for a long time
    waiting for the UART to become not busy, while the other
    CPU continuously services UART interrupts and keeps the
    UART busy.

    The checks for sysrq and oops_in_progress are taken
    from 8250.c.

    Cc: stable
    Signed-off-by: Rabin Vincent
    Reviewed-by: Srinidhi Kasagar
    Reviewed-by: Bibek Basu
    Reviewed-by: Shreshtha Kumar Sahu
    Signed-off-by: Linus Walleij
    Signed-off-by: Greg Kroah-Hartman

    Rabin Vincent
     
  • In present driver, shutdown clears RTS and DTR in CR register. But the
    documentation "Documentation/serial/driver" suggests not to disable
    RTS and DTR in shutdown(). Also RTS and DTR is preserved between shutdown
    and startup calls, i.e. these are restored in startup if they were enabled
    while doing shutdown. So that if RTS and DTR are set using pl011_set_mctrl
    then it should continue even after shutdown->startup sequence.
    For throttling/unthrottling user should call pl011_set_mctrl.

    Signed-off-by: Shreshtha Kumar Sahu
    Acked-by: Linus Walleij
    Acked-by: Russell King
    Signed-off-by: Greg Kroah-Hartman

    Shreshtha Kumar Sahu
     
  • It seems that when the transmit FIFO threshold is reached on OMAP
    UARTs, it does not result in a PRCM wakeup. This appears to be a
    silicon bug. This means that if the MPU powerdomain is in a low-power
    state, the MPU will not be awakened to refill the FIFO until the next
    interrupt from another device.

    The best solution, at least for the short term, would be for the OMAP
    serial driver to call a OMAP subarchitecture function to prevent the
    MPU powerdomain from entering a low power state while the FIFO has
    data to transmit. However, we no longer have a clean way to do this,
    since patches that add platform_data function pointers have been
    deprecated by the OMAP maintainer. So we attempt to work around this
    as well. The workarounds depend on the setting of CONFIG_CPU_IDLE.

    When CONFIG_CPU_IDLE=n, the driver will now only transmit one byte at
    a time. This causes the transmit FIFO threshold interrupt to stay
    active until there is no more data to be sent. Thus, the MPU
    powerdomain stays on during transmits. Aside from that energy
    consumption penalty, each transmitted byte results in a huge number of
    UART interrupts -- about five per byte. This wastes CPU time and is
    quite inefficient, but is probably the most expedient workaround in
    this case.

    When CONFIG_CPU_IDLE=y, there is a slightly more direct workaround:
    the PM QoS constraint can be abused to keep the MPU powerdomain on.
    This results in a normal number of interrupts, but, similar to the
    above workaround, wastes power by preventing the MPU from entering
    WFI.

    Future patches are planned for the 3.4 merge window to implement more
    efficient, but also more disruptive, workarounds to these problems.

    DMA operation is unaffected by this patch.

    Signed-off-by: Paul Walmsley
    Cc: Tomi Valkeinen
    Cc: Govindraj Raja
    Cc: Kevin Hilman
    Signed-off-by: Greg Kroah-Hartman

    Paul Walmsley
     
  • Ensure FIFO levels are set correctly in non-DMA mode (the default).
    This patch will cause a receive FIFO threshold interrupt to be raised when
    there is at least one byte in the RX FIFO. It will also cause a transmit
    FIFO threshold interrupt when there is only one byte remaining in the TX
    FIFO.

    These changes fix the receive interrupt problem and part of the
    transmit interrupt problem. A separate set of issues must be worked
    around for the transmit path to have a basic level of functionality; a
    subsequent patch will address these.

    DMA operation is unaffected by this patch.

    Signed-off-by: Paul Walmsley
    Cc: Tomi Valkeinen
    Cc: Govindraj Raja
    Cc: Kevin Hilman
    Signed-off-by: Greg Kroah-Hartman

    Paul Walmsley
     
  • The function serial_omap_restore_context is called only from
    serial_omap_runtime_resume which depends on CONFIG_PM_RUNTIME. Make
    serial_omap_restore_context also compile conditionally.

    if CONFIG_PM_RUNTIME is not defined below warn may be seen.

    LD net/xfrm/built-in.o
    drivers/tty/serial/omap-serial.c:1524: warning: 'serial_omap_restore_context' defined but not used
    CC drivers/tty/vt/selection.o

    Acked-by: Govindraj.R
    Signed-off-by: Shubhrajyoti D
    Signed-off-by: Greg Kroah-Hartman

    Shubhrajyoti D
     
  • The macro SET_SYSTEM_SLEEP_PM_OPS depends CONFIG_PM_SLEEP. The patch
    defines the suspend and resume functions for CONFIG_PM_SLEEP instead of
    CONFIG_SUSPEND.

    Signed-off-by: Shubhrajyoti D
    Signed-off-by: Greg Kroah-Hartman

    Shubhrajyoti D
     
  • Commit 74c2107759d (serial: Use block_til_ready helper) and its fixup
    3f582b8c110 (serial: fix termios settings in open) introduced a
    regression on UV systems. The serial eventually freezes while being
    used. It's completely unpredictable and sometimes needs a heap of
    traffic to happen first.

    To reproduce this, yast installation was used as it turned out to be
    pretty reliable in reproducing. Especially during installation process
    where one doesn't have an SSH daemon running. And no monitor as the HW
    is completely headless. So this was fun to find. Given the machine
    doesn't boot on vanilla before 2.6.36 final. (And the commits above
    are older.)

    Unless there is some bad race in the code, the hardware seems to be
    pretty broken. Otherwise pure MSR read should not cause such a bug,
    or?

    So to prevent the bug, revert to the old behavior. I.e. read modem
    status only if we really have to -- for non-CLOCAL set serials.
    Non-CLOCAL works on this hardware OK, I tried. See? I don't.

    And document that shit.

    Signed-off-by: Jiri Slaby
    Cc: stable
    References: https://lkml.org/lkml/2011/12/6/573
    References: https://bugzilla.novell.com/show_bug.cgi?id=718518
    Signed-off-by: Greg Kroah-Hartman

    Jiri Slaby
     
  • There was an error on the jsm driver that would cause it to be unable to
    recover after a second error is detected.

    At the first error, the device recovers properly:

    [72521.485691] EEH: Detected PCI bus error on device 0003:02:00.0
    [72521.485695] EEH: This PCI device has failed 1 times in the last hour:
    ...
    [72532.035693] ttyn3 at MMIO 0x0 (irq = 49) is a jsm
    [72532.105689] jsm: Port 3 added

    However, at the second error, it cascades until EEH disables the device:

    [72631.229549] Call Trace:
    ...
    [72641.725687] jsm: Port 3 added
    [72641.725695] EEH: Detected PCI bus error on device 0003:02:00.0
    [72641.725698] EEH: This PCI device has failed 3 times in the last hour:

    It was caused because the PCI state was not being saved after the first
    restore. Therefore, at the second recovery the PCI state would not be
    restored.

    Signed-off-by: Lucas Kannebley Tavares
    Signed-off-by: Breno Leitao
    Acked-by: Thadeu Lima de Souza Cascardo
    Cc: stable
    Signed-off-by: Greg Kroah-Hartman

    Lucas Kannebley Tavares
     
  • The drivers/tty/serial dir is already getting rather busy.
    Relocate the 8250 related drivers to their own subdir to
    reduce the clutter.

    Note that sunsu.c is not included in this move -- it is
    8250-like hardware, but it does not use any of the existing
    infrastructure -- and does not depend on SERIAL_8250.

    Signed-off-by: Paul Gortmaker
    Signed-off-by: Greg Kroah-Hartman

    Paul Gortmaker
     

18 Jan, 2012

1 commit

  • * 'next' of git://git.infradead.org/users/vkoul/slave-dma: (53 commits)
    ARM: mach-shmobile: specify CHCLR registers on SH7372
    dma: shdma: fix runtime PM: clear channel buffers on reset
    dma/imx-sdma: save irq flags when use spin_lock in sdma_tx_submit
    dmaengine/ste_dma40: clear LNK on channel startup
    dmaengine: intel_mid_dma: remove legacy pm interface
    ASoC: mxs: correct 'direction' of device_prep_dma_cyclic
    dmaengine: intel_mid_dma: error path fix
    dmaengine: intel_mid_dma: locking and freeing fixes
    mtd: gpmi-nand: move to dma_transfer_direction
    mtd: fix compile error for gpmi-nand
    mmc: mxs-mmc: fix the dma_transfer_direction migration
    dmaengine: add DMA_TRANS_NONE to dma_transfer_direction
    dma: mxs-dma: Don't use CLKGATE bits in CTRL0 to disable DMA channels
    dma: mxs-dma: make mxs_dma_prep_slave_sg() multi user safe
    dma: mxs-dma: Always leave mxs_dma_init() with the clock disabled.
    dma: mxs-dma: fix a typo in comment
    DMA: PL330: Remove pm_runtime_xxx calls from pl330 probe/remove
    video i.MX IPU: Fix display connections
    i.MX IPU DMA: Fix wrong burstsize settings
    dmaengine/ste_dma40: allow fixed physical channel
    ...

    Fix up conflicts in drivers/dma/{Kconfig,mxs-dma.c,pl330.c}

    The conflicts looked pretty trivial, but I'll ask people to verify them.

    Linus Torvalds
     

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
     

13 Jan, 2012

1 commit


12 Jan, 2012

2 commits

  • SH/R-Mobile updates for 3.3 merge window.

    * tag 'rmobile-for-linus' of git://github.com/pmundt/linux-sh: (32 commits)
    arm: mach-shmobile: add a resource name for shdma
    ARM: mach-shmobile: r8a7779 SMP support V3
    ARM: mach-shmobile: Add kota2 defconfig.
    ARM: mach-shmobile: Add marzen defconfig.
    ARM: mach-shmobile: r8a7779 power domain support V2
    ARM: mach-shmobile: Fix up marzen build for recent GIC changes.
    ARM: mach-shmobile: r8a7779 PFC function support
    ARM: mach-shmobile: Flush caches in platform_cpu_die()
    ARM: mach-shmobile: Allow SoC specific CPU kill code
    ARM: mach-shmobile: Fix headsmp.S code to use CPUINIT
    ARM: mach-shmobile: clock-r8a7779: clkz/clkzs support
    ARM: mach-shmobile: clock-r8a7779: add DIV4 clock support
    ARM: mach-shmobile: Marzen LAN89218 support
    ARM: mach-shmobile: Marzen SCIF2/SCIF4 support
    ARM: mach-shmobile: r8a7779 PFC GPIO-only support V2
    ARM: mach-shmobile: r8a7779 and Marzen base support V2
    sh: pfc: Unlock register support
    sh: pfc: Variable bitfield width config register support
    sh: pfc: Add config_reg_helper() function
    sh: pfc: Convert index to field and value pair
    ...

    Linus Torvalds
     
  • Paul Mundt
     

10 Jan, 2012

5 commits

  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next:
    sparc32: remove unused file: include/asm/pgtsun4.h
    sparc32: fix PAGE_SIZE definition
    sparc32: enable different preemptions models
    sparc32: support atomic64_t
    apbuart: fix section mismatch warning
    sparc32: drop useless preprocessor conditional in atomic_32.h
    sparc32: drop unused atomic24 support

    Linus Torvalds
     
  • clock management changes for i.MX

    Another simple series related to clock management, this time only for
    imx.

    * tag 'clk' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
    ARM: mxs: select HAVE_CLK_PREPARE for clock
    clk: add config option HAVE_CLK_PREPARE into Kconfig
    ASoC: mxs-saif: convert to clk_prepare/clk_unprepare
    video: mxsfb: convert to clk_prepare/clk_unprepare
    serial: mxs-auart: convert to clk_prepare/clk_unprepare
    net: flexcan: convert to clk_prepare/clk_unprepare
    mtd: gpmi-lib: convert to clk_prepare/clk_unprepare
    mmc: mxs-mmc: convert to clk_prepare/clk_unprepare
    dma: mxs-dma: convert to clk_prepare/clk_unprepare
    net: fec: add clk_prepare/clk_unprepare
    ARM: mxs: convert platform code to clk_prepare/clk_unprepare
    clk: add helper functions clk_prepare_enable and clk_disable_unprepare

    Fix up trivial conflicts in drivers/net/ethernet/freescale/fec.c due to
    commit 0ebafefcaa7a ("net: fec: add clk_prepare/clk_unprepare") clashing
    trivially with commit e163cc97f9ac ("net/fec: fix the .remove code").

    Linus Torvalds
     
  • power management changes for omap and imx

    A significant part of the changes for these two platforms went into
    power management, so they are split out into a separate branch.

    * tag 'pm' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (65 commits)
    ARM: imx6: remove __CPUINIT annotation from v7_invalidate_l1
    ARM: imx6: fix v7_invalidate_l1 by adding I-Cache invalidation
    ARM: imx6q: resume PL310 only when CACHE_L2X0 defined
    ARM: imx6q: build pm code only when CONFIG_PM selected
    ARM: mx5: use generic irq chip pm interface for pm functions on
    ARM: omap: pass minimal SoC/board data for UART from dt
    arm/dts: Add minimal device tree support for omap2420 and omap2430
    omap-serial: Add minimal device tree support
    omap-serial: Use default clock speed (48Mhz) if not specified
    omap-serial: Get rid of all pdev->id usage
    ARM: OMAP2+: hwmod: Add a new flag to handle hwmods left enabled at init
    ARM: OMAP4: PRM: use PRCM interrupt handler
    ARM: OMAP3: pm: use prcm chain handler
    ARM: OMAP: hwmod: add support for selecting mpu_irq for each wakeup pad
    ARM: OMAP2+: mux: add support for PAD wakeup interrupts
    ARM: OMAP: PRCM: add suspend prepare / finish support
    ARM: OMAP: PRCM: add support for chain interrupt handler
    ARM: OMAP3/4: PRM: add functions to read pending IRQs, PRM barrier
    ARM: OMAP2+: hwmod: Add API to enable IO ring wakeup
    ARM: OMAP2+: mux: add wakeup-capable hwmod mux entries to dynamic list
    ...

    Linus Torvalds
     
  • Device tree conversions for samsung and tegra

    Both platforms had some initial device tree support, but this adds
    much more to actually make it usable.

    * tag 'dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (45 commits)
    ARM: dts: Add intial dts file for EXYNOS4210 SoC, SMDKV310 and ORIGEN
    ARM: EXYNOS: Add Exynos4 device tree enabled board file
    rtc: rtc-s3c: Add device tree support
    input: samsung-keypad: Add device tree support
    ARM: S5PV210: Modify platform data for pl330 driver
    ARM: S5PC100: Modify platform data for pl330 driver
    ARM: S5P64x0: Modify platform data for pl330 driver
    ARM: EXYNOS: Add a alias for pdma clocks
    ARM: EXYNOS: Limit usage of pl330 device instance to non-dt build
    ARM: SAMSUNG: Add device tree support for pl330 dma engine wrappers
    DMA: PL330: Add device tree support
    ARM: EXYNOS: Modify platform data for pl330 driver
    DMA: PL330: Infer transfer direction from transfer request instead of platform data
    DMA: PL330: move filter function into driver
    serial: samsung: Fix build for non-Exynos4210 devices
    serial: samsung: add device tree support
    serial: samsung: merge probe() function from all SoC specific extensions
    serial: samsung: merge all SoC specific port reset functions
    ARM: SAMSUNG: register uart clocks to clock lookup list
    serial: samsung: remove all uses of get_clksrc and set_clksrc
    ...

    Fix up fairly trivial conflicts in arch/arm/mach-s3c2440/clock.c and
    drivers/tty/serial/Kconfig both due to just adding code close to
    changes.

    Linus Torvalds
     
  • * 'tty-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (65 commits)
    tty: serial: imx: move del_timer_sync() to avoid potential deadlock
    imx: add polled io uart methods
    imx: Add save/restore functions for UART control regs
    serial/imx: let probing fail for the dt case without a valid alias
    serial/imx: propagate error from of_alias_get_id instead of using -ENODEV
    tty: serial: imx: Allow UART to be a source for wakeup
    serial: driver for m32 arch should not have DEC alpha errata
    serial/documentation: fix documented name of DCD cpp symbol
    atmel_serial: fix spinlock lockup in RS485 code
    tty: Fix memory leak in virtual console when enable unicode translation
    serial: use DIV_ROUND_CLOSEST instead of open coding it
    serial: add support for 400 and 800 v3 series Titan cards
    serial: bfin-uart: Remove ASYNC_CTS_FLOW flag for hardware automatic CTS.
    serial: bfin-uart: Enable hardware automatic CTS only when CTS pin is available.
    serial: make FSL errata depend on 8250_CONSOLE, not just 8250
    serial: add irq handler for Freescale 16550 errata.
    serial: manually inline serial8250_handle_port
    serial: make 8250 timeout use the specified IRQ handler
    serial: export the key functions for an 8250 IRQ handler
    serial: clean up parameter passing for 8250 Rx IRQ handling
    ...

    Linus Torvalds
     

09 Jan, 2012

4 commits

  • Conflicts:
    arch/arm/mach-shmobile/clock-sh73a0.c

    Signed-off-by: Paul Mundt

    Paul Mundt
     
  • …linux into rmobile-latest

    Conflicts:
    arch/arm/mach-shmobile/Makefile

    Signed-off-by: Paul Mundt <lethal@linux-sh.org>

    Paul Mundt
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (53 commits)
    Kconfig: acpi: Fix typo in comment.
    misc latin1 to utf8 conversions
    devres: Fix a typo in devm_kfree comment
    btrfs: free-space-cache.c: remove extra semicolon.
    fat: Spelling s/obsolate/obsolete/g
    SCSI, pmcraid: Fix spelling error in a pmcraid_err() call
    tools/power turbostat: update fields in manpage
    mac80211: drop spelling fix
    types.h: fix comment spelling for 'architectures'
    typo fixes: aera -> area, exntension -> extension
    devices.txt: Fix typo of 'VMware'.
    sis900: Fix enum typo 'sis900_rx_bufer_status'
    decompress_bunzip2: remove invalid vi modeline
    treewide: Fix comment and string typo 'bufer'
    hyper-v: Update MAINTAINERS
    treewide: Fix typos in various parts of the kernel, and fix some comments.
    clockevents: drop unknown Kconfig symbol GENERIC_CLOCKEVENTS_MIGR
    gpio: Kconfig: drop unknown symbol 'CS5535_GPIO'
    leds: Kconfig: Fix typo 'D2NET_V2'
    sound: Kconfig: drop unknown symbol ARCH_CLPS7500
    ...

    Fix up trivial conflicts in arch/powerpc/platforms/40x/Kconfig (some new
    kconfig additions, close to removed commented-out old ones)

    Linus Torvalds
     
  • * 'for-linus2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (165 commits)
    reiserfs: Properly display mount options in /proc/mounts
    vfs: prevent remount read-only if pending removes
    vfs: count unlinked inodes
    vfs: protect remounting superblock read-only
    vfs: keep list of mounts for each superblock
    vfs: switch ->show_options() to struct dentry *
    vfs: switch ->show_path() to struct dentry *
    vfs: switch ->show_devname() to struct dentry *
    vfs: switch ->show_stats to struct dentry *
    switch security_path_chmod() to struct path *
    vfs: prefer ->dentry->d_sb to ->mnt->mnt_sb
    vfs: trim includes a bit
    switch mnt_namespace ->root to struct mount
    vfs: take /proc/*/mounts and friends to fs/proc_namespace.c
    vfs: opencode mntget() mnt_set_mountpoint()
    vfs: spread struct mount - remaining argument of next_mnt()
    vfs: move fsnotify junk to struct mount
    vfs: move mnt_devname
    vfs: move mnt_list to struct mount
    vfs: switch pnode.h macros to struct mount *
    ...

    Linus Torvalds
     

07 Jan, 2012

2 commits

  • Al Viro
     
  • …git-cur/linux-2.6-arm

    * 'amba-modalias' of git://ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur/linux-2.6-arm:
    sound: aaci: Enable module alias autogeneration for AMBA drivers
    watchdog: sp805: Enable module alias autogeneration for AMBA drivers
    fbdev: amba: Enable module alias autogeneration for AMBA drivers
    serial: pl011: Enable module alias autogeneration for AMBA drivers
    serial: pl010: Enable module alias autogeneration for AMBA drivers
    spi: pl022: Enable module alias autogeneration for AMBA drivers
    rtc: pl031: Enable module alias autogeneration for AMBA drivers
    rtc: pl030: Enable module alias autogeneration for AMBA drivers
    mmc: mmci: Enable module alias autogeneration for AMBA drivers
    input: ambakmi: Enable module alias autogeneration for AMBA drivers
    gpio: pl061: Enable module alias autogeneration for AMBA drivers
    dmaengine: pl330: Enable module alias autogeneration for AMBA drivers
    dmaengine: pl08x: Enable module alias autogeneration for AMBA drivers
    hwrng: nomadik: Enable module alias autogeneration for AMBA drivers
    ARM: amba: Auto-generate AMBA driver module aliases during modpost
    ARM: amba: Move definition of struct amba_id to mod_devicetable.h

    Linus Torvalds
     

05 Jan, 2012

8 commits

  • del_timer_sync() acquires its own lock and doesn't have to be nested
    within the spinlock of sport->port.lock in imx_set_termios(), which
    will cause potential deadlock. Fix this by moving it outside.

    Cc: Fabio Estevam
    Cc: Shawn Guo
    Cc: Sascha Hauer
    Cc: Greg Kroah-Hartman
    Signed-off-by: Eric Miao
    Signed-off-by: Shawn Guo
    Signed-off-by: Greg Kroah-Hartman

    Eric Miao
     
  • These methods are invoked if the iMX uart is used in conjuction with kgdb during
    early boot. In order to access the UART without the interrupts, the kernel uses
    the basic polling methods for IO with the device. With these methods
    implemented, it is now possible to enable kgdb during early boot over serial.

    Signed-off-by: Saleem Abdulrasool
    Signed-off-by: Dirk Behme
    CC: Sascha Hauer
    CC: Fabio Estevam
    CC: Uwe Kleine-Koenig
    CC: linux-serial@vger.kernel.org
    CC: Alan Cox
    Signed-off-by: Shawn Guo
    Signed-off-by: Greg Kroah-Hartman

    Saleem Abdulrasool
     
  • Factor out the uart save/restore functionality instead of
    having the same code several times in the driver.

    Signed-off-by: Dirk Behme
    CC: Saleem Abdulrasool
    CC: Sascha Hauer
    CC: Fabio Estevam
    CC: Uwe Kleine-Koenig
    CC: linux-serial@vger.kernel.org
    CC: Alan Cox
    Signed-off-by: Shawn Guo
    Signed-off-by: Greg Kroah-Hartman

    Dirk Behme
     
  • When the uart device is instantiated by dt but dt doesn't provide an
    alias then better let probing fail instead of falling back to an
    unrelated device id used for the line number and no platform data.

    Signed-off-by: Uwe Kleine-König
    Signed-off-by: Shawn Guo
    Signed-off-by: Greg Kroah-Hartman

    Uwe Kleine-König
     
  • A quick look at of_alias_get_id shows that in the error case it returns
    -ENODEV, too, but still it's better style to propagate the value as is.

    Signed-off-by: Uwe Kleine-König
    Cc: Shawn Guo
    Cc: Alan Cox
    Cc: Grant Likely
    Cc: Jeremy Kerr
    Cc: Jason Liu
    Cc: Sascha Hauer
    Acked-by: Jason Liu
    Signed-off-by: Shawn Guo
    Signed-off-by: Greg Kroah-Hartman

    Uwe Kleine-König
     
  • Allow UART to be a source for wakeup from low power mode.

    Tested on a MX27PDK by doing:

    echo enabled > /sys/devices/platform/imx21-uart.0/tty/ttymxc0/power/wakeup

    echo mem > /sys/power/state

    and then pressing a key in the console will wakeup the sytem.

    Suggested-by: Shawn Guo
    Signed-off-by: Fabio Estevam
    Tested-by: Richard Zhao
    Signed-off-by: Shawn Guo
    Signed-off-by: Greg Kroah-Hartman

    Fabio Estevam
     
  • This driver was copied from the original 8250 driver and hence
    got the DEC alpha errata workaround. But the workaround is ugly
    and we don't really want it in any more places than it absolutely
    needs to be. Obviously ARCH=m32r means ARCH != alpha, so just
    remove the references to the ALPHA_KLUDGE_MCR define.

    Signed-off-by: Paul Gortmaker
    Signed-off-by: Greg Kroah-Hartman

    Paul Gortmaker
     
  • Patch to fix a spinlock lockup in the driver that sometimes happens when the
    tasklet starts.

    Signed-off-by: Claudio Scordino
    Signed-off-by: Dave Bender
    Tested-by: Dave Bender
    Acked-by: Nicolas Ferre
    Acked-by: Alan Cox
    Cc: stable
    Signed-off-by: Greg Kroah-Hartman

    Claudio Scordino