From 083e31e09ff922b96fee16815099a187595f51f5 Mon Sep 17 00:00:00 2001 From: MilhouseVH Date: Wed, 13 Jun 2018 17:07:13 +0100 Subject: [PATCH 1/8] linux (RPi): update to linux-4.14.49 --- packages/linux/package.mk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/linux/package.mk b/packages/linux/package.mk index faff3556ae..860ceb4cbd 100644 --- a/packages/linux/package.mk +++ b/packages/linux/package.mk @@ -56,8 +56,8 @@ case "$LINUX" in PKG_SOURCE_DIR="kernel-$PKG_VERSION" ;; raspberrypi) - PKG_VERSION="58eb131ce78d1976dad26c21bd75a7da290cd6aa" # 4.14.48 - PKG_SHA256="0eda040a9ef97274d96069008785d65ca343c66f91e759ff261a93ee9af1ed7a" + PKG_VERSION="5762758699e1ddab22bf4c14eb225941761c52c8" # 4.14.49 + PKG_SHA256="a585e76a304b379382aa4f0d1467b870cc96b754237211fe99f5b33ecd71fa62" PKG_URL="https://github.com/raspberrypi/linux/archive/$PKG_VERSION.tar.gz" ;; *) From 4f10f5a8ce6452ccb0f90220e06f81da2379eee0 Mon Sep 17 00:00:00 2001 From: MilhouseVH Date: Thu, 14 Jun 2018 20:42:55 +0100 Subject: [PATCH 2/8] kernel-firmware: fix typo --- packages/linux-firmware/kernel-firmware/package.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/linux-firmware/kernel-firmware/package.mk b/packages/linux-firmware/kernel-firmware/package.mk index f42be5784d..378aacc0e7 100644 --- a/packages/linux-firmware/kernel-firmware/package.mk +++ b/packages/linux-firmware/kernel-firmware/package.mk @@ -36,7 +36,7 @@ makeinstall_target() { FW_TARGET_DIR=$INSTALL/$(get_full_firmware_dir) if find_file_path firmwares/kernel-firmware.dat; then - FW_LISTS="${FOUND_FILE}" + FW_LISTS="${FOUND_PATH}" else FW_LISTS="${PKG_DIR}/firmwares/any.dat ${PKG_DIR}/firmwares/${TARGET_ARCH}.dat" fi From d117c25fab09dd10d5633d39d0656d36edeff12e Mon Sep 17 00:00:00 2001 From: MilhouseVH Date: Mon, 18 Jun 2018 17:38:41 +0100 Subject: [PATCH 3/8] linux (RPi): update to linux-4.14.50 --- packages/linux/package.mk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/linux/package.mk b/packages/linux/package.mk index 860ceb4cbd..506ac911ba 100644 --- a/packages/linux/package.mk +++ b/packages/linux/package.mk @@ -56,8 +56,8 @@ case "$LINUX" in PKG_SOURCE_DIR="kernel-$PKG_VERSION" ;; raspberrypi) - PKG_VERSION="5762758699e1ddab22bf4c14eb225941761c52c8" # 4.14.49 - PKG_SHA256="a585e76a304b379382aa4f0d1467b870cc96b754237211fe99f5b33ecd71fa62" + PKG_VERSION="cb31143cc5a34d9db02c989d6c19505bc772a78c" # 4.14.50 + PKG_SHA256="12fabe3fd9d6f403c49662281671cb8cbfb2c3f7ca2ad5b1b68b63d2b584e85a" PKG_URL="https://github.com/raspberrypi/linux/archive/$PKG_VERSION.tar.gz" ;; *) From 57c3d3c757a336495b463ad43bc4395c8f5731f4 Mon Sep 17 00:00:00 2001 From: Lukas Rusak Date: Tue, 19 Jun 2018 06:57:04 +0100 Subject: [PATCH 4/8] linux (RPi): update ouya patch --- .../linux-051-ouya_controller_support.patch | 287 ++++++------------ 1 file changed, 88 insertions(+), 199 deletions(-) diff --git a/packages/linux/patches/raspberrypi/linux-051-ouya_controller_support.patch b/packages/linux/patches/raspberrypi/linux-051-ouya_controller_support.patch index 5fab089682..2009ab4c74 100644 --- a/packages/linux/patches/raspberrypi/linux-051-ouya_controller_support.patch +++ b/packages/linux/patches/raspberrypi/linux-051-ouya_controller_support.patch @@ -1,11 +1,24 @@ -commit 58c5e239ba0402207cfecef8ea1bf52edea092e4 -Author: Lukas Rusak -Date: Mon Jan 15 09:50:43 2018 -0800 +From fde8c33acb5aabfc6143bff06ffcd241258fcbc4 Mon Sep 17 00:00:00 2001 +From: Lukas Rusak +Date: Sun, 6 May 2018 22:03:11 -0700 +Subject: [PATCH] HID: add ouya HID driver - drivers/hid: add ouya controller 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. +--- + drivers/hid/Kconfig | 6 ++ + drivers/hid/Makefile | 1 + + drivers/hid/hid-core.c | 3 + + drivers/hid/hid-ids.h | 3 + + drivers/hid/hid-ouya.c | 131 +++++++++++++++++++++++++++++++++++++++++ + 5 files changed, 144 insertions(+) + create mode 100644 drivers/hid/hid-ouya.c diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig -index 779c5ae47..02f79b0a4 100644 +index 374301fcbc86..7c7d7a5d5b98 100644 --- a/drivers/hid/Kconfig +++ b/drivers/hid/Kconfig @@ -633,6 +633,12 @@ config HID_ORTEK @@ -16,13 +29,13 @@ index 779c5ae47..02f79b0a4 100644 + tristate "OUYA Game Controller" + depends on USB_HID + ---help--- -+ Support for OUYA Game Controller. ++ 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 235bd2a7b..d3431f77b 100644 +index 235bd2a7b333..d3431f77b743 100644 --- a/drivers/hid/Makefile +++ b/drivers/hid/Makefile @@ -68,6 +68,7 @@ obj-$(CONFIG_HID_MULTITOUCH) += hid-multitouch.o @@ -34,217 +47,104 @@ index 235bd2a7b..d3431f77b 100644 obj-$(CONFIG_HID_PANTHERLORD) += hid-pl.o obj-$(CONFIG_HID_PENMOUNT) += hid-penmount.o diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c -index 0c3f60813..cd64cafe5 100644 +index 330ca983828b..3a1d94bc1ea6 100644 --- a/drivers/hid/hid-core.c +++ b/drivers/hid/hid-core.c -@@ -1884,6 +1884,7 @@ static const struct hid_device_id hid_have_special_driver[] = { - { HID_USB_DEVICE(USB_VENDOR_ID_ELO, USB_DEVICE_ID_ELO_ACCUTOUCH_2216) }, - #endif - #if IS_ENABLED(CONFIG_HID_ACRUX) -+ { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_OUYA, USB_DEVICE_ID_OUYA_CONTROLLER) }, - { HID_USB_DEVICE(USB_VENDOR_ID_ACRUX, 0x0802) }, - { HID_USB_DEVICE(USB_VENDOR_ID_ACRUX, 0xf705) }, +@@ -2222,6 +2222,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/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h -index 5da3d6256..b6bb209ed 100644 +index be2e005c3c51..21732ac85740 100644 --- a/drivers/hid/hid-ids.h +++ b/drivers/hid/hid-ids.h -@@ -843,6 +843,9 @@ +@@ -833,6 +833,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_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 000000000..7792c23ba +index 000000000000..4344a47b40af --- /dev/null +++ b/drivers/hid/hid-ouya.c -@@ -0,0 +1,260 @@ +@@ -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 + +#include "hid-ids.h" + -+#define OUYA_TOUCHPAD_FIXUP (1 << 0) -+ -+struct ouya_sc { -+ unsigned long quirks; ++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 */ +}; + -+/* Fixed report descriptor */ -+static __u8 ouya_rdesc_fixed[] = { -+ -+ 0x05, 0x01, /* Usage Page (Desktop), */ -+ 0x09, 0x05, /* Usage (Game Pad), */ -+ -+ 0xA1, 0x01, /* Collection (Application), */ -+ 0x85, 0x07, /* Report ID (7), */ -+ -+ 0xA1, 0x00, /* Collection (Physical), */ -+ 0x09, 0x30, /* Usage (X), */ -+ 0x09, 0x31, /* Usage (Y), */ -+ 0x15, 0x00, /* Logical Minimum (0), */ -+ 0x26, 0xFF, 0x00, /* Logical Maximum (255), */ -+ 0x35, 0x00, /* Physical Minimum (0), */ -+ 0x46, 0xFF, 0x00, /* Physical Maximum (255), */ -+ 0x95, 0x02, /* Report Count (2), */ -+ 0x75, 0x08, /* Report Size (8), */ -+ 0x81, 0x02, /* Input (Variable), */ -+ 0xC0, /* End Collection, */ -+ -+ 0xA1, 0x00, /* Collection (Physical), */ -+ 0x09, 0x33, /* Usage (Rx), */ -+ 0x09, 0x34, /* Usage (Ry), */ -+ 0x15, 0x00, /* Logical Minimum (0), */ -+ 0x26, 0xFF, 0x00, /* Logical Maximum (255), */ -+ 0x35, 0x00, /* Physical Minimum (0), */ -+ 0x46, 0xFF, 0x00, /* Physical Maximum (255), */ -+ 0x95, 0x02, /* Report Count (2), */ -+ 0x75, 0x08, /* Report Size (8), */ -+ 0x81, 0x02, /* Input (Variable), */ -+ 0xC0, /* End Collection, */ -+ -+ 0xA1, 0x00, /* Collection (Physical), */ -+ 0x09, 0x32, /* Usage (Z), */ -+ 0x15, 0x00, /* Logical Minimum (0), */ -+ 0x26, 0xFF, 0x00, /* Logical Maximum (255), */ -+ 0x35, 0x00, /* Physical Minimum (0), */ -+ 0x46, 0xFF, 0x00, /* Physical Maximum (255), */ -+ 0x95, 0x01, /* Report Count (1), */ -+ 0x75, 0x08, /* Report Size (8), */ -+ 0x81, 0x02, /* Input (Variable), */ -+ 0xC0, /* End Collection, */ -+ -+ 0xA1, 0x00, /* Collection (Physical), */ -+ 0x09, 0x35, /* Usage (Rz), */ -+ 0x15, 0x00, /* Logical Minimum (0), */ -+ 0x26, 0xFF, 0x00, /* Logical Maximum (255), */ -+ 0x35, 0x00, /* Physical Minimum (0), */ -+ 0x46, 0xFF, 0x00, /* Physical Maximum (255), */ -+ 0x95, 0x01, /* Report Count (1), */ -+ 0x75, 0x08, /* Report Size (8), */ -+ 0x81, 0x02, /* Input (Variable), */ -+ 0xC0, /* End Collection, */ -+ -+ 0x05, 0x09, /* Usage Page (Button), */ -+ 0x19, 0x01, /* Usage Minimum (01h), */ -+ 0x29, 0x10, /* Usage Maximum (10h), */ -+ 0x95, 0x10, /* Report Count (16), */ -+ 0x75, 0x01, /* Report Size (1), */ -+ 0x81, 0x02, /* Input (Variable), */ -+ -+ /* ORIGINAL REPORT DESCRIPTOR FOR TOUCHPAD INPUT */ -+ /* 06 00 ff a1 02 09 02 15 00 26 ff 00 35 00 46 ff 00 95 03 75 08 81 02 c0 */ -+ -+ 0x06, 0x00, 0xFF, /* Usage Page (Custom), */ -+ 0x09, 0x02, /* Usage (Mouse), */ -+ 0x09, 0x01, /* Usage (Pointer), */ -+ 0xA1, 0x00, /* Collection (Physical), */ -+ 0x05, 0x09, /* Usage Page (Button), */ -+ 0x19, 0x01, /* Usage Minimum (01h), */ -+ 0x29, 0x03, /* Usage Maximum (03h), */ -+ 0x15, 0x00, /* Logical Minimum (0), */ -+ 0x25, 0x01, /* Logical Maximum (1), */ -+ 0x95, 0x03, /* Report Count (3), */ -+ 0x75, 0x01, /* Report Size (1), */ -+ 0x81, 0x02, /* Input (Variable), */ -+ 0x95, 0x01, /* Report Count (1), */ -+ 0x75, 0x05, /* Report Size (5), */ -+ 0x81, 0x01, /* Input (Constant), */ -+ 0x05, 0x01, /* Usage Page (Desktop), */ -+ 0x09, 0x30, /* Usage (X), */ -+ 0x09, 0x31, /* Usage (Y), */ -+ 0x15, 0x81, /* Logical Minimum (-127), */ -+ 0x25, 0x7f, /* Logical Maximum (127), */ -+ 0x95, 0x02, /* Report Count (2), */ -+ 0x75, 0x08, /* Report Size (8), */ -+ 0x81, 0x06, /* Input (Relative), */ -+ 0xC0, /* End Collection, */ -+ -+ 0x06, 0x00, 0xFF, /* Usage Page (Custom), */ -+ 0xA1, 0x02, /* Collection (Logical), */ -+ 0x75, 0x08, /* Report Size (8), */ -+ 0x95, 0x07, /* Report Count (7), */ -+ 0x46, 0xFF, 0x00, /* Physical Maximum (255), */ -+ 0x26, 0xFF, 0x00, /* Logical Maximum (255), */ -+ 0x09, 0x01, /* Usage (Pointer), */ -+ 0x91, 0x02, /* Output (Variable), */ -+ 0xC0, /* End Collection, */ -+ -+ 0xC0, /* End Collection */ -+ -+ -+ 0x06, 0x00, 0xFF, /* Usage Page (Custom), */ -+ 0x05, 0x0C, /* Usage Page (Consumer), */ -+ 0x09, 0x01, /* Usage (Consumer Control), */ -+ -+ 0xA1, 0x01, /* Collection (Application), */ -+ 0x85, 0x03, /* Report ID (3), */ -+ 0x05, 0x01, /* Usage Page (Desktop), */ -+ 0x09, 0x06, /* Usage (Keyboard), */ -+ 0xA1, 0x02, /* Collection (Logical), */ -+ 0x05, 0x06, /* Usage Page (Generic), */ -+ 0x09, 0x20, /* Usage (Battery Strgth), */ -+ 0x15, 0x00, /* Logical Minimum (0), */ -+ 0x26, 0xFF, 0x00, /* Logical Maximum (255), */ -+ 0x75, 0x08, /* Report Size (8), */ -+ 0x95, 0x01, /* Report Count (1), */ -+ 0x81, 0x02, /* Input (Variable), */ -+ 0x06, 0xBC, 0xFF, /* Usage Page (Custom), */ -+ -+ 0x0A, 0xAD, 0xBD, /* UNKNOWN */ -+ -+ 0x75, 0x08, /* Report Size (8), */ -+ 0x95, 0x06, /* Report Count (6), */ -+ 0x81, 0x02, /* Input (Variable), */ -+ 0xC0, /* End Collection, */ -+ -+ 0xC0, /* End Collection */ -+ -+ 0x00 ++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 __u8 *ouya_report_fixup(struct hid_device *hdev, __u8 *rdesc, -+ unsigned int *rsize) -+{ -+ struct ouya_sc *sc = hid_get_drvdata(hdev); -+ -+ if (sc->quirks & OUYA_TOUCHPAD_FIXUP) { -+ rdesc = ouya_rdesc_fixed; -+ *rsize = sizeof(ouya_rdesc_fixed); -+ } -+ return rdesc; -+} -+ +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) +{ -+ struct ouya_sc *sc = hid_get_drvdata(hdev); ++ if ((usage->hid & HID_USAGE_PAGE) == HID_UP_BUTTON) { ++ unsigned int key = usage->hid & HID_USAGE; + -+ if (!(sc->quirks & OUYA_TOUCHPAD_FIXUP)) { -+ return 0; -+ } ++ if (key >= ARRAY_SIZE(ouya_keymap)) ++ return -1; + -+ if ((usage->hid & 0x90000) == 0x90000 && -+ (field->physical & 0xff000000) == 0xff000000 && -+ usage->collection_index == 5 && -+ field->report_count == 3) { ++ key = ouya_keymap[key]; ++ hid_map_usage_clear(hi, usage, bit, max, EV_KEY, key); + -+ hid_map_usage(hi, usage, bit, max, EV_KEY, BTN_MOUSE + (usage->hid - 0x90001)); ++ 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; + } @@ -255,22 +155,6 @@ index 000000000..7792c23ba +static int ouya_probe(struct hid_device *hdev, const struct hid_device_id *id) +{ + int ret; -+ struct ouya_sc *sc; -+ -+ sc = kzalloc(sizeof(*sc), GFP_KERNEL); -+ if (sc == NULL) { -+ hid_err(hdev, "can't alloc ouya descriptor\n"); -+ return -ENOMEM; -+ } -+ -+ if(((hdev->version & 0xff00) == 0x0100 && (hdev->version & 0xff) >= 0x04) || -+ ((hdev->version & 0xff00) == 0xe100 && (hdev->version & 0xff) >= 0x3a)) { -+ hid_info(hdev, "ouya controller - new version\n"); -+ sc->quirks = OUYA_TOUCHPAD_FIXUP; -+ } else { -+ sc->quirks = 0; -+ } -+ hid_set_drvdata(hdev, sc); + + ret = hid_parse(hdev); + if (ret) { @@ -278,8 +162,7 @@ index 000000000..7792c23ba + goto err_free; + } + -+ ret = hid_hw_start(hdev, HID_CONNECT_DEFAULT | -+ HID_CONNECT_HIDDEV_FORCE); ++ ret = hid_hw_start(hdev, HID_CONNECT_DEFAULT | HID_CONNECT_HIDDEV_FORCE); + if (ret) { + hid_err(hdev, "hw start failed\n"); + goto err_free; @@ -288,7 +171,6 @@ index 000000000..7792c23ba + return 0; + +err_free: -+ kfree(sc); + return ret; +} + @@ -307,10 +189,9 @@ index 000000000..7792c23ba +static struct hid_driver ouya_driver = { + .name = "ouya", + .id_table = ouya_devices, ++ .input_mapping = ouya_input_mapping, + .probe = ouya_probe, + .remove = ouya_remove, -+ .input_mapping = ouya_input_mapping, -+ .report_fixup = ouya_report_fixup +}; + +static int __init ouya_init(void) @@ -325,3 +206,11 @@ index 000000000..7792c23ba + +module_init(ouya_init); +module_exit(ouya_exit); ++ ++MODULE_LICENSE("GPL"); ++MODULE_AUTHOR("Lukas Rusak "); ++MODULE_AUTHOR("Gregorios Leach "); ++MODULE_DESCRIPTION("Ouya Controller Driver"); +-- +2.17.0 + From 315d9bc8251ebda2ee79847af4448abbb53d9c23 Mon Sep 17 00:00:00 2001 From: MilhouseVH Date: Wed, 27 Jun 2018 21:06:51 +0100 Subject: [PATCH 5/8] linux (RPi): update to linux-4.14.52 --- packages/linux/package.mk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/linux/package.mk b/packages/linux/package.mk index 506ac911ba..901d3dfac4 100644 --- a/packages/linux/package.mk +++ b/packages/linux/package.mk @@ -56,8 +56,8 @@ case "$LINUX" in PKG_SOURCE_DIR="kernel-$PKG_VERSION" ;; raspberrypi) - PKG_VERSION="cb31143cc5a34d9db02c989d6c19505bc772a78c" # 4.14.50 - PKG_SHA256="12fabe3fd9d6f403c49662281671cb8cbfb2c3f7ca2ad5b1b68b63d2b584e85a" + PKG_VERSION="11dc869d874d04293849d830637130269fd0ada9" # 4.14.52 + PKG_SHA256="cb179058b033f49e8c936b1dc8dbb586671ac083616fb0bff20da9f491bea77f" PKG_URL="https://github.com/raspberrypi/linux/archive/$PKG_VERSION.tar.gz" ;; *) From 51a227f148eec569240cf7409ca5fa898920eb30 Mon Sep 17 00:00:00 2001 From: MilhouseVH Date: Wed, 27 Jun 2018 21:07:02 +0100 Subject: [PATCH 6/8] RPi: update to firmware 32a1c7c --- packages/graphics/bcm2835-driver/package.mk | 4 ++-- packages/tools/bcm2835-bootloader/package.mk | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/graphics/bcm2835-driver/package.mk b/packages/graphics/bcm2835-driver/package.mk index 17979023e5..3687f3efc7 100644 --- a/packages/graphics/bcm2835-driver/package.mk +++ b/packages/graphics/bcm2835-driver/package.mk @@ -18,8 +18,8 @@ ################################################################################ PKG_NAME="bcm2835-driver" -PKG_VERSION="7884178" -PKG_SHA256="8d95f8c6d9c6f03a849b74a3eeddffbbfb18051e7260f7622b0a71dadf210ec4" +PKG_VERSION="32a1c7c" +PKG_SHA256="21fb5276fbda7225d9b2cdaa19cd52c898c4921d3f92a1ed1ec816781715b15e" PKG_ARCH="any" PKG_LICENSE="nonfree" PKG_SITE="http://www.broadcom.com" diff --git a/packages/tools/bcm2835-bootloader/package.mk b/packages/tools/bcm2835-bootloader/package.mk index ce4cb2c351..b4e5e50565 100644 --- a/packages/tools/bcm2835-bootloader/package.mk +++ b/packages/tools/bcm2835-bootloader/package.mk @@ -18,8 +18,8 @@ ################################################################################ PKG_NAME="bcm2835-bootloader" -PKG_VERSION="7884178" -PKG_SHA256="8f6c8d404736e92c80bab0bc2a7612f92a8486ca2701a9c2797e2640b9abe9be" +PKG_VERSION="32a1c7c" +PKG_SHA256="69df7dfd54e6551a61f496263ba7bbe3082ea84973df30c9e9e41c01ff1c8cfb" PKG_ARCH="arm" PKG_LICENSE="nonfree" PKG_SITE="http://www.broadcom.com" From 0e04494e35a5b4047362c5fea4340daef7415e9b Mon Sep 17 00:00:00 2001 From: MilhouseVH Date: Mon, 9 Jul 2018 16:08:50 +0100 Subject: [PATCH 7/8] linux (RPi): update to linux-4.14.54 --- packages/linux/package.mk | 4 +- .../linux/linux-06-fix-ftrace-on-boot.patch | 57 ------------------- 2 files changed, 2 insertions(+), 59 deletions(-) delete mode 100644 projects/RPi/patches/linux/linux-06-fix-ftrace-on-boot.patch diff --git a/packages/linux/package.mk b/packages/linux/package.mk index 901d3dfac4..cb5bb0b939 100644 --- a/packages/linux/package.mk +++ b/packages/linux/package.mk @@ -56,8 +56,8 @@ case "$LINUX" in PKG_SOURCE_DIR="kernel-$PKG_VERSION" ;; raspberrypi) - PKG_VERSION="11dc869d874d04293849d830637130269fd0ada9" # 4.14.52 - PKG_SHA256="cb179058b033f49e8c936b1dc8dbb586671ac083616fb0bff20da9f491bea77f" + PKG_VERSION="0c105ada34b842c79fc629bf3c05f384e3e39662" # 4.14.54 + PKG_SHA256="e80140522b66ca2ed749d96b6de32db41f9768e19bf74199785a413404834e31" PKG_URL="https://github.com/raspberrypi/linux/archive/$PKG_VERSION.tar.gz" ;; *) diff --git a/projects/RPi/patches/linux/linux-06-fix-ftrace-on-boot.patch b/projects/RPi/patches/linux/linux-06-fix-ftrace-on-boot.patch deleted file mode 100644 index 991fd117f8..0000000000 --- a/projects/RPi/patches/linux/linux-06-fix-ftrace-on-boot.patch +++ /dev/null @@ -1,57 +0,0 @@ -On Wed, 23 Aug 2017 17:42:14 +0200 -Matthias Reichl wrote: - -> I haven't verified it myself but Phil Elwells first analysis here -> sounds plausible -> -> https://github.com/raspberrypi/linux/issues/2166#issuecomment-323355145 - -I noticed this comment: - -"What makes this interesting (and is the reason this doesn't fail - normally) is that these functions are all called within kernel_init, so - the __ro_after_init attribute shouldn't have caused the variable to be - read-only yet." - -When ftrace starts, it needs to set the kernel text to write, and when -it finishes it sets it back to readonly. But the kernel is not set to -readonly at boot up. - -Can you test this patch? (Warning, I didn't even compile test it) - --- Steve - -diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c -index ad80548..fd75f38 100644 ---- a/arch/arm/mm/init.c -+++ b/arch/arm/mm/init.c -@@ -745,19 +745,29 @@ static int __mark_rodata_ro(void *unused) - return 0; - } - -+static int kernel_set_to_readonly; -+ - void mark_rodata_ro(void) - { -+ kernel_set_to_readonly = 1; -+ - stop_machine(__mark_rodata_ro, NULL, NULL); - } - - void set_kernel_text_rw(void) - { -+ if (!kernel_set_to_readonly) -+ return; -+ - set_section_perms(ro_perms, ARRAY_SIZE(ro_perms), false, - current->active_mm); - } - - void set_kernel_text_ro(void) - { -+ if (!kernel_set_to_readonly) -+ return; -+ - set_section_perms(ro_perms, ARRAY_SIZE(ro_perms), true, - current->active_mm); - } From 9581894a8d52b57bb3a563e0c895e6736219a489 Mon Sep 17 00:00:00 2001 From: MilhouseVH Date: Mon, 9 Jul 2018 20:41:09 +0100 Subject: [PATCH 8/8] RPi: update to firmware d3c3d03 --- packages/graphics/bcm2835-driver/package.mk | 4 ++-- packages/tools/bcm2835-bootloader/package.mk | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/graphics/bcm2835-driver/package.mk b/packages/graphics/bcm2835-driver/package.mk index 3687f3efc7..41883491d6 100644 --- a/packages/graphics/bcm2835-driver/package.mk +++ b/packages/graphics/bcm2835-driver/package.mk @@ -18,8 +18,8 @@ ################################################################################ PKG_NAME="bcm2835-driver" -PKG_VERSION="32a1c7c" -PKG_SHA256="21fb5276fbda7225d9b2cdaa19cd52c898c4921d3f92a1ed1ec816781715b15e" +PKG_VERSION="d3c3d03" +PKG_SHA256="f4625d5dbdf7412fcc6f419e019b5fa72a151465c9dc36ec7b81387dc6b9808b" PKG_ARCH="any" PKG_LICENSE="nonfree" PKG_SITE="http://www.broadcom.com" diff --git a/packages/tools/bcm2835-bootloader/package.mk b/packages/tools/bcm2835-bootloader/package.mk index b4e5e50565..5607f420f4 100644 --- a/packages/tools/bcm2835-bootloader/package.mk +++ b/packages/tools/bcm2835-bootloader/package.mk @@ -18,8 +18,8 @@ ################################################################################ PKG_NAME="bcm2835-bootloader" -PKG_VERSION="32a1c7c" -PKG_SHA256="69df7dfd54e6551a61f496263ba7bbe3082ea84973df30c9e9e41c01ff1c8cfb" +PKG_VERSION="d3c3d03" +PKG_SHA256="da488f8993cefbc503983e55aef4032ea4779654faafd1d3b09119a8ec834c13" PKG_ARCH="arm" PKG_LICENSE="nonfree" PKG_SITE="http://www.broadcom.com"