mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-28 17:48:58 +00:00
9af0e94fa6
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.64
Manually rebased:
generic/hack-6.6/780-usb-net-MeigLink_modem_support.patch
bcm27xx/patches-6.6/950-0585-drm-vc4-Introduce-generation-number-enum.patch
bcm27xx/patches-6.6/950-0610-drm-vc4-hvs-Support-BCM2712-HVS.patch
bcm27xx/patches-6.6/950-0829-vc4-hvs-Add-support-for-D0-register-changes.patch
Removed upstreamed:
bcm27xx/patches-6.6/950-0597-drm-vc4-hdmi-Avoid-hang-with-debug-registers-when-su.patch[1]
bcm27xx/patches-6.6/950-0599-drm-vc4-Fix-dlist-debug-not-resetting-the-next-entry.patch[2]
bcm27xx/patches-6.6/950-0600-drm-vc4-Remove-incorrect-limit-from-hvs_dlist-debugf.patch[3]
bcm27xx/patches-6.6/950-0708-drm-vc4-Correct-logic-on-stopping-an-HVS-channel.patch[4]
ramips/patches-6.6/002-01-v6.13-clk-ralink-mtmips-fix-clock-plan-for-Ralink-SoC-RT38.patch[5]
ramips/patches-6.6/002-02-v6.13-clk-ralink-mtmips-fix-clocks-probe-order-in-oldest-r.patch[6]
All other patches automatically rebased.
1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.64&id=223ee2567a55e4f80315c768d2969e6a3b9fb23d
2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.64&id=8182b5ca19c6f173b6498d1c6d3e4b034b76bbde
3. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.64&id=52c1716f65a558174e381360bd88f18dae4be85c
4. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.64&id=9728b508b01a5eeeac79ceb676364c674dd951ac
5. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.64&id=f85a1d06afbcc57ac44176db8f9d7a934979952c
6. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.64&id=fbb13732c6ffa9d58cedafabcd5ce8fd7ef8ae5a
Build system: x86/64
Build-tested: x86/64/AMD Cezanne, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3
Run-tested: x86/64/AMD Cezanne, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3
Co-authored-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/17217
Signed-off-by: Robert Marko <robimarko@gmail.com>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 5158e28769
)
47 lines
1.6 KiB
Diff
47 lines
1.6 KiB
Diff
From ceaf767bea165e6d36421371ada1f2cc6106a934 Mon Sep 17 00:00:00 2001
|
|
From: Joshua Emele <jemele@acm.org>
|
|
Date: Wed, 7 Nov 2018 16:07:40 -0800
|
|
Subject: [PATCH 0133/1085] lan78xx: Debounce link events to minimize poll
|
|
storm
|
|
|
|
The bInterval is set to 4 (i.e. 8 microframes => 1ms) and the only bit
|
|
that the driver pays attention to is "link was reset". If there's a
|
|
flapping status bit in that endpoint data, (such as if PHY negotiation
|
|
needs a few tries to get a stable link) then polling at a slower rate
|
|
would act as a de-bounce.
|
|
|
|
See: https://github.com/raspberrypi/linux/issues/2447
|
|
---
|
|
drivers/net/usb/lan78xx.c | 13 ++++++++++++-
|
|
1 file changed, 12 insertions(+), 1 deletion(-)
|
|
|
|
--- a/drivers/net/usb/lan78xx.c
|
|
+++ b/drivers/net/usb/lan78xx.c
|
|
@@ -618,6 +618,11 @@ static bool enable_tso;
|
|
module_param(enable_tso, bool, 0644);
|
|
MODULE_PARM_DESC(enable_tso, "Enables TCP segmentation offload");
|
|
|
|
+#define INT_URB_MICROFRAMES_PER_MS 8
|
|
+static int int_urb_interval_ms = 8;
|
|
+module_param(int_urb_interval_ms, int, 0);
|
|
+MODULE_PARM_DESC(int_urb_interval_ms, "Override usb interrupt urb interval");
|
|
+
|
|
static int lan78xx_read_reg(struct lan78xx_net *dev, u32 index, u32 *data)
|
|
{
|
|
u32 *buf;
|
|
@@ -4458,7 +4463,13 @@ static int lan78xx_probe(struct usb_inte
|
|
if (ret < 0)
|
|
goto out4;
|
|
|
|
- period = ep_intr->desc.bInterval;
|
|
+ if (int_urb_interval_ms <= 0)
|
|
+ period = ep_intr->desc.bInterval;
|
|
+ else
|
|
+ period = int_urb_interval_ms * INT_URB_MICROFRAMES_PER_MS;
|
|
+
|
|
+ netif_notice(dev, probe, netdev, "int urb period %d\n", period);
|
|
+
|
|
maxp = usb_maxpacket(dev->udev, dev->pipe_intr);
|
|
|
|
dev->urb_intr = usb_alloc_urb(0, GFP_KERNEL);
|