From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
stable@vger.kernel.org, A Sun <as1033x@comcast.net>,
Sean Young <sean@mess.org>,
Mauro Carvalho Chehab <mchehab+samsung@kernel.org>,
Sasha Levin <sashal@kernel.org>
Subject: [PATCH 4.19 090/211] media: mceusb: fix (eliminate) TX IR signal length limit
Date: Thu, 3 Oct 2019 17:52:36 +0200 [thread overview]
Message-ID: <20191003154507.534538747@linuxfoundation.org> (raw)
In-Reply-To: <20191003154447.010950442@linuxfoundation.org>
From: A Sun <as1033x@comcast.net>
[ Upstream commit 9fc3ce31f5bde660197f35135e90a1cced58aa2c ]
Fix and eliminate mceusb's IR length limit for IR signals transmitted to
the MCE IR blaster ports.
An IR signal TX exceeding 306 pulse/space samples presently causes -EINVAL
return error. There's no such limitation nor error with the MCE device
hardware. And valid IR signals exist with more than 400 pulse/space for the
control of certain appliances (eg Panasonic ACXA75C00600 air conditioner).
The scope of this patch is limited to the mceusb driver. There are still
IR signal TX length and time constraints that related modules of rc core
(eg LIRC) impose, further up the driver stack.
Changes for mceusb_tx_ir():
Converts and sends LIRC IR pulse/space sequence to MCE device IR
pulse/space format.
Break long length LIRC sequence into multiple (unlimited number of) parts
for sending to the MCE device.
Reduce kernel stack IR buffer size: 128 (was 384)
Increase MCE IR data packet size: 31 (was 5)
Zero time LIRC pulse/space no longer copied to MCE IR data.
Eliminate overwriting the source/input LIRC IR data in txbuf[].
Eliminate -EINVAL return; return number of IR samples sent (>0) or
MCE write error code (<0).
New mce_write() and mce_write_callback():
Implements synchronous blocking I/O, with timeout, for writing/sending
data to the MCE device.
An unlimited multipart IR signal sent to the MCE device faster than real
time requires flow control absent with the original mce_request_packet()
and mce_async_callback() asynchronous I/O implementation. Also absent is
TX error feedback.
mce_write() combines and replaces mce_request_packet() and
mce_async_callback() with conversion to synchronous I/O.
mce_write() returns bytes sent (>0) or MCE device write error (<0).
Debug hex dump TX data before processing.
Rename mce_async_out() -> mce_command_out():
The original name is misleading with underlying synchronous I/O
implementation. Function renamed to mce_command_out().
Changes in mceusb_handle_command():
Add support for MCE device error case MCE_RSP_TX_TIMEOUT
"IR TX timeout (TX buffer underrun)"
Changes in mceusb_dev_printdata():
Changes support test and debug of multipart TX IR.
Add buffer boundary information (offset and buffer size) to TX hex dump.
Correct TX trace bug "Raw IR data, 0 pulse/space samples"
Add trace for MCE_RSP_TX_TIMEOUT "IR TX timeout (TX buffer underrun)"
Other changes:
The driver's write to USB device architecture change (async to sync I/O)
is significant so we bump DRIVER_VERSION to "1.95" (from "1.94").
Tests:
$ cat -n irdata1 | head -3
1 carrier 36000
2 pulse 6350
3 space 6350
$ cat -n irdata1 | tail -3
76 pulse 6350
77 space 6350
78 pulse 6350
$ ir-ctl -s irdata1
[1549021.073612] mceusb 1-1.3:1.0: requesting 36000 HZ carrier
[1549021.073635] mceusb 1-1.3:1.0: tx data[0]: 9f 06 01 45 (len=4 sz=4)
[1549021.073649] mceusb 1-1.3:1.0: Request carrier of 35714 Hz (period 28us)
[1549021.073848] mceusb 1-1.3:1.0: tx done status = 4 (wait = 100, expire = 100 (1000ms), urb->actual_length = 4, urb->status = 0)
[1549021.074689] mceusb 1-1.3:1.0: rx data[0]: 9f 06 01 45 (len=4 sz=4)
[1549021.074701] mceusb 1-1.3:1.0: Got carrier of 35714 Hz (period 28us)
[1549021.102023] mceusb 1-1.3:1.0: tx data[0]: 9f 08 03 (len=3 sz=3)
[1549021.102036] mceusb 1-1.3:1.0: Request transmit blaster mask of 0x03
[1549021.102219] mceusb 1-1.3:1.0: tx done status = 3 (wait = 100, expire = 100 (1000ms), urb->actual_length = 3, urb->status = 0)
[1549021.131979] mceusb 1-1.3:1.0: tx data[0]: 9e ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f 9e ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f ff 7f 91 ff (len=81 sz=81)
[1549021.131992] mceusb 1-1.3:1.0: Raw IR data, 30 pulse/space samples
[1549021.133592] mceusb 1-1.3:1.0: tx done status = 81 (wait = 100, expire = 100 (1000ms), urb->actual_length = 81, urb->status = 0)
Hex dumps limited to 64 bytes.
0xff is MCE maximum time pulse, 0x7f is MCE maximum time space.
$ cat -n irdata2 | head -3
1 carrier 36000
2 pulse 50
3 space 50
$ cat -n irdata2 | tail -3
254 pulse 50
255 space 50
256 pulse 50
$ ir-ctl -s irdata2
[1549306.586998] mceusb 1-1.3:1.0: tx data[0]: 9f 08 03 (len=3 sz=3)
[1549306.587015] mceusb 1-1.3:1.0: Request transmit blaster mask of 0x03
[1549306.587252] mceusb 1-1.3:1.0: tx done status = 3 (wait = 100, expire = 100 (1000ms), urb->actual_length = 3, urb->status = 0)
[1549306.613275] mceusb 1-1.3:1.0: tx data[0]: 9e 81 01 81 01 81 01 81 01 81 01 81 01 81 01 81 01 81 01 81 01 81 01 81 01 81 01 81 01 81 01 9e 81 01 81 01 81 01 81 01 81 01 81 01 81 01 81 01 81 01 81 01 81 01 81 01 81 01 81 01 81 01 9e 81 (len=128 sz=128)
[1549306.613291] mceusb 1-1.3:1.0: Raw IR data, 30 pulse/space samples
[1549306.614837] mceusb 1-1.3:1.0: tx done status = 128 (wait = 100, expire = 100 (1000ms), urb->actual_length = 128, urb->status = 0)
[1549306.614861] mceusb 1-1.3:1.0: tx data[0]: 9e 01 81 01 81 01 81 01 81 01 81 01 81 01 81 01 81 01 81 01 81 01 81 01 81 01 81 01 81 01 81 9e 01 81 01 81 01 81 01 81 01 81 01 81 01 81 01 81 01 81 01 81 01 81 01 81 01 81 01 81 01 81 9e 01 (len=128 sz=128)
[1549306.614869] mceusb 1-1.3:1.0: Raw IR data, 30 pulse/space samples
[1549306.620199] mceusb 1-1.3:1.0: tx done status = 128 (wait = 100, expire = 100 (1000ms), urb->actual_length = 128, urb->status = 0)
[1549306.620212] mceusb 1-1.3:1.0: tx data[0]: 89 81 01 81 01 81 01 81 01 81 80 (len=11 sz=11)
[1549306.620221] mceusb 1-1.3:1.0: Raw IR data, 9 pulse/space samples
[1549306.633294] mceusb 1-1.3:1.0: tx done status = 11 (wait = 98, expire = 100 (1000ms), urb->actual_length = 11, urb->status = 0)
Hex dumps limited to 64 bytes.
0x81 is MCE minimum time pulse, 0x01 is MCE minimum time space.
TX IR part 3 sz=11 shows 20msec I/O blocking delay
(100expire - 98wait = 2jiffies)
Signed-off-by: A Sun <as1033x@comcast.net>
Signed-off-by: Sean Young <sean@mess.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/media/rc/mceusb.c | 334 ++++++++++++++++++++++----------------
1 file changed, 196 insertions(+), 138 deletions(-)
diff --git a/drivers/media/rc/mceusb.c b/drivers/media/rc/mceusb.c
index 4c0c8008872ae..f1dfb84094328 100644
--- a/drivers/media/rc/mceusb.c
+++ b/drivers/media/rc/mceusb.c
@@ -42,21 +42,22 @@
#include <linux/pm_wakeup.h>
#include <media/rc-core.h>
-#define DRIVER_VERSION "1.94"
+#define DRIVER_VERSION "1.95"
#define DRIVER_AUTHOR "Jarod Wilson <jarod@redhat.com>"
#define DRIVER_DESC "Windows Media Center Ed. eHome Infrared Transceiver " \
"device driver"
#define DRIVER_NAME "mceusb"
+#define USB_TX_TIMEOUT 1000 /* in milliseconds */
#define USB_CTRL_MSG_SZ 2 /* Size of usb ctrl msg on gen1 hw */
#define MCE_G1_INIT_MSGS 40 /* Init messages on gen1 hw to throw out */
/* MCE constants */
-#define MCE_CMDBUF_SIZE 384 /* MCE Command buffer length */
+#define MCE_IRBUF_SIZE 128 /* TX IR buffer length */
#define MCE_TIME_UNIT 50 /* Approx 50us resolution */
-#define MCE_CODE_LENGTH 5 /* Normal length of packet (with header) */
-#define MCE_PACKET_SIZE 4 /* Normal length of packet (without header) */
-#define MCE_IRDATA_HEADER 0x84 /* Actual header format is 0x80 + num_bytes */
+#define MCE_PACKET_SIZE 31 /* Max length of packet (with header) */
+#define MCE_IRDATA_HEADER (0x80 + MCE_PACKET_SIZE - 1)
+ /* Actual format is 0x80 + num_bytes */
#define MCE_IRDATA_TRAILER 0x80 /* End of IR data */
#define MCE_MAX_CHANNELS 2 /* Two transmitters, hardware dependent? */
#define MCE_DEFAULT_TX_MASK 0x03 /* Vals: TX1=0x01, TX2=0x02, ALL=0x03 */
@@ -609,9 +610,9 @@ static void mceusb_dev_printdata(struct mceusb_dev *ir, u8 *buf, int buf_len,
if (len <= skip)
return;
- dev_dbg(dev, "%cx data: %*ph (length=%d)",
- (out ? 't' : 'r'),
- min(len, buf_len - offset), buf + offset, len);
+ dev_dbg(dev, "%cx data[%d]: %*ph (len=%d sz=%d)",
+ (out ? 't' : 'r'), offset,
+ min(len, buf_len - offset), buf + offset, len, buf_len);
inout = out ? "Request" : "Got";
@@ -733,6 +734,9 @@ static void mceusb_dev_printdata(struct mceusb_dev *ir, u8 *buf, int buf_len,
case MCE_RSP_CMD_ILLEGAL:
dev_dbg(dev, "Illegal PORT_IR command");
break;
+ case MCE_RSP_TX_TIMEOUT:
+ dev_dbg(dev, "IR TX timeout (TX buffer underrun)");
+ break;
default:
dev_dbg(dev, "Unknown command 0x%02x 0x%02x",
cmd, subcmd);
@@ -747,13 +751,14 @@ static void mceusb_dev_printdata(struct mceusb_dev *ir, u8 *buf, int buf_len,
dev_dbg(dev, "End of raw IR data");
else if ((cmd != MCE_CMD_PORT_IR) &&
((cmd & MCE_PORT_MASK) == MCE_COMMAND_IRDATA))
- dev_dbg(dev, "Raw IR data, %d pulse/space samples", ir->rem);
+ dev_dbg(dev, "Raw IR data, %d pulse/space samples",
+ cmd & MCE_PACKET_LENGTH_MASK);
#endif
}
/*
* Schedule work that can't be done in interrupt handlers
- * (mceusb_dev_recv() and mce_async_callback()) nor tasklets.
+ * (mceusb_dev_recv() and mce_write_callback()) nor tasklets.
* Invokes mceusb_deferred_kevent() for recovering from
* error events specified by the kevent bit field.
*/
@@ -766,23 +771,80 @@ static void mceusb_defer_kevent(struct mceusb_dev *ir, int kevent)
dev_dbg(ir->dev, "kevent %d scheduled", kevent);
}
-static void mce_async_callback(struct urb *urb)
+static void mce_write_callback(struct urb *urb)
{
- struct mceusb_dev *ir;
- int len;
-
if (!urb)
return;
- ir = urb->context;
+ complete(urb->context);
+}
+
+/*
+ * Write (TX/send) data to MCE device USB endpoint out.
+ * Used for IR blaster TX and MCE device commands.
+ *
+ * Return: The number of bytes written (> 0) or errno (< 0).
+ */
+static int mce_write(struct mceusb_dev *ir, u8 *data, int size)
+{
+ int ret;
+ struct urb *urb;
+ struct device *dev = ir->dev;
+ unsigned char *buf_out;
+ struct completion tx_done;
+ unsigned long expire;
+ unsigned long ret_wait;
+
+ mceusb_dev_printdata(ir, data, size, 0, size, true);
+
+ urb = usb_alloc_urb(0, GFP_KERNEL);
+ if (unlikely(!urb)) {
+ dev_err(dev, "Error: mce write couldn't allocate urb");
+ return -ENOMEM;
+ }
+
+ buf_out = kmalloc(size, GFP_KERNEL);
+ if (!buf_out) {
+ usb_free_urb(urb);
+ return -ENOMEM;
+ }
+
+ init_completion(&tx_done);
+
+ /* outbound data */
+ if (usb_endpoint_xfer_int(ir->usb_ep_out))
+ usb_fill_int_urb(urb, ir->usbdev, ir->pipe_out,
+ buf_out, size, mce_write_callback, &tx_done,
+ ir->usb_ep_out->bInterval);
+ else
+ usb_fill_bulk_urb(urb, ir->usbdev, ir->pipe_out,
+ buf_out, size, mce_write_callback, &tx_done);
+ memcpy(buf_out, data, size);
+
+ ret = usb_submit_urb(urb, GFP_KERNEL);
+ if (ret) {
+ dev_err(dev, "Error: mce write submit urb error = %d", ret);
+ kfree(buf_out);
+ usb_free_urb(urb);
+ return ret;
+ }
+
+ expire = msecs_to_jiffies(USB_TX_TIMEOUT);
+ ret_wait = wait_for_completion_timeout(&tx_done, expire);
+ if (!ret_wait) {
+ dev_err(dev, "Error: mce write timed out (expire = %lu (%dms))",
+ expire, USB_TX_TIMEOUT);
+ usb_kill_urb(urb);
+ ret = (urb->status == -ENOENT ? -ETIMEDOUT : urb->status);
+ } else {
+ ret = urb->status;
+ }
+ if (ret >= 0)
+ ret = urb->actual_length; /* bytes written */
switch (urb->status) {
/* success */
case 0:
- len = urb->actual_length;
-
- mceusb_dev_printdata(ir, urb->transfer_buffer, len,
- 0, len, true);
break;
case -ECONNRESET:
@@ -792,140 +854,135 @@ static void mce_async_callback(struct urb *urb)
break;
case -EPIPE:
- dev_err(ir->dev, "Error: request urb status = %d (TX HALT)",
+ dev_err(ir->dev, "Error: mce write urb status = %d (TX HALT)",
urb->status);
mceusb_defer_kevent(ir, EVENT_TX_HALT);
break;
default:
- dev_err(ir->dev, "Error: request urb status = %d", urb->status);
+ dev_err(ir->dev, "Error: mce write urb status = %d",
+ urb->status);
break;
}
- /* the transfer buffer and urb were allocated in mce_request_packet */
- kfree(urb->transfer_buffer);
- usb_free_urb(urb);
-}
-
-/* request outgoing (send) usb packet - used to initialize remote */
-static void mce_request_packet(struct mceusb_dev *ir, unsigned char *data,
- int size)
-{
- int res;
- struct urb *async_urb;
- struct device *dev = ir->dev;
- unsigned char *async_buf;
+ dev_dbg(dev, "tx done status = %d (wait = %lu, expire = %lu (%dms), urb->actual_length = %d, urb->status = %d)",
+ ret, ret_wait, expire, USB_TX_TIMEOUT,
+ urb->actual_length, urb->status);
- async_urb = usb_alloc_urb(0, GFP_KERNEL);
- if (unlikely(!async_urb)) {
- dev_err(dev, "Error, couldn't allocate urb!");
- return;
- }
-
- async_buf = kmalloc(size, GFP_KERNEL);
- if (!async_buf) {
- usb_free_urb(async_urb);
- return;
- }
-
- /* outbound data */
- if (usb_endpoint_xfer_int(ir->usb_ep_out))
- usb_fill_int_urb(async_urb, ir->usbdev, ir->pipe_out,
- async_buf, size, mce_async_callback, ir,
- ir->usb_ep_out->bInterval);
- else
- usb_fill_bulk_urb(async_urb, ir->usbdev, ir->pipe_out,
- async_buf, size, mce_async_callback, ir);
-
- memcpy(async_buf, data, size);
-
- dev_dbg(dev, "send request called (size=%#x)", size);
+ kfree(buf_out);
+ usb_free_urb(urb);
- res = usb_submit_urb(async_urb, GFP_ATOMIC);
- if (res) {
- dev_err(dev, "send request FAILED! (res=%d)", res);
- kfree(async_buf);
- usb_free_urb(async_urb);
- return;
- }
- dev_dbg(dev, "send request complete (res=%d)", res);
+ return ret;
}
-static void mce_async_out(struct mceusb_dev *ir, unsigned char *data, int size)
+static void mce_command_out(struct mceusb_dev *ir, u8 *data, int size)
{
int rsize = sizeof(DEVICE_RESUME);
if (ir->need_reset) {
ir->need_reset = false;
- mce_request_packet(ir, DEVICE_RESUME, rsize);
+ mce_write(ir, DEVICE_RESUME, rsize);
msleep(10);
}
- mce_request_packet(ir, data, size);
+ mce_write(ir, data, size);
msleep(10);
}
-/* Send data out the IR blaster port(s) */
+/*
+ * Transmit IR out the MCE device IR blaster port(s).
+ *
+ * Convert IR pulse/space sequence from LIRC to MCE format.
+ * Break up a long IR sequence into multiple parts (MCE IR data packets).
+ *
+ * u32 txbuf[] consists of IR pulse, space, ..., and pulse times in usec.
+ * Pulses and spaces are implicit by their position.
+ * The first IR sample, txbuf[0], is always a pulse.
+ *
+ * u8 irbuf[] consists of multiple IR data packets for the MCE device.
+ * A packet is 1 u8 MCE_IRDATA_HEADER and up to 30 u8 IR samples.
+ * An IR sample is 1-bit pulse/space flag with 7-bit time
+ * in MCE time units (50usec).
+ *
+ * Return: The number of IR samples sent (> 0) or errno (< 0).
+ */
static int mceusb_tx_ir(struct rc_dev *dev, unsigned *txbuf, unsigned count)
{
struct mceusb_dev *ir = dev->priv;
- int i, length, ret = 0;
- int cmdcount = 0;
- unsigned char cmdbuf[MCE_CMDBUF_SIZE];
-
- /* MCE tx init header */
- cmdbuf[cmdcount++] = MCE_CMD_PORT_IR;
- cmdbuf[cmdcount++] = MCE_CMD_SETIRTXPORTS;
- cmdbuf[cmdcount++] = ir->tx_mask;
+ u8 cmdbuf[3] = { MCE_CMD_PORT_IR, MCE_CMD_SETIRTXPORTS, 0x00 };
+ u8 irbuf[MCE_IRBUF_SIZE];
+ int ircount = 0;
+ unsigned int irsample;
+ int i, length, ret;
/* Send the set TX ports command */
- mce_async_out(ir, cmdbuf, cmdcount);
- cmdcount = 0;
-
- /* Generate mce packet data */
- for (i = 0; (i < count) && (cmdcount < MCE_CMDBUF_SIZE); i++) {
- txbuf[i] = txbuf[i] / MCE_TIME_UNIT;
-
- do { /* loop to support long pulses/spaces > 127*50us=6.35ms */
-
- /* Insert mce packet header every 4th entry */
- if ((cmdcount < MCE_CMDBUF_SIZE) &&
- (cmdcount % MCE_CODE_LENGTH) == 0)
- cmdbuf[cmdcount++] = MCE_IRDATA_HEADER;
-
- /* Insert mce packet data */
- if (cmdcount < MCE_CMDBUF_SIZE)
- cmdbuf[cmdcount++] =
- (txbuf[i] < MCE_PULSE_BIT ?
- txbuf[i] : MCE_MAX_PULSE_LENGTH) |
- (i & 1 ? 0x00 : MCE_PULSE_BIT);
- else {
- ret = -EINVAL;
- goto out;
+ cmdbuf[2] = ir->tx_mask;
+ mce_command_out(ir, cmdbuf, sizeof(cmdbuf));
+
+ /* Generate mce IR data packet */
+ for (i = 0; i < count; i++) {
+ irsample = txbuf[i] / MCE_TIME_UNIT;
+
+ /* loop to support long pulses/spaces > 6350us (127*50us) */
+ while (irsample > 0) {
+ /* Insert IR header every 30th entry */
+ if (ircount % MCE_PACKET_SIZE == 0) {
+ /* Room for IR header and one IR sample? */
+ if (ircount >= MCE_IRBUF_SIZE - 1) {
+ /* Send near full buffer */
+ ret = mce_write(ir, irbuf, ircount);
+ if (ret < 0)
+ return ret;
+ ircount = 0;
+ }
+ irbuf[ircount++] = MCE_IRDATA_HEADER;
}
- } while ((txbuf[i] > MCE_MAX_PULSE_LENGTH) &&
- (txbuf[i] -= MCE_MAX_PULSE_LENGTH));
- }
-
- /* Check if we have room for the empty packet at the end */
- if (cmdcount >= MCE_CMDBUF_SIZE) {
- ret = -EINVAL;
- goto out;
- }
+ /* Insert IR sample */
+ if (irsample <= MCE_MAX_PULSE_LENGTH) {
+ irbuf[ircount] = irsample;
+ irsample = 0;
+ } else {
+ irbuf[ircount] = MCE_MAX_PULSE_LENGTH;
+ irsample -= MCE_MAX_PULSE_LENGTH;
+ }
+ /*
+ * Even i = IR pulse
+ * Odd i = IR space
+ */
+ irbuf[ircount] |= (i & 1 ? 0 : MCE_PULSE_BIT);
+ ircount++;
+
+ /* IR buffer full? */
+ if (ircount >= MCE_IRBUF_SIZE) {
+ /* Fix packet length in last header */
+ length = ircount % MCE_PACKET_SIZE;
+ if (length > 0)
+ irbuf[ircount - length] -=
+ MCE_PACKET_SIZE - length;
+ /* Send full buffer */
+ ret = mce_write(ir, irbuf, ircount);
+ if (ret < 0)
+ return ret;
+ ircount = 0;
+ }
+ }
+ } /* after for loop, 0 <= ircount < MCE_IRBUF_SIZE */
/* Fix packet length in last header */
- length = cmdcount % MCE_CODE_LENGTH;
- cmdbuf[cmdcount - length] -= MCE_CODE_LENGTH - length;
+ length = ircount % MCE_PACKET_SIZE;
+ if (length > 0)
+ irbuf[ircount - length] -= MCE_PACKET_SIZE - length;
- /* All mce commands end with an empty packet (0x80) */
- cmdbuf[cmdcount++] = MCE_IRDATA_TRAILER;
+ /* Append IR trailer (0x80) to final partial (or empty) IR buffer */
+ irbuf[ircount++] = MCE_IRDATA_TRAILER;
- /* Transmit the command to the mce device */
- mce_async_out(ir, cmdbuf, cmdcount);
+ /* Send final buffer */
+ ret = mce_write(ir, irbuf, ircount);
+ if (ret < 0)
+ return ret;
-out:
- return ret ? ret : count;
+ return count;
}
/* Sets active IR outputs -- mce devices typically have two */
@@ -965,7 +1022,7 @@ static int mceusb_set_tx_carrier(struct rc_dev *dev, u32 carrier)
cmdbuf[2] = MCE_CMD_SIG_END;
cmdbuf[3] = MCE_IRDATA_TRAILER;
dev_dbg(ir->dev, "disabling carrier modulation");
- mce_async_out(ir, cmdbuf, sizeof(cmdbuf));
+ mce_command_out(ir, cmdbuf, sizeof(cmdbuf));
return 0;
}
@@ -979,7 +1036,7 @@ static int mceusb_set_tx_carrier(struct rc_dev *dev, u32 carrier)
carrier);
/* Transmit new carrier to mce device */
- mce_async_out(ir, cmdbuf, sizeof(cmdbuf));
+ mce_command_out(ir, cmdbuf, sizeof(cmdbuf));
return 0;
}
}
@@ -1002,10 +1059,10 @@ static int mceusb_set_timeout(struct rc_dev *dev, unsigned int timeout)
cmdbuf[2] = units >> 8;
cmdbuf[3] = units;
- mce_async_out(ir, cmdbuf, sizeof(cmdbuf));
+ mce_command_out(ir, cmdbuf, sizeof(cmdbuf));
/* get receiver timeout value */
- mce_async_out(ir, GET_RX_TIMEOUT, sizeof(GET_RX_TIMEOUT));
+ mce_command_out(ir, GET_RX_TIMEOUT, sizeof(GET_RX_TIMEOUT));
return 0;
}
@@ -1030,7 +1087,7 @@ static int mceusb_set_rx_wideband(struct rc_dev *dev, int enable)
ir->wideband_rx_enabled = false;
cmdbuf[2] = 1; /* port 1 is long range receiver */
}
- mce_async_out(ir, cmdbuf, sizeof(cmdbuf));
+ mce_command_out(ir, cmdbuf, sizeof(cmdbuf));
/* response from device sets ir->learning_active */
return 0;
@@ -1053,7 +1110,7 @@ static int mceusb_set_rx_carrier_report(struct rc_dev *dev, int enable)
ir->carrier_report_enabled = true;
if (!ir->learning_active) {
cmdbuf[2] = 2; /* port 2 is short range receiver */
- mce_async_out(ir, cmdbuf, sizeof(cmdbuf));
+ mce_command_out(ir, cmdbuf, sizeof(cmdbuf));
}
} else {
ir->carrier_report_enabled = false;
@@ -1064,7 +1121,7 @@ static int mceusb_set_rx_carrier_report(struct rc_dev *dev, int enable)
*/
if (ir->learning_active && !ir->wideband_rx_enabled) {
cmdbuf[2] = 1; /* port 1 is long range receiver */
- mce_async_out(ir, cmdbuf, sizeof(cmdbuf));
+ mce_command_out(ir, cmdbuf, sizeof(cmdbuf));
}
}
@@ -1143,6 +1200,7 @@ static void mceusb_handle_command(struct mceusb_dev *ir, int index)
}
break;
case MCE_RSP_CMD_ILLEGAL:
+ case MCE_RSP_TX_TIMEOUT:
ir->need_reset = true;
break;
default:
@@ -1280,7 +1338,7 @@ static void mceusb_get_emulator_version(struct mceusb_dev *ir)
{
/* If we get no reply or an illegal command reply, its ver 1, says MS */
ir->emver = 1;
- mce_async_out(ir, GET_EMVER, sizeof(GET_EMVER));
+ mce_command_out(ir, GET_EMVER, sizeof(GET_EMVER));
}
static void mceusb_gen1_init(struct mceusb_dev *ir)
@@ -1326,10 +1384,10 @@ static void mceusb_gen1_init(struct mceusb_dev *ir)
dev_dbg(dev, "set handshake - retC = %d", ret);
/* device resume */
- mce_async_out(ir, DEVICE_RESUME, sizeof(DEVICE_RESUME));
+ mce_command_out(ir, DEVICE_RESUME, sizeof(DEVICE_RESUME));
/* get hw/sw revision? */
- mce_async_out(ir, GET_REVISION, sizeof(GET_REVISION));
+ mce_command_out(ir, GET_REVISION, sizeof(GET_REVISION));
kfree(data);
}
@@ -1337,13 +1395,13 @@ static void mceusb_gen1_init(struct mceusb_dev *ir)
static void mceusb_gen2_init(struct mceusb_dev *ir)
{
/* device resume */
- mce_async_out(ir, DEVICE_RESUME, sizeof(DEVICE_RESUME));
+ mce_command_out(ir, DEVICE_RESUME, sizeof(DEVICE_RESUME));
/* get wake version (protocol, key, address) */
- mce_async_out(ir, GET_WAKEVERSION, sizeof(GET_WAKEVERSION));
+ mce_command_out(ir, GET_WAKEVERSION, sizeof(GET_WAKEVERSION));
/* unknown what this one actually returns... */
- mce_async_out(ir, GET_UNKNOWN2, sizeof(GET_UNKNOWN2));
+ mce_command_out(ir, GET_UNKNOWN2, sizeof(GET_UNKNOWN2));
}
static void mceusb_get_parameters(struct mceusb_dev *ir)
@@ -1357,24 +1415,24 @@ static void mceusb_get_parameters(struct mceusb_dev *ir)
ir->num_rxports = 2;
/* get number of tx and rx ports */
- mce_async_out(ir, GET_NUM_PORTS, sizeof(GET_NUM_PORTS));
+ mce_command_out(ir, GET_NUM_PORTS, sizeof(GET_NUM_PORTS));
/* get the carrier and frequency */
- mce_async_out(ir, GET_CARRIER_FREQ, sizeof(GET_CARRIER_FREQ));
+ mce_command_out(ir, GET_CARRIER_FREQ, sizeof(GET_CARRIER_FREQ));
if (ir->num_txports && !ir->flags.no_tx)
/* get the transmitter bitmask */
- mce_async_out(ir, GET_TX_BITMASK, sizeof(GET_TX_BITMASK));
+ mce_command_out(ir, GET_TX_BITMASK, sizeof(GET_TX_BITMASK));
/* get receiver timeout value */
- mce_async_out(ir, GET_RX_TIMEOUT, sizeof(GET_RX_TIMEOUT));
+ mce_command_out(ir, GET_RX_TIMEOUT, sizeof(GET_RX_TIMEOUT));
/* get receiver sensor setting */
- mce_async_out(ir, GET_RX_SENSOR, sizeof(GET_RX_SENSOR));
+ mce_command_out(ir, GET_RX_SENSOR, sizeof(GET_RX_SENSOR));
for (i = 0; i < ir->num_txports; i++) {
cmdbuf[2] = i;
- mce_async_out(ir, cmdbuf, sizeof(cmdbuf));
+ mce_command_out(ir, cmdbuf, sizeof(cmdbuf));
}
}
@@ -1383,7 +1441,7 @@ static void mceusb_flash_led(struct mceusb_dev *ir)
if (ir->emver < 2)
return;
- mce_async_out(ir, FLASH_LED, sizeof(FLASH_LED));
+ mce_command_out(ir, FLASH_LED, sizeof(FLASH_LED));
}
/*
--
2.20.1
next prev parent reply other threads:[~2019-10-03 17:20 UTC|newest]
Thread overview: 235+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-10-03 15:51 [PATCH 4.19 000/211] 4.19.77-stable review Greg Kroah-Hartman
2019-10-03 15:51 ` [PATCH 4.19 001/211] arcnet: provide a buffer big enough to actually receive packets Greg Kroah-Hartman
2019-10-03 15:51 ` [PATCH 4.19 002/211] cdc_ncm: fix divide-by-zero caused by invalid wMaxPacketSize Greg Kroah-Hartman
2019-10-03 15:51 ` [PATCH 4.19 003/211] macsec: drop skb sk before calling gro_cells_receive Greg Kroah-Hartman
2019-10-03 15:51 ` [PATCH 4.19 004/211] net/phy: fix DP83865 10 Mbps HDX loopback disable function Greg Kroah-Hartman
2019-10-03 15:51 ` [PATCH 4.19 005/211] net: qrtr: Stop rx_worker before freeing node Greg Kroah-Hartman
2019-10-03 15:51 ` [PATCH 4.19 006/211] net/sched: act_sample: dont push mac header on ip6gre ingress Greg Kroah-Hartman
2019-10-03 15:51 ` [PATCH 4.19 007/211] net_sched: add max len check for TCA_KIND Greg Kroah-Hartman
2019-10-03 15:51 ` [PATCH 4.19 008/211] nfp: flower: fix memory leak in nfp_flower_spawn_vnic_reprs Greg Kroah-Hartman
2019-10-03 15:51 ` [PATCH 4.19 009/211] openvswitch: change type of UPCALL_PID attribute to NLA_UNSPEC Greg Kroah-Hartman
2019-10-03 15:51 ` [PATCH 4.19 010/211] ppp: Fix memory leak in ppp_write Greg Kroah-Hartman
2019-10-03 15:51 ` [PATCH 4.19 011/211] sch_netem: fix a divide by zero in tabledist() Greg Kroah-Hartman
2019-10-03 15:51 ` [PATCH 4.19 012/211] skge: fix checksum byte order Greg Kroah-Hartman
2019-10-03 15:51 ` [PATCH 4.19 013/211] usbnet: ignore endpoints with invalid wMaxPacketSize Greg Kroah-Hartman
2019-10-03 15:51 ` [PATCH 4.19 014/211] usbnet: sanity checking of packet sizes and device mtu Greg Kroah-Hartman
2019-10-03 15:51 ` [PATCH 4.19 015/211] net: sched: fix possible crash in tcf_action_destroy() Greg Kroah-Hartman
2019-10-03 15:51 ` [PATCH 4.19 016/211] tcp: better handle TCP_USER_TIMEOUT in SYN_SENT state Greg Kroah-Hartman
2019-10-03 15:51 ` [PATCH 4.19 017/211] net/mlx5: Add device ID of upcoming BlueField-2 Greg Kroah-Hartman
2019-10-03 15:51 ` [PATCH 4.19 018/211] mISDN: enforce CAP_NET_RAW for raw sockets Greg Kroah-Hartman
2019-10-03 15:51 ` [PATCH 4.19 019/211] appletalk: " Greg Kroah-Hartman
2019-10-03 15:51 ` [PATCH 4.19 020/211] ax25: " Greg Kroah-Hartman
2019-10-03 15:51 ` [PATCH 4.19 021/211] ieee802154: " Greg Kroah-Hartman
2019-10-03 15:51 ` [PATCH 4.19 022/211] nfc: " Greg Kroah-Hartman
2019-10-03 15:51 ` [PATCH 4.19 023/211] nfp: flower: prevent memory leak in nfp_flower_spawn_phy_reprs Greg Kroah-Hartman
2019-10-03 15:51 ` [PATCH 4.19 024/211] ALSA: hda: Flush interrupts on disabling Greg Kroah-Hartman
2019-10-03 15:51 ` [PATCH 4.19 025/211] regulator: lm363x: Fix off-by-one n_voltages for lm3632 ldo_vpos/ldo_vneg Greg Kroah-Hartman
2019-10-03 15:51 ` [PATCH 4.19 026/211] ASoC: tlv320aic31xx: suppress error message for EPROBE_DEFER Greg Kroah-Hartman
2019-10-03 15:51 ` [PATCH 4.19 027/211] ASoC: sgtl5000: Fix of unmute outputs on probe Greg Kroah-Hartman
2019-10-03 15:51 ` [PATCH 4.19 028/211] ASoC: sgtl5000: Fix charge pump source assignment Greg Kroah-Hartman
2019-10-03 15:51 ` [PATCH 4.19 029/211] firmware: qcom_scm: Use proper types for dma mappings Greg Kroah-Hartman
2019-10-03 15:51 ` [PATCH 4.19 030/211] dmaengine: bcm2835: Print error in case setting DMA mask fails Greg Kroah-Hartman
2019-10-03 15:51 ` [PATCH 4.19 031/211] leds: leds-lp5562 allow firmware files up to the maximum length Greg Kroah-Hartman
2019-10-03 15:51 ` [PATCH 4.19 032/211] media: dib0700: fix link error for dibx000_i2c_set_speed Greg Kroah-Hartman
2019-10-03 15:51 ` [PATCH 4.19 033/211] media: mtk-cir: lower de-glitch counter for rc-mm protocol Greg Kroah-Hartman
2019-10-03 15:51 ` [PATCH 4.19 034/211] media: exynos4-is: fix leaked of_node references Greg Kroah-Hartman
2019-10-03 15:51 ` [PATCH 4.19 035/211] media: hdpvr: Add device num check and handling Greg Kroah-Hartman
2019-10-03 15:51 ` [PATCH 4.19 036/211] media: i2c: ov5640: Check for devm_gpiod_get_optional() error Greg Kroah-Hartman
2019-10-03 15:51 ` [PATCH 4.19 037/211] time/tick-broadcast: Fix tick_broadcast_offline() lockdep complaint Greg Kroah-Hartman
2019-10-03 15:51 ` [PATCH 4.19 038/211] sched/fair: Fix imbalance due to CPU affinity Greg Kroah-Hartman
2019-10-03 15:51 ` [PATCH 4.19 039/211] sched/core: Fix CPU controller for !RT_GROUP_SCHED Greg Kroah-Hartman
2019-10-03 15:51 ` [PATCH 4.19 040/211] x86/apic: Make apic_pending_intr_clear() more robust Greg Kroah-Hartman
2019-10-03 15:51 ` [PATCH 4.19 041/211] sched/deadline: Fix bandwidth accounting at all levels after offline migration Greg Kroah-Hartman
2019-10-03 15:51 ` [PATCH 4.19 042/211] x86/reboot: Always use NMI fallback when shutdown via reboot vector IPI fails Greg Kroah-Hartman
2019-10-03 15:51 ` [PATCH 4.19 043/211] x86/apic: Soft disable APIC before initializing it Greg Kroah-Hartman
2019-10-03 15:51 ` [PATCH 4.19 044/211] ALSA: hda - Show the fatal CORB/RIRB error more clearly Greg Kroah-Hartman
2019-10-03 15:51 ` [PATCH 4.19 045/211] ALSA: i2c: ak4xxx-adda: Fix a possible null pointer dereference in build_adc_controls() Greg Kroah-Hartman
2019-10-03 15:51 ` [PATCH 4.19 046/211] EDAC/mc: Fix grain_bits calculation Greg Kroah-Hartman
2019-10-03 15:51 ` [PATCH 4.19 047/211] media: iguanair: add sanity checks Greg Kroah-Hartman
2019-10-03 15:51 ` [PATCH 4.19 048/211] base: soc: Export soc_device_register/unregister APIs Greg Kroah-Hartman
2019-10-03 15:51 ` [PATCH 4.19 049/211] ALSA: usb-audio: Skip bSynchAddress endpoint check if it is invalid Greg Kroah-Hartman
2019-10-03 15:51 ` [PATCH 4.19 050/211] ia64:unwind: fix double free for mod->arch.init_unw_table Greg Kroah-Hartman
2019-10-03 15:51 ` [PATCH 4.19 051/211] EDAC/altera: Use the proper type for the IRQ status bits Greg Kroah-Hartman
2019-10-03 15:51 ` [PATCH 4.19 052/211] ASoC: rsnd: dont call clk_get_rate() under atomic context Greg Kroah-Hartman
2019-10-03 15:51 ` [PATCH 4.19 053/211] arm64/prefetch: fix a -Wtype-limits warning Greg Kroah-Hartman
2019-10-03 15:52 ` [PATCH 4.19 054/211] md/raid1: end bio when the device faulty Greg Kroah-Hartman
2019-10-03 15:52 ` [PATCH 4.19 055/211] md: dont call spare_active in md_reap_sync_thread if all member devices cant work Greg Kroah-Hartman
2019-10-03 15:52 ` [PATCH 4.19 056/211] md: dont set In_sync if array is frozen Greg Kroah-Hartman
2019-10-03 15:52 ` [PATCH 4.19 057/211] media: media/platform: fsl-viu.c: fix build for MICROBLAZE Greg Kroah-Hartman
2019-10-03 15:52 ` [PATCH 4.19 058/211] RAS: Fix prototype warnings Greg Kroah-Hartman
2019-10-03 15:52 ` [PATCH 4.19 059/211] ACPI / processor: dont print errors for processorIDs == 0xff Greg Kroah-Hartman
2019-10-03 15:52 ` [PATCH 4.19 060/211] loop: Add LOOP_SET_DIRECT_IO to compat ioctl Greg Kroah-Hartman
2019-10-03 15:52 ` [PATCH 4.19 061/211] EDAC, pnd2: Fix ioremap() size in dnv_rd_reg() Greg Kroah-Hartman
2019-10-03 15:52 ` [PATCH 4.19 062/211] efi: cper: print AER info of PCIe fatal error Greg Kroah-Hartman
2019-10-03 15:52 ` [PATCH 4.19 063/211] firmware: arm_scmi: Check if platform has released shmem before using Greg Kroah-Hartman
2019-10-03 15:52 ` [PATCH 4.19 064/211] sched/fair: Use rq_lock/unlock in online_fair_sched_group Greg Kroah-Hartman
2019-10-03 15:52 ` [PATCH 4.19 065/211] idle: Prevent late-arriving interrupts from disrupting offline Greg Kroah-Hartman
2019-10-03 15:52 ` [PATCH 4.19 066/211] media: gspca: zero usb_buf on error Greg Kroah-Hartman
2019-10-03 15:52 ` [PATCH 4.19 067/211] perf config: Honour $PERF_CONFIG env var to specify alternate .perfconfig Greg Kroah-Hartman
2019-10-03 15:52 ` [PATCH 4.19 068/211] perf test vfs_getname: Disable ~/.perfconfig to get default output Greg Kroah-Hartman
2019-10-03 15:52 ` [PATCH 4.19 069/211] media: mtk-mdp: fix reference count on old device tree Greg Kroah-Hartman
2019-10-03 15:52 ` [PATCH 4.19 070/211] media: fdp1: Reduce FCP not found message level to debug Greg Kroah-Hartman
2019-10-03 15:52 ` [PATCH 4.19 071/211] media: em28xx: modules workqueue not inited for 2nd device Greg Kroah-Hartman
2019-10-03 15:52 ` [PATCH 4.19 072/211] media: rc: imon: Allow iMON RC protocol for ffdc 7e device Greg Kroah-Hartman
2019-10-03 15:52 ` [PATCH 4.19 073/211] dmaengine: iop-adma: use correct printk format strings Greg Kroah-Hartman
2019-10-03 15:52 ` [PATCH 4.19 074/211] perf record: Support aarch64 random socket_id assignment Greg Kroah-Hartman
2019-10-03 15:52 ` [PATCH 4.19 075/211] media: vsp1: fix memory leak of dl on error return path Greg Kroah-Hartman
2019-10-03 15:52 ` [PATCH 4.19 076/211] media: i2c: ov5645: Fix power sequence Greg Kroah-Hartman
2019-10-03 15:52 ` [PATCH 4.19 077/211] media: omap3isp: Dont set streaming state on random subdevs Greg Kroah-Hartman
2019-10-03 15:52 ` [PATCH 4.19 078/211] media: imx: mipi csi-2: Dont fail if initial state times-out Greg Kroah-Hartman
2019-10-03 15:52 ` [PATCH 4.19 079/211] net: lpc-enet: fix printk format strings Greg Kroah-Hartman
2019-10-03 15:52 ` [PATCH 4.19 080/211] m68k: Prevent some compiler warnings in Coldfire builds Greg Kroah-Hartman
2019-10-03 15:52 ` [PATCH 4.19 081/211] ARM: dts: imx7d: cl-som-imx7: make ethernet work again Greg Kroah-Hartman
2019-10-03 15:52 ` [PATCH 4.19 082/211] ARM: dts: imx7-colibri: disable HS400 Greg Kroah-Hartman
2019-10-03 15:52 ` [PATCH 4.19 083/211] media: radio/si470x: kill urb on error Greg Kroah-Hartman
2019-10-03 15:52 ` [PATCH 4.19 084/211] media: hdpvr: add terminating 0 at end of string Greg Kroah-Hartman
2019-10-03 15:52 ` [PATCH 4.19 085/211] ASoC: uniphier: Fix double reset assersion when transitioning to suspend state Greg Kroah-Hartman
2019-10-03 15:52 ` [PATCH 4.19 086/211] tools headers: Fixup bitsperlong per arch includes Greg Kroah-Hartman
2019-10-03 15:52 ` [PATCH 4.19 087/211] ASoC: sun4i-i2s: Dont use the oversample to calculate BCLK Greg Kroah-Hartman
2019-10-03 15:52 ` [PATCH 4.19 088/211] led: triggers: Fix a memory leak bug Greg Kroah-Hartman
2019-10-03 15:52 ` [PATCH 4.19 089/211] nbd: add missing config put Greg Kroah-Hartman
2019-10-03 15:52 ` Greg Kroah-Hartman [this message]
2019-10-04 10:12 ` [PATCH 4.19 090/211] media: mceusb: fix (eliminate) TX IR signal length limit Pavel Machek
2019-10-04 13:47 ` Sasha Levin
2019-10-03 15:52 ` [PATCH 4.19 091/211] media: dvb-frontends: use ida for pll number Greg Kroah-Hartman
2019-10-03 15:52 ` [PATCH 4.19 092/211] posix-cpu-timers: Sanitize bogus WARNONS Greg Kroah-Hartman
2019-10-03 15:52 ` [PATCH 4.19 093/211] media: dvb-core: fix a memory leak bug Greg Kroah-Hartman
2019-10-03 15:52 ` [PATCH 4.19 094/211] libperf: Fix alignment trap with xyarray contents in perf stat Greg Kroah-Hartman
2019-10-03 15:52 ` [PATCH 4.19 095/211] EDAC/amd64: Recognize DRAM device type ECC capability Greg Kroah-Hartman
2019-10-03 15:52 ` [PATCH 4.19 096/211] EDAC/amd64: Decode syndrome before translating address Greg Kroah-Hartman
2019-10-03 15:52 ` [PATCH 4.19 097/211] PM / devfreq: passive: Use non-devm notifiers Greg Kroah-Hartman
2019-10-03 15:52 ` [PATCH 4.19 098/211] PM / devfreq: exynos-bus: Correct clock enable sequence Greg Kroah-Hartman
2019-10-03 15:52 ` [PATCH 4.19 099/211] media: cec-notifier: clear cec_adap in cec_notifier_unregister Greg Kroah-Hartman
2019-10-03 15:52 ` [PATCH 4.19 100/211] media: saa7146: add cleanup in hexium_attach() Greg Kroah-Hartman
2019-10-03 15:52 ` [PATCH 4.19 101/211] media: cpia2_usb: fix memory leaks Greg Kroah-Hartman
2019-10-03 15:52 ` [PATCH 4.19 102/211] media: saa7134: fix terminology around saa7134_i2c_eeprom_md7134_gate() Greg Kroah-Hartman
2019-10-03 15:52 ` [PATCH 4.19 103/211] perf trace beauty ioctl: Fix off-by-one error in cmd->string table Greg Kroah-Hartman
2019-10-03 15:52 ` [PATCH 4.19 104/211] media: ov9650: add a sanity check Greg Kroah-Hartman
2019-10-03 15:52 ` [PATCH 4.19 105/211] ASoC: es8316: fix headphone mixer volume table Greg Kroah-Hartman
2019-10-03 15:52 ` [PATCH 4.19 106/211] ACPI / CPPC: do not require the _PSD method Greg Kroah-Hartman
2019-10-03 15:52 ` [PATCH 4.19 107/211] sched/cpufreq: Align trace event behavior of fast switching Greg Kroah-Hartman
2019-10-03 15:52 ` [PATCH 4.19 108/211] x86/apic/vector: Warn when vector space exhaustion breaks affinity Greg Kroah-Hartman
2019-10-03 15:52 ` [PATCH 4.19 109/211] arm64: kpti: ensure patched kernel text is fetched from PoU Greg Kroah-Hartman
2019-10-03 15:52 ` [PATCH 4.19 110/211] x86/mm/pti: Do not invoke PTI functions when PTI is disabled Greg Kroah-Hartman
2019-10-03 15:52 ` [PATCH 4.19 111/211] ASoC: fsl_ssi: Fix clock control issue in master mode Greg Kroah-Hartman
2019-10-03 15:52 ` [PATCH 4.19 112/211] x86/mm/pti: Handle unaligned address gracefully in pti_clone_pagetable() Greg Kroah-Hartman
2019-10-03 15:52 ` [PATCH 4.19 113/211] nvmet: fix data units read and written counters in SMART log Greg Kroah-Hartman
2019-10-03 15:53 ` [PATCH 4.19 114/211] nvme-multipath: fix ana log nsid lookup when nsid is not found Greg Kroah-Hartman
2019-10-03 15:53 ` [PATCH 4.19 115/211] ALSA: firewire-motu: add support for MOTU 4pre Greg Kroah-Hartman
2019-10-03 15:53 ` [PATCH 4.19 116/211] iommu/amd: Silence warnings under memory pressure Greg Kroah-Hartman
2019-10-03 15:53 ` [PATCH 4.19 117/211] libata/ahci: Drop PCS quirk for Denverton and beyond Greg Kroah-Hartman
2019-10-03 15:53 ` [PATCH 4.19 118/211] iommu/iova: Avoid false sharing on fq_timer_on Greg Kroah-Hartman
2019-10-03 15:53 ` [PATCH 4.19 119/211] libtraceevent: Change users plugin directory Greg Kroah-Hartman
2019-10-03 15:53 ` [PATCH 4.19 120/211] ARM: dts: exynos: Mark LDO10 as always-on on Peach Pit/Pi Chromebooks Greg Kroah-Hartman
2019-10-03 15:53 ` [PATCH 4.19 121/211] ACPI: custom_method: fix memory leaks Greg Kroah-Hartman
2019-10-03 15:53 ` [PATCH 4.19 122/211] ACPI / PCI: fix acpi_pci_irq_enable() memory leak Greg Kroah-Hartman
2019-10-03 15:53 ` [PATCH 4.19 123/211] closures: fix a race on wakeup from closure_sync Greg Kroah-Hartman
2019-10-03 15:53 ` [PATCH 4.19 124/211] hwmon: (acpi_power_meter) Change log level for unsafe software power cap Greg Kroah-Hartman
2019-10-03 15:53 ` [PATCH 4.19 125/211] md/raid1: fail run raid1 array when active disk less than one Greg Kroah-Hartman
2019-10-03 15:53 ` [PATCH 4.19 126/211] dmaengine: ti: edma: Do not reset reserved paRAM slots Greg Kroah-Hartman
2019-10-03 15:53 ` [PATCH 4.19 127/211] kprobes: Prohibit probing on BUG() and WARN() address Greg Kroah-Hartman
2019-10-03 15:53 ` [PATCH 4.19 128/211] s390/crypto: xts-aes-s390 fix extra run-time crypto self tests finding Greg Kroah-Hartman
2019-10-03 15:53 ` [PATCH 4.19 129/211] x86/cpu: Add Tiger Lake to Intel family Greg Kroah-Hartman
2019-10-03 15:53 ` [PATCH 4.19 130/211] platform/x86: intel_pmc_core: Do not ioremap RAM Greg Kroah-Hartman
2019-10-03 15:53 ` [PATCH 4.19 131/211] ASoC: dmaengine: Make the pcm->name equal to pcm->id if the name is not set Greg Kroah-Hartman
2019-10-03 15:53 ` [PATCH 4.19 132/211] raid5: dont set STRIPE_HANDLE to stripe which is in batch list Greg Kroah-Hartman
2019-10-03 15:53 ` [PATCH 4.19 133/211] mmc: core: Clarify sdio_irq_pending flag for MMC_CAP2_SDIO_IRQ_NOTHREAD Greg Kroah-Hartman
2019-10-03 15:53 ` [PATCH 4.19 134/211] mmc: sdhci: Fix incorrect switch to HS mode Greg Kroah-Hartman
2019-10-03 15:53 ` [PATCH 4.19 135/211] mmc: core: Add helper function to indicate if SDIO IRQs is enabled Greg Kroah-Hartman
2019-10-03 15:53 ` [PATCH 4.19 136/211] mmc: dw_mmc: Re-store SDIO IRQs mask at system resume Greg Kroah-Hartman
2019-10-03 15:53 ` [PATCH 4.19 137/211] raid5: dont increment read_errors on EILSEQ return Greg Kroah-Hartman
2019-10-03 15:53 ` [PATCH 4.19 138/211] libertas: Add missing sentinel at end of if_usb.c fw_table Greg Kroah-Hartman
2019-10-03 15:53 ` [PATCH 4.19 139/211] e1000e: add workaround for possible stalled packet Greg Kroah-Hartman
2019-10-03 15:53 ` [PATCH 4.19 140/211] ALSA: hda - Drop unsol event handler for Intel HDMI codecs Greg Kroah-Hartman
2019-10-03 15:53 ` [PATCH 4.19 141/211] drm/amd/powerplay/smu7: enforce minimal VBITimeout (v2) Greg Kroah-Hartman
2019-10-03 15:53 ` [PATCH 4.19 142/211] media: ttusb-dec: Fix info-leak in ttusb_dec_send_command() Greg Kroah-Hartman
2019-10-03 15:53 ` [PATCH 4.19 143/211] ALSA: hda/realtek - Blacklist PC beep for Lenovo ThinkCentre M73/93 Greg Kroah-Hartman
2019-10-03 15:53 ` [PATCH 4.19 144/211] iommu/amd: Override wrong IVRS IOAPIC on Raven Ridge systems Greg Kroah-Hartman
2019-10-03 15:53 ` [PATCH 4.19 145/211] btrfs: extent-tree: Make sure we only allocate extents from block groups with the same type Greg Kroah-Hartman
2019-10-03 15:53 ` [PATCH 4.19 146/211] media: omap3isp: Set device on omap3isp subdevs Greg Kroah-Hartman
2019-10-03 15:53 ` [PATCH 4.19 147/211] PM / devfreq: passive: fix compiler warning Greg Kroah-Hartman
2019-10-03 15:53 ` [PATCH 4.19 148/211] iwlwifi: fw: dont send GEO_TX_POWER_LIMIT command to FW version 36 Greg Kroah-Hartman
2019-10-03 15:53 ` [PATCH 4.19 149/211] ALSA: firewire-tascam: handle error code when getting current source of clock Greg Kroah-Hartman
2019-10-03 15:53 ` [PATCH 4.19 150/211] ALSA: firewire-tascam: check intermediate state of clock status and retry Greg Kroah-Hartman
2019-10-03 15:53 ` [PATCH 4.19 151/211] scsi: scsi_dh_rdac: zero cdb in send_mode_select() Greg Kroah-Hartman
2019-10-03 15:53 ` [PATCH 4.19 152/211] scsi: qla2xxx: Fix Relogin to prevent modifying scan_state flag Greg Kroah-Hartman
2019-10-03 15:53 ` [PATCH 4.19 153/211] printk: Do not lose last line in kmsg buffer dump Greg Kroah-Hartman
2019-10-03 15:53 ` [PATCH 4.19 154/211] IB/mlx5: Free mpi in mp_slave mode Greg Kroah-Hartman
2019-10-03 15:53 ` [PATCH 4.19 155/211] IB/hfi1: Define variables as unsigned long to fix KASAN warning Greg Kroah-Hartman
2019-10-03 15:53 ` [PATCH 4.19 156/211] randstruct: Check member structs in is_pure_ops_struct() Greg Kroah-Hartman
2019-10-03 15:53 ` [PATCH 4.19 157/211] Revert "ceph: use ceph_evict_inode to cleanup inodes resource" Greg Kroah-Hartman
2019-10-03 15:53 ` [PATCH 4.19 158/211] ceph: use ceph_evict_inode to cleanup inodes resource Greg Kroah-Hartman
2019-10-03 15:53 ` [PATCH 4.19 159/211] ALSA: hda/realtek - PCI quirk for Medion E4254 Greg Kroah-Hartman
2019-10-03 15:53 ` [PATCH 4.19 160/211] blk-mq: add callback of .cleanup_rq Greg Kroah-Hartman
2019-10-03 15:53 ` [PATCH 4.19 161/211] scsi: implement .cleanup_rq callback Greg Kroah-Hartman
2019-10-03 15:53 ` [PATCH 4.19 162/211] powerpc/imc: Dont create debugfs files for cpu-less nodes Greg Kroah-Hartman
2019-10-03 15:53 ` [PATCH 4.19 163/211] fuse: fix missing unlock_page in fuse_writepage() Greg Kroah-Hartman
2019-10-03 15:53 ` [PATCH 4.19 164/211] parisc: Disable HP HSC-PCI Cards to prevent kernel crash Greg Kroah-Hartman
2019-10-03 15:53 ` [PATCH 4.19 165/211] KVM: x86: always stop emulation on page fault Greg Kroah-Hartman
2019-10-03 15:53 ` [PATCH 4.19 166/211] KVM: x86: set ctxt->have_exception in x86_decode_insn() Greg Kroah-Hartman
2019-10-03 15:53 ` [PATCH 4.19 167/211] KVM: x86: Manually calculate reserved bits when loading PDPTRS Greg Kroah-Hartman
2019-11-11 9:32 ` Thomas Lamprecht
2019-11-11 17:37 ` Sean Christopherson
2019-11-11 17:48 ` Greg Kroah-Hartman
2019-11-11 17:57 ` Sean Christopherson
2019-11-11 18:08 ` Greg Kroah-Hartman
2019-11-12 0:25 ` Sean Christopherson
2019-10-03 15:53 ` [PATCH 4.19 168/211] media: sn9c20x: Add MSI MS-1039 laptop to flip_dmi_table Greg Kroah-Hartman
2019-10-03 15:53 ` [PATCH 4.19 169/211] media: dont drop front-end reference count for ->detach Greg Kroah-Hartman
2019-10-03 15:53 ` [PATCH 4.19 170/211] binfmt_elf: Do not move brk for INTERP-less ET_EXEC Greg Kroah-Hartman
2019-10-03 15:53 ` [PATCH 4.19 171/211] ASoC: Intel: NHLT: Fix debug print format Greg Kroah-Hartman
2019-10-03 15:53 ` [PATCH 4.19 172/211] ASoC: Intel: Skylake: Use correct function to access iomem space Greg Kroah-Hartman
2019-10-03 15:53 ` [PATCH 4.19 173/211] ASoC: Intel: Fix use of potentially uninitialized variable Greg Kroah-Hartman
2019-10-03 15:54 ` [PATCH 4.19 174/211] ARM: samsung: Fix system restart on S3C6410 Greg Kroah-Hartman
2019-10-03 15:54 ` [PATCH 4.19 175/211] ARM: zynq: Use memcpy_toio instead of memcpy on smp bring-up Greg Kroah-Hartman
2019-10-03 15:54 ` [PATCH 4.19 176/211] Revert "arm64: Remove unnecessary ISBs from set_{pte,pmd,pud}" Greg Kroah-Hartman
2019-10-03 15:54 ` [PATCH 4.19 177/211] arm64: tlb: Ensure we execute an ISB following walk cache invalidation Greg Kroah-Hartman
2019-10-03 15:54 ` [PATCH 4.19 178/211] arm64: dts: rockchip: limit clock rate of MMC controllers for RK3328 Greg Kroah-Hartman
2019-10-03 15:54 ` [PATCH 4.19 179/211] alarmtimer: Use EOPNOTSUPP instead of ENOTSUPP Greg Kroah-Hartman
2019-10-03 15:54 ` [PATCH 4.19 180/211] regulator: Defer init completion for a while after late_initcall Greg Kroah-Hartman
2019-10-03 15:54 ` [PATCH 4.19 181/211] efifb: BGRT: Improve efifb_bgrt_sanity_check Greg Kroah-Hartman
2019-10-03 15:54 ` [PATCH 4.19 182/211] gfs2: clear buf_in_tr when ending a transaction in sweep_bh_for_rgrps Greg Kroah-Hartman
2019-10-03 15:54 ` [PATCH 4.19 183/211] memcg, oom: dont require __GFP_FS when invoking memcg OOM killer Greg Kroah-Hartman
2019-10-03 15:54 ` [PATCH 4.19 184/211] memcg, kmem: do not fail __GFP_NOFAIL charges Greg Kroah-Hartman
2019-10-03 15:54 ` [PATCH 4.19 185/211] i40e: check __I40E_VF_DISABLE bit in i40e_sync_filters_subtask Greg Kroah-Hartman
2019-10-03 15:54 ` [PATCH 4.19 186/211] block: fix null pointer dereference in blk_mq_rq_timed_out() Greg Kroah-Hartman
2019-10-03 15:54 ` [PATCH 4.19 187/211] smb3: allow disabling requesting leases Greg Kroah-Hartman
2019-10-03 15:54 ` [PATCH 4.19 188/211] ovl: Fix dereferencing possible ERR_PTR() Greg Kroah-Hartman
2019-10-03 15:54 ` [PATCH 4.19 189/211] ovl: filter of trusted xattr results in audit Greg Kroah-Hartman
2019-10-03 15:54 ` [PATCH 4.19 190/211] btrfs: fix allocation of free space cache v1 bitmap pages Greg Kroah-Hartman
2019-10-03 15:54 ` [PATCH 4.19 191/211] Btrfs: fix use-after-free when using the tree modification log Greg Kroah-Hartman
2019-10-03 15:54 ` [PATCH 4.19 192/211] btrfs: Relinquish CPUs in btrfs_compare_trees Greg Kroah-Hartman
2019-10-03 15:54 ` [PATCH 4.19 193/211] btrfs: qgroup: Fix the wrong target io_tree when freeing reserved data space Greg Kroah-Hartman
2019-10-03 15:54 ` [PATCH 4.19 194/211] btrfs: qgroup: Fix reserved data space leak if we have multiple reserve calls Greg Kroah-Hartman
2019-10-03 15:54 ` [PATCH 4.19 195/211] Btrfs: fix race setting up and completing qgroup rescan workers Greg Kroah-Hartman
2019-10-03 15:54 ` [PATCH 4.19 196/211] md/raid6: Set R5_ReadError when there is read failure on parity disk Greg Kroah-Hartman
2019-10-03 15:54 ` [PATCH 4.19 197/211] md: dont report active array_state until after revalidate_disk() completes Greg Kroah-Hartman
2019-10-03 15:54 ` [PATCH 4.19 198/211] md: only call set_in_sync() when it is expected to succeed Greg Kroah-Hartman
2019-10-03 15:54 ` [PATCH 4.19 199/211] cfg80211: Purge frame registrations on iftype change Greg Kroah-Hartman
2019-10-03 15:54 ` [PATCH 4.19 200/211] /dev/mem: Bail out upon SIGKILL Greg Kroah-Hartman
2019-10-03 15:54 ` [PATCH 4.19 201/211] ext4: fix warning inside ext4_convert_unwritten_extents_endio Greg Kroah-Hartman
2019-10-03 15:54 ` [PATCH 4.19 202/211] ext4: fix punch hole for inline_data file systems Greg Kroah-Hartman
2019-10-03 15:54 ` [PATCH 4.19 203/211] quota: fix wrong condition in is_quota_modification() Greg Kroah-Hartman
2019-10-03 15:54 ` [PATCH 4.19 204/211] hwrng: core - dont wait on add_early_randomness() Greg Kroah-Hartman
2019-10-03 15:54 ` [PATCH 4.19 205/211] i2c: riic: Clear NACK in tend isr Greg Kroah-Hartman
2019-10-03 15:54 ` [PATCH 4.19 206/211] CIFS: fix max ea value size Greg Kroah-Hartman
2019-10-03 15:54 ` [PATCH 4.19 207/211] CIFS: Fix oplock handling for SMB 2.1+ protocols Greg Kroah-Hartman
2019-10-03 15:54 ` [PATCH 4.19 208/211] md/raid0: avoid RAID0 data corruption due to layout confusion Greg Kroah-Hartman
2019-10-03 15:54 ` [PATCH 4.19 209/211] fuse: fix deadlock with aio poll and fuse_iqueue::waitq.lock Greg Kroah-Hartman
2019-10-03 19:48 ` Eric Biggers
2019-10-04 8:00 ` Greg Kroah-Hartman
2019-10-03 15:54 ` [PATCH 4.19 210/211] mm/compaction.c: clear total_{migrate,free}_scanned before scanning a new zone Greg Kroah-Hartman
2019-10-03 15:54 ` [PATCH 4.19 211/211] drm/amd/display: Restore backlight brightness after system resume Greg Kroah-Hartman
2019-10-03 19:02 ` [PATCH 4.19 000/211] 4.19.77-stable review François Valenduc
2019-10-03 19:08 ` Greg Kroah-Hartman
2019-10-03 19:09 ` François Valenduc
2019-10-03 19:10 ` Greg Kroah-Hartman
2019-10-03 19:18 ` François Valenduc
2019-10-03 19:20 ` Greg Kroah-Hartman
2019-10-03 20:05 ` Greg Kroah-Hartman
2019-10-03 20:11 ` François Valenduc
2019-10-03 22:40 ` kernelci.org bot
2019-10-03 23:52 ` shuah
2019-10-04 7:38 ` Jon Hunter
2019-10-04 15:12 ` Dan Rue
2019-10-04 22:58 ` Guenter Roeck
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20191003154507.534538747@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=as1033x@comcast.net \
--cc=linux-kernel@vger.kernel.org \
--cc=mchehab+samsung@kernel.org \
--cc=sashal@kernel.org \
--cc=sean@mess.org \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).