mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-29 13:46:49 +00:00
Merge pull request #3708 from MilhouseVH/linux5.2.1+
linux (Mainline/RPi): update to linux-5.2.6
This commit is contained in:
commit
cfd340b283
@ -3,8 +3,8 @@
|
||||
# Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
PKG_NAME="bcm2835-driver"
|
||||
PKG_VERSION="cba4be275b9943b353ea2e5201ab2badd4c760e9"
|
||||
PKG_SHA256="b332c4e56a746a46ffbc65ff8e7d5a18d3257dc781847a82ad6af88c263dcc89"
|
||||
PKG_VERSION="94bae1b0a88a7fcaf171a4c91b9e1fdb03aad9ae"
|
||||
PKG_SHA256="62ee04722ccf8c8e9169d914b1fed318052e59587ddd8cb8605bd2c3a2b87c16"
|
||||
PKG_LICENSE="nonfree"
|
||||
PKG_SITE="http://www.broadcom.com"
|
||||
PKG_URL="${DISTRO_SRC}/${PKG_NAME}-${PKG_VERSION}.tar.xz"
|
||||
|
@ -3,8 +3,8 @@
|
||||
# Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
PKG_NAME="iwlwifi-firmware"
|
||||
PKG_VERSION="71fb5e27f775cd8a6b42d51bb738b1e3ed3988a1"
|
||||
PKG_SHA256="8c093c580c9ea4050e8a5ab501bc89fcdb2eaed973f0e29471b1f58d215f87b1"
|
||||
PKG_VERSION="9921d8567f60582232a6c3aabdd83bcdbeccffdd"
|
||||
PKG_SHA256="f5a217121559114cc26b255867126600a43f1286c8d21880fdd36bab2723393d"
|
||||
PKG_LICENSE="Free-to-use"
|
||||
PKG_SITE="https://github.com/LibreELEC/iwlwifi-firmware"
|
||||
PKG_URL="https://github.com/LibreELEC/iwlwifi-firmware/archive/$PKG_VERSION.tar.gz"
|
||||
|
@ -2,8 +2,8 @@
|
||||
# Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
PKG_NAME="kernel-firmware"
|
||||
PKG_VERSION="d52556e4592e64023157a83fb0f483661f23ac0e"
|
||||
PKG_SHA256="bf33bfdeb9d329484d24f64cdd98f0bf1ac2a1f77e3f9539da0bdd1785f670de"
|
||||
PKG_VERSION="20190717"
|
||||
PKG_SHA256="cdb28523dc6399922b8b322af034a1de536ff9ef000a6f992bbce82489fa978a"
|
||||
PKG_LICENSE="other"
|
||||
PKG_SITE="https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/"
|
||||
PKG_URL="https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/snapshot/$PKG_VERSION.tar.gz"
|
||||
|
@ -23,20 +23,14 @@ case "$LINUX" in
|
||||
PKG_SOURCE_NAME="linux-$LINUX-$PKG_VERSION.tar.gz"
|
||||
;;
|
||||
raspberrypi)
|
||||
PKG_VERSION="1a75b37ead9ee99fee6db5525608755a73a5efba" # 5.2.0
|
||||
PKG_SHA256="16f2650b597c1b6ed787ab9ff3abfb8bc2798a32b68f7401b5391c485838c06b"
|
||||
PKG_URL="https://github.com/raspberrypi/linux/archive/$PKG_VERSION.tar.gz"
|
||||
PKG_SOURCE_NAME="linux-$LINUX-$PKG_VERSION.tar.gz"
|
||||
;;
|
||||
raspberrypi4)
|
||||
PKG_VERSION="82fba36079e471b5fb5f386bb8195ce5be75cfb3" # 5.1.18
|
||||
PKG_SHA256="4ab335edb71cf95505f891e7ab456f6f00731d5690b5fc0dac7a0b0ed141f1ab"
|
||||
PKG_VERSION="a3dfdf36d13214285bf7d828e0a87b1a2b5bd92c" # 5.2.6
|
||||
PKG_SHA256="9b28d8e3b6206d66a81f5fe2d61c027e3099256cc7de2452fb9082f5e231a08d"
|
||||
PKG_URL="https://github.com/raspberrypi/linux/archive/$PKG_VERSION.tar.gz"
|
||||
PKG_SOURCE_NAME="linux-$LINUX-$PKG_VERSION.tar.gz"
|
||||
;;
|
||||
*)
|
||||
PKG_VERSION="5.2"
|
||||
PKG_SHA256="54ad66f672e1a831b574f5e704e8a05f1e6180a8245d4bdd811208a6cb0ac1e7"
|
||||
PKG_VERSION="5.2.6"
|
||||
PKG_SHA256="be105afb7394dce98953bcea79c2ce02345587eee4638fce9a5f5a1e7e7b1ff2"
|
||||
PKG_URL="https://www.kernel.org/pub/linux/kernel/v5.x/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||
PKG_PATCH_DIRS="default"
|
||||
;;
|
||||
|
@ -1,206 +0,0 @@
|
||||
commit 5a596921a4636e62843a59b7eab7b87b70a6d296
|
||||
Author: Lukas Rusak <lorusak@gmail.com>
|
||||
Date: Sun May 6 22:03:11 2018 -0700
|
||||
|
||||
HID: add ouya HID driver
|
||||
|
||||
This driver is a simple implementation to get the controller working and mapped properly.
|
||||
This driver does not include functionality for the touchpad (yet). The original driver
|
||||
was taken from from the ouya linux tree and has been simplified. It seems there may have
|
||||
been other versions of the controller present that had a broken report descriptor. I have
|
||||
removed that for now.
|
||||
|
||||
diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig
|
||||
index 60252fd796f6..6be2c454e72e 100644
|
||||
--- a/drivers/hid/Kconfig
|
||||
+++ b/drivers/hid/Kconfig
|
||||
@@ -659,6 +659,12 @@ config HID_ORTEK
|
||||
- Ortek WKB-2000
|
||||
- Skycable wireless presenter
|
||||
|
||||
+config HID_OUYA
|
||||
+ tristate "OUYA Game Controller"
|
||||
+ depends on USB_HID
|
||||
+ ---help---
|
||||
+ Support for OUYA Game Controller.
|
||||
+
|
||||
config HID_PANTHERLORD
|
||||
tristate "Pantherlord/GreenAsia game controller"
|
||||
depends on HID
|
||||
diff --git a/drivers/hid/Makefile b/drivers/hid/Makefile
|
||||
index 17a8bd97da9d..4425890934e4 100644
|
||||
--- a/drivers/hid/Makefile
|
||||
+++ b/drivers/hid/Makefile
|
||||
@@ -71,6 +71,7 @@ obj-$(CONFIG_HID_MULTITOUCH) += hid-multitouch.o
|
||||
obj-$(CONFIG_HID_NTI) += hid-nti.o
|
||||
obj-$(CONFIG_HID_NTRIG) += hid-ntrig.o
|
||||
obj-$(CONFIG_HID_ORTEK) += hid-ortek.o
|
||||
+obj-$(CONFIG_HID_OUYA) += hid-ouya.o
|
||||
obj-$(CONFIG_HID_PRODIKEYS) += hid-prodikeys.o
|
||||
obj-$(CONFIG_HID_PANTHERLORD) += hid-pl.o
|
||||
obj-$(CONFIG_HID_PENMOUNT) += hid-penmount.o
|
||||
diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
|
||||
index 0b5cc910f62e..0528efb825fa 100644
|
||||
--- a/drivers/hid/hid-ids.h
|
||||
+++ b/drivers/hid/hid-ids.h
|
||||
@@ -859,6 +859,9 @@
|
||||
#define USB_DEVICE_ID_ORTEK_WKB2000 0x2000
|
||||
#define USB_DEVICE_ID_ORTEK_IHOME_IMAC_A210S 0x8003
|
||||
|
||||
+#define USB_VENDOR_ID_OUYA 0x2836
|
||||
+#define USB_DEVICE_ID_OUYA_CONTROLLER 0x0001
|
||||
+
|
||||
#define USB_VENDOR_ID_PLANTRONICS 0x047f
|
||||
|
||||
#define USB_VENDOR_ID_PANASONIC 0x04da
|
||||
diff --git a/drivers/hid/hid-ouya.c b/drivers/hid/hid-ouya.c
|
||||
new file mode 100644
|
||||
index 000000000000..4344a47b40af
|
||||
--- /dev/null
|
||||
+++ b/drivers/hid/hid-ouya.c
|
||||
@@ -0,0 +1,131 @@
|
||||
+/*
|
||||
+ * HID driver for OUYA Game Controller(s)
|
||||
+ *
|
||||
+ * Copyright (c) 2013 OUYA
|
||||
+ * Copyright (c) 2013 Gregorios Leach <optikflux@gmail.com>
|
||||
+ * Copyright (c) 2018 Lukas Rusak <lorusak@gmail.com>
|
||||
+ */
|
||||
+
|
||||
+#include <linux/device.h>
|
||||
+#include <linux/hid.h>
|
||||
+#include <linux/input.h>
|
||||
+#include <linux/module.h>
|
||||
+
|
||||
+#include "hid-ids.h"
|
||||
+
|
||||
+static const unsigned int ouya_absmap[] = {
|
||||
+ [0x30] = ABS_X, /* left stick X */
|
||||
+ [0x31] = ABS_Y, /* left stick Y */
|
||||
+ [0x32] = ABS_Z, /* L2 */
|
||||
+ [0x33] = ABS_RX, /* right stick X */
|
||||
+ [0x34] = ABS_RY, /* right stick Y */
|
||||
+ [0x35] = ABS_RZ, /* R2 */
|
||||
+};
|
||||
+
|
||||
+static const unsigned int ouya_keymap[] = {
|
||||
+ [0x1] = BTN_SOUTH, /* O */
|
||||
+ [0x2] = BTN_WEST, /* U */
|
||||
+ [0x3] = BTN_NORTH, /* Y */
|
||||
+ [0x4] = BTN_EAST, /* A */
|
||||
+ [0x5] = BTN_TL, /* L1 */
|
||||
+ [0x6] = BTN_TR, /* R1 */
|
||||
+ [0x7] = BTN_THUMBL, /* L3 */
|
||||
+ [0x8] = BTN_THUMBR, /* R3 */
|
||||
+ [0x9] = BTN_DPAD_UP, /* Up */
|
||||
+ [0xa] = BTN_DPAD_DOWN, /* Down */
|
||||
+ [0xb] = BTN_DPAD_LEFT, /* Left */
|
||||
+ [0xc] = BTN_DPAD_RIGHT, /* Right */
|
||||
+ [0xd] = BTN_TL2, /* L2 */
|
||||
+ [0xe] = BTN_TR2, /* R2 */
|
||||
+ [0xf] = BTN_MODE, /* Power */
|
||||
+};
|
||||
+
|
||||
+static int ouya_input_mapping(struct hid_device *hdev, struct hid_input *hi,
|
||||
+ struct hid_field *field, struct hid_usage *usage,
|
||||
+ unsigned long **bit, int *max)
|
||||
+{
|
||||
+ if ((usage->hid & HID_USAGE_PAGE) == HID_UP_BUTTON) {
|
||||
+ unsigned int key = usage->hid & HID_USAGE;
|
||||
+
|
||||
+ if (key >= ARRAY_SIZE(ouya_keymap))
|
||||
+ return -1;
|
||||
+
|
||||
+ key = ouya_keymap[key];
|
||||
+ hid_map_usage_clear(hi, usage, bit, max, EV_KEY, key);
|
||||
+
|
||||
+ return 1;
|
||||
+
|
||||
+ } else if ((usage->hid & HID_USAGE_PAGE) == HID_UP_GENDESK) {
|
||||
+ unsigned int abs = usage->hid & HID_USAGE;
|
||||
+
|
||||
+ if (abs >= ARRAY_SIZE(ouya_absmap))
|
||||
+ return -1;
|
||||
+
|
||||
+ abs = ouya_absmap[abs];
|
||||
+ hid_map_usage_clear(hi, usage, bit, max, EV_ABS, abs);
|
||||
+
|
||||
+ return 1;
|
||||
+ }
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static int ouya_probe(struct hid_device *hdev, const struct hid_device_id *id)
|
||||
+{
|
||||
+ int ret;
|
||||
+
|
||||
+ ret = hid_parse(hdev);
|
||||
+ if (ret) {
|
||||
+ hid_err(hdev, "parse failed\n");
|
||||
+ goto err_free;
|
||||
+ }
|
||||
+
|
||||
+ ret = hid_hw_start(hdev, HID_CONNECT_DEFAULT | HID_CONNECT_HIDDEV_FORCE);
|
||||
+ if (ret) {
|
||||
+ hid_err(hdev, "hw start failed\n");
|
||||
+ goto err_free;
|
||||
+ }
|
||||
+
|
||||
+ return 0;
|
||||
+
|
||||
+err_free:
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
+static void ouya_remove(struct hid_device *hdev)
|
||||
+{
|
||||
+ hid_hw_stop(hdev);
|
||||
+ kfree(hid_get_drvdata(hdev));
|
||||
+}
|
||||
+
|
||||
+static const struct hid_device_id ouya_devices[] = {
|
||||
+ { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_OUYA, USB_DEVICE_ID_OUYA_CONTROLLER) },
|
||||
+ { }
|
||||
+};
|
||||
+MODULE_DEVICE_TABLE(hid, ouya_devices);
|
||||
+
|
||||
+static struct hid_driver ouya_driver = {
|
||||
+ .name = "ouya",
|
||||
+ .id_table = ouya_devices,
|
||||
+ .input_mapping = ouya_input_mapping,
|
||||
+ .probe = ouya_probe,
|
||||
+ .remove = ouya_remove,
|
||||
+};
|
||||
+
|
||||
+static int __init ouya_init(void)
|
||||
+{
|
||||
+ return hid_register_driver(&ouya_driver);
|
||||
+}
|
||||
+
|
||||
+static void __exit ouya_exit(void)
|
||||
+{
|
||||
+ hid_unregister_driver(&ouya_driver);
|
||||
+}
|
||||
+
|
||||
+module_init(ouya_init);
|
||||
+module_exit(ouya_exit);
|
||||
+
|
||||
+MODULE_LICENSE("GPL");
|
||||
+MODULE_AUTHOR("Lukas Rusak <lorusak@gmail.com>");
|
||||
+MODULE_AUTHOR("Gregorios Leach <optikflux@gmail.com>");
|
||||
+MODULE_DESCRIPTION("Ouya Controller Driver");
|
||||
diff --git a/drivers/hid/hid-quirks.c b/drivers/hid/hid-quirks.c
|
||||
index 587e2681a53f..b5adc13e0df1 100644
|
||||
--- a/drivers/hid/hid-quirks.c
|
||||
+++ b/drivers/hid/hid-quirks.c
|
||||
@@ -538,6 +538,9 @@ static const struct hid_device_id hid_have_special_driver[] = {
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_ORTEK, USB_DEVICE_ID_ORTEK_IHOME_IMAC_A210S) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_SKYCABLE, USB_DEVICE_ID_SKYCABLE_WIRELESS_PRESENTER) },
|
||||
#endif
|
||||
+#if IS_ENABLED(CONFIG_HID_OUYA)
|
||||
+ { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_OUYA, USB_DEVICE_ID_OUYA_CONTROLLER) },
|
||||
+#endif
|
||||
#if IS_ENABLED(CONFIG_HID_PANTHERLORD)
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_GAMERON, USB_DEVICE_ID_GAMERON_DUAL_PSX_ADAPTOR) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_GAMERON, USB_DEVICE_ID_GAMERON_DUAL_PCS_ADAPTOR) },
|
@ -1,72 +0,0 @@
|
||||
From 7051422474e4c4e302ede3d07ffd8ef2682e07a2 Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Saraev <stefan@saraev.ca>
|
||||
Date: Tue, 22 Apr 2014 16:05:14 +0300
|
||||
Subject: [PATCH] [RFC] hid/sony: add autorepeat for PS3 remotes
|
||||
|
||||
adapted to 4.6
|
||||
|
||||
Betreff: [RFC] hid/sony: add autorepeat for PS3 remotes
|
||||
Von: David Dillow <dave@thedillows.org>
|
||||
Datum: 28.06.2013 04:28
|
||||
An: linux-input@vger.kernel.org
|
||||
Kopie (CC): Stephan Raue <stephan@openelec.tv>
|
||||
|
||||
Some applications using the PS3 remote would like to have autorepeat
|
||||
from the device. Use the input subsystem's software emulation to provide
|
||||
this capability, and enable those that don't need it to turn it off.
|
||||
---
|
||||
I'm not sure this is the correct approach, or if it is even appropriate
|
||||
for a remote to do autorepeat. However, the media/rc subsystem does do
|
||||
it by default, and it's been requested by users, so there is at least
|
||||
some demand.
|
||||
|
||||
This compiled against the hid-sony driver with the PS3 remote changes
|
||||
merged, but I have done no testing of it. If the approach seems
|
||||
reasonable, I'll try to test it when the MythTV is idle.
|
||||
|
||||
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
|
||||
---
|
||||
drivers/hid/hid-sony.c | 21 +++++++++++++++++++++
|
||||
1 file changed, 21 insertions(+)
|
||||
|
||||
diff --git a/drivers/hid/hid-sony.c b/drivers/hid/hid-sony.c
|
||||
index 310436a..84f7f41 100644
|
||||
--- a/drivers/hid/hid-sony.c
|
||||
+++ b/drivers/hid/hid-sony.c
|
||||
@@ -1120,6 +1120,25 @@ static int ps3remote_mapping(struct hid_device *hdev, struct hid_input *hi,
|
||||
return 1;
|
||||
}
|
||||
|
||||
+static int ps3remote_setup_repeat(struct hid_device *hdev)
|
||||
+{
|
||||
+ struct hid_input *hidinput = list_first_entry(&hdev->inputs,
|
||||
+ struct hid_input, list);
|
||||
+ struct input_dev *input = hidinput->input;
|
||||
+
|
||||
+ /*
|
||||
+ * Set up autorepeat defaults per the remote control subsystem;
|
||||
+ * this must be done after hid_hw_start(), as having these non-zero
|
||||
+ * at the time of input_register_device() tells the input system that
|
||||
+ * the hardware does the autorepeat, and the PS3 remote does not.
|
||||
+ */
|
||||
+ set_bit(EV_REP, input->evbit);
|
||||
+ input->rep[REP_DELAY] = 500;
|
||||
+ input->rep[REP_PERIOD] = 125;
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
static u8 *sony_report_fixup(struct hid_device *hdev, u8 *rdesc,
|
||||
unsigned int *rsize)
|
||||
{
|
||||
@@ -2372,6 +2391,8 @@ static int sony_probe(struct hid_device *hdev, const struct hid_device_id *id)
|
||||
sony_init_output_report(sc, dualshock4_send_output_report);
|
||||
} else if (sc->quirks & MOTION_CONTROLLER) {
|
||||
sony_init_output_report(sc, motion_send_output_report);
|
||||
+ } else if (sc->quirks & PS3REMOTE) {
|
||||
+ ret = ps3remote_setup_repeat(hdev);
|
||||
} else {
|
||||
ret = 0;
|
||||
}
|
||||
--
|
||||
2.5.0
|
@ -1,21 +0,0 @@
|
||||
diff -Naur linux-3.16.1/drivers/media/rc/imon.c linux-3.16.1.patch/drivers/media/rc/imon.c
|
||||
--- linux-3.16.1/drivers/media/rc/imon.c 2014-08-14 04:36:35.000000000 +0200
|
||||
+++ linux-3.16.1.patch/drivers/media/rc/imon.c 2014-08-15 13:57:16.587620642 +0200
|
||||
@@ -1344,6 +1344,17 @@
|
||||
}
|
||||
} else {
|
||||
/*
|
||||
+ * For users without stabilized, just ignore any value getting
|
||||
+ * to close to the diagonal.
|
||||
+ */
|
||||
+ if ((abs(rel_y) < 2 && abs(rel_x) < 2) ||
|
||||
+ abs(abs(rel_y) - abs(rel_x)) < 2 ) {
|
||||
+ spin_lock_irqsave(&ictx->kc_lock, flags);
|
||||
+ ictx->kc = KEY_UNKNOWN;
|
||||
+ spin_unlock_irqrestore(&ictx->kc_lock, flags);
|
||||
+ return;
|
||||
+ }
|
||||
+ /*
|
||||
* Hack alert: instead of using keycodes, we have
|
||||
* to use hard-coded scancodes here...
|
||||
*/
|
@ -1,158 +0,0 @@
|
||||
From 55096db50d8cdbf777c67f672b493ef565a12c38 Mon Sep 17 00:00:00 2001
|
||||
From: Matthias Reichl <hias@horus.com>
|
||||
Date: Fri, 22 Mar 2019 12:26:17 +0100
|
||||
Subject: [PATCH] media: rc: xbox_remote: add protocol and set timeout
|
||||
|
||||
The timestamps in ir-keytable -t output showed that the Xbox DVD
|
||||
IR dongle decodes scancodes every 64ms. The last scancode of a
|
||||
longer button press is decodes 64ms after the last-but-one which
|
||||
indicates the decoder doesn't use a timeout but decodes on the last
|
||||
edge of the signal.
|
||||
|
||||
267.042629: lirc protocol(unknown): scancode = 0xace
|
||||
267.042665: event type EV_MSC(0x04): scancode = 0xace
|
||||
267.042665: event type EV_KEY(0x01) key_down: KEY_1(0x0002)
|
||||
267.042665: event type EV_SYN(0x00).
|
||||
267.106625: lirc protocol(unknown): scancode = 0xace
|
||||
267.106643: event type EV_MSC(0x04): scancode = 0xace
|
||||
267.106643: event type EV_SYN(0x00).
|
||||
267.170623: lirc protocol(unknown): scancode = 0xace
|
||||
267.170638: event type EV_MSC(0x04): scancode = 0xace
|
||||
267.170638: event type EV_SYN(0x00).
|
||||
267.234621: lirc protocol(unknown): scancode = 0xace
|
||||
267.234636: event type EV_MSC(0x04): scancode = 0xace
|
||||
267.234636: event type EV_SYN(0x00).
|
||||
267.298623: lirc protocol(unknown): scancode = 0xace
|
||||
267.298638: event type EV_MSC(0x04): scancode = 0xace
|
||||
267.298638: event type EV_SYN(0x00).
|
||||
267.543345: event type EV_KEY(0x01) key_down: KEY_1(0x0002)
|
||||
267.543345: event type EV_SYN(0x00).
|
||||
267.570015: event type EV_KEY(0x01) key_up: KEY_1(0x0002)
|
||||
267.570015: event type EV_SYN(0x00).
|
||||
|
||||
Add a protocol with the repeat value and set the timeout in the
|
||||
driver to 10ms (to have a bit of headroom for delays) so the Xbox
|
||||
DVD remote performs more responsive.
|
||||
|
||||
Signed-off-by: Matthias Reichl <hias@horus.com>
|
||||
---
|
||||
Documentation/media/lirc.h.rst.exceptions | 1 +
|
||||
drivers/media/rc/keymaps/rc-xbox-dvd.c | 2 +-
|
||||
drivers/media/rc/rc-main.c | 2 ++
|
||||
drivers/media/rc/xbox_remote.c | 4 +++-
|
||||
include/media/rc-map.h | 4 +++-
|
||||
include/uapi/linux/lirc.h | 2 ++
|
||||
6 files changed, 12 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/Documentation/media/lirc.h.rst.exceptions b/Documentation/media/lirc.h.rst.exceptions
|
||||
index e7a41d4b3d46..f8b5f1a32b7d 100644
|
||||
--- a/Documentation/media/lirc.h.rst.exceptions
|
||||
+++ b/Documentation/media/lirc.h.rst.exceptions
|
||||
@@ -61,6 +61,7 @@ ignore symbol RC_PROTO_IMON
|
||||
ignore symbol RC_PROTO_RCMM12
|
||||
ignore symbol RC_PROTO_RCMM24
|
||||
ignore symbol RC_PROTO_RCMM32
|
||||
+ignore symbol RC_PROTO_XBOX_DVD
|
||||
|
||||
# Undocumented macros
|
||||
|
||||
diff --git a/drivers/media/rc/keymaps/rc-xbox-dvd.c b/drivers/media/rc/keymaps/rc-xbox-dvd.c
|
||||
index af387244636b..42815ab57bff 100644
|
||||
--- a/drivers/media/rc/keymaps/rc-xbox-dvd.c
|
||||
+++ b/drivers/media/rc/keymaps/rc-xbox-dvd.c
|
||||
@@ -42,7 +42,7 @@ static struct rc_map_list xbox_dvd_map = {
|
||||
.map = {
|
||||
.scan = xbox_dvd,
|
||||
.size = ARRAY_SIZE(xbox_dvd),
|
||||
- .rc_proto = RC_PROTO_UNKNOWN,
|
||||
+ .rc_proto = RC_PROTO_XBOX_DVD,
|
||||
.name = RC_MAP_XBOX_DVD,
|
||||
}
|
||||
};
|
||||
diff --git a/drivers/media/rc/rc-main.c b/drivers/media/rc/rc-main.c
|
||||
index 78e79c37f208..7f1d5b226f68 100644
|
||||
--- a/drivers/media/rc/rc-main.c
|
||||
+++ b/drivers/media/rc/rc-main.c
|
||||
@@ -76,6 +76,7 @@ static const struct {
|
||||
.scancode_bits = 0x00ffffff, .repeat_period = 114 },
|
||||
[RC_PROTO_RCMM32] = { .name = "rc-mm-32",
|
||||
.scancode_bits = 0xffffffff, .repeat_period = 114 },
|
||||
+ [RC_PROTO_XBOX_DVD] = { .name = "xbox-dvd", .repeat_period = 64 },
|
||||
};
|
||||
|
||||
/* Used to keep track of known keymaps */
|
||||
@@ -1027,6 +1028,7 @@ static const struct {
|
||||
{ RC_PROTO_BIT_RCMM12 |
|
||||
RC_PROTO_BIT_RCMM24 |
|
||||
RC_PROTO_BIT_RCMM32, "rc-mm", "ir-rcmm-decoder" },
|
||||
+ { RC_PROTO_BIT_XBOX_DVD, "xbox-dvd", NULL },
|
||||
};
|
||||
|
||||
/**
|
||||
diff --git a/drivers/media/rc/xbox_remote.c b/drivers/media/rc/xbox_remote.c
|
||||
index f959cbb94744..79470c09989e 100644
|
||||
--- a/drivers/media/rc/xbox_remote.c
|
||||
+++ b/drivers/media/rc/xbox_remote.c
|
||||
@@ -148,7 +148,7 @@ static void xbox_remote_rc_init(struct xbox_remote *xbox_remote)
|
||||
struct rc_dev *rdev = xbox_remote->rdev;
|
||||
|
||||
rdev->priv = xbox_remote;
|
||||
- rdev->allowed_protocols = RC_PROTO_BIT_UNKNOWN;
|
||||
+ rdev->allowed_protocols = RC_PROTO_BIT_XBOX_DVD;
|
||||
rdev->driver_name = "xbox_remote";
|
||||
|
||||
rdev->open = xbox_remote_rc_open;
|
||||
@@ -157,6 +157,8 @@ static void xbox_remote_rc_init(struct xbox_remote *xbox_remote)
|
||||
rdev->device_name = xbox_remote->rc_name;
|
||||
rdev->input_phys = xbox_remote->rc_phys;
|
||||
|
||||
+ rdev->timeout = MS_TO_NS(10);
|
||||
+
|
||||
usb_to_input_id(xbox_remote->udev, &rdev->input_id);
|
||||
rdev->dev.parent = &xbox_remote->interface->dev;
|
||||
}
|
||||
diff --git a/include/media/rc-map.h b/include/media/rc-map.h
|
||||
index e5e86d595645..a0000f392362 100644
|
||||
--- a/include/media/rc-map.h
|
||||
+++ b/include/media/rc-map.h
|
||||
@@ -40,6 +40,7 @@
|
||||
#define RC_PROTO_BIT_RCMM12 BIT_ULL(RC_PROTO_RCMM12)
|
||||
#define RC_PROTO_BIT_RCMM24 BIT_ULL(RC_PROTO_RCMM24)
|
||||
#define RC_PROTO_BIT_RCMM32 BIT_ULL(RC_PROTO_RCMM32)
|
||||
+#define RC_PROTO_BIT_XBOX_DVD BIT_ULL(RC_PROTO_XBOX_DVD)
|
||||
|
||||
#define RC_PROTO_BIT_ALL \
|
||||
(RC_PROTO_BIT_UNKNOWN | RC_PROTO_BIT_OTHER | \
|
||||
@@ -55,7 +56,8 @@
|
||||
RC_PROTO_BIT_RC6_MCE | RC_PROTO_BIT_SHARP | \
|
||||
RC_PROTO_BIT_XMP | RC_PROTO_BIT_CEC | \
|
||||
RC_PROTO_BIT_IMON | RC_PROTO_BIT_RCMM12 | \
|
||||
- RC_PROTO_BIT_RCMM24 | RC_PROTO_BIT_RCMM32)
|
||||
+ RC_PROTO_BIT_RCMM24 | RC_PROTO_BIT_RCMM32 | \
|
||||
+ RC_PROTO_BIT_XBOX_DVD)
|
||||
/* All rc protocols for which we have decoders */
|
||||
#define RC_PROTO_BIT_ALL_IR_DECODER \
|
||||
(RC_PROTO_BIT_RC5 | RC_PROTO_BIT_RC5X_20 | \
|
||||
diff --git a/include/uapi/linux/lirc.h b/include/uapi/linux/lirc.h
|
||||
index 45fcbf99d72e..f99d9dcae667 100644
|
||||
--- a/include/uapi/linux/lirc.h
|
||||
+++ b/include/uapi/linux/lirc.h
|
||||
@@ -195,6 +195,7 @@ struct lirc_scancode {
|
||||
* @RC_PROTO_RCMM12: RC-MM protocol 12 bits
|
||||
* @RC_PROTO_RCMM24: RC-MM protocol 24 bits
|
||||
* @RC_PROTO_RCMM32: RC-MM protocol 32 bits
|
||||
+ * @RC_PROTO_XBOX_DVD: Xbox DVD Movie Playback Kit protocol
|
||||
*/
|
||||
enum rc_proto {
|
||||
RC_PROTO_UNKNOWN = 0,
|
||||
@@ -224,6 +225,7 @@ enum rc_proto {
|
||||
RC_PROTO_RCMM12 = 24,
|
||||
RC_PROTO_RCMM24 = 25,
|
||||
RC_PROTO_RCMM32 = 26,
|
||||
+ RC_PROTO_XBOX_DVD = 27,
|
||||
};
|
||||
|
||||
#endif
|
||||
--
|
||||
2.20.1
|
||||
|
@ -1,25 +0,0 @@
|
||||
From c314d9af9d774c052bea324e1a140ccdba0ca070 Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Saraev <stefan@saraev.ca>
|
||||
Date: Tue, 8 Apr 2014 14:02:53 +0300
|
||||
Subject: [PATCH] pm: disable async suspend/resume by default
|
||||
|
||||
---
|
||||
kernel/power/main.c | 2 +-
|
||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/kernel/power/main.c b/kernel/power/main.c
|
||||
index 1d1bf63..361db93 100644
|
||||
--- a/kernel/power/main.c
|
||||
+++ b/kernel/power/main.c
|
||||
@@ -46,7 +46,7 @@ int pm_notifier_call_chain(unsigned long val)
|
||||
}
|
||||
|
||||
/* If set, devices may be suspended and resumed asynchronously. */
|
||||
-int pm_async_enabled = 1;
|
||||
+int pm_async_enabled = 0;
|
||||
|
||||
static ssize_t pm_async_show(struct kobject *kobj, struct kobj_attribute *attr,
|
||||
char *buf)
|
||||
--
|
||||
1.7.2.5
|
||||
|
@ -3,8 +3,8 @@
|
||||
# Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
PKG_NAME="bcm2835-bootloader"
|
||||
PKG_VERSION="cba4be275b9943b353ea2e5201ab2badd4c760e9"
|
||||
PKG_SHA256="b1ddc0fcae536c5fb7f17fe8736ff5c42aabdeccf74c00eb85f437fcdd1207f7"
|
||||
PKG_VERSION="94bae1b0a88a7fcaf171a4c91b9e1fdb03aad9ae"
|
||||
PKG_SHA256="23679dc76a1972bfcf8242199a3e39e5acd00224643386b000fbe2468f4cd133"
|
||||
PKG_ARCH="arm"
|
||||
PKG_LICENSE="nonfree"
|
||||
PKG_SITE="http://www.broadcom.com"
|
||||
|
@ -1,6 +1,6 @@
|
||||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# Linux/arm64 5.2.0 Kernel Configuration
|
||||
# Linux/arm64 5.2.1 Kernel Configuration
|
||||
#
|
||||
|
||||
#
|
||||
@ -635,15 +635,8 @@ CONFIG_ARCH_USE_MEMREMAP_PROT=y
|
||||
CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
|
||||
# end of GCOV-based kernel profiling
|
||||
|
||||
CONFIG_PLUGIN_HOSTCC=""
|
||||
CONFIG_HAVE_GCC_PLUGINS=y
|
||||
CONFIG_GCC_PLUGINS=y
|
||||
|
||||
#
|
||||
# GCC plugins
|
||||
#
|
||||
# CONFIG_GCC_PLUGIN_LATENT_ENTROPY is not set
|
||||
# CONFIG_GCC_PLUGIN_RANDSTRUCT is not set
|
||||
# end of GCC plugins
|
||||
# end of General architecture-dependent options
|
||||
|
||||
CONFIG_RT_MUTEXES=y
|
||||
@ -5519,10 +5512,6 @@ CONFIG_LSM="yama,loadpin,safesetid,integrity"
|
||||
# Memory initialization
|
||||
#
|
||||
CONFIG_INIT_STACK_NONE=y
|
||||
# CONFIG_GCC_PLUGIN_STRUCTLEAK_USER is not set
|
||||
# CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF is not set
|
||||
# CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF_ALL is not set
|
||||
# CONFIG_GCC_PLUGIN_STACKLEAK is not set
|
||||
# end of Memory initialization
|
||||
# end of Kernel hardening options
|
||||
# end of Security options
|
||||
|
@ -1,6 +1,6 @@
|
||||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# Linux/arm 5.2.0 Kernel Configuration
|
||||
# Linux/arm 5.2.1 Kernel Configuration
|
||||
#
|
||||
|
||||
#
|
||||
@ -649,16 +649,8 @@ CONFIG_REFCOUNT_FULL=y
|
||||
CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
|
||||
# end of GCOV-based kernel profiling
|
||||
|
||||
CONFIG_PLUGIN_HOSTCC=""
|
||||
CONFIG_HAVE_GCC_PLUGINS=y
|
||||
CONFIG_GCC_PLUGINS=y
|
||||
|
||||
#
|
||||
# GCC plugins
|
||||
#
|
||||
# CONFIG_GCC_PLUGIN_CYC_COMPLEXITY is not set
|
||||
# CONFIG_GCC_PLUGIN_LATENT_ENTROPY is not set
|
||||
# CONFIG_GCC_PLUGIN_RANDSTRUCT is not set
|
||||
# end of GCC plugins
|
||||
# end of General architecture-dependent options
|
||||
|
||||
CONFIG_RT_MUTEXES=y
|
||||
@ -5202,9 +5194,6 @@ CONFIG_LSM="yama,loadpin,safesetid,integrity"
|
||||
# Memory initialization
|
||||
#
|
||||
CONFIG_INIT_STACK_NONE=y
|
||||
# CONFIG_GCC_PLUGIN_STRUCTLEAK_USER is not set
|
||||
# CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF is not set
|
||||
# CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF_ALL is not set
|
||||
# end of Memory initialization
|
||||
# end of Kernel hardening options
|
||||
# end of Security options
|
||||
|
@ -2525,71 +2525,3 @@ index 4802902e128f..9e464d40cbff 100644
|
||||
--
|
||||
2.21.0
|
||||
|
||||
From dc1b5d9aed1794b5a1c6b0da46e372cc09974cbc Mon Sep 17 00:00:00 2001
|
||||
From: Enric Balletbo i Serra <enric.balletbo@collabora.com>
|
||||
Date: Thu, 13 Jun 2019 17:01:07 +0200
|
||||
Subject: [PATCH] usb: dwc3: Fix core validation in probe, move after clocks
|
||||
are enabled
|
||||
|
||||
The required clocks needs to be enabled before the first register
|
||||
access. After commit fe8abf332b8f ("usb: dwc3: support clocks and resets
|
||||
for DWC3 core"), this happens when the dwc3_core_is_valid function is
|
||||
called, but the mentioned commit adds that call in the wrong place,
|
||||
before the clocks are enabled. So, move that call after the
|
||||
clk_bulk_enable() to ensure the clocks are enabled and the reset
|
||||
deasserted.
|
||||
|
||||
I detected this while, as experiment, I tried to move the clocks and resets
|
||||
from the glue layer to the DWC3 core on a Samsung Chromebook Plus.
|
||||
|
||||
That was not detected before because, in most cases, the glue layer
|
||||
initializes SoC-specific things and then populates the child "snps,dwc3"
|
||||
with those clocks already enabled.
|
||||
|
||||
Fixes: b873e2d0ea1ef ("usb: dwc3: Do core validation early on probe")
|
||||
Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
|
||||
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
|
||||
---
|
||||
drivers/usb/dwc3/core.c | 12 +++++++-----
|
||||
1 file changed, 7 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
|
||||
index 4aff1d8dbc4f..6e9e172010fc 100644
|
||||
--- a/drivers/usb/dwc3/core.c
|
||||
+++ b/drivers/usb/dwc3/core.c
|
||||
@@ -1423,11 +1423,6 @@ static int dwc3_probe(struct platform_device *pdev)
|
||||
dwc->regs = regs;
|
||||
dwc->regs_size = resource_size(&dwc_res);
|
||||
|
||||
- if (!dwc3_core_is_valid(dwc)) {
|
||||
- dev_err(dwc->dev, "this is not a DesignWare USB3 DRD Core\n");
|
||||
- return -ENODEV;
|
||||
- }
|
||||
-
|
||||
dwc3_get_properties(dwc);
|
||||
|
||||
dwc->reset = devm_reset_control_get_optional_shared(dev, NULL);
|
||||
@@ -1460,6 +1455,12 @@ static int dwc3_probe(struct platform_device *pdev)
|
||||
if (ret)
|
||||
goto unprepare_clks;
|
||||
|
||||
+ if (!dwc3_core_is_valid(dwc)) {
|
||||
+ dev_err(dwc->dev, "this is not a DesignWare USB3 DRD Core\n");
|
||||
+ ret = -ENODEV;
|
||||
+ goto disable_clks;
|
||||
+ }
|
||||
+
|
||||
platform_set_drvdata(pdev, dwc);
|
||||
dwc3_cache_hwparams(dwc);
|
||||
|
||||
@@ -1525,6 +1526,7 @@ static int dwc3_probe(struct platform_device *pdev)
|
||||
pm_runtime_put_sync(&pdev->dev);
|
||||
pm_runtime_disable(&pdev->dev);
|
||||
|
||||
+disable_clks:
|
||||
clk_bulk_disable(dwc->num_clks, dwc->clks);
|
||||
unprepare_clks:
|
||||
clk_bulk_unprepare(dwc->num_clks, dwc->clks);
|
||||
--
|
||||
2.22.0
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# Linux/arm 5.2.0-rc7 Kernel Configuration
|
||||
# Linux/arm 5.2.1 Kernel Configuration
|
||||
#
|
||||
|
||||
#
|
||||
@ -50,8 +50,10 @@ CONFIG_HAVE_ARCH_AUDITSYSCALL=y
|
||||
CONFIG_GENERIC_IRQ_PROBE=y
|
||||
CONFIG_GENERIC_IRQ_SHOW=y
|
||||
CONFIG_GENERIC_IRQ_SHOW_LEVEL=y
|
||||
CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y
|
||||
CONFIG_HARDIRQS_SW_RESEND=y
|
||||
CONFIG_IRQ_DOMAIN=y
|
||||
CONFIG_IRQ_DOMAIN_HIERARCHY=y
|
||||
CONFIG_HANDLE_DOMAIN_IRQ=y
|
||||
CONFIG_IRQ_FORCED_THREADING=y
|
||||
CONFIG_SPARSE_IRQ=y
|
||||
@ -1873,6 +1875,7 @@ CONFIG_BCM_VCIO=y
|
||||
CONFIG_BCM_VC_SM=y
|
||||
CONFIG_BCM2835_DEVGPIOMEM=m
|
||||
CONFIG_BCM2835_SMI_DEV=m
|
||||
# CONFIG_ARGON_MEM is not set
|
||||
CONFIG_TTY=y
|
||||
CONFIG_VT=y
|
||||
CONFIG_CONSOLE_TRANSLATIONS=y
|
||||
@ -1946,6 +1949,7 @@ CONFIG_SERIAL_DEV_BUS=m
|
||||
CONFIG_HW_RANDOM=y
|
||||
# CONFIG_HW_RANDOM_TIMERIOMEM is not set
|
||||
CONFIG_HW_RANDOM_BCM2835=y
|
||||
CONFIG_HW_RANDOM_IPROC_RNG200=y
|
||||
# CONFIG_RAW_DRIVER is not set
|
||||
# CONFIG_TCG_TPM is not set
|
||||
# CONFIG_XILLYBUS is not set
|
||||
@ -2379,6 +2383,7 @@ CONFIG_THERMAL_GOV_STEP_WISE=y
|
||||
# Broadcom thermal drivers
|
||||
#
|
||||
CONFIG_BCM2835_THERMAL=y
|
||||
# CONFIG_BRCMSTB_THERMAL is not set
|
||||
# end of Broadcom thermal drivers
|
||||
|
||||
CONFIG_WATCHDOG=y
|
||||
@ -4264,6 +4269,7 @@ CONFIG_PWM_BCM2835=m
|
||||
# IRQ chip support
|
||||
#
|
||||
CONFIG_IRQCHIP=y
|
||||
CONFIG_ARM_GIC=y
|
||||
CONFIG_ARM_GIC_MAX_NR=1
|
||||
# end of IRQ chip support
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# Linux/arm 5.2.0-rc7 Kernel Configuration
|
||||
# Linux/arm 5.2.1 Kernel Configuration
|
||||
#
|
||||
|
||||
#
|
||||
@ -49,8 +49,10 @@ CONFIG_HAVE_ARCH_AUDITSYSCALL=y
|
||||
CONFIG_GENERIC_IRQ_PROBE=y
|
||||
CONFIG_GENERIC_IRQ_SHOW=y
|
||||
CONFIG_GENERIC_IRQ_SHOW_LEVEL=y
|
||||
CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y
|
||||
CONFIG_HARDIRQS_SW_RESEND=y
|
||||
CONFIG_IRQ_DOMAIN=y
|
||||
CONFIG_IRQ_DOMAIN_HIERARCHY=y
|
||||
CONFIG_HANDLE_DOMAIN_IRQ=y
|
||||
CONFIG_IRQ_FORCED_THREADING=y
|
||||
CONFIG_SPARSE_IRQ=y
|
||||
@ -1988,6 +1990,7 @@ CONFIG_BCM_VCIO=y
|
||||
CONFIG_BCM_VC_SM=y
|
||||
CONFIG_BCM2835_DEVGPIOMEM=m
|
||||
CONFIG_BCM2835_SMI_DEV=m
|
||||
# CONFIG_ARGON_MEM is not set
|
||||
CONFIG_TTY=y
|
||||
CONFIG_VT=y
|
||||
CONFIG_CONSOLE_TRANSLATIONS=y
|
||||
@ -2061,6 +2064,7 @@ CONFIG_SERIAL_DEV_BUS=m
|
||||
CONFIG_HW_RANDOM=y
|
||||
# CONFIG_HW_RANDOM_TIMERIOMEM is not set
|
||||
CONFIG_HW_RANDOM_BCM2835=y
|
||||
CONFIG_HW_RANDOM_IPROC_RNG200=y
|
||||
# CONFIG_RAW_DRIVER is not set
|
||||
# CONFIG_TCG_TPM is not set
|
||||
# CONFIG_XILLYBUS is not set
|
||||
@ -2499,6 +2503,7 @@ CONFIG_THERMAL_GOV_STEP_WISE=y
|
||||
# Broadcom thermal drivers
|
||||
#
|
||||
CONFIG_BCM2835_THERMAL=y
|
||||
# CONFIG_BRCMSTB_THERMAL is not set
|
||||
# end of Broadcom thermal drivers
|
||||
|
||||
CONFIG_WATCHDOG=y
|
||||
@ -4390,6 +4395,7 @@ CONFIG_PWM_BCM2835=m
|
||||
# IRQ chip support
|
||||
#
|
||||
CONFIG_IRQCHIP=y
|
||||
CONFIG_ARM_GIC=y
|
||||
CONFIG_ARM_GIC_MAX_NR=1
|
||||
# end of IRQ chip support
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -2,10 +2,6 @@
|
||||
# Device defaults
|
||||
################################################################################
|
||||
|
||||
# Kernel to use. values can be:
|
||||
# default: default mainline kernel
|
||||
LINUX="raspberrypi4"
|
||||
|
||||
# NOOBS supported hex versions (legacy) is not relevant for RPi4
|
||||
unset NOOBS_HEX
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user