From 5209bcfb3649ab773b572cf79178a28ede205ebd Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Wed, 7 Aug 2019 17:57:22 +0200 Subject: [PATCH] 4.19-stable patches added patches: hid-add-quirk-for-hp-x1200-pixart-oem-mouse.patch hid-wacom-fix-bit-shift-for-cintiq-companion-2.patch spi-bcm2835-fix-3-wire-mode-if-dma-is-enabled.patch --- ...-quirk-for-hp-x1200-pixart-oem-mouse.patch | 46 ++++++++++++++++ ...fix-bit-shift-for-cintiq-companion-2.patch | 50 +++++++++++++++++ queue-4.19/series | 3 ++ ...35-fix-3-wire-mode-if-dma-is-enabled.patch | 54 +++++++++++++++++++ 4 files changed, 153 insertions(+) create mode 100644 queue-4.19/hid-add-quirk-for-hp-x1200-pixart-oem-mouse.patch create mode 100644 queue-4.19/hid-wacom-fix-bit-shift-for-cintiq-companion-2.patch create mode 100644 queue-4.19/spi-bcm2835-fix-3-wire-mode-if-dma-is-enabled.patch diff --git a/queue-4.19/hid-add-quirk-for-hp-x1200-pixart-oem-mouse.patch b/queue-4.19/hid-add-quirk-for-hp-x1200-pixart-oem-mouse.patch new file mode 100644 index 00000000000..3900405fab6 --- /dev/null +++ b/queue-4.19/hid-add-quirk-for-hp-x1200-pixart-oem-mouse.patch @@ -0,0 +1,46 @@ +From 49869d2ea9eecc105a10724c1abf035151a3c4e2 Mon Sep 17 00:00:00 2001 +From: Sebastian Parschauer +Date: Wed, 24 Jul 2019 20:40:03 +0200 +Subject: HID: Add quirk for HP X1200 PIXART OEM mouse + +From: Sebastian Parschauer + +commit 49869d2ea9eecc105a10724c1abf035151a3c4e2 upstream. + +The PixArt OEM mice are known for disconnecting every minute in +runlevel 1 or 3 if they are not always polled. So add quirk +ALWAYS_POLL for this one as well. + +Jonathan Teh (@jonathan-teh) reported and tested the quirk. +Reference: https://github.com/sriemer/fix-linux-mouse/issues/15 + +Signed-off-by: Sebastian Parschauer +CC: stable@vger.kernel.org +Signed-off-by: Jiri Kosina +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/hid/hid-ids.h | 1 + + drivers/hid/hid-quirks.c | 1 + + 2 files changed, 2 insertions(+) + +--- a/drivers/hid/hid-ids.h ++++ b/drivers/hid/hid-ids.h +@@ -559,6 +559,7 @@ + #define USB_PRODUCT_ID_HP_LOGITECH_OEM_USB_OPTICAL_MOUSE_0B4A 0x0b4a + #define USB_PRODUCT_ID_HP_PIXART_OEM_USB_OPTICAL_MOUSE 0x134a + #define USB_PRODUCT_ID_HP_PIXART_OEM_USB_OPTICAL_MOUSE_094A 0x094a ++#define USB_PRODUCT_ID_HP_PIXART_OEM_USB_OPTICAL_MOUSE_0641 0x0641 + + #define USB_VENDOR_ID_HUION 0x256c + #define USB_DEVICE_ID_HUION_TABLET 0x006e +--- a/drivers/hid/hid-quirks.c ++++ b/drivers/hid/hid-quirks.c +@@ -94,6 +94,7 @@ static const struct hid_device_id hid_qu + { HID_USB_DEVICE(USB_VENDOR_ID_HP, USB_PRODUCT_ID_HP_LOGITECH_OEM_USB_OPTICAL_MOUSE_0B4A), HID_QUIRK_ALWAYS_POLL }, + { HID_USB_DEVICE(USB_VENDOR_ID_HP, USB_PRODUCT_ID_HP_PIXART_OEM_USB_OPTICAL_MOUSE), HID_QUIRK_ALWAYS_POLL }, + { HID_USB_DEVICE(USB_VENDOR_ID_HP, USB_PRODUCT_ID_HP_PIXART_OEM_USB_OPTICAL_MOUSE_094A), HID_QUIRK_ALWAYS_POLL }, ++ { HID_USB_DEVICE(USB_VENDOR_ID_HP, USB_PRODUCT_ID_HP_PIXART_OEM_USB_OPTICAL_MOUSE_0641), HID_QUIRK_ALWAYS_POLL }, + { HID_USB_DEVICE(USB_VENDOR_ID_IDEACOM, USB_DEVICE_ID_IDEACOM_IDC6680), HID_QUIRK_MULTI_INPUT }, + { HID_USB_DEVICE(USB_VENDOR_ID_INNOMEDIA, USB_DEVICE_ID_INNEX_GENESIS_ATARI), HID_QUIRK_MULTI_INPUT }, + { HID_USB_DEVICE(USB_VENDOR_ID_KYE, USB_DEVICE_ID_KYE_EASYPEN_M610X), HID_QUIRK_MULTI_INPUT }, diff --git a/queue-4.19/hid-wacom-fix-bit-shift-for-cintiq-companion-2.patch b/queue-4.19/hid-wacom-fix-bit-shift-for-cintiq-companion-2.patch new file mode 100644 index 00000000000..28303640a8e --- /dev/null +++ b/queue-4.19/hid-wacom-fix-bit-shift-for-cintiq-companion-2.patch @@ -0,0 +1,50 @@ +From 693c3dab4e50403f91bca4b52fc6d8562a3180f6 Mon Sep 17 00:00:00 2001 +From: Aaron Armstrong Skomra +Date: Tue, 23 Jul 2019 11:09:15 -0700 +Subject: HID: wacom: fix bit shift for Cintiq Companion 2 + +From: Aaron Armstrong Skomra + +commit 693c3dab4e50403f91bca4b52fc6d8562a3180f6 upstream. + +The bit indicating BTN_6 on this device is overshifted +by 2 bits, resulting in the incorrect button being +reported. + +Also fix copy-paste mistake in comments. + +Signed-off-by: Aaron Armstrong Skomra +Reviewed-by: Ping Cheng +Link: https://github.com/linuxwacom/xf86-input-wacom/issues/71 +Fixes: c7f0522a1ad1 ("HID: wacom: Slim down wacom_intuos_pad processing") +Cc: # v4.5+ +Signed-off-by: Jiri Kosina +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/hid/wacom_wac.c | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +--- a/drivers/hid/wacom_wac.c ++++ b/drivers/hid/wacom_wac.c +@@ -537,14 +537,14 @@ static int wacom_intuos_pad(struct wacom + */ + buttons = (data[4] << 1) | (data[3] & 0x01); + } else if (features->type == CINTIQ_COMPANION_2) { +- /* d-pad right -> data[4] & 0x10 +- * d-pad up -> data[4] & 0x20 +- * d-pad left -> data[4] & 0x40 +- * d-pad down -> data[4] & 0x80 +- * d-pad center -> data[3] & 0x01 ++ /* d-pad right -> data[2] & 0x10 ++ * d-pad up -> data[2] & 0x20 ++ * d-pad left -> data[2] & 0x40 ++ * d-pad down -> data[2] & 0x80 ++ * d-pad center -> data[1] & 0x01 + */ + buttons = ((data[2] >> 4) << 7) | +- ((data[1] & 0x04) << 6) | ++ ((data[1] & 0x04) << 4) | + ((data[2] & 0x0F) << 2) | + (data[1] & 0x03); + } else if (features->type >= INTUOS5S && features->type <= INTUOSPL) { diff --git a/queue-4.19/series b/queue-4.19/series index 0318338816d..4a4bb4a7a88 100644 --- a/queue-4.19/series +++ b/queue-4.19/series @@ -6,3 +6,6 @@ libnvdimm-bus-prevent-duplicate-device_unregister-ca.patch libnvdimm-region-register-badblocks-before-namespace.patch libnvdimm-bus-prepare-the-nd_ioctl-path-to-be-re-ent.patch libnvdimm-bus-fix-wait_nvdimm_bus_probe_idle-abba-de.patch +hid-wacom-fix-bit-shift-for-cintiq-companion-2.patch +hid-add-quirk-for-hp-x1200-pixart-oem-mouse.patch +spi-bcm2835-fix-3-wire-mode-if-dma-is-enabled.patch diff --git a/queue-4.19/spi-bcm2835-fix-3-wire-mode-if-dma-is-enabled.patch b/queue-4.19/spi-bcm2835-fix-3-wire-mode-if-dma-is-enabled.patch new file mode 100644 index 00000000000..93120c7a6b2 --- /dev/null +++ b/queue-4.19/spi-bcm2835-fix-3-wire-mode-if-dma-is-enabled.patch @@ -0,0 +1,54 @@ +From 8d8bef50365847134b51c1ec46786bc2873e4e47 Mon Sep 17 00:00:00 2001 +From: Lukas Wunner +Date: Wed, 3 Jul 2019 12:29:31 +0200 +Subject: spi: bcm2835: Fix 3-wire mode if DMA is enabled +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: Lukas Wunner + +commit 8d8bef50365847134b51c1ec46786bc2873e4e47 upstream. + +Commit 6935224da248 ("spi: bcm2835: enable support of 3-wire mode") +added 3-wire support to the BCM2835 SPI driver by setting the REN bit +(Read Enable) in the CS register when receiving data. The REN bit puts +the transmitter in high-impedance state. The driver recognizes that +data is to be received by checking whether the rx_buf of a transfer is +non-NULL. + +Commit 3ecd37edaa2a ("spi: bcm2835: enable dma modes for transfers +meeting certain conditions") subsequently broke 3-wire support because +it set the SPI_MASTER_MUST_RX flag which causes spi_map_msg() to replace +rx_buf with a dummy buffer if it is NULL. As a result, rx_buf is +*always* non-NULL if DMA is enabled. + +Reinstate 3-wire support by not only checking whether rx_buf is non-NULL, +but also checking that it is not the dummy buffer. + +Fixes: 3ecd37edaa2a ("spi: bcm2835: enable dma modes for transfers meeting certain conditions") +Reported-by: Nuno Sá +Signed-off-by: Lukas Wunner +Cc: stable@vger.kernel.org # v4.2+ +Cc: Martin Sperl +Acked-by: Stefan Wahren +Link: https://lore.kernel.org/r/328318841455e505370ef8ecad97b646c033dc8a.1562148527.git.lukas@wunner.de +Signed-off-by: Mark Brown +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/spi/spi-bcm2835.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- a/drivers/spi/spi-bcm2835.c ++++ b/drivers/spi/spi-bcm2835.c +@@ -554,7 +554,8 @@ static int bcm2835_spi_transfer_one(stru + bcm2835_wr(bs, BCM2835_SPI_CLK, cdiv); + + /* handle all the 3-wire mode */ +- if ((spi->mode & SPI_3WIRE) && (tfr->rx_buf)) ++ if (spi->mode & SPI_3WIRE && tfr->rx_buf && ++ tfr->rx_buf != ctlr->dummy_rx) + cs |= BCM2835_SPI_CS_REN; + else + cs &= ~BCM2835_SPI_CS_REN; -- 2.47.3