-
-
Notifications
You must be signed in to change notification settings - Fork 187
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'master' into generic-x86_64
- Loading branch information
Showing
11 changed files
with
1,238 additions
and
113 deletions.
There are no files selected for viewing
652 changes: 652 additions & 0 deletions
652
...board/rpi4/kernel-patches/0003-Revert-USB-core-changes-causing-issues-with-Z-Wave.m.patch
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -5,7 +5,7 @@ | |
# either archived or unarchived, verifies its validity and installs it | ||
# unattended accordingly. | ||
# | ||
# Copyright (c) 2018-2021 Jens Maus <[email protected]> | ||
# Copyright (c) 2018-2024 Jens Maus <[email protected]> | ||
# Apache 2.0 License applies | ||
# | ||
|
||
|
@@ -435,8 +435,12 @@ fwinstall() | |
exit 1 | ||
fi | ||
|
||
# check if both PLATFORM match | ||
if [[ "${ROOTFS_PLATFORM}" != "${IMG_PLATFORM}" ]]; then | ||
# check if both PLATFORM match including exceptions for | ||
# cross platform updates/changes | ||
if [[ "${ROOTFS_PLATFORM}" == "intelnuc" && "${IMG_PLATFORM}" == "generic-x86_64" ]] || | ||
[[ "${ROOTFS_PLATFORM}" == "generic-x86_64" && "${IMG_PLATFORM}" == "intelnuc" ]]; then | ||
echo "INFO: cross updating ${ROOTFS_PLATFORM} to ${IMG_PLATFORM}<br/>" | ||
elif [[ "${ROOTFS_PLATFORM}" != "${IMG_PLATFORM}" ]]; then | ||
echo "ERROR: incorrect hardware platform (${IMG_PLATFORM} != ${ROOTFS_PLATFORM})<br/>" | ||
exit 1 | ||
fi | ||
|
@@ -535,8 +539,12 @@ fwinstall() | |
exit 1 | ||
fi | ||
|
||
# check if both PLATFORM match | ||
if [[ "${BOOTFS_PLATFORM}" != "${IMG_PLATFORM}" ]]; then | ||
# check if both PLATFORM match including exceptions for | ||
# cross platform updates/changes | ||
if [[ "${BOOTFS_PLATFORM}" == "intelnuc" && "${IMG_PLATFORM}" == "generic-x86_64" ]] || | ||
[[ "${BOOTFS_PLATFORM}" == "generic-x86_64" && "${IMG_PLATFORM}" == "intelnuc" ]]; then | ||
echo "INFO: cross updating ${BOOTFS_PLATFORM} to ${IMG_PLATFORM}<br/>" | ||
elif [[ "${BOOTFS_PLATFORM}" != "${IMG_PLATFORM}" ]]; then | ||
echo "ERROR: incorrect hardware platform (${IMG_PLATFORM} != ${BOOTFS_PLATFORM})<br/>" | ||
exit 1 | ||
fi | ||
|
@@ -665,8 +673,12 @@ fwinstall() | |
exit 1 | ||
fi | ||
|
||
# check if both PLATFORM match | ||
if [[ "${BOOTFS_PLATFORM}" != "${IMG_PLATFORM}" ]]; then | ||
# check if both PLATFORM match including exceptions for | ||
# cross platform updates/changes | ||
if [[ "${BOOTFS_PLATFORM}" == "intelnuc" && "${IMG_PLATFORM}" == "generic-x86_64" ]] || | ||
[[ "${BOOTFS_PLATFORM}" == "generic-x86_64" && "${IMG_PLATFORM}" == "intelnuc" ]]; then | ||
echo "INFO: cross updating ${BOOTFS_PLATFORM} to ${IMG_PLATFORM}<br/>" | ||
elif [[ "${BOOTFS_PLATFORM}" != "${IMG_PLATFORM}" ]]; then | ||
echo "ERROR: incorrect hardware platform (${IMG_PLATFORM} != ${BOOTFS_PLATFORM})<br/>" | ||
exit 1 | ||
fi | ||
|
@@ -799,8 +811,12 @@ fwinstall() | |
exit 1 | ||
fi | ||
|
||
# check if both PLATFORM match | ||
if [[ "${ROOTFS_PLATFORM}" != "${IMG_PLATFORM}" ]]; then | ||
# check if both PLATFORM match including exceptions for | ||
# cross platform updates/changes | ||
if [[ "${ROOTFS_PLATFORM}" == "intelnuc" && "${IMG_PLATFORM}" == "generic-x86_64" ]] || | ||
[[ "${ROOTFS_PLATFORM}" == "generic-x86_64" && "${IMG_PLATFORM}" == "intelnuc" ]]; then | ||
echo "INFO: cross updating ${ROOTFS_PLATFORM} to ${IMG_PLATFORM}<br/>" | ||
elif [[ "${ROOTFS_PLATFORM}" != "${IMG_PLATFORM}" ]]; then | ||
echo "ERROR: incorrect hardware platform (${IMG_PLATFORM} != ${ROOTFS_PLATFORM})<br/>" | ||
exit 1 | ||
fi | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,6 @@ | ||
# Locally computed | ||
sha256 3227488750adebf5a8b33cc4105a109ae3d3267191c2a9ac7a2ecc38805ad4e8 LICENSE | ||
sha256 df38e43d44d2333bbe8fda9ac5411a0b2f61632bec80b7673c1184207a988bd6 tailscale_1.66.3_amd64.tgz | ||
sha256 0d5e106f2e5e4a2d5055ce3ceddf18051b24035fff50b7f9f701cf237ead7cde tailscale_1.66.3_386.tgz | ||
sha256 a23776203dc601468a95e5b310c7ec8c760c768613549b600c78169cc7b38e4a tailscale_1.66.3_arm.tgz | ||
sha256 2a7a16d12ebbc45245ae7183fef1390b1e5c2c09b0d31847f41e86514200555c tailscale_1.66.3_arm64.tgz | ||
sha256 a619c16b4f1d1aa98dc391baf1f4681da9fbb14ac9635b19e5fd5fe632cffd90 tailscale_1.66.4_amd64.tgz | ||
sha256 66b1e38ad4878ab2306c57f7b309500d34ccc9a023d83c576b9e4ed0fded1967 tailscale_1.66.4_386.tgz | ||
sha256 4ef4c6c92f625e39181911c81667696a0c292d0b547cef2a68c91034eddc141a tailscale_1.66.4_arm.tgz | ||
sha256 aa75d018e58ae3b69c23c7687b85f50b0ae9bc441a8ed95cbe4fddadbc1c3dd2 tailscale_1.66.4_arm64.tgz |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
../linux/6.6.31 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
From 85cfbef1cf29aba24abe21409b180b7bea76e562 Mon Sep 17 00:00:00 2001 | ||
From f9037c133775498d0ff2f035a957ce4f294e4e81 Mon Sep 17 00:00:00 2001 | ||
From: =?UTF-8?q?Jan=20=C4=8Cerm=C3=A1k?= <[email protected]> | ||
Date: Wed, 6 Mar 2024 13:25:41 +0100 | ||
Subject: [PATCH] Revert USB core changes causing issues with Z-Wave.me UZB | ||
|
@@ -27,10 +27,10 @@ Workaround for issues described on GH [1] and reported in [2]. | |
Signed-off-by: Jan Čermák <[email protected]> | ||
--- | ||
drivers/usb/core/hcd.c | 10 +- | ||
drivers/usb/core/hub.c | 335 ++++++++++++++++--------------------- | ||
drivers/usb/core/hub.c | 336 ++++++++++++++++--------------------- | ||
drivers/usb/core/message.c | 29 ++-- | ||
drivers/usb/core/usb.h | 4 +- | ||
4 files changed, 166 insertions(+), 212 deletions(-) | ||
4 files changed, 166 insertions(+), 213 deletions(-) | ||
|
||
diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c | ||
index 12b6dfeaf658c..d895f6ebbc400 100644 | ||
|
@@ -65,10 +65,10 @@ index 12b6dfeaf658c..d895f6ebbc400 100644 | |
if (le16_to_cpu(usb_dev->descriptor.bcdUSB) >= 0x0201) { | ||
retval = usb_get_bos_descriptor(usb_dev); | ||
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c | ||
index 71635dfa741d2..b937bf8b6b3d3 100644 | ||
index 1ba3feb5e1900..ef1d63537a9b7 100644 | ||
--- a/drivers/usb/core/hub.c | ||
+++ b/drivers/usb/core/hub.c | ||
@@ -4722,67 +4722,6 @@ static int hub_enable_device(struct usb_device *udev) | ||
@@ -4742,67 +4742,6 @@ static int hub_enable_device(struct usb_device *udev) | ||
return hcd->driver->enable_device(hcd, udev); | ||
} | ||
|
||
|
@@ -136,7 +136,7 @@ index 71635dfa741d2..b937bf8b6b3d3 100644 | |
/* Reset device, (re)assign address, get device descriptor. | ||
* Device connection must be stable, no more debouncing needed. | ||
* Returns device in USB_STATE_ADDRESS, except on error. | ||
@@ -4792,17 +4731,10 @@ static int get_bMaxPacketSize0(struct usb_device *udev, | ||
@@ -4812,17 +4751,10 @@ static int get_bMaxPacketSize0(struct usb_device *udev, | ||
* the port lock. For a newly detected device that is not accessible | ||
* through any global pointers, it's not necessary to lock the device, | ||
* but it is still necessary to lock the port. | ||
|
@@ -155,7 +155,7 @@ index 71635dfa741d2..b937bf8b6b3d3 100644 | |
{ | ||
struct usb_device *hdev = hub->hdev; | ||
struct usb_hcd *hcd = bus_to_hcd(hdev->bus); | ||
@@ -4814,13 +4746,6 @@ hub_port_init(struct usb_hub *hub, struct usb_device *udev, int port1, | ||
@@ -4834,13 +4766,6 @@ hub_port_init(struct usb_hub *hub, struct usb_device *udev, int port1, | ||
int devnum = udev->devnum; | ||
const char *driver_name; | ||
bool do_new_scheme; | ||
|
@@ -169,7 +169,7 @@ index 71635dfa741d2..b937bf8b6b3d3 100644 | |
|
||
/* root hub ports have a slightly longer reset period | ||
* (from USB 2.0 spec, section 7.1.7.5) | ||
@@ -4853,31 +4778,31 @@ hub_port_init(struct usb_hub *hub, struct usb_device *udev, int port1, | ||
@@ -4873,31 +4798,31 @@ hub_port_init(struct usb_hub *hub, struct usb_device *udev, int port1, | ||
} | ||
oldspeed = udev->speed; | ||
|
||
|
@@ -225,7 +225,7 @@ index 71635dfa741d2..b937bf8b6b3d3 100644 | |
} | ||
|
||
speed = usb_speed_string(udev->speed); | ||
@@ -4897,24 +4822,22 @@ hub_port_init(struct usb_hub *hub, struct usb_device *udev, int port1, | ||
@@ -4917,24 +4842,22 @@ hub_port_init(struct usb_hub *hub, struct usb_device *udev, int port1, | ||
if (udev->speed < USB_SPEED_SUPER) | ||
dev_info(&udev->dev, | ||
"%s %s USB device number %d using %s\n", | ||
|
@@ -263,7 +263,7 @@ index 71635dfa741d2..b937bf8b6b3d3 100644 | |
} | ||
|
||
/* Why interleave GET_DESCRIPTOR and SET_ADDRESS this way? | ||
@@ -4938,6 +4861,9 @@ hub_port_init(struct usb_hub *hub, struct usb_device *udev, int port1, | ||
@@ -4958,6 +4881,9 @@ hub_port_init(struct usb_hub *hub, struct usb_device *udev, int port1, | ||
} | ||
|
||
if (do_new_scheme) { | ||
|
@@ -273,7 +273,7 @@ index 71635dfa741d2..b937bf8b6b3d3 100644 | |
retval = hub_enable_device(udev); | ||
if (retval < 0) { | ||
dev_err(&udev->dev, | ||
@@ -4946,14 +4872,52 @@ hub_port_init(struct usb_hub *hub, struct usb_device *udev, int port1, | ||
@@ -4966,14 +4892,52 @@ hub_port_init(struct usb_hub *hub, struct usb_device *udev, int port1, | ||
goto fail; | ||
} | ||
|
||
|
@@ -333,7 +333,7 @@ index 71635dfa741d2..b937bf8b6b3d3 100644 | |
|
||
retval = hub_port_reset(hub, port1, udev, delay, false); | ||
if (retval < 0) /* error or disconnect */ | ||
@@ -4964,13 +4928,14 @@ hub_port_init(struct usb_hub *hub, struct usb_device *udev, int port1, | ||
@@ -4984,13 +4948,14 @@ hub_port_init(struct usb_hub *hub, struct usb_device *udev, int port1, | ||
retval = -ENODEV; | ||
goto fail; | ||
} | ||
|
@@ -352,7 +352,7 @@ index 71635dfa741d2..b937bf8b6b3d3 100644 | |
} | ||
|
||
for (operations = 0; operations < SET_ADDRESS_TRIES; ++operations) { | ||
@@ -5011,21 +4976,18 @@ hub_port_init(struct usb_hub *hub, struct usb_device *udev, int port1, | ||
@@ -5031,21 +4996,18 @@ hub_port_init(struct usb_hub *hub, struct usb_device *udev, int port1, | ||
if (do_new_scheme) | ||
break; | ||
|
||
|
@@ -379,7 +379,7 @@ index 71635dfa741d2..b937bf8b6b3d3 100644 | |
|
||
delay = udev->parent->hub_delay; | ||
udev->hub_delay = min_t(u32, delay, | ||
@@ -5044,62 +5006,48 @@ hub_port_init(struct usb_hub *hub, struct usb_device *udev, int port1, | ||
@@ -5064,62 +5026,48 @@ hub_port_init(struct usb_hub *hub, struct usb_device *udev, int port1, | ||
goto fail; | ||
|
||
/* | ||
|
@@ -472,15 +472,15 @@ index 71635dfa741d2..b937bf8b6b3d3 100644 | |
goto fail; | ||
} | ||
|
||
@@ -5124,7 +5073,6 @@ hub_port_init(struct usb_hub *hub, struct usb_device *udev, int port1, | ||
@@ -5145,7 +5093,6 @@ hub_port_init(struct usb_hub *hub, struct usb_device *udev, int port1, | ||
hub_port_disable(hub, port1, 0); | ||
update_devnum(udev, devnum); /* for disconnect processing */ | ||
} | ||
- kfree(buf); | ||
return retval; | ||
} | ||
|
||
@@ -5205,7 +5153,7 @@ hub_power_remaining(struct usb_hub *hub) | ||
@@ -5226,7 +5173,7 @@ hub_power_remaining(struct usb_hub *hub) | ||
|
||
|
||
static int descriptors_changed(struct usb_device *udev, | ||
|
@@ -489,7 +489,7 @@ index 71635dfa741d2..b937bf8b6b3d3 100644 | |
struct usb_host_bos *old_bos) | ||
{ | ||
int changed = 0; | ||
@@ -5216,8 +5164,8 @@ static int descriptors_changed(struct usb_device *udev, | ||
@@ -5237,8 +5184,8 @@ static int descriptors_changed(struct usb_device *udev, | ||
int length; | ||
char *buf; | ||
|
||
|
@@ -500,7 +500,7 @@ index 71635dfa741d2..b937bf8b6b3d3 100644 | |
return 1; | ||
|
||
if ((old_bos && !udev->bos) || (!old_bos && udev->bos)) | ||
@@ -5394,7 +5342,7 @@ static void hub_port_connect(struct usb_hub *hub, int port1, u16 portstatus, | ||
@@ -5415,7 +5362,7 @@ static void hub_port_connect(struct usb_hub *hub, int port1, u16 portstatus, | ||
} | ||
|
||
/* reset (non-USB 3.0 devices) and get descriptor */ | ||
|
@@ -509,7 +509,7 @@ index 71635dfa741d2..b937bf8b6b3d3 100644 | |
if (status < 0) | ||
goto loop; | ||
|
||
@@ -5541,8 +5489,9 @@ static void hub_port_connect_change(struct usb_hub *hub, int port1, | ||
@@ -5562,8 +5509,9 @@ static void hub_port_connect_change(struct usb_hub *hub, int port1, | ||
{ | ||
struct usb_port *port_dev = hub->ports[port1 - 1]; | ||
struct usb_device *udev = port_dev->child; | ||
|
@@ -520,7 +520,7 @@ index 71635dfa741d2..b937bf8b6b3d3 100644 | |
|
||
dev_dbg(&port_dev->dev, "status %04x, change %04x, %s\n", portstatus, | ||
portchange, portspeed(hub, portstatus)); | ||
@@ -5569,20 +5518,23 @@ static void hub_port_connect_change(struct usb_hub *hub, int port1, | ||
@@ -5590,20 +5538,23 @@ static void hub_port_connect_change(struct usb_hub *hub, int port1, | ||
* changed device descriptors before resuscitating the | ||
* device. | ||
*/ | ||
|
@@ -550,7 +550,7 @@ index 71635dfa741d2..b937bf8b6b3d3 100644 | |
} | ||
#ifdef CONFIG_PM | ||
} else if (udev->state == USB_STATE_SUSPENDED && | ||
@@ -6039,7 +5991,7 @@ static int usb_reset_and_verify_device(struct usb_device *udev) | ||
@@ -6060,7 +6011,7 @@ static int usb_reset_and_verify_device(struct usb_device *udev) | ||
struct usb_device *parent_hdev = udev->parent; | ||
struct usb_hub *parent_hub; | ||
struct usb_hcd *hcd = bus_to_hcd(udev->bus); | ||
|
@@ -559,7 +559,7 @@ index 71635dfa741d2..b937bf8b6b3d3 100644 | |
struct usb_host_bos *bos; | ||
int i, j, ret = 0; | ||
int port1 = udev->portnum; | ||
@@ -6075,7 +6027,7 @@ static int usb_reset_and_verify_device(struct usb_device *udev) | ||
@@ -6096,7 +6047,7 @@ static int usb_reset_and_verify_device(struct usb_device *udev) | ||
/* ep0 maxpacket size may change; let the HCD know about it. | ||
* Other endpoints will be handled by re-enumeration. */ | ||
usb_ep0_reinit(udev); | ||
|
@@ -568,7 +568,7 @@ index 71635dfa741d2..b937bf8b6b3d3 100644 | |
if (ret >= 0 || ret == -ENOTCONN || ret == -ENODEV) | ||
break; | ||
} | ||
@@ -6087,6 +6039,7 @@ static int usb_reset_and_verify_device(struct usb_device *udev) | ||
@@ -6108,6 +6059,7 @@ static int usb_reset_and_verify_device(struct usb_device *udev) | ||
/* Device might have changed firmware (DFU or similar) */ | ||
if (descriptors_changed(udev, &descriptor, bos)) { | ||
dev_info(&udev->dev, "device firmware changed\n"); | ||
|
@@ -648,6 +648,3 @@ index 60363153fc3f3..69ca59841083b 100644 | |
extern int usb_set_isoch_delay(struct usb_device *dev); | ||
extern int usb_get_bos_descriptor(struct usb_device *dev); | ||
extern void usb_release_bos_descriptor(struct usb_device *dev); | ||
-- | ||
2.34.1 | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.