From 439966e6dd971d45df17ab243ddb1319a8c594db Mon Sep 17 00:00:00 2001 From: MilhouseVH Date: Sat, 13 Jul 2019 01:19:54 +0100 Subject: [PATCH] RPi4: stay on 5.1.y for now (5.1.17) --- packages/linux/package.mk | 6 + .../linux-051-ouya_controller_support.patch | 206 ++++++++++++++++++ ..._sony-add_autorepeat_for_PS3_remotes.patch | 72 ++++++ .../linux-062-imon_pad_ignore_diagonal.patch | 21 ++ ...-improve-xbox-dvd-remote-performance.patch | 158 ++++++++++++++ ...able-async-suspend-resume-by-default.patch | 25 +++ projects/RPi/devices/RPi4/options | 4 + 7 files changed, 492 insertions(+) create mode 100644 packages/linux/patches/raspberrypi4/linux-051-ouya_controller_support.patch create mode 100644 packages/linux/patches/raspberrypi4/linux-058.05-hid_sony-add_autorepeat_for_PS3_remotes.patch create mode 100644 packages/linux/patches/raspberrypi4/linux-062-imon_pad_ignore_diagonal.patch create mode 100644 packages/linux/patches/raspberrypi4/linux-904-improve-xbox-dvd-remote-performance.patch create mode 100644 packages/linux/patches/raspberrypi4/linux-999.02-0001-pm-disable-async-suspend-resume-by-default.patch diff --git a/packages/linux/package.mk b/packages/linux/package.mk index 359cd5e0ca..b58093ba52 100644 --- a/packages/linux/package.mk +++ b/packages/linux/package.mk @@ -28,6 +28,12 @@ case "$LINUX" in PKG_URL="https://github.com/raspberrypi/linux/archive/$PKG_VERSION.tar.gz" PKG_SOURCE_NAME="linux-$LINUX-$PKG_VERSION.tar.gz" ;; + raspberrypi4) + PKG_VERSION="84aa6f05015403b77c2c8997472865baa24d7882" # 5.1.17 + PKG_SHA256="b2b639977ebf0dd377ecc9a8638e296d44d49d2f6f11729d9c22a31d5521dbc3" + 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" diff --git a/packages/linux/patches/raspberrypi4/linux-051-ouya_controller_support.patch b/packages/linux/patches/raspberrypi4/linux-051-ouya_controller_support.patch new file mode 100644 index 0000000000..8ee3cb27be --- /dev/null +++ b/packages/linux/patches/raspberrypi4/linux-051-ouya_controller_support.patch @@ -0,0 +1,206 @@ +commit 5a596921a4636e62843a59b7eab7b87b70a6d296 +Author: Lukas Rusak +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 ++ * Copyright (c) 2018 Lukas Rusak ++ */ ++ ++#include ++#include ++#include ++#include ++ ++#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 "); ++MODULE_AUTHOR("Gregorios Leach "); ++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) }, diff --git a/packages/linux/patches/raspberrypi4/linux-058.05-hid_sony-add_autorepeat_for_PS3_remotes.patch b/packages/linux/patches/raspberrypi4/linux-058.05-hid_sony-add_autorepeat_for_PS3_remotes.patch new file mode 100644 index 0000000000..56e2ca8655 --- /dev/null +++ b/packages/linux/patches/raspberrypi4/linux-058.05-hid_sony-add_autorepeat_for_PS3_remotes.patch @@ -0,0 +1,72 @@ +From 7051422474e4c4e302ede3d07ffd8ef2682e07a2 Mon Sep 17 00:00:00 2001 +From: Stefan Saraev +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 +Datum: 28.06.2013 04:28 +An: linux-input@vger.kernel.org +Kopie (CC): Stephan Raue + +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 +--- + 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 diff --git a/packages/linux/patches/raspberrypi4/linux-062-imon_pad_ignore_diagonal.patch b/packages/linux/patches/raspberrypi4/linux-062-imon_pad_ignore_diagonal.patch new file mode 100644 index 0000000000..677de3ed7f --- /dev/null +++ b/packages/linux/patches/raspberrypi4/linux-062-imon_pad_ignore_diagonal.patch @@ -0,0 +1,21 @@ +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... + */ diff --git a/packages/linux/patches/raspberrypi4/linux-904-improve-xbox-dvd-remote-performance.patch b/packages/linux/patches/raspberrypi4/linux-904-improve-xbox-dvd-remote-performance.patch new file mode 100644 index 0000000000..5ec182064e --- /dev/null +++ b/packages/linux/patches/raspberrypi4/linux-904-improve-xbox-dvd-remote-performance.patch @@ -0,0 +1,158 @@ +From 55096db50d8cdbf777c67f672b493ef565a12c38 Mon Sep 17 00:00:00 2001 +From: Matthias Reichl +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 +--- + 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 + diff --git a/packages/linux/patches/raspberrypi4/linux-999.02-0001-pm-disable-async-suspend-resume-by-default.patch b/packages/linux/patches/raspberrypi4/linux-999.02-0001-pm-disable-async-suspend-resume-by-default.patch new file mode 100644 index 0000000000..16ac49bee6 --- /dev/null +++ b/packages/linux/patches/raspberrypi4/linux-999.02-0001-pm-disable-async-suspend-resume-by-default.patch @@ -0,0 +1,25 @@ +From c314d9af9d774c052bea324e1a140ccdba0ca070 Mon Sep 17 00:00:00 2001 +From: Stefan Saraev +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 + diff --git a/projects/RPi/devices/RPi4/options b/projects/RPi/devices/RPi4/options index 5e419d350a..e4b61fe23c 100644 --- a/projects/RPi/devices/RPi4/options +++ b/projects/RPi/devices/RPi4/options @@ -2,6 +2,10 @@ # 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