Get index of serial line from device tree using function of_alias_get_id().
If no alias is found, the 8250 core takes care of incrementing the line number.
Signed-off-by: Julien CHAUVEAU <julien.chauveau@neo-technologies.fr>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
The general agreed way to specify a fixed line number
for a serial console is to provide a "serial" alias
in the devicetree. Start parsing this property in
of_serial.
Signed-off-by: Lucas Stach <dev@lynxeye.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Check the return value of ioremap_nocache to make sure we got a
valid mapping.
Signed-off-by: Aaron Sierra <asierra@xes-inc.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This adds 32-bit register lpuart32 power management support,
this also updates the 8-bit register lpuart resume function.
Signed-off-by: Jingchang Lu <jingchang.lu@freescale.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
We are removing the dmaengine_device_control API, that shouldn't even have been
exposed in the first place. Change the callers to use the proper API.
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
In mtk8250_set_termios function, calculating quot value can not be zero,
otherwise, using DIV_ROUND_CLOSEST(port->uartclk, quot * baud) will fail due to
divisor is zero.
Signed-off-by: Eddie Huang <eddie.huang@mediatek.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
I wrote this driver and use it daily on several machines for work, so
why not.
Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
Acked-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
We don't really need to perform the ioremap "on demand" so it's simpler
just to do it from the probe function. This also lets us eliminate the
UART_REG_SIZE constant and rely on the resource information passed in
from the DT or platform code.
Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This enables early console output if there is a chosen/stdout-path
property referencing a UART node with the "brcm,bcm6345-uart" compatible
string. The bootloader sets up the pinmux and baud/parity/etc.
Tested on bcm3384 (MIPS, DT).
Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This squashes a checkpatch warning on my new bcm3384 dts submission.
Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Remove incorrect "bcm963xx_uart" module name; add a list of known users;
tweak grammar/indentation/capitalization.
Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
Acked-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
The original non-DT bcm63xx clk code ignores the struct device argument
and looks up a global clock name. DT platforms, by contrast, often just
use a phandle to reference a clock node with no "clock-output-names"
property. Modify the UART driver to support both schemes.
Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This device was originally supported on bcm63xx only, but it shows up on
a wide variety of MIPS and ARM chipsets spanning multiple product lines.
Now that the driver has eliminated dependencies on bcm63xx-specific
header files, we can build it on any non-bcm63xx kernel.
Compile-tested on x86, both statically and as a module. Tested for
functionality on bcm3384 (a new MIPS platform under active development).
Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
Acked-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
For the console poll usage, .poll_init() will perform deeper hardware
initialization to ensure the serial port is always active.
Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>
Signed-off-by: Dirk Behme <dirk.behme@de.bosch.com>
Cc: Jiri Slaby <jslaby@suse.cz>
Cc: Huang Shijie <b32955@freescale.com>
Cc: linux-serial@vger.kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
imx_put_poll_char() has been simplified to remove the code to disable
interrupts. The present code can corrupt register state when re-entered
from FIQ handler.
Switch to _relaxed() MMIO functions (which are safe for polled I/O and
needed to avoid taking spin locks).
Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>
Signed-off-by: Dirk Behme <dirk.behme@de.bosch.com>
Cc: Jiri Slaby <jslaby@suse.cz>
Cc: Huang Shijie <b32955@freescale.com>
Cc: linux-serial@vger.kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
We rely on probe order of this driver to determine the line number for
the uart port. This makes it impossible to know the line number
when these devices are populated via DT. Use the DT alias
mechanism to assign the line based on the aliases node.
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
We need to issue a reset if we ever change the value of the IPR
register on DM hardware. If we don't reset the hardware the RX
stale interrupt never triggers and the only way to trigger an RX
handling event is by filling up the fifo. This causes things like
getty to not work so well considering it might change the baud
rate a few times. Fix this by moving the reset on startup and any
reprogramming required after the reset to be after we change the
baud rate.
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To properly support sysrq on uartDM hardware we need to properly
handle break characters. With the DM hardware the fifo can pack 4
characters at a time, where a break is indicated by an all zero
byte. Unfortunately, we can't differentiate between an all zero
byte for a break and an all zero byte of data, so try and do as
best we can. First unmask the RX break start interrupt and record
the interrupt when it arrives. Then while processing the fifo,
detect the break by searching for an all zero character as long
as we recently received an RX break start interrupt. This should
make sysrq work fairly well.
Cc: Frank Rowand <frank.rowand@sonymobile.com>
Cc: Daniel Thompson <daniel.thompson@linaro.org>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Enables PPS support in mxs-auart serial driver to make PPS API working.
Signed-off-by: Janusz Uzycki <j.uzycki@elproma.com.pl>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Dedicated CTS and RTS pins are unusable together with a lot of other
peripherals because they share the same line. Pinctrl is limited.
Moreover, the AUART controller doesn't handle DTR/DSR/DCD/RI signals,
so we have to control them via GPIO.
This patch permits to use GPIOs to control the CTS/RTS/DTR/DSR/DCD/RI
signals.
Signed-off-by: Janusz Uzycki <j.uzycki@elproma.com.pl>
Reviewed-by: Richard Genoud <richard.genoud@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Russell King:
The only thing which the .get_mctrl method is supposed to do is
to return the state of the /input/ lines, which are CTS, DCD, DSR, RI.
The output line state is stored in port->mctrl, and is added to
the returned value by serial_core when it's required.
RTS output state should not be returned from the .get_mctrl method.
This patch removes ctrl variable from mxs_auart_port
and removes useless reading back RTS line.
The ctrl variable in mxs_auart_port duplicated mctrl,
member of uart_port structure in serial_core.h.
The removed code from mxs_auart_set_mctrl() and mxs_auart_get_mctrl
duplicated uart_update_mctrl() and uart_tiocmget()
in serial_core.c.
Signed-off-by: Janusz Uzycki <j.uzycki@elproma.com.pl>
Reviewed-by: Richard Genoud <richard.genoud@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This patch swaps the use "tail" and "head" to fit the semantic of the linux
circular buffer documentation:
- head: the point at which the producer (the DMA controller) inserts items.
- tail: the point at which the consumer (the serial framework) finds the next
item.
Besides the former code of the rx ring buffer didn't manage the case where
head < tail, which might lead to loss of data. To fix this bug the data are now
sent from the DMA buffer to the serial framework in two steps:
1 - First, we test if head < tail. If so, we copy the data from tail to the end
of the DMA buffer then reset tail to zero.
2 - Finally, we copy data from tail to head then set tail to head.
In addition, since tty_insert_flip_string() may now be called twice,
atmel_flip_buffer_rx_dma() becomes less efficient than moving the calls
dma_sync_sg_for_cpu(), dma_sync_sg_for_device(), tty_insert_flip_string() and
tty_flip_buffer_push() directly into atmel_rx_from_dma().
Signed-off-by: Cyrille Pitchen <cyrille.pitchen@atmel.com>
Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Add the config symbol for Mediatek MT7620 SoC to the SERIAL_8250_RT288X
dependencies.
Signed-off-by: John Crispin <blogic@openwrt.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
The Ralink RT2880 SoC and its successors have an internal 8250 core. This core
needs the same quirks applied as the AMD AU1xxx uart. In addition to these
quirks, the ports memory region is only 0x100 unlike the AU1xxx which has a
size of 0x1000.
Signed-off-by: John Crispin <blogic@openwrt.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
The bulkstat main loop progress is tracked by the "lastino"
variable, which is a full 64 bit inode. However, the loop actually
works on agno/agino pairs, and so there's a significant disconnect
between the rest of the loop and the main cursor. Convert this to
use the agino, and pass the agino into the chunk formatting function
and convert it too.
This gets rid of the inconsistency in the loop processing, and
finally makes it simple for us to skip inodes at any point in the
loop simply by incrementing the agino cursor.
cc: <stable@vger.kernel.org> # 3.17
Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Brian Foster <bfoster@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
The error propagation is a horror - xfs_bulkstat() returns
a rval variable which is only set if there are formatter errors. Any
sort of btree walk error or corruption will cause the bulkstat walk
to terminate but will not pass an error back to userspace. Worse
is the fact that formatter errors will also be ignored if any inodes
were correctly formatted into the user buffer.
Hence bulkstat can fail badly yet still report success to userspace.
This causes significant issues with xfsdump not dumping everything
in the filesystem yet reporting success. It's not until a restore
fails that there is any indication that the dump was bad and tha
bulkstat failed. This patch now triggers xfsdump to fail with
bulkstat errors rather than silently missing files in the dump.
This now causes bulkstat to fail when the lastino cookie does not
fall inside an existing inode chunk. The pre-3.17 code tolerated
that error by allowing the code to move to the next inode chunk
as the agino target is guaranteed to fall into the next btree
record.
With the fixes up to this point in the series, xfsdump now passes on
the troublesome filesystem image that exposes all these bugs.
cc: <stable@vger.kernel.org>
Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Brian Foster <bfoster@redhat.com>
There are a bunch of variables tha tare more wildy scoped than they
need to be, obfuscated user buffer checks and tortured "next inode"
tracking. This all needs cleaning up to expose the real issues that
need fixing.
cc: <stable@vger.kernel.org> # 3.17
Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Brian Foster <bfoster@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
The loop construct has issues:
- clustidx is completely unused, so remove it.
- the loop tries to be smart by terminating when the
"freecount" tells it that all inodes are free. Just drop
it as in most cases we have to scan all inodes in the
chunk anyway.
- move the "user buffer left" condition check to the only
point where we consume space int eh user buffer.
- move the initialisation of agino out of the loop, leaving
just a simple loop control logic using the clusteridx.
Also, double handling of the user buffer variables leads to problems
tracking the current state - use the cursor variables directly
rather than keeping local copies and then having to update the
cursor before returning.
cc: <stable@vger.kernel.org> # 3.17
Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Brian Foster <bfoster@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
The xfs_bulkstat_agichunk formatting cursor takes buffer values from
the main loop and passes them via the structure to the chunk
formatter, and the writes the changed values back into the main loop
local variables. Unfortunately, this complex dance is full of corner
cases that aren't handled correctly.
The biggest problem is that it is double handling the information in
both the main loop and the chunk formatting function, leading to
inconsistent updates and endless loops where progress is not made.
To fix this, push the struct xfs_bulkstat_agichunk outwards to be
the primary holder of user buffer information. this removes the
double handling in the main loop.
Also, pass the last inode processed by the chunk formatter as a
separate parameter as it purely an output variable and is not
related to the user buffer consumption cursor.
Finally, the chunk formatting code is not shared by anyone, so make
it local to xfs_itable.c.
cc: <stable@vger.kernel.org> # 3.17
Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Brian Foster <bfoster@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
The bulkstat code has several different ways of detecting the end of
an AG when doing a walk. They are not consistently detected, and the
code that checks for the end of AG conditions is not consistently
coded. Hence the are conditions where the walk code can get stuck in
an endless loop making no progress and not triggering any
termination conditions.
Convert all the "tmp/i" status return codes from btree operations
to a common name (stat) and apply end-of-ag detection to these
operations consistently.
cc: <stable@vger.kernel.org> # 3.17
Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Brian Foster <bfoster@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
XFS doesn't always hold i_mutex when calling truncate_setsize() and it
uses a different lock to serialize truncates and writes. So fix the
comment before truncate_setsize().
Reported-by: Jan Beulich <JBeulich@suse.com>
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Dave Chinner <david@fromorbit.com>
Add new quirk for devices that cannot handle control-line state
requests.
Note that we currently send these requests to all devices, regardless of
whether they claim to support it, but that errors are only logged if
support is claimed.
Since commit 0943d8ead3 ("USB: cdc-acm: use tty-port dtr_rts"), which
only changed the timings for these requests slightly, this has been
reported to cause occasional firmware crashes on Simtec Electronics
Entropy Key devices after re-enumeration. Enable the quirk for this
device.
Reported-by: Nix <nix@esperi.org.uk>
Tested-by: Nix <nix@esperi.org.uk>
Cc: stable <stable@vger.kernel.org> # v3.16
Signed-off-by: Johan Hovold <johan@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
A single fix this for dwc2 this time. Because of
excessive debugging messages, dwc2 would sometimes
fail enumeration. The fix is simple, just converting
a dev_info() into dev_dbg().
Signed-off-by: Felipe Balbi <balbi@ti.com>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABAgAGBQJUW7HpAAoJEIaOsuA1yqREZKkP/j7o3Cyvkr7bW7I5N2mNNo3R
58hC+u8LcGMn3Q8YGoDGkVxGtM2OmXkorqAvWoEaM21LVHjl06zwAngoKNL/1Qm+
UPg4zvXGsKGqj+4cDb+SOKnIfNeMWHdwd0BmlSxrb+CnIQOxB7629R1XbhsWvZhS
Sf0h5p6zCUSC9A3poYeYtq7e/0yDBG345It9NzQgsXs1AqzTrcAgt1D9yyRSmRuZ
ADVgJrKto4gBBGK3jRhFzBBfdoUYHeL9mwXVogKUoOR+VLqfC0VmrwfKYqBx5kXW
2l2vIAv0mHWi/zBN1hfAcc53i1tOo0inxJnUep1Jfl8c/A8eb64lUPUCwoR22j3X
a3IC7LDHn+qO+Bx+DLvnKkapYtWjre9t+vglY16HH0QpE8ldqr/HOE5CAQP6EXRJ
nYLpVI0NDDwQGo16cs74jdRa/bUzT2OE2yh+Q78Nx8BrE87DsRh8jsniFnQ9coMP
Dxn0RKIRg6KpWHOl2qi77uSRf9XO4oG+tcgqvoU3UzD+fREGHHLD9Q46+caDhDkp
uX0kw5tIifUvdhFBJK/ev/R7yljOcd+91zfgeZjyBG0ZgcHRW3iod6NhJ/mmDcmo
n8c3TUMO9tTQvozp5KTx5/aPlkGVvva41Rkpg/6UBDuoiMhZithvYwvG1Wj0YSj9
SV1i9kNe+F1fybwfx+k9
=egWd
-----END PGP SIGNATURE-----
Merge tag 'fixes-for-v3.18-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb into usb-linus
Felipe writes:
usb: fixes for v3.18-rc4
A single fix this for dwc2 this time. Because of
excessive debugging messages, dwc2 would sometimes
fail enumeration. The fix is simple, just converting
a dev_info() into dev_dbg().
Signed-off-by: Felipe Balbi <balbi@ti.com>
Commit f95499c303 ("n_tty: Don't wait for buffer work in read() loop")
introduces a race window where a pty master can be signalled that the pty
slave was closed before all the data that the slave wrote is delivered.
Commit f8747d4a46 ("tty: Fix pty master read() after slave closes") fixed the
problem in case of n_tty_read, but the problem still exists for n_tty_poll.
This can be seen by running 'for ((i=0; i<100;i++));do ./test.py ;done'
where test.py is:
import os, select, pty
(pid, pty_fd) = pty.fork()
if pid == 0:
os.write(1, 'This string should be received by parent')
else:
poller = select.epoll()
poller.register( pty_fd, select.EPOLLIN )
ready = poller.poll( 1 * 1000 )
for fd, events in ready:
if not events & select.EPOLLIN:
print 'missed POLLIN event'
else:
print os.read(fd, 100)
poller.close()
The string from the slave is missed several times.
This patch takes the same approach as the fix for read and special cases
this condition for poll.
Tested on 3.16.
Signed-off-by: Francesco Ruggeri <fruggeri@arista.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Two fixes of non-atomic allocations in write paths.
Signed-off-by: Johan Hovold <johan@kernel.org>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAABAgAGBQJUW65SAAoJEEEN5E/e4bSVgf4QAK3o9qhiLD01fK8kIpRbh8jB
joRKQRY6X+cOp6twlZrZChtqCkbMHtoZHvmhxRhkD8oj/qE1AeYhdUyq71aVm64R
GMJDmFawEkPHuvIZ/dlzzuhrbugZf6TBtjFBfVzHtpyMm0wJu8ogtml3R5MgDhut
WWWdKUq0D1yi9otDAaFCEkca3P5z+qeDpkLzETmwMIqzheGp1gbCpWXFTM51KUS8
KP4t1HliVGXapBtF+vuvc2jmjqxm+Yfeyp43iR8yMiUShpXUgOw9/D1qSdZK2PPj
JJTeUyAso0sZnWDB62TSe54stm7Bacfg802/GHMPdkprYINzNKWpRw3mKrvOI5HZ
sDBbpz6SxTdHtzIQw/IHvhZLk1F2sb0Fk/PmN7r5yNRvSB6zebAVGLWl70RT3d82
aawvzuMoKp54/YNGCByvqKvrFXl61PRRwVYyoKVRiTxT8vlSdlxReAwVDCWcukqI
1IshcUN6oLZmQ/tgQYlaA6f6wtBCCz73ZPxm2cYvJiBisCYGN0Y5CBL7faB/ocW8
+2kv5/rKyQD9bzTJTB9F0FdSqiM0hd9W7DVuuNFS8Nhp4KTP6ez6pASic0us8vkE
bbF2kOdepu46/dDKyX7HchIy0Ek/tL2f3qWSJ/AHiSRXPjwOJ9t9sjSpLWDuCya1
w5nEVbGmlq/arjbQ5emg
=QlS+
-----END PGP SIGNATURE-----
Merge tag 'usb-serial-3.18-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial into usb-linus
Johan writes:
USB-serial fixes for v3.18-rc4
Two fixes of non-atomic allocations in write paths.
Signed-off-by: Johan Hovold <johan@kernel.org>
Enumeration
- Don't oops on virtual buses in acpi_pci_get_bridge_handle() (Yinghai Lu)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABAgAGBQJUW8JBAAoJEFmIoMA60/r8Kp8P/A7B0T0dC9ZLMdSvbwQy7ynn
OAUjsbhGj8l1aL51rc/VISaZjaSMIFXUZtst329D/bQYvzqiaWv14K2ib5h8PlA7
8cpZAMQMxs+GClbCX2CsPK7WKzL65tSc9biiSgtdId0ii/GVN8X6GDJNwMtjNHwB
6Fku1wfFgekA9LlRga8ZGJ7XD1MYCH5eAvxJ6qWjO+IshELpH7ya4Nm9pyo/z0oQ
nIKqIbcHVV6sxhRAV8eGHycU/DFPXnYtfJ9htep6xhxnvEV5yZgSi/EK0CA29re3
AWRAZHN1fOA2GI/ALKskytLqf9mbOtl17OZY9a3M3e4P9Aw1L119L5WbJ2B6XZF3
JYrrdSubhHqCzGRaxrJpG4HmdWqli1BdHyZY8sLCeVeQdvs5yucnbtZ4PuYShBDH
1JEn1VvZ4/4daluni603uBpig1i5OHeks5OeGOe25T87SBQ5pnn57s/qIEHz4lGB
MfkyVdz7RxvN+vqieYAHDEYhd57nXI1tpMAngm+cM/O2hBvZdXlGN23JZ9SIQR19
Ub14SYRyXH9cjh1uRlX0+Mn3bLnWS8uXGwDrxHMjJCl4IA8vpFnLCB8LDz8bZ6Ox
DNSMzYB2++xzufon1aCxLNJ6P2AkfB4ecgeqixFgpy7JRfdZamKdkjVmcBswrWGp
dYz8b/TKUTasBP+6vSV/
=n1pR
-----END PGP SIGNATURE-----
Merge tag 'pci-v3.18-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci
Pull PCI fix from Bjorn Helgaas:
"This fixes an oops when enabling SR-IOV VF devices. The oops is a
regression I added by configuring all devices during enumeration.
- Don't oops on virtual buses in acpi_pci_get_bridge_handle() (Yinghai Lu)"
* tag 'pci-v3.18-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci:
PCI: Don't oops on virtual buses in acpi_pci_get_bridge_handle()
This update contains mostly only fixes for Realtek HD-audio codec
driver in addition to a long-standing sysfs warning bug fix for
USB-audio. One significant fix for Realtek codecs is the update of
EAPD init codes. This avoids invalid COEF setups for some codec
models and may fix "lost sound" in some cases. The rest are a bit
high volume but only new quirks and ALC668-specific COEF tables.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAABAgAGBQJUWxcdAAoJEGwxgFQ9KSmk6GkP/05blv+I2XODsea0AkehDSea
DisPfMEBNWEx06GhtuSTKLlRH3jpYAtOB76L2hAmI/MzpV+3zZ27eW6Iy6NBrPKj
k6GHb4ExHFd16ec0EgefR02RJOb3RRUFU/32DqhUb3Nz4QLzJfZwkgTRX9uSyQO0
X5zIOoZIwy8+kYTaYzSrRFLmTew4YRnwpWu1T6CRrkOWkS1+rDFSUMQdpRRcHQ5K
7VGEmuV+9g6ALIA9bnYZwSkwVGdY2GCVZOuCzbuVdCZYUtBhEl9pEDztFiJz9CXo
MYs50Wra15PGJkM7aKdYMUvZFCDnaGlqRYuSWpwPQk6BV52n+f/DEEfZB56DhsH3
rHBW+/IvJjmNdeKBxQhs3fnkL/EpLzBtEidNZcNZVL+hNYvWbPoBTA+ZE668M6yY
bOt5wM03gO8a2X76WoEnWgxAH5Ql3roMTduQtkuE0rg+E6zFzgn1In+nlEItevzx
Oe0dgklKDVfrbiQJZtIuwddVZDuvyc5SEUdT+CsQmKrA43DRSgdCzzmUrvrWnelB
dACuQ/Ziw/w1XFjqTfp8AEi3C9WfC8CcS42w20hmrGe/uvqJb51Nf4zOvw3fYc6e
4jvrEsifwylT7mhV7tmWbbm+B9wHhbjsH7RfiuDL+XHxFtPUugxYQpmIvXl61y/I
mtzJ12rydAkwXXv4syWS
=0z7g
-----END PGP SIGNATURE-----
Merge tag 'sound-3.18-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
Pull sound fixes from Takashi Iwai:
"This update contains mostly only fixes for Realtek HD-audio codec
driver in addition to a long-standing sysfs warning bug fix for
USB-audio.
One significant fix for Realtek codecs is the update of EAPD init
codes. This avoids invalid COEF setups for some codec models and may
fix "lost sound" in some cases.
The rest are a bit high volume but only new quirks and ALC668-specific
COEF tables"
* tag 'sound-3.18-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
ALSA: hda/realtek - Restore default value for ALC668
ALSA: usb-audio: Fix device_del() sysfs warnings at disconnect
ALSA: hda - fix mute led problem for three HP laptops
ALSA: hda/realtek - Update Initial AMP for EAPD control
ALSA: hda - change three SSID quirks to one pin quirk
ALSA: hda - Set GPIO 4 low for a few HP machines
ALSA: hda - Add ultra dock support for Thinkpad X240.
- Fix card detection regression.
The MMC_CAP2_CD_ACTIVE_HIGH and MMC_CAP2_RO_ACTIVE_HIGH could under
some circumstances be set incorrectly, causing the card detection to
fail.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABAgAGBQJUW2rFAAoJEP4mhCVzWIwp4C8QALVu9YPuWEFMmW2MZD2D4UyH
b/1Y0e8VJ7DasJis0irtEEntibnE4BhhkMqW+kXgu+/8X8m9RuabIW4b30sWVZ0/
qrIXrCFmk9DqL3v/6N7yoVWBJgtqOnT69ITz2mR0+qZ03qyyLduoVxysjuXcpYnH
1JvYjwNeUEYl4w/kyG6rkAMzvR61n2WuORO/Zx+9QQYbgOHwZ2WbHTlemBjpeSfE
d7M24f64wO832M+zuFP8iQ3WTqodWYPm2BYKLovxrG3aln237meVlCmm8QE5aUvI
qF8UPP/1QrpseQvZn4qs45KsjplOfoUaEROTSnEVazWY3vJtuSLNDrGuMS/eQwke
XRr3OlTqd9kBf9u1eXo3xLdSHEUpgSvo8mOpdYlh4kcOxOCVdvHmTdRNpA4HiktW
pzmQeQMSEjHBQiOMD/250jjrorbuawlDyY7Qz3ec3KeVnkOpeuQDz3BQKOJ+PvGG
Da2CQK2uFc/iVTZv8gHVaYyoZT0xwoiMLzsGBYJTz18i4Rfvf7XJaA/Vb88QK1J7
DgpURhWyZsrZKdIFtx0Eu7eJ8JF9diNeL/3qnm8/XRmixbAZydeJVXEkYTSW05h7
fhJ5YJpLcgvLwjaayKWeB+tAB5NKaSHc+R6vcbWYB5zRK26Mz5BiUiO03LFYWx/H
6fZabmspBzjnWPgmbjPZ
=libf
-----END PGP SIGNATURE-----
Merge tag 'mmc-v3.18-2' of git://git.linaro.org/people/ulf.hansson/mmc
Pull MMC fix from Ulf Hansson:
"Fix card detection regression in the MMC core.
The MMC_CAP2_CD_ACTIVE_HIGH and MMC_CAP2_RO_ACTIVE_HIGH could under
some circumstances be set incorrectly, causing the card detection to
fail"
* tag 'mmc-v3.18-2' of git://git.linaro.org/people/ulf.hansson/mmc:
mmc: core: fix card detection regression
Pull another filesystem fix from Al Viro:
"A fix for embarrassing braino in o2net_send_tcp_msg(). -stable
fodder..."
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
fix breakage in o2net_send_tcp_msg()
Commit 479e9b94fd ("serial: Refactor uart_flush_buffer() from
uart_close") refactored the uart_flush_buffer() in uart_close() into
those drivers that define a flush_buffer() method. However, in the
amba-pl011 driver configured without CONFIG_DMA_ENGINE, flush_buffer()
is a NULL method, so the direct call fails to compile.
Check and call the flush_buffer() method through the ops table instead.
Reported-by: Fengguang Wu <fengguang.wu@intel.com>
Cc: Russell King <linux@arm.linux.org.uk>
Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Virtual page number of R3000 in entryhi is 20 bit from MSB. But in
dump_tlb(), the bit mask to read it from entryhi is 19 bit (0xffffe000).
The patch fixes that to 0xfffff000.
Signed-off-by: Isamu Mogi <isamu@leafytree.jp>
Cc: linux-mips@linux-mips.org
Cc: linux-kernel@vger.kernel.org
Patchwork: https://patchwork.linux-mips.org/patch/8290/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
If PM_RUNTIME is enabled, it is easy to trigger the following backtrace
on pxa2xx hosts:
------------[ cut here ]------------
WARNING: CPU: 0 PID: 1 at /home/lumag/linux/arch/arm/mach-pxa/clock.c:35 clk_disable+0xa0/0xa8()
Modules linked in:
CPU: 0 PID: 1 Comm: swapper Not tainted 3.17.0-00007-g1b3d2ee-dirty #104
[<c000de68>] (unwind_backtrace) from [<c000c078>] (show_stack+0x10/0x14)
[<c000c078>] (show_stack) from [<c001d75c>] (warn_slowpath_common+0x6c/0x8c)
[<c001d75c>] (warn_slowpath_common) from [<c001d818>] (warn_slowpath_null+0x1c/0x24)
[<c001d818>] (warn_slowpath_null) from [<c0015e80>] (clk_disable+0xa0/0xa8)
[<c0015e80>] (clk_disable) from [<c02507f8>] (pxa2xx_spi_suspend+0x2c/0x34)
[<c02507f8>] (pxa2xx_spi_suspend) from [<c0200360>] (platform_pm_suspend+0x2c/0x54)
[<c0200360>] (platform_pm_suspend) from [<c0207fec>] (dpm_run_callback.isra.14+0x2c/0x74)
[<c0207fec>] (dpm_run_callback.isra.14) from [<c0209254>] (__device_suspend+0x120/0x2f8)
[<c0209254>] (__device_suspend) from [<c0209a94>] (dpm_suspend+0x50/0x208)
[<c0209a94>] (dpm_suspend) from [<c00455ac>] (suspend_devices_and_enter+0x8c/0x3a0)
[<c00455ac>] (suspend_devices_and_enter) from [<c0045ad4>] (pm_suspend+0x214/0x2a8)
[<c0045ad4>] (pm_suspend) from [<c04b5c34>] (test_suspend+0x14c/0x1dc)
[<c04b5c34>] (test_suspend) from [<c000880c>] (do_one_initcall+0x8c/0x1fc)
[<c000880c>] (do_one_initcall) from [<c04aecfc>] (kernel_init_freeable+0xf4/0x1b4)
[<c04aecfc>] (kernel_init_freeable) from [<c0378078>] (kernel_init+0x8/0xec)
[<c0378078>] (kernel_init) from [<c0009590>] (ret_from_fork+0x14/0x24)
---[ end trace 46524156d8faa4f6 ]---
This happens because suspend function tries to disable a clock that is
already disabled by runtime_suspend callback. Add if
(!pm_runtime_suspended()) checks to suspend/resume path.
Fixes: 7d94a50585 (spi/pxa2xx: add support for runtime PM)
Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Reported-by: Andrea Adami <andrea.adami@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Cc: stable@vger.kernel.org