Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
This commit is contained in:
commit
32ddb642ea
@ -1,2 +1,2 @@
|
||||
LINUX_VERSION-6.6 = .73
|
||||
LINUX_KERNEL_HASH-6.6.73 = d2028db190c201650898be8db1c705e9fe73ab44fc04290b4f7af63514122490
|
||||
LINUX_VERSION-6.6 = .79
|
||||
LINUX_KERNEL_HASH-6.6.79 = 07a6f904470da1a099aa1683e3025a999dd82f2438f78b006b80c6ae2e9dfe8d
|
||||
|
@ -1,14 +1,14 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=wireless-regdb
|
||||
PKG_VERSION:=2024.10.07
|
||||
PKG_VERSION:=2025.02.20
|
||||
PKG_RELEASE:=1
|
||||
PKG_LICENSE:=ISC
|
||||
PKG_LICENSE_FILES:=LICENSE
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||
PKG_SOURCE_URL:=@KERNEL/software/network/wireless-regdb/
|
||||
PKG_HASH:=f76f2bd79a653e9f9dd50548d99d03a4a4eb157da056dfd5892f403ec28fb3d5
|
||||
PKG_HASH:=57f8e7721cf5a880c13ae0c202edbb21092a060d45f9e9c59bcd2a8272bfa456
|
||||
|
||||
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
|
@ -8,7 +8,7 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=openssl
|
||||
PKG_VERSION:=3.0.15
|
||||
PKG_VERSION:=3.0.16
|
||||
PKG_RELEASE:=1
|
||||
PKG_BUILD_FLAGS:=no-mips16 gc-sections no-lto
|
||||
|
||||
@ -21,7 +21,7 @@ PKG_SOURCE_URL:= \
|
||||
https://www.openssl.org/source/old/$(PKG_BASE)/ \
|
||||
https://github.com/openssl/openssl/releases/download/$(PKG_NAME)-$(PKG_VERSION)/
|
||||
|
||||
PKG_HASH:=23c666d0edf20f14249b3d8f0368acaee9ab585b09e1de82107c66e1f3ec9533
|
||||
PKG_HASH:=57e03c50feab5d31b152af2b764f10379aecd8ee92f16c985983ce4a99f7ef86
|
||||
|
||||
PKG_LICENSE:=Apache-2.0
|
||||
PKG_LICENSE_FILES:=LICENSE
|
||||
|
@ -122,7 +122,7 @@
|
||||
};
|
||||
|
||||
/* Uart divisor latch read */
|
||||
@@ -2880,6 +2888,12 @@ serial8250_do_set_termios(struct uart_po
|
||||
@@ -2889,6 +2897,12 @@ serial8250_do_set_termios(struct uart_po
|
||||
|
||||
serial8250_set_divisor(port, baud, quot, frac);
|
||||
|
||||
|
@ -16,16 +16,16 @@ Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
|
||||
|
||||
--- a/drivers/mfd/syscon.c
|
||||
+++ b/drivers/mfd/syscon.c
|
||||
@@ -52,7 +52,7 @@ static struct syscon *of_syscon_register
|
||||
@@ -53,7 +53,7 @@ static struct syscon *of_syscon_register
|
||||
int ret;
|
||||
struct regmap_config syscon_config = syscon_regmap_config;
|
||||
struct resource res;
|
||||
- struct reset_control *reset;
|
||||
+ struct reset_control *reset = NULL;
|
||||
|
||||
syscon = kzalloc(sizeof(*syscon), GFP_KERNEL);
|
||||
if (!syscon)
|
||||
@@ -134,7 +134,8 @@ static struct syscon *of_syscon_register
|
||||
WARN_ON(!mutex_is_locked(&syscon_list_lock));
|
||||
|
||||
@@ -133,7 +133,8 @@ static struct syscon *of_syscon_register
|
||||
goto err_attach_clk;
|
||||
}
|
||||
|
||||
|
@ -350,7 +350,7 @@ SVN-Revision: 35130
|
||||
list_for_each_entry(p, head, list) {
|
||||
--- a/net/ipv4/tcp_output.c
|
||||
+++ b/net/ipv4/tcp_output.c
|
||||
@@ -622,48 +622,53 @@ static void tcp_options_write(struct tcp
|
||||
@@ -625,48 +625,53 @@ static void tcp_options_write(struct tcp
|
||||
u16 options = opts->options; /* mungable copy */
|
||||
|
||||
if (unlikely(OPTION_MD5 & options)) {
|
||||
@ -427,7 +427,7 @@ SVN-Revision: 35130
|
||||
}
|
||||
|
||||
if (unlikely(opts->num_sack_blocks)) {
|
||||
@@ -671,16 +676,17 @@ static void tcp_options_write(struct tcp
|
||||
@@ -674,16 +679,17 @@ static void tcp_options_write(struct tcp
|
||||
tp->duplicate_sack : tp->selective_acks;
|
||||
int this_sack;
|
||||
|
||||
@ -451,7 +451,7 @@ SVN-Revision: 35130
|
||||
}
|
||||
|
||||
tp->rx_opt.dsack = 0;
|
||||
@@ -693,13 +699,14 @@ static void tcp_options_write(struct tcp
|
||||
@@ -696,13 +702,14 @@ static void tcp_options_write(struct tcp
|
||||
|
||||
if (foc->exp) {
|
||||
len = TCPOLEN_EXP_FASTOPEN_BASE + foc->len;
|
||||
|
@ -28,7 +28,7 @@ We don't agree with upstream revert so undo it.
|
||||
pdev->device == PCI_DEVICE_ID_ASMEDIA_1042_XHCI) {
|
||||
--- a/drivers/usb/host/xhci-ring.c
|
||||
+++ b/drivers/usb/host/xhci-ring.c
|
||||
@@ -634,8 +634,11 @@ static int xhci_move_dequeue_past_td(str
|
||||
@@ -635,8 +635,11 @@ static int xhci_move_dequeue_past_td(str
|
||||
struct xhci_ring *ep_ring;
|
||||
struct xhci_command *cmd;
|
||||
struct xhci_segment *new_seg;
|
||||
@ -40,7 +40,7 @@ We don't agree with upstream revert so undo it.
|
||||
dma_addr_t addr;
|
||||
u64 hw_dequeue;
|
||||
bool cycle_found = false;
|
||||
@@ -673,7 +676,27 @@ static int xhci_move_dequeue_past_td(str
|
||||
@@ -674,7 +677,27 @@ static int xhci_move_dequeue_past_td(str
|
||||
hw_dequeue = xhci_get_hw_deq(xhci, dev, ep_index, stream_id);
|
||||
new_seg = ep_ring->deq_seg;
|
||||
new_deq = ep_ring->dequeue;
|
||||
|
@ -17,7 +17,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
|
||||
--- a/kernel/cgroup/cgroup.c
|
||||
+++ b/kernel/cgroup/cgroup.c
|
||||
@@ -6063,6 +6063,9 @@ int __init cgroup_init_early(void)
|
||||
@@ -6059,6 +6059,9 @@ int __init cgroup_init_early(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -27,7 +27,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
/**
|
||||
* cgroup_init - cgroup initialization
|
||||
*
|
||||
@@ -6096,6 +6099,12 @@ int __init cgroup_init(void)
|
||||
@@ -6092,6 +6095,12 @@ int __init cgroup_init(void)
|
||||
|
||||
cgroup_unlock();
|
||||
|
||||
@ -40,7 +40,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
for_each_subsys(ss, ssid) {
|
||||
if (ss->early_init) {
|
||||
struct cgroup_subsys_state *css =
|
||||
@@ -6736,6 +6745,10 @@ static int __init cgroup_disable(char *s
|
||||
@@ -6740,6 +6749,10 @@ static int __init cgroup_disable(char *s
|
||||
strcmp(token, ss->legacy_name))
|
||||
continue;
|
||||
|
||||
@ -51,7 +51,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
static_branch_disable(cgroup_subsys_enabled_key[i]);
|
||||
pr_info("Disabling %s control group subsystem\n",
|
||||
ss->name);
|
||||
@@ -6754,6 +6767,31 @@ static int __init cgroup_disable(char *s
|
||||
@@ -6758,6 +6771,31 @@ static int __init cgroup_disable(char *s
|
||||
}
|
||||
__setup("cgroup_disable=", cgroup_disable);
|
||||
|
||||
|
@ -1189,7 +1189,7 @@ Signed-off-by: Alexander Winkowski <dereference23@outlook.com>
|
||||
}
|
||||
--- a/drivers/usb/core/hub.c
|
||||
+++ b/drivers/usb/core/hub.c
|
||||
@@ -5712,7 +5712,7 @@ static void port_event(struct usb_hub *h
|
||||
@@ -5722,7 +5722,7 @@ static void port_event(struct usb_hub *h
|
||||
port_dev->over_current_count++;
|
||||
port_over_current_notify(port_dev);
|
||||
|
||||
|
@ -14927,7 +14927,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
config SND_SOC_TFA989X
|
||||
tristate "NXP/Goodix TFA989X (TFA1) amplifiers"
|
||||
depends on I2C
|
||||
@@ -2404,4 +2422,8 @@ config SND_SOC_LPASS_TX_MACRO
|
||||
@@ -2405,4 +2423,8 @@ config SND_SOC_LPASS_TX_MACRO
|
||||
select SND_SOC_LPASS_MACRO_COMMON
|
||||
tristate "Qualcomm TX Macro in LPASS(Low Power Audio SubSystem)"
|
||||
|
||||
@ -17583,7 +17583,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
* For devices with more than one control interface, we assume the
|
||||
--- a/sound/usb/quirks.c
|
||||
+++ b/sound/usb/quirks.c
|
||||
@@ -2249,6 +2249,8 @@ static const struct usb_audio_quirk_flag
|
||||
@@ -2253,6 +2253,8 @@ static const struct usb_audio_quirk_flag
|
||||
QUIRK_FLAG_ALIGN_TRANSFER),
|
||||
DEVICE_FLG(0x534d, 0x2109, /* MacroSilicon MS2109 */
|
||||
QUIRK_FLAG_ALIGN_TRANSFER),
|
||||
|
@ -26,7 +26,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
|
||||
--- a/drivers/usb/host/xhci-ring.c
|
||||
+++ b/drivers/usb/host/xhci-ring.c
|
||||
@@ -739,9 +739,9 @@ deq_found:
|
||||
@@ -740,9 +740,9 @@ deq_found:
|
||||
}
|
||||
|
||||
if ((ep->ep_state & SET_DEQ_PENDING)) {
|
||||
|
@ -33,7 +33,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
||||
#define USB_VENDOR_ID_BELKIN 0x050d
|
||||
#define USB_DEVICE_ID_FLIP_KVM 0x3201
|
||||
|
||||
@@ -1406,6 +1409,9 @@
|
||||
@@ -1405,6 +1408,9 @@
|
||||
#define USB_VENDOR_ID_XIAOMI 0x2717
|
||||
#define USB_DEVICE_ID_MI_SILENT_MOUSE 0x5014
|
||||
|
||||
|
@ -13,7 +13,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
|
||||
--- a/drivers/gpu/drm/v3d/v3d_irq.c
|
||||
+++ b/drivers/gpu/drm/v3d/v3d_irq.c
|
||||
@@ -177,6 +177,7 @@ v3d_hub_irq(int irq, void *arg)
|
||||
@@ -189,6 +189,7 @@ v3d_hub_irq(int irq, void *arg)
|
||||
"GMP",
|
||||
};
|
||||
const char *client = "?";
|
||||
@ -21,7 +21,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
|
||||
V3D_WRITE(V3D_MMU_CTL, V3D_READ(V3D_MMU_CTL));
|
||||
|
||||
@@ -186,6 +187,7 @@ v3d_hub_irq(int irq, void *arg)
|
||||
@@ -198,6 +199,7 @@ v3d_hub_irq(int irq, void *arg)
|
||||
client = v3d41_axi_ids[axi_id];
|
||||
}
|
||||
|
||||
@ -29,7 +29,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
dev_err(v3d->drm.dev, "MMU error from client %s (%d) at 0x%llx%s%s%s\n",
|
||||
client, axi_id, (long long)vio_addr,
|
||||
((intsts & V3D_HUB_INT_MMU_WRV) ?
|
||||
@@ -194,6 +196,7 @@ v3d_hub_irq(int irq, void *arg)
|
||||
@@ -206,6 +208,7 @@ v3d_hub_irq(int irq, void *arg)
|
||||
", pte invalid" : ""),
|
||||
((intsts & V3D_HUB_INT_MMU_CAP) ?
|
||||
", cap exceeded" : ""));
|
||||
|
@ -10,7 +10,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
|
||||
--- a/drivers/gpio/gpio-pca953x.c
|
||||
+++ b/drivers/gpio/gpio-pca953x.c
|
||||
@@ -1347,6 +1347,7 @@ static const struct of_device_id pca953x
|
||||
@@ -1311,6 +1311,7 @@ static const struct of_device_id pca953x
|
||||
{ .compatible = "ti,tca6424", .data = OF_953X(24, PCA_INT), },
|
||||
{ .compatible = "ti,tca9538", .data = OF_953X( 8, PCA_INT), },
|
||||
{ .compatible = "ti,tca9539", .data = OF_953X(16, PCA_INT), },
|
||||
|
@ -257,31 +257,31 @@ Signed-off-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com>
|
||||
+ v3d->gpu_queue_stats[V3D_BIN].last_exec_end = local_clock();
|
||||
|
||||
trace_v3d_bcl_irq(&v3d->drm, fence->seqno);
|
||||
dma_fence_signal(&fence->base);
|
||||
@@ -109,6 +111,7 @@ v3d_irq(int irq, void *arg)
|
||||
|
||||
@@ -112,6 +114,7 @@ v3d_irq(int irq, void *arg)
|
||||
if (intsts & V3D_INT_FRDONE) {
|
||||
struct v3d_fence *fence =
|
||||
to_v3d_fence(v3d->render_job->base.irq_fence);
|
||||
+ v3d->gpu_queue_stats[V3D_RENDER].last_exec_end = local_clock();
|
||||
|
||||
trace_v3d_rcl_irq(&v3d->drm, fence->seqno);
|
||||
dma_fence_signal(&fence->base);
|
||||
@@ -118,6 +121,7 @@ v3d_irq(int irq, void *arg)
|
||||
|
||||
@@ -124,6 +127,7 @@ v3d_irq(int irq, void *arg)
|
||||
if (intsts & V3D_INT_CSDDONE) {
|
||||
struct v3d_fence *fence =
|
||||
to_v3d_fence(v3d->csd_job->base.irq_fence);
|
||||
+ v3d->gpu_queue_stats[V3D_CSD].last_exec_end = local_clock();
|
||||
|
||||
trace_v3d_csd_irq(&v3d->drm, fence->seqno);
|
||||
dma_fence_signal(&fence->base);
|
||||
@@ -154,6 +158,7 @@ v3d_hub_irq(int irq, void *arg)
|
||||
|
||||
@@ -163,6 +167,7 @@ v3d_hub_irq(int irq, void *arg)
|
||||
if (intsts & V3D_HUB_INT_TFUC) {
|
||||
struct v3d_fence *fence =
|
||||
to_v3d_fence(v3d->tfu_job->base.irq_fence);
|
||||
+ v3d->gpu_queue_stats[V3D_TFU].last_exec_end = local_clock();
|
||||
|
||||
trace_v3d_tfu_irq(&v3d->drm, fence->seqno);
|
||||
dma_fence_signal(&fence->base);
|
||||
|
||||
--- a/drivers/gpu/drm/v3d/v3d_sched.c
|
||||
+++ b/drivers/gpu/drm/v3d/v3d_sched.c
|
||||
@@ -19,6 +19,7 @@
|
||||
|
@ -34,7 +34,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA &&
|
||||
--- a/drivers/usb/host/xhci-ring.c
|
||||
+++ b/drivers/usb/host/xhci-ring.c
|
||||
@@ -729,6 +729,15 @@ static int xhci_move_dequeue_past_td(str
|
||||
@@ -730,6 +730,15 @@ static int xhci_move_dequeue_past_td(str
|
||||
} while (!cycle_found || !td_last_trb_found);
|
||||
|
||||
deq_found:
|
||||
|
@ -75,7 +75,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA &&
|
||||
--- a/drivers/usb/host/xhci-ring.c
|
||||
+++ b/drivers/usb/host/xhci-ring.c
|
||||
@@ -3714,6 +3714,48 @@ static int xhci_align_td(struct xhci_hcd
|
||||
@@ -3715,6 +3715,48 @@ static int xhci_align_td(struct xhci_hcd
|
||||
return 1;
|
||||
}
|
||||
|
||||
@ -124,7 +124,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
/* This is very similar to what ehci-q.c qtd_fill() does */
|
||||
int xhci_queue_bulk_tx(struct xhci_hcd *xhci, gfp_t mem_flags,
|
||||
struct urb *urb, int slot_id, unsigned int ep_index)
|
||||
@@ -3870,6 +3912,8 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
|
||||
@@ -3871,6 +3913,8 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
|
||||
}
|
||||
|
||||
check_trb_math(urb, enqd_len);
|
||||
@ -133,7 +133,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
giveback_first_trb(xhci, slot_id, ep_index, urb->stream_id,
|
||||
start_cycle, start_trb);
|
||||
return 0;
|
||||
@@ -4019,6 +4063,8 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *
|
||||
@@ -4020,6 +4064,8 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *
|
||||
/* Event on completion */
|
||||
field | TRB_IOC | TRB_TYPE(TRB_STATUS) | ep_ring->cycle_state);
|
||||
|
||||
|
@ -1,26 +0,0 @@
|
||||
From 7713ce38e6a26425ace3a57b3d03ba0125c16f89 Mon Sep 17 00:00:00 2001
|
||||
From: Naushir Patuck <naush@raspberrypi.com>
|
||||
Date: Fri, 28 Jul 2023 12:00:40 +0100
|
||||
Subject: [PATCH 0487/1085] drivers: media: imx296: Add standby delay during
|
||||
probe
|
||||
|
||||
Add a 2-5ms delay when coming out of standby and before reading the
|
||||
sensor info register durning probe, as instructed by the datasheet. This
|
||||
standby delay is already present when the sensor starts streaming.
|
||||
|
||||
Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
|
||||
---
|
||||
drivers/media/i2c/imx296.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
--- a/drivers/media/i2c/imx296.c
|
||||
+++ b/drivers/media/i2c/imx296.c
|
||||
@@ -940,6 +940,8 @@ static int imx296_identify_model(struct
|
||||
return ret;
|
||||
}
|
||||
|
||||
+ usleep_range(2000, 5000);
|
||||
+
|
||||
ret = imx296_read(sensor, IMX296_SENSOR_INFO);
|
||||
if (ret < 0) {
|
||||
dev_err(sensor->dev, "failed to read sensor information (%d)\n",
|
@ -53,16 +53,16 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
help
|
||||
--- a/drivers/gpio/gpio-brcmstb.c
|
||||
+++ b/drivers/gpio/gpio-brcmstb.c
|
||||
@@ -639,6 +639,8 @@ static int brcmstb_gpio_probe(struct pla
|
||||
@@ -637,6 +637,8 @@ static int brcmstb_gpio_probe(struct pla
|
||||
#if defined(CONFIG_MIPS) && defined(__BIG_ENDIAN)
|
||||
flags = BGPIOF_BIG_ENDIAN_BYTE_ORDER;
|
||||
#endif
|
||||
+ if (of_property_read_bool(np, "brcm,gpio-direct"))
|
||||
+ flags |= BGPIOF_REG_DIRECT;
|
||||
|
||||
of_property_for_each_u32(np, "brcm,gpio-bank-widths", prop, p,
|
||||
bank_width) {
|
||||
@@ -688,7 +690,9 @@ static int brcmstb_gpio_probe(struct pla
|
||||
of_property_for_each_u32(np, "brcm,gpio-bank-widths", bank_width) {
|
||||
struct brcmstb_gpio_bank *bank;
|
||||
@@ -685,7 +687,9 @@ static int brcmstb_gpio_probe(struct pla
|
||||
}
|
||||
|
||||
gc->owner = THIS_MODULE;
|
||||
@ -73,7 +73,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
if (!gc->label) {
|
||||
err = -ENOMEM;
|
||||
goto fail;
|
||||
@@ -697,7 +701,7 @@ static int brcmstb_gpio_probe(struct pla
|
||||
@@ -694,7 +698,7 @@ static int brcmstb_gpio_probe(struct pla
|
||||
gc->of_gpio_n_cells = 2;
|
||||
gc->of_xlate = brcmstb_gpio_of_xlate;
|
||||
/* not all ngpio lines are valid, will use bank width later */
|
||||
@ -82,7 +82,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
gc->offset = bank->id * MAX_GPIO_PER_BANK;
|
||||
if (priv->parent_irq > 0)
|
||||
gc->to_irq = brcmstb_gpio_to_irq;
|
||||
@@ -706,8 +710,10 @@ static int brcmstb_gpio_probe(struct pla
|
||||
@@ -703,8 +707,10 @@ static int brcmstb_gpio_probe(struct pla
|
||||
* Mask all interrupts by default, since wakeup interrupts may
|
||||
* be retained from S5 cold boot
|
||||
*/
|
||||
|
@ -276,10 +276,10 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
u8 tx_max_burst_prd = 0;
|
||||
u8 tx_fifo_resize_max_num;
|
||||
+ u8 axi_pipe_limit;
|
||||
const char *usb_psy_name;
|
||||
int ret;
|
||||
|
||||
@@ -1527,6 +1566,9 @@ static void dwc3_get_properties(struct d
|
||||
/* default to highest possible threshold */
|
||||
lpm_nyet_threshold = 0xf;
|
||||
@@ -1525,6 +1564,9 @@ static void dwc3_get_properties(struct d
|
||||
*/
|
||||
tx_fifo_resize_max_num = 6;
|
||||
|
||||
@ -289,7 +289,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
dwc->maximum_speed = usb_get_maximum_speed(dev);
|
||||
dwc->max_ssp_rate = usb_get_maximum_ssp_rate(dev);
|
||||
dwc->dr_mode = usb_get_dr_mode(dev);
|
||||
@@ -1648,6 +1690,9 @@ static void dwc3_get_properties(struct d
|
||||
@@ -1639,6 +1681,9 @@ static void dwc3_get_properties(struct d
|
||||
dwc->dis_split_quirk = device_property_read_bool(dev,
|
||||
"snps,dis-split-quirk");
|
||||
|
||||
@ -299,7 +299,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
dwc->lpm_nyet_threshold = lpm_nyet_threshold;
|
||||
dwc->tx_de_emphasis = tx_de_emphasis;
|
||||
|
||||
@@ -1665,6 +1710,8 @@ static void dwc3_get_properties(struct d
|
||||
@@ -1656,6 +1701,8 @@ static void dwc3_get_properties(struct d
|
||||
dwc->tx_thr_num_pkt_prd = tx_thr_num_pkt_prd;
|
||||
dwc->tx_max_burst_prd = tx_max_burst_prd;
|
||||
|
||||
@ -308,9 +308,9 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
dwc->imod_interval = 0;
|
||||
|
||||
dwc->tx_fifo_resize_max_num = tx_fifo_resize_max_num;
|
||||
@@ -1940,6 +1987,12 @@ static int dwc3_probe(struct platform_de
|
||||
|
||||
dwc3_get_properties(dwc);
|
||||
@@ -1952,6 +1999,12 @@ static int dwc3_probe(struct platform_de
|
||||
if (IS_ERR(dwc->usb_psy))
|
||||
return dev_err_probe(dev, PTR_ERR(dwc->usb_psy), "couldn't get usb power supply\n");
|
||||
|
||||
+ if (!dwc->sysdev_is_parent) {
|
||||
+ ret = dma_set_mask_and_coherent(dwc->sysdev, DMA_BIT_MASK(64));
|
||||
|
@ -295,7 +295,7 @@ v2: fix kernel panic with debug-fs interface to list registers
|
||||
|
||||
static irqreturn_t
|
||||
v3d_hub_irq(int irq, void *arg);
|
||||
@@ -118,7 +119,8 @@ v3d_irq(int irq, void *arg)
|
||||
@@ -124,7 +125,8 @@ v3d_irq(int irq, void *arg)
|
||||
status = IRQ_HANDLED;
|
||||
}
|
||||
|
||||
@ -305,7 +305,7 @@ v2: fix kernel panic with debug-fs interface to list registers
|
||||
struct v3d_fence *fence =
|
||||
to_v3d_fence(v3d->csd_job->base.irq_fence);
|
||||
v3d->gpu_queue_stats[V3D_CSD].last_exec_end = local_clock();
|
||||
@@ -131,7 +133,7 @@ v3d_irq(int irq, void *arg)
|
||||
@@ -140,7 +142,7 @@ v3d_irq(int irq, void *arg)
|
||||
/* We shouldn't be triggering these if we have GMP in
|
||||
* always-allowed mode.
|
||||
*/
|
||||
@ -314,7 +314,7 @@ v2: fix kernel panic with debug-fs interface to list registers
|
||||
dev_err(v3d->drm.dev, "GMP violation\n");
|
||||
|
||||
/* V3D 4.2 wires the hub and core IRQs together, so if we &
|
||||
@@ -205,6 +207,11 @@ v3d_hub_irq(int irq, void *arg)
|
||||
@@ -217,6 +219,11 @@ v3d_hub_irq(int irq, void *arg)
|
||||
status = IRQ_HANDLED;
|
||||
}
|
||||
|
||||
@ -326,7 +326,7 @@ v2: fix kernel panic with debug-fs interface to list registers
|
||||
return status;
|
||||
}
|
||||
|
||||
@@ -219,8 +226,8 @@ v3d_irq_init(struct v3d_dev *v3d)
|
||||
@@ -231,8 +238,8 @@ v3d_irq_init(struct v3d_dev *v3d)
|
||||
* for us.
|
||||
*/
|
||||
for (core = 0; core < v3d->cores; core++)
|
||||
@ -337,7 +337,7 @@ v2: fix kernel panic with debug-fs interface to list registers
|
||||
|
||||
irq1 = platform_get_irq_optional(v3d_to_pdev(v3d), 1);
|
||||
if (irq1 == -EPROBE_DEFER)
|
||||
@@ -264,12 +271,12 @@ v3d_irq_enable(struct v3d_dev *v3d)
|
||||
@@ -276,12 +283,12 @@ v3d_irq_enable(struct v3d_dev *v3d)
|
||||
|
||||
/* Enable our set of interrupts, masking out any others. */
|
||||
for (core = 0; core < v3d->cores; core++) {
|
||||
@ -354,7 +354,7 @@ v2: fix kernel panic with debug-fs interface to list registers
|
||||
}
|
||||
|
||||
void
|
||||
@@ -284,8 +291,8 @@ v3d_irq_disable(struct v3d_dev *v3d)
|
||||
@@ -296,8 +303,8 @@ v3d_irq_disable(struct v3d_dev *v3d)
|
||||
|
||||
/* Clear any pending interrupts we might have left. */
|
||||
for (core = 0; core < v3d->cores; core++)
|
||||
|
@ -61,8 +61,8 @@ Fixes: 3b0213d56eb7 ("gpio: Add GPIO support for Broadcom STB SoCs")
|
||||
if (offset >= gc->ngpio || offset < 0)
|
||||
return -EINVAL;
|
||||
|
||||
@@ -598,8 +598,8 @@ static int brcmstb_gpio_probe(struct pla
|
||||
const __be32 *p;
|
||||
@@ -596,8 +596,8 @@ static int brcmstb_gpio_probe(struct pla
|
||||
struct resource *res;
|
||||
u32 bank_width;
|
||||
int num_banks = 0;
|
||||
+ int num_gpios = 0;
|
||||
@ -71,7 +71,7 @@ Fixes: 3b0213d56eb7 ("gpio: Add GPIO support for Broadcom STB SoCs")
|
||||
unsigned long flags = 0;
|
||||
bool need_wakeup_event = false;
|
||||
|
||||
@@ -613,7 +613,6 @@ static int brcmstb_gpio_probe(struct pla
|
||||
@@ -611,7 +611,6 @@ static int brcmstb_gpio_probe(struct pla
|
||||
if (IS_ERR(reg_base))
|
||||
return PTR_ERR(reg_base);
|
||||
|
||||
@ -79,7 +79,7 @@ Fixes: 3b0213d56eb7 ("gpio: Add GPIO support for Broadcom STB SoCs")
|
||||
priv->reg_base = reg_base;
|
||||
priv->pdev = pdev;
|
||||
|
||||
@@ -655,7 +654,7 @@ static int brcmstb_gpio_probe(struct pla
|
||||
@@ -652,7 +651,7 @@ static int brcmstb_gpio_probe(struct pla
|
||||
dev_dbg(dev, "Width 0 found: Empty bank @ %d\n",
|
||||
num_banks);
|
||||
num_banks++;
|
||||
@ -88,7 +88,7 @@ Fixes: 3b0213d56eb7 ("gpio: Add GPIO support for Broadcom STB SoCs")
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -697,7 +696,7 @@ static int brcmstb_gpio_probe(struct pla
|
||||
@@ -694,7 +693,7 @@ static int brcmstb_gpio_probe(struct pla
|
||||
err = -ENOMEM;
|
||||
goto fail;
|
||||
}
|
||||
@ -97,7 +97,7 @@ Fixes: 3b0213d56eb7 ("gpio: Add GPIO support for Broadcom STB SoCs")
|
||||
gc->of_gpio_n_cells = 2;
|
||||
gc->of_xlate = brcmstb_gpio_of_xlate;
|
||||
/* not all ngpio lines are valid, will use bank width later */
|
||||
@@ -721,7 +720,7 @@ static int brcmstb_gpio_probe(struct pla
|
||||
@@ -718,7 +717,7 @@ static int brcmstb_gpio_probe(struct pla
|
||||
bank->id);
|
||||
goto fail;
|
||||
}
|
||||
@ -106,7 +106,7 @@ Fixes: 3b0213d56eb7 ("gpio: Add GPIO support for Broadcom STB SoCs")
|
||||
|
||||
dev_dbg(dev, "bank=%d, base=%d, ngpio=%d, width=%d\n", bank->id,
|
||||
gc->base, gc->ngpio, bank->width);
|
||||
@@ -732,7 +731,7 @@ static int brcmstb_gpio_probe(struct pla
|
||||
@@ -729,7 +728,7 @@ static int brcmstb_gpio_probe(struct pla
|
||||
num_banks++;
|
||||
}
|
||||
|
||||
|
@ -15,7 +15,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
|
||||
--- a/drivers/gpu/drm/drm_fb_helper.c
|
||||
+++ b/drivers/gpu/drm/drm_fb_helper.c
|
||||
@@ -1851,7 +1851,7 @@ __drm_fb_helper_initial_config_and_unloc
|
||||
@@ -1853,7 +1853,7 @@ __drm_fb_helper_initial_config_and_unloc
|
||||
struct drm_device *dev = fb_helper->dev;
|
||||
struct fb_info *info;
|
||||
unsigned int width, height;
|
||||
@ -24,7 +24,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
|
||||
width = dev->mode_config.max_width;
|
||||
height = dev->mode_config.max_height;
|
||||
@@ -1879,6 +1879,15 @@ __drm_fb_helper_initial_config_and_unloc
|
||||
@@ -1881,6 +1881,15 @@ __drm_fb_helper_initial_config_and_unloc
|
||||
* register the fbdev emulation instance in kernel_fb_helper_list. */
|
||||
mutex_unlock(&fb_helper->lock);
|
||||
|
||||
|
@ -12,7 +12,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
|
||||
--- a/drivers/gpu/drm/drm_fb_helper.c
|
||||
+++ b/drivers/gpu/drm/drm_fb_helper.c
|
||||
@@ -1879,11 +1879,11 @@ __drm_fb_helper_initial_config_and_unloc
|
||||
@@ -1881,11 +1881,11 @@ __drm_fb_helper_initial_config_and_unloc
|
||||
* register the fbdev emulation instance in kernel_fb_helper_list. */
|
||||
mutex_unlock(&fb_helper->lock);
|
||||
|
||||
|
@ -26,7 +26,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
if (DWC3_VER_IS_WITHIN(DWC3, 290A, ANY) &&
|
||||
(dwc->maximum_speed == USB_SPEED_HIGH ||
|
||||
dwc->maximum_speed == USB_SPEED_FULL))
|
||||
@@ -1670,6 +1673,8 @@ static void dwc3_get_properties(struct d
|
||||
@@ -1661,6 +1664,8 @@ static void dwc3_get_properties(struct d
|
||||
"snps,parkmode-disable-ss-quirk");
|
||||
dwc->parkmode_disable_hs_quirk = device_property_read_bool(dev,
|
||||
"snps,parkmode-disable-hs-quirk");
|
||||
|
@ -21,7 +21,7 @@ Signed-off-by: Nick Hollinghurst <nick.hollinghurst@raspberrypi.com>
|
||||
|
||||
--- a/drivers/gpu/drm/drm_connector.c
|
||||
+++ b/drivers/gpu/drm/drm_connector.c
|
||||
@@ -1049,6 +1049,7 @@ static const struct drm_prop_enum_list d
|
||||
@@ -1050,6 +1050,7 @@ static const struct drm_prop_enum_list d
|
||||
{ DRM_MODE_TV_MODE_PAL_M, "PAL-M" },
|
||||
{ DRM_MODE_TV_MODE_PAL_N, "PAL-N" },
|
||||
{ DRM_MODE_TV_MODE_SECAM, "SECAM" },
|
||||
@ -29,7 +29,7 @@ Signed-off-by: Nick Hollinghurst <nick.hollinghurst@raspberrypi.com>
|
||||
};
|
||||
DRM_ENUM_NAME_FN(drm_get_tv_mode_name, drm_tv_mode_enum_list)
|
||||
|
||||
@@ -1735,6 +1736,12 @@ EXPORT_SYMBOL(drm_connector_attach_dp_su
|
||||
@@ -1736,6 +1737,12 @@ EXPORT_SYMBOL(drm_connector_attach_dp_su
|
||||
* TV Mode is CCIR System B (aka 625-lines) together with
|
||||
* the SECAM Color Encoding.
|
||||
*
|
||||
|
@ -22,7 +22,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
|
||||
--- a/drivers/gpu/drm/drm_connector.c
|
||||
+++ b/drivers/gpu/drm/drm_connector.c
|
||||
@@ -2697,10 +2697,15 @@ int drm_connector_set_orientation_from_p
|
||||
@@ -2698,10 +2698,15 @@ int drm_connector_set_orientation_from_p
|
||||
{
|
||||
enum drm_panel_orientation orientation;
|
||||
|
||||
|
@ -148,7 +148,7 @@ Signed-off-by: Maíra Canal <mcanal@igalia.com>
|
||||
|
||||
--- a/kernel/cgroup/cgroup.c
|
||||
+++ b/kernel/cgroup/cgroup.c
|
||||
@@ -6063,9 +6063,6 @@ int __init cgroup_init_early(void)
|
||||
@@ -6059,9 +6059,6 @@ int __init cgroup_init_early(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -158,7 +158,7 @@ Signed-off-by: Maíra Canal <mcanal@igalia.com>
|
||||
/**
|
||||
* cgroup_init - cgroup initialization
|
||||
*
|
||||
@@ -6099,12 +6096,6 @@ int __init cgroup_init(void)
|
||||
@@ -6095,12 +6092,6 @@ int __init cgroup_init(void)
|
||||
|
||||
cgroup_unlock();
|
||||
|
||||
@ -171,7 +171,7 @@ Signed-off-by: Maíra Canal <mcanal@igalia.com>
|
||||
for_each_subsys(ss, ssid) {
|
||||
if (ss->early_init) {
|
||||
struct cgroup_subsys_state *css =
|
||||
@@ -6745,10 +6736,6 @@ static int __init cgroup_disable(char *s
|
||||
@@ -6749,10 +6740,6 @@ static int __init cgroup_disable(char *s
|
||||
strcmp(token, ss->legacy_name))
|
||||
continue;
|
||||
|
||||
@ -182,7 +182,7 @@ Signed-off-by: Maíra Canal <mcanal@igalia.com>
|
||||
static_branch_disable(cgroup_subsys_enabled_key[i]);
|
||||
pr_info("Disabling %s control group subsystem\n",
|
||||
ss->name);
|
||||
@@ -6782,7 +6769,7 @@ static int __init cgroup_enable(char *st
|
||||
@@ -6786,7 +6773,7 @@ static int __init cgroup_enable(char *st
|
||||
strcmp(token, ss->legacy_name))
|
||||
continue;
|
||||
|
||||
|
@ -35,7 +35,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
if (dwc->parkmode_disable_ss_quirk)
|
||||
reg |= DWC3_GUCTL1_PARKMODE_DISABLE_SS;
|
||||
|
||||
@@ -1669,6 +1675,10 @@ static void dwc3_get_properties(struct d
|
||||
@@ -1660,6 +1666,10 @@ static void dwc3_get_properties(struct d
|
||||
"snps,resume-hs-terminations");
|
||||
dwc->ulpi_ext_vbus_drv = device_property_read_bool(dev,
|
||||
"snps,ulpi-ext-vbus-drv");
|
||||
|
@ -28,7 +28,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
|
||||
--- a/drivers/usb/host/xhci-ring.c
|
||||
+++ b/drivers/usb/host/xhci-ring.c
|
||||
@@ -506,6 +506,19 @@ void xhci_ring_ep_doorbell(struct xhci_h
|
||||
@@ -507,6 +507,19 @@ void xhci_ring_ep_doorbell(struct xhci_h
|
||||
|
||||
trace_xhci_ring_ep_doorbell(slot_id, DB_VALUE(ep_index, stream_id));
|
||||
|
||||
|
@ -18,7 +18,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
|
||||
--- a/drivers/gpu/drm/drm_connector.c
|
||||
+++ b/drivers/gpu/drm/drm_connector.c
|
||||
@@ -361,7 +361,8 @@ static int __drm_connector_init(struct d
|
||||
@@ -362,7 +362,8 @@ static int __drm_connector_init(struct d
|
||||
|
||||
drm_object_attach_property(&connector->base,
|
||||
config->non_desktop_property,
|
||||
|
@ -20,7 +20,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
|
||||
--- a/drivers/gpu/drm/drm_connector.c
|
||||
+++ b/drivers/gpu/drm/drm_connector.c
|
||||
@@ -362,7 +362,7 @@ static int __drm_connector_init(struct d
|
||||
@@ -363,7 +363,7 @@ static int __drm_connector_init(struct d
|
||||
drm_object_attach_property(&connector->base,
|
||||
config->non_desktop_property,
|
||||
(connector_type != DRM_MODE_CONNECTOR_VIRTUAL &&
|
||||
|
@ -14,7 +14,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
|
||||
--- a/kernel/cgroup/cgroup.c
|
||||
+++ b/kernel/cgroup/cgroup.c
|
||||
@@ -6769,11 +6769,19 @@ static int __init cgroup_enable(char *st
|
||||
@@ -6773,11 +6773,19 @@ static int __init cgroup_enable(char *st
|
||||
strcmp(token, ss->legacy_name))
|
||||
continue;
|
||||
|
||||
|
@ -1,31 +0,0 @@
|
||||
From e23afbf2c7aae9264322eee8e5c72ca1887606df Mon Sep 17 00:00:00 2001
|
||||
From: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
Date: Mon, 9 Dec 2024 10:43:18 +0000
|
||||
Subject: [PATCH] media: i2c: ov9282: Correct the exposure offset
|
||||
|
||||
The datasheet lists that "Maximum exposure time is frame
|
||||
length -25 row periods, where frame length is set by
|
||||
registers {0x380E, 0x380F}".
|
||||
However this driver had OV9282_EXPOSURE_OFFSET set to 12
|
||||
which allowed that restriction to be violated, and would
|
||||
result in very under-exposed images.
|
||||
|
||||
Correct the offset.
|
||||
|
||||
Fixes: 14ea315bbeb7 ("media: i2c: Add ov9282 camera sensor driver")
|
||||
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
---
|
||||
drivers/media/i2c/ov9282.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
--- a/drivers/media/i2c/ov9282.c
|
||||
+++ b/drivers/media/i2c/ov9282.c
|
||||
@@ -40,7 +40,7 @@
|
||||
/* Exposure control */
|
||||
#define OV9282_REG_EXPOSURE 0x3500
|
||||
#define OV9282_EXPOSURE_MIN 1
|
||||
-#define OV9282_EXPOSURE_OFFSET 12
|
||||
+#define OV9282_EXPOSURE_OFFSET 25
|
||||
#define OV9282_EXPOSURE_STEP 1
|
||||
#define OV9282_EXPOSURE_DEFAULT 0x0282
|
||||
|
@ -31,7 +31,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
|
||||
--- a/drivers/tty/serial/sc16is7xx.c
|
||||
+++ b/drivers/tty/serial/sc16is7xx.c
|
||||
@@ -1457,7 +1457,7 @@ static int sc16is7xx_setup_mctrl_ports(s
|
||||
@@ -1480,7 +1480,7 @@ static int sc16is7xx_setup_mctrl_ports(s
|
||||
}
|
||||
|
||||
static const struct serial_rs485 sc16is7xx_rs485_supported = {
|
||||
|
@ -1,33 +0,0 @@
|
||||
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
|
||||
Date: Fri, 10 Jun 2022 13:10:47 +0200
|
||||
Subject: [PATCH] bgmac: reduce max frame size to support just MTU 1500
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
bgmac allocates new replacement buffer before handling each received
|
||||
frame. Allocating & DMA-preparing 9724 B each time consumes a lot of CPU
|
||||
time. Ideally bgmac should just respect currently set MTU but it isn't
|
||||
the case right now. For now just revert back to the old limited frame
|
||||
size.
|
||||
|
||||
This change bumps NAT masquarade speed by ~95%.
|
||||
|
||||
Ref: 8c7da63978f1 ("bgmac: configure MTU and add support for frames beyond 8192 byte size")
|
||||
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
|
||||
---
|
||||
drivers/net/ethernet/broadcom/bgmac.h | 3 +--
|
||||
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||
|
||||
--- a/drivers/net/ethernet/broadcom/bgmac.h
|
||||
+++ b/drivers/net/ethernet/broadcom/bgmac.h
|
||||
@@ -328,8 +328,7 @@
|
||||
#define BGMAC_RX_FRAME_OFFSET 30 /* There are 2 unused bytes between header and real data */
|
||||
#define BGMAC_RX_BUF_OFFSET (NET_SKB_PAD + NET_IP_ALIGN - \
|
||||
BGMAC_RX_FRAME_OFFSET)
|
||||
-/* Jumbo frame size with FCS */
|
||||
-#define BGMAC_RX_MAX_FRAME_SIZE 9724
|
||||
+#define BGMAC_RX_MAX_FRAME_SIZE 1536
|
||||
#define BGMAC_RX_BUF_SIZE (BGMAC_RX_FRAME_OFFSET + BGMAC_RX_MAX_FRAME_SIZE)
|
||||
#define BGMAC_RX_ALLOC_SIZE (SKB_DATA_ALIGN(BGMAC_RX_BUF_SIZE + BGMAC_RX_BUF_OFFSET) + \
|
||||
SKB_DATA_ALIGN(sizeof(struct skb_shared_info)))
|
@ -5,7 +5,7 @@ when a switch driver is in use.
|
||||
|
||||
--- a/drivers/net/ethernet/broadcom/tg3.c
|
||||
+++ b/drivers/net/ethernet/broadcom/tg3.c
|
||||
@@ -4269,7 +4269,8 @@ static int tg3_power_down_prepare(struct
|
||||
@@ -4270,7 +4270,8 @@ static int tg3_power_down_prepare(struct
|
||||
static void tg3_power_down(struct tg3 *tp)
|
||||
{
|
||||
pci_wake_from_d3(tp->pdev, tg3_flag(tp, WOL_ENABLE));
|
||||
|
@ -1,33 +0,0 @@
|
||||
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
|
||||
Date: Fri, 10 Jun 2022 13:10:47 +0200
|
||||
Subject: [PATCH] bgmac: reduce max frame size to support just MTU 1500
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
bgmac allocates new replacement buffer before handling each received
|
||||
frame. Allocating & DMA-preparing 9724 B each time consumes a lot of CPU
|
||||
time. Ideally bgmac should just respect currently set MTU but it isn't
|
||||
the case right now. For now just revert back to the old limited frame
|
||||
size.
|
||||
|
||||
This change bumps NAT masquarade speed by ~95%.
|
||||
|
||||
Ref: 8c7da63978f1 ("bgmac: configure MTU and add support for frames beyond 8192 byte size")
|
||||
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
|
||||
---
|
||||
drivers/net/ethernet/broadcom/bgmac.h | 3 +--
|
||||
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||
|
||||
--- a/drivers/net/ethernet/broadcom/bgmac.h
|
||||
+++ b/drivers/net/ethernet/broadcom/bgmac.h
|
||||
@@ -328,8 +328,7 @@
|
||||
#define BGMAC_RX_FRAME_OFFSET 30 /* There are 2 unused bytes between header and real data */
|
||||
#define BGMAC_RX_BUF_OFFSET (NET_SKB_PAD + NET_IP_ALIGN - \
|
||||
BGMAC_RX_FRAME_OFFSET)
|
||||
-/* Jumbo frame size with FCS */
|
||||
-#define BGMAC_RX_MAX_FRAME_SIZE 9724
|
||||
+#define BGMAC_RX_MAX_FRAME_SIZE 1536
|
||||
#define BGMAC_RX_BUF_SIZE (BGMAC_RX_FRAME_OFFSET + BGMAC_RX_MAX_FRAME_SIZE)
|
||||
#define BGMAC_RX_ALLOC_SIZE (SKB_DATA_ALIGN(BGMAC_RX_BUF_SIZE + BGMAC_RX_BUF_OFFSET) + \
|
||||
SKB_DATA_ALIGN(sizeof(struct skb_shared_info)))
|
@ -23,7 +23,7 @@ Link: https://lore.kernel.org/linux-mtd/20240223034758.13753-14-william.zhang@br
|
||||
|
||||
--- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c
|
||||
+++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c
|
||||
@@ -3189,6 +3189,10 @@ int brcmnand_probe(struct platform_devic
|
||||
@@ -3194,6 +3194,10 @@ int brcmnand_probe(struct platform_devic
|
||||
/* Disable XOR addressing */
|
||||
brcmnand_rmw_reg(ctrl, BRCMNAND_CS_XOR, 0xff, 0, 0);
|
||||
|
||||
|
@ -250,7 +250,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -11299,7 +11340,7 @@ static int dev_cpu_dead(unsigned int old
|
||||
@@ -11303,7 +11344,7 @@ static int dev_cpu_dead(unsigned int old
|
||||
|
||||
list_del_init(&napi->poll_list);
|
||||
if (napi->poll == process_backlog)
|
||||
@ -259,7 +259,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
||||
else
|
||||
____napi_schedule(sd, napi);
|
||||
}
|
||||
@@ -11307,12 +11348,14 @@ static int dev_cpu_dead(unsigned int old
|
||||
@@ -11311,12 +11352,14 @@ static int dev_cpu_dead(unsigned int old
|
||||
raise_softirq_irqoff(NET_TX_SOFTIRQ);
|
||||
local_irq_enable();
|
||||
|
||||
@ -278,7 +278,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
||||
|
||||
/* Process offline CPU's input_pkt_queue */
|
||||
while ((skb = __skb_dequeue(&oldsd->process_queue))) {
|
||||
@@ -11575,6 +11618,38 @@ static struct pernet_operations __net_in
|
||||
@@ -11579,6 +11622,38 @@ static struct pernet_operations __net_in
|
||||
*
|
||||
*/
|
||||
|
||||
@ -317,7 +317,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
||||
/*
|
||||
* This is called single threaded during boot, so no need
|
||||
* to take the rtnl semaphore.
|
||||
@@ -11625,7 +11700,10 @@ static int __init net_dev_init(void)
|
||||
@@ -11629,7 +11704,10 @@ static int __init net_dev_init(void)
|
||||
init_gro_hash(&sd->backlog);
|
||||
sd->backlog.poll = process_backlog;
|
||||
sd->backlog.weight = weight_p;
|
||||
|
@ -36,7 +36,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
||||
|
||||
--- a/include/linux/netdevice.h
|
||||
+++ b/include/linux/netdevice.h
|
||||
@@ -3300,6 +3300,7 @@ static inline void dev_xmit_recursion_de
|
||||
@@ -3306,6 +3306,7 @@ static inline void dev_xmit_recursion_de
|
||||
__this_cpu_dec(softnet_data.xmit.recursion);
|
||||
}
|
||||
|
||||
|
@ -20,7 +20,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
--- a/net/core/dev.c
|
||||
+++ b/net/core/dev.c
|
||||
@@ -9761,6 +9761,15 @@ static void netdev_sync_lower_features(s
|
||||
@@ -9765,6 +9765,15 @@ static void netdev_sync_lower_features(s
|
||||
}
|
||||
}
|
||||
|
||||
@ -36,7 +36,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
static netdev_features_t netdev_fix_features(struct net_device *dev,
|
||||
netdev_features_t features)
|
||||
{
|
||||
@@ -9842,15 +9851,9 @@ static netdev_features_t netdev_fix_feat
|
||||
@@ -9846,15 +9855,9 @@ static netdev_features_t netdev_fix_feat
|
||||
features &= ~NETIF_F_LRO;
|
||||
}
|
||||
|
||||
@ -55,7 +55,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
}
|
||||
|
||||
if ((features & NETIF_F_HW_TLS_RX) && !(features & NETIF_F_RXCSUM)) {
|
||||
@@ -9858,6 +9861,11 @@ static netdev_features_t netdev_fix_feat
|
||||
@@ -9862,6 +9865,11 @@ static netdev_features_t netdev_fix_feat
|
||||
features &= ~NETIF_F_HW_TLS_RX;
|
||||
}
|
||||
|
||||
|
@ -18,7 +18,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
||||
|
||||
--- a/net/core/dev.c
|
||||
+++ b/net/core/dev.c
|
||||
@@ -10668,6 +10668,8 @@ struct rtnl_link_stats64 *dev_get_stats(
|
||||
@@ -10672,6 +10672,8 @@ struct rtnl_link_stats64 *dev_get_stats(
|
||||
ops->ndo_get_stats64(dev, storage);
|
||||
} else if (ops->ndo_get_stats) {
|
||||
netdev_stats_to_stats64(storage, ops->ndo_get_stats(dev));
|
||||
|
@ -37,7 +37,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
--- a/include/linux/netdevice.h
|
||||
+++ b/include/linux/netdevice.h
|
||||
@@ -4561,6 +4561,9 @@ static inline void netif_addr_unlock_bh(
|
||||
@@ -4567,6 +4567,9 @@ static inline void netif_addr_unlock_bh(
|
||||
|
||||
void ether_setup(struct net_device *dev);
|
||||
|
||||
@ -49,7 +49,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
unsigned char name_assign_type,
|
||||
--- a/net/core/dev.c
|
||||
+++ b/net/core/dev.c
|
||||
@@ -10355,25 +10355,12 @@ err_free_name:
|
||||
@@ -10359,25 +10359,12 @@ err_free_name:
|
||||
}
|
||||
EXPORT_SYMBOL(register_netdevice);
|
||||
|
||||
@ -79,7 +79,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
/* make sure we BUG if trying to hit standard
|
||||
* register/unregister code path
|
||||
*/
|
||||
@@ -10393,12 +10380,32 @@ int init_dummy_netdev(struct net_device
|
||||
@@ -10397,12 +10384,32 @@ int init_dummy_netdev(struct net_device
|
||||
* because users of this 'device' dont need to change
|
||||
* its refcount.
|
||||
*/
|
||||
@ -113,7 +113,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
/**
|
||||
* register_netdev - register a network device
|
||||
* @dev: device to register
|
||||
@@ -10992,6 +10999,19 @@ void free_netdev(struct net_device *dev)
|
||||
@@ -10996,6 +11003,19 @@ void free_netdev(struct net_device *dev)
|
||||
EXPORT_SYMBOL(free_netdev);
|
||||
|
||||
/**
|
||||
|
@ -330,7 +330,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(nvmem_cell_put);
|
||||
|
||||
@@ -2116,11 +2057,22 @@ EXPORT_SYMBOL_GPL(nvmem_dev_size);
|
||||
@@ -2118,11 +2059,22 @@ EXPORT_SYMBOL_GPL(nvmem_dev_size);
|
||||
|
||||
static int __init nvmem_init(void)
|
||||
{
|
||||
|
@ -28,7 +28,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
FUSE_INVALID = -1
|
||||
};
|
||||
|
||||
@@ -93,7 +94,10 @@ static int imx_ocotp_reg_read(void *cont
|
||||
@@ -95,7 +96,10 @@ static int imx_ocotp_reg_read(void *cont
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -39,8 +39,8 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
+ *buf++ = readl_relaxed(reg + (i << 2));
|
||||
}
|
||||
|
||||
memcpy(val, (u8 *)p, bytes);
|
||||
@@ -155,8 +159,30 @@ static const struct ocotp_devtype_data i
|
||||
memcpy(val, ((u8 *)p) + skipbytes, bytes);
|
||||
@@ -157,8 +161,30 @@ static const struct ocotp_devtype_data i
|
||||
},
|
||||
};
|
||||
|
||||
|
@ -23,7 +23,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
--- a/net/core/dev.c
|
||||
+++ b/net/core/dev.c
|
||||
@@ -10985,7 +10985,8 @@ void free_netdev(struct net_device *dev)
|
||||
@@ -10989,7 +10989,8 @@ void free_netdev(struct net_device *dev)
|
||||
dev->xdp_bulkq = NULL;
|
||||
|
||||
/* Compatibility with error handling in drivers */
|
||||
|
@ -78,7 +78,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
|
||||
netif_napi_del(&bgmac->napi);
|
||||
--- a/drivers/net/ethernet/broadcom/bgmac.h
|
||||
+++ b/drivers/net/ethernet/broadcom/bgmac.h
|
||||
@@ -388,6 +388,7 @@
|
||||
@@ -387,6 +387,7 @@
|
||||
#define BGMAC_FEAT_CC4_IF_SW_TYPE_RGMII BIT(18)
|
||||
#define BGMAC_FEAT_CC7_IF_TYPE_RGMII BIT(19)
|
||||
#define BGMAC_FEAT_IDM_MASK BIT(20)
|
||||
@ -86,7 +86,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
|
||||
|
||||
struct bgmac_slot_info {
|
||||
union {
|
||||
@@ -495,6 +496,9 @@ struct bgmac {
|
||||
@@ -494,6 +495,9 @@ struct bgmac {
|
||||
void (*cmn_maskset32)(struct bgmac *bgmac, u16 offset, u32 mask,
|
||||
u32 set);
|
||||
int (*phy_connect)(struct bgmac *bgmac);
|
||||
|
@ -44,7 +44,7 @@ Subject: [PATCH] net/usb/qmi_wwan: add MeigLink modem support
|
||||
|
||||
#define QUECTEL_VENDOR_ID 0x2c7c
|
||||
/* These Quectel products use Quectel's vendor ID */
|
||||
@@ -1162,6 +1167,11 @@ static const struct usb_device_id option
|
||||
@@ -1153,6 +1158,11 @@ static const struct usb_device_id option
|
||||
{ USB_DEVICE(QUALCOMM_VENDOR_ID, 0x0023)}, /* ONYX 3G device */
|
||||
{ USB_DEVICE(QUALCOMM_VENDOR_ID, 0x9000), /* SIMCom SIM5218 */
|
||||
.driver_info = NCTRL(0) | NCTRL(1) | NCTRL(2) | NCTRL(3) | RSVD(4) },
|
||||
@ -56,7 +56,7 @@ Subject: [PATCH] net/usb/qmi_wwan: add MeigLink modem support
|
||||
/* Quectel products using Qualcomm vendor ID */
|
||||
{ USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC15)},
|
||||
{ USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC20),
|
||||
@@ -1203,6 +1213,11 @@ static const struct usb_device_id option
|
||||
@@ -1194,6 +1204,11 @@ static const struct usb_device_id option
|
||||
.driver_info = ZLP },
|
||||
{ USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_BG96),
|
||||
.driver_info = RSVD(4) },
|
||||
|
@ -73,7 +73,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
+MODULE_LICENSE("GPL");
|
||||
--- a/kernel/sched/core.c
|
||||
+++ b/kernel/sched/core.c
|
||||
@@ -4483,6 +4483,7 @@ int wake_up_state(struct task_struct *p,
|
||||
@@ -4485,6 +4485,7 @@ int wake_up_state(struct task_struct *p,
|
||||
{
|
||||
return try_to_wake_up(p, state, 0);
|
||||
}
|
||||
|
@ -157,7 +157,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
case RTN_THROW:
|
||||
case RTN_UNREACHABLE:
|
||||
default:
|
||||
@@ -4546,6 +4565,17 @@ static int ip6_pkt_prohibit_out(struct n
|
||||
@@ -4551,6 +4570,17 @@ static int ip6_pkt_prohibit_out(struct n
|
||||
return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_OUTNOROUTES);
|
||||
}
|
||||
|
||||
@ -175,7 +175,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
/*
|
||||
* Allocate a dst for local (unicast / anycast) address.
|
||||
*/
|
||||
@@ -5037,7 +5067,8 @@ static int rtm_to_fib6_config(struct sk_
|
||||
@@ -5042,7 +5072,8 @@ static int rtm_to_fib6_config(struct sk_
|
||||
if (rtm->rtm_type == RTN_UNREACHABLE ||
|
||||
rtm->rtm_type == RTN_BLACKHOLE ||
|
||||
rtm->rtm_type == RTN_PROHIBIT ||
|
||||
@ -185,7 +185,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
cfg->fc_flags |= RTF_REJECT;
|
||||
|
||||
if (rtm->rtm_type == RTN_LOCAL)
|
||||
@@ -6284,6 +6315,8 @@ static int ip6_route_dev_notify(struct n
|
||||
@@ -6304,6 +6335,8 @@ static int ip6_route_dev_notify(struct n
|
||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||
net->ipv6.ip6_prohibit_entry->dst.dev = dev;
|
||||
net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev);
|
||||
@ -194,7 +194,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
net->ipv6.ip6_blk_hole_entry->dst.dev = dev;
|
||||
net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
|
||||
#endif
|
||||
@@ -6295,6 +6328,7 @@ static int ip6_route_dev_notify(struct n
|
||||
@@ -6315,6 +6348,7 @@ static int ip6_route_dev_notify(struct n
|
||||
in6_dev_put_clear(&net->ipv6.ip6_null_entry->rt6i_idev);
|
||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||
in6_dev_put_clear(&net->ipv6.ip6_prohibit_entry->rt6i_idev);
|
||||
@ -202,7 +202,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
in6_dev_put_clear(&net->ipv6.ip6_blk_hole_entry->rt6i_idev);
|
||||
#endif
|
||||
}
|
||||
@@ -6495,6 +6529,8 @@ static int __net_init ip6_route_net_init
|
||||
@@ -6515,6 +6549,8 @@ static int __net_init ip6_route_net_init
|
||||
|
||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||
net->ipv6.fib6_has_custom_rules = false;
|
||||
@ -211,7 +211,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
net->ipv6.ip6_prohibit_entry = kmemdup(&ip6_prohibit_entry_template,
|
||||
sizeof(*net->ipv6.ip6_prohibit_entry),
|
||||
GFP_KERNEL);
|
||||
@@ -6505,11 +6541,21 @@ static int __net_init ip6_route_net_init
|
||||
@@ -6525,11 +6561,21 @@ static int __net_init ip6_route_net_init
|
||||
ip6_template_metrics, true);
|
||||
INIT_LIST_HEAD(&net->ipv6.ip6_prohibit_entry->dst.rt_uncached);
|
||||
|
||||
@ -234,7 +234,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops;
|
||||
dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst,
|
||||
ip6_template_metrics, true);
|
||||
@@ -6536,6 +6582,8 @@ out:
|
||||
@@ -6556,6 +6602,8 @@ out:
|
||||
return ret;
|
||||
|
||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||
@ -243,7 +243,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
out_ip6_prohibit_entry:
|
||||
kfree(net->ipv6.ip6_prohibit_entry);
|
||||
out_ip6_null_entry:
|
||||
@@ -6555,6 +6603,7 @@ static void __net_exit ip6_route_net_exi
|
||||
@@ -6575,6 +6623,7 @@ static void __net_exit ip6_route_net_exi
|
||||
kfree(net->ipv6.ip6_null_entry);
|
||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||
kfree(net->ipv6.ip6_prohibit_entry);
|
||||
@ -251,7 +251,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
kfree(net->ipv6.ip6_blk_hole_entry);
|
||||
#endif
|
||||
dst_entries_destroy(&net->ipv6.ip6_dst_ops);
|
||||
@@ -6638,6 +6687,9 @@ void __init ip6_route_init_special_entri
|
||||
@@ -6658,6 +6707,9 @@ void __init ip6_route_init_special_entri
|
||||
init_net.ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
|
||||
init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev;
|
||||
init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
|
||||
|
@ -59,7 +59,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
}
|
||||
--- a/net/netfilter/nft_flow_offload.c
|
||||
+++ b/net/netfilter/nft_flow_offload.c
|
||||
@@ -480,47 +480,14 @@ static struct nft_expr_type nft_flow_off
|
||||
@@ -486,47 +486,14 @@ static struct nft_expr_type nft_flow_off
|
||||
.owner = THIS_MODULE,
|
||||
};
|
||||
|
||||
|
@ -18,7 +18,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/net/netfilter/nf_tables_api.c
|
||||
+++ b/net/netfilter/nf_tables_api.c
|
||||
@@ -8425,7 +8425,7 @@ static int nft_register_flowtable_net_ho
|
||||
@@ -8470,7 +8470,7 @@ static int nft_register_flowtable_net_ho
|
||||
err = flowtable->data.type->setup(&flowtable->data,
|
||||
hook->ops.dev,
|
||||
FLOW_BLOCK_BIND);
|
||||
|
@ -14,9 +14,9 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/net/netfilter/nft_flow_offload.c
|
||||
+++ b/net/netfilter/nft_flow_offload.c
|
||||
@@ -361,6 +361,7 @@ static void nft_flow_offload_eval(const
|
||||
ct->proto.tcp.seen[1].flags |= IP_CT_TCP_FLAG_BE_LIBERAL;
|
||||
}
|
||||
@@ -367,6 +367,7 @@ static void nft_flow_offload_eval(const
|
||||
if (tcph)
|
||||
flow_offload_ct_tcp(ct);
|
||||
|
||||
+ __set_bit(NF_FLOW_HW_BIDIRECTIONAL, &flow->flags);
|
||||
ret = flow_offload_add(flowtable, flow);
|
||||
|
@ -19,7 +19,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
|
||||
+++ b/include/linux/netdevice.h
|
||||
@@ -2243,7 +2243,7 @@ struct net_device {
|
||||
#if IS_ENABLED(CONFIG_AX25)
|
||||
void *ax25_ptr;
|
||||
struct ax25_dev __rcu *ax25_ptr;
|
||||
#endif
|
||||
-#if IS_ENABLED(CONFIG_CFG80211)
|
||||
+#if IS_ENABLED(CONFIG_CFG80211_HEADERS)
|
||||
|
@ -17,7 +17,7 @@ Signed-off-by: Pavan Chebbi <pavan.chebbi@broadcom.com>
|
||||
|
||||
--- a/drivers/net/ethernet/broadcom/tg3.c
|
||||
+++ b/drivers/net/ethernet/broadcom/tg3.c
|
||||
@@ -17731,8 +17731,10 @@ static int tg3_init_one(struct pci_dev *
|
||||
@@ -17732,8 +17732,10 @@ static int tg3_init_one(struct pci_dev *
|
||||
} else
|
||||
persist_dma_mask = dma_mask = DMA_BIT_MASK(64);
|
||||
|
||||
|
@ -33,7 +33,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
|
||||
return 0;
|
||||
--- a/drivers/opp/core.c
|
||||
+++ b/drivers/opp/core.c
|
||||
@@ -902,7 +902,8 @@ static int _set_opp_voltage(struct devic
|
||||
@@ -925,7 +925,8 @@ static int _set_opp_voltage(struct devic
|
||||
|
||||
static int
|
||||
_opp_config_clk_single(struct device *dev, struct opp_table *opp_table,
|
||||
@ -43,7 +43,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
|
||||
{
|
||||
unsigned long *target = data;
|
||||
unsigned long freq;
|
||||
@@ -934,8 +935,8 @@ _opp_config_clk_single(struct device *de
|
||||
@@ -957,8 +958,8 @@ _opp_config_clk_single(struct device *de
|
||||
* the order in which they are present in the array while scaling up.
|
||||
*/
|
||||
int dev_pm_opp_config_clks_simple(struct device *dev,
|
||||
@ -54,7 +54,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
|
||||
{
|
||||
int ret, i;
|
||||
|
||||
@@ -1217,7 +1218,7 @@ static int _set_opp(struct device *dev,
|
||||
@@ -1240,7 +1241,7 @@ static int _set_opp(struct device *dev,
|
||||
}
|
||||
|
||||
if (opp_table->config_clks) {
|
||||
@ -63,7 +63,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
@@ -1292,7 +1293,7 @@ int dev_pm_opp_set_rate(struct device *d
|
||||
@@ -1315,7 +1316,7 @@ int dev_pm_opp_set_rate(struct device *d
|
||||
* equivalent to a clk_set_rate()
|
||||
*/
|
||||
if (!_get_opp_count(opp_table)) {
|
||||
|
@ -48,7 +48,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
static inline int io_type_enabled(struct pci_dev *pdev, unsigned int mask)
|
||||
{
|
||||
u16 cmd;
|
||||
@@ -1283,3 +1298,4 @@ static void quirk_usb_early_handoff(stru
|
||||
@@ -1292,3 +1307,4 @@ static void quirk_usb_early_handoff(stru
|
||||
}
|
||||
DECLARE_PCI_FIXUP_CLASS_FINAL(PCI_ANY_ID, PCI_ANY_ID,
|
||||
PCI_CLASS_SERIAL_USB, 8, quirk_usb_early_handoff);
|
||||
|
@ -73,7 +73,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
|
||||
/* clear exclusive status */
|
||||
if (unlikely(qc->flags & ATA_QCFLAG_CLEAR_EXCL &&
|
||||
@@ -5494,6 +5508,9 @@ struct ata_port *ata_port_alloc(struct a
|
||||
@@ -5502,6 +5516,9 @@ struct ata_port *ata_port_alloc(struct a
|
||||
ap->stats.unhandled_irq = 1;
|
||||
ap->stats.idle_irq = 1;
|
||||
#endif
|
||||
@ -83,7 +83,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
ata_sff_port_init(ap);
|
||||
|
||||
return ap;
|
||||
@@ -5507,6 +5524,12 @@ void ata_port_free(struct ata_port *ap)
|
||||
@@ -5515,6 +5532,12 @@ void ata_port_free(struct ata_port *ap)
|
||||
kfree(ap->pmp_link);
|
||||
kfree(ap->slave_link);
|
||||
kfree(ap->ncq_sense_buf);
|
||||
@ -96,7 +96,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
kfree(ap);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(ata_port_free);
|
||||
@@ -5929,7 +5952,23 @@ int ata_host_register(struct ata_host *h
|
||||
@@ -5937,7 +5960,23 @@ int ata_host_register(struct ata_host *h
|
||||
host->ports[i]->print_id = atomic_inc_return(&ata_print_id);
|
||||
host->ports[i]->local_port_no = i + 1;
|
||||
}
|
||||
|
@ -12,6 +12,7 @@ platform_check_image() {
|
||||
local board=$(board_name)
|
||||
|
||||
case "$board" in
|
||||
gateworks,imx8m*|\
|
||||
gw,imx8m*)
|
||||
return 0
|
||||
;;
|
||||
@ -25,6 +26,7 @@ platform_do_upgrade() {
|
||||
local board=$(board_name)
|
||||
|
||||
case "$board" in
|
||||
gateworks,imx8m*|\
|
||||
gw,imx8m*)
|
||||
export_bootdevice && export_partdevice diskdev 0 || {
|
||||
echo "Unable to find root device."
|
||||
@ -41,6 +43,7 @@ platform_copy_config() {
|
||||
local partdev
|
||||
|
||||
case "$board" in
|
||||
gateworks,imx8m*|\
|
||||
gw,imx8m*)
|
||||
export_partdevice partdev 1 && {
|
||||
v "Storing $UPGRADE_BACKUP on /dev/$partdev..."
|
||||
|
@ -46,6 +46,21 @@ define Device/gateworks_venice
|
||||
FILESYSTEMS := squashfs ext4
|
||||
DEVICE_VENDOR := Gateworks
|
||||
DEVICE_MODEL := i.MX8M Venice
|
||||
SUPPORTED_DEVICES := \
|
||||
gw,imx8mm-gw71xx-0x \
|
||||
gw,imx8mm-gw72xx-0x \
|
||||
gw,imx8mp-gw72xx-2x \
|
||||
gw,imx8mm-gw73xx-0x \
|
||||
gw,imx8mp-gw73xx-2x \
|
||||
gw,imx8mm-gw7901 \
|
||||
gw,imx8mm-gw7902 \
|
||||
gw,imx8mn-gw7902 \
|
||||
gw,imx8mm-gw7903 \
|
||||
gateworks,imx8mp-gw71xx-2x \
|
||||
gateworks,imx8mp-gw74xx \
|
||||
gateworks,imx8mm-gw7904 \
|
||||
gateworks,imx8mm-gw7905-0x \
|
||||
gateworks,imx8mp-gw7905-2x
|
||||
BOOT_SCRIPT := gateworks_venice
|
||||
PARTITION_OFFSET := 16M
|
||||
DEVICE_DTS := $(basename $(notdir $(wildcard $(DTS_DIR)/freescale/imx8m*-venice*.dts)))
|
||||
|
@ -30,9 +30,9 @@ Signed-off-by: Tim Harvey <tharvey@gateworks.com>
|
||||
#define IMX6_PCIE_FLAG_SUPPORTS_SUSPEND BIT(2)
|
||||
+#define IMX6_PCIE_FLAG_GEN1_LAST BIT(3)
|
||||
|
||||
struct imx6_pcie_drvdata {
|
||||
enum imx6_pcie_variants variant;
|
||||
@@ -876,26 +877,28 @@ static int imx6_pcie_start_link(struct d
|
||||
#define IMX6_PCIE_MAX_CLKS 6
|
||||
|
||||
@@ -836,26 +837,28 @@ static int imx6_pcie_start_link(struct d
|
||||
u32 tmp;
|
||||
int ret;
|
||||
|
||||
@ -76,7 +76,7 @@ Signed-off-by: Tim Harvey <tharvey@gateworks.com>
|
||||
/* Allow faster modes after the link is up */
|
||||
dw_pcie_dbi_ro_wr_en(pci);
|
||||
tmp = dw_pcie_readl_dbi(pci, offset + PCI_EXP_LNKCAP);
|
||||
@@ -929,18 +932,14 @@ static int imx6_pcie_start_link(struct d
|
||||
@@ -889,18 +892,14 @@ static int imx6_pcie_start_link(struct d
|
||||
goto err_reset_phy;
|
||||
}
|
||||
}
|
||||
@ -100,20 +100,22 @@ Signed-off-by: Tim Harvey <tharvey@gateworks.com>
|
||||
return 0;
|
||||
|
||||
err_reset_phy:
|
||||
@@ -1505,12 +1504,14 @@ static const struct imx6_pcie_drvdata dr
|
||||
@@ -1456,14 +1455,16 @@ static const struct imx6_pcie_drvdata dr
|
||||
},
|
||||
[IMX8MM] = {
|
||||
.variant = IMX8MM,
|
||||
- .flags = IMX6_PCIE_FLAG_SUPPORTS_SUSPEND,
|
||||
+ .flags = IMX6_PCIE_FLAG_SUPPORTS_SUSPEND |
|
||||
+ IMX6_PCIE_FLAG_GEN1_LAST,
|
||||
+ IMX6_PCIE_FLAG_GEN1_LAST,
|
||||
.gpr = "fsl,imx8mm-iomuxc-gpr",
|
||||
.clk_names = imx8mm_clks,
|
||||
.clks_cnt = ARRAY_SIZE(imx8mm_clks),
|
||||
},
|
||||
[IMX8MP] = {
|
||||
.variant = IMX8MP,
|
||||
- .flags = IMX6_PCIE_FLAG_SUPPORTS_SUSPEND,
|
||||
+ .flags = IMX6_PCIE_FLAG_SUPPORTS_SUSPEND |
|
||||
+ IMX6_PCIE_FLAG_GEN1_LAST,
|
||||
+ IMX6_PCIE_FLAG_GEN1_LAST,
|
||||
.gpr = "fsl,imx8mp-iomuxc-gpr",
|
||||
},
|
||||
[IMX8MQ_EP] = {
|
||||
.clk_names = imx8mm_clks,
|
||||
.clks_cnt = ARRAY_SIZE(imx8mm_clks),
|
||||
|
@ -13,7 +13,7 @@ Signed-off-by: Robert Marko <robert.marko@sartura.hr>
|
||||
|
||||
--- a/drivers/mmc/host/sdhci-msm.c
|
||||
+++ b/drivers/mmc/host/sdhci-msm.c
|
||||
@@ -2320,7 +2320,7 @@ MODULE_DEVICE_TABLE(of, sdhci_msm_dt_mat
|
||||
@@ -2369,7 +2369,7 @@ MODULE_DEVICE_TABLE(of, sdhci_msm_dt_mat
|
||||
|
||||
static const struct sdhci_ops sdhci_msm_ops = {
|
||||
.reset = sdhci_and_cqhci_reset,
|
||||
|
@ -13,7 +13,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
|
||||
|
||||
--- a/drivers/mmc/host/sdhci-msm.c
|
||||
+++ b/drivers/mmc/host/sdhci-msm.c
|
||||
@@ -1755,49 +1755,49 @@ static unsigned int sdhci_msm_get_min_cl
|
||||
@@ -1804,49 +1804,49 @@ static unsigned int sdhci_msm_get_min_cl
|
||||
return SDHCI_MSM_MIN_CLOCK;
|
||||
}
|
||||
|
||||
|
@ -19,7 +19,7 @@
|
||||
},
|
||||
[PORT_NPCM] = {
|
||||
.name = "Nuvoton 16550",
|
||||
@@ -2774,6 +2774,11 @@ serial8250_do_set_termios(struct uart_po
|
||||
@@ -2783,6 +2783,11 @@ serial8250_do_set_termios(struct uart_po
|
||||
unsigned long flags;
|
||||
unsigned int baud, quot, frac = 0;
|
||||
|
||||
|
@ -1976,6 +1976,8 @@ define Device/mercusys_mr70x-v1
|
||||
$(Device/tplink-safeloader)
|
||||
DEVICE_VENDOR := MERCUSYS
|
||||
DEVICE_MODEL := MR70X
|
||||
DEVICE_ALT0_VENDOR := MERCUSYS
|
||||
DEVICE_ALT0_MODEL := MR1800X
|
||||
DEVICE_VARIANT := v1
|
||||
DEVICE_PACKAGES := kmod-mt7915-firmware -uboot-envtools
|
||||
TPLINK_BOARD_ID := MR70X
|
||||
|
@ -42,7 +42,7 @@ Signed-off-by: Stephen Boyd <sboyd@kernel.org>
|
||||
{ CLK_PERIPH("10300000.wmac", "xtal") }
|
||||
};
|
||||
|
||||
@@ -272,8 +274,13 @@ static struct mtmips_clk_fixed rt3352_fi
|
||||
@@ -271,8 +273,13 @@ static struct mtmips_clk_fixed rt3352_fi
|
||||
CLK_FIXED("periph", "xtal", 40000000)
|
||||
};
|
||||
|
||||
@ -57,7 +57,7 @@ Signed-off-by: Stephen Boyd <sboyd@kernel.org>
|
||||
CLK_FIXED("periph", "xtal", 40000000)
|
||||
};
|
||||
|
||||
@@ -328,6 +335,15 @@ static struct mtmips_clk_factor rt305x_f
|
||||
@@ -327,6 +334,15 @@ static struct mtmips_clk_factor rt305x_f
|
||||
CLK_FACTOR("bus", "cpu", 1, 3)
|
||||
};
|
||||
|
||||
@ -73,7 +73,7 @@ Signed-off-by: Stephen Boyd <sboyd@kernel.org>
|
||||
static int mtmips_register_factor_clocks(struct clk_hw_onecell_data *clk_data,
|
||||
struct mtmips_clk_priv *priv)
|
||||
{
|
||||
@@ -811,10 +827,10 @@ static const struct mtmips_clk_data rt53
|
||||
@@ -810,10 +826,10 @@ static const struct mtmips_clk_data rt53
|
||||
static const struct mtmips_clk_data mt7620_clk_data = {
|
||||
.clk_base = mt7620_clks_base,
|
||||
.num_clk_base = ARRAY_SIZE(mt7620_clks_base),
|
||||
@ -88,7 +88,7 @@ Signed-off-by: Stephen Boyd <sboyd@kernel.org>
|
||||
.clk_periph = mt7620_pherip_clks,
|
||||
.num_clk_periph = ARRAY_SIZE(mt7620_pherip_clks),
|
||||
};
|
||||
@@ -824,8 +840,8 @@ static const struct mtmips_clk_data mt76
|
||||
@@ -823,8 +839,8 @@ static const struct mtmips_clk_data mt76
|
||||
.num_clk_base = ARRAY_SIZE(mt76x8_clks_base),
|
||||
.clk_fixed = mt76x8_fixed_clocks,
|
||||
.num_clk_fixed = ARRAY_SIZE(mt76x8_fixed_clocks),
|
||||
|
@ -1,28 +0,0 @@
|
||||
From 830d8062d25581cf0beaa334486eea06834044da Mon Sep 17 00:00:00 2001
|
||||
From: Sergio Paracuellos <sergio.paracuellos@gmail.com>
|
||||
Date: Wed, 8 Jan 2025 10:36:36 +0100
|
||||
Subject: [PATCH] clk: ralink: mtmips: remove duplicated 'xtal' clock for
|
||||
Ralink SoC RT3883
|
||||
|
||||
Ralink SoC RT3883 has already 'xtal' defined as a base clock so there is no
|
||||
need to redefine it again in fixed clocks section. Hence, remove the duplicate
|
||||
one from there.
|
||||
|
||||
Fixes: d34db686a3d7 ("clk: ralink: mtmips: fix clocks probe order in oldest ralink SoCs")
|
||||
Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
|
||||
Link: https://lore.kernel.org/r/20250108093636.265033-1-sergio.paracuellos@gmail.com
|
||||
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
|
||||
---
|
||||
drivers/clk/ralink/clk-mtmips.c | 1 -
|
||||
1 file changed, 1 deletion(-)
|
||||
|
||||
--- a/drivers/clk/ralink/clk-mtmips.c
|
||||
+++ b/drivers/clk/ralink/clk-mtmips.c
|
||||
@@ -266,7 +266,6 @@ err_clk_unreg:
|
||||
}
|
||||
|
||||
static struct mtmips_clk_fixed rt3883_fixed_clocks[] = {
|
||||
- CLK_FIXED("xtal", NULL, 40000000),
|
||||
CLK_FIXED("periph", "xtal", 40000000)
|
||||
};
|
||||
|
@ -26,8 +26,18 @@ Suggested-by: Felix Fietkau <nbd@nbd.name>
|
||||
Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
|
||||
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
|
||||
---
|
||||
arch/mips/include/asm/mips-cps.h | 23 ++++++++++++++++++++++-
|
||||
1 file changed, 22 insertions(+), 1 deletion(-)
|
||||
|
||||
The proposed detection method was based on reading the LAUNCH_FREADY core flag.
|
||||
However, this method only works before the cores are launched.
|
||||
For this reason, the core number detection method has been changed to a simpler one.
|
||||
For mt6721s the 17th revision bit is zero, hence we know that it is this chip,
|
||||
so the number of cores is 1.
|
||||
|
||||
Co-authored-by: Shiji Yang <yangshiji66@qq.com>
|
||||
Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
|
||||
---
|
||||
arch/mips/include/asm/mips-cps.h | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
--- a/arch/mips/include/asm/mips-cps.h
|
||||
+++ b/arch/mips/include/asm/mips-cps.h
|
||||
@ -35,41 +45,19 @@ Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
|
||||
#include <linux/io.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
+#include <asm/mips-boards/launch.h>
|
||||
+#include <asm/mach-ralink/mt7621.h>
|
||||
+
|
||||
extern unsigned long __cps_access_bad_size(void)
|
||||
__compiletime_error("Bad size for CPS accessor");
|
||||
|
||||
@@ -162,12 +164,31 @@ static inline uint64_t mips_cps_cluster_
|
||||
*/
|
||||
static inline unsigned int mips_cps_numcores(unsigned int cluster)
|
||||
{
|
||||
+ unsigned int ncores;
|
||||
+
|
||||
@@ -165,6 +167,10 @@ static inline unsigned int mips_cps_numc
|
||||
if (!mips_cm_present())
|
||||
return 0;
|
||||
|
||||
+ if (IS_ENABLED(CONFIG_SOC_MT7621) &&
|
||||
+ !FIELD_GET(0x20000, __raw_readl(MT7621_SYSC_BASE + SYSC_REG_CHIP_REV)))
|
||||
+ return 1;
|
||||
+
|
||||
/* Add one before masking to handle 0xff indicating no cores */
|
||||
- return FIELD_GET(CM_GCR_CONFIG_PCORES,
|
||||
+ ncores = FIELD_GET(CM_GCR_CONFIG_PCORES,
|
||||
return FIELD_GET(CM_GCR_CONFIG_PCORES,
|
||||
mips_cps_cluster_config(cluster) + 1);
|
||||
+
|
||||
+ if (IS_ENABLED(CONFIG_SOC_MT7621)) {
|
||||
+ struct cpulaunch *launch;
|
||||
+
|
||||
+ /*
|
||||
+ * Ralink MT7621S SoC is single core, but the GCR_CONFIG method
|
||||
+ * always reports 2 cores. Check the second core's LAUNCH_FREADY
|
||||
+ * flag to detect if the second core is missing. This method
|
||||
+ * only works before the core has been started.
|
||||
+ */
|
||||
+ launch = (struct cpulaunch *)CKSEG0ADDR(CPULAUNCH);
|
||||
+ launch += 2; /* MT7621 has 2 VPEs per core */
|
||||
+ if (!(launch->flags & LAUNCH_FREADY))
|
||||
+ ncores = 1;
|
||||
+ }
|
||||
+
|
||||
+ return ncores;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -13,7 +13,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||
|
||||
--- a/drivers/media/usb/uvc/uvc_driver.c
|
||||
+++ b/drivers/media/usb/uvc/uvc_driver.c
|
||||
@@ -3271,6 +3271,18 @@ static const struct usb_device_id uvc_id
|
||||
@@ -3287,6 +3287,18 @@ static const struct usb_device_id uvc_id
|
||||
.bInterfaceSubClass = 1,
|
||||
.bInterfaceProtocol = 0,
|
||||
.driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) },
|
||||
@ -42,7 +42,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -273,6 +274,7 @@ int uvc_status_init(struct uvc_device *d
|
||||
@@ -274,6 +275,7 @@ int uvc_status_init(struct uvc_device *d
|
||||
}
|
||||
|
||||
pipe = usb_rcvintpipe(dev->udev, ep->desc.bEndpointAddress);
|
||||
@ -62,9 +62,9 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||
+#include <linux/kobject.h>
|
||||
+#include <linux/workqueue.h>
|
||||
|
||||
#include <media/jpeg.h>
|
||||
#include <media/v4l2-common.h>
|
||||
|
||||
@@ -1275,9 +1280,149 @@ static void uvc_video_decode_data(struct
|
||||
@@ -1321,9 +1326,149 @@ static void uvc_video_decode_data(struct
|
||||
uvc_urb->async_operations++;
|
||||
}
|
||||
|
||||
@ -214,7 +214,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||
/* Mark the buffer as done if the EOF marker is set. */
|
||||
if (data[1] & UVC_STREAM_EOF && buf->bytesused != 0) {
|
||||
uvc_dbg(stream->dev, FRAME, "Frame complete (EOF found)\n");
|
||||
@@ -1859,6 +2004,8 @@ static int uvc_init_video_isoc(struct uv
|
||||
@@ -1905,6 +2050,8 @@ static int uvc_init_video_isoc(struct uv
|
||||
if (npackets == 0)
|
||||
return -ENOMEM;
|
||||
|
||||
@ -225,16 +225,16 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||
for_each_uvc_urb(uvc_urb, stream) {
|
||||
--- a/drivers/media/usb/uvc/uvcvideo.h
|
||||
+++ b/drivers/media/usb/uvc/uvcvideo.h
|
||||
@@ -76,6 +76,8 @@
|
||||
#define UVC_QUIRK_NO_RESET_RESUME 0x00004000
|
||||
@@ -77,6 +77,8 @@
|
||||
#define UVC_QUIRK_DISABLE_AUTOSUSPEND 0x00008000
|
||||
#define UVC_QUIRK_INVALID_DEVICE_SOF 0x00010000
|
||||
+#define UVC_QUIRK_MOTION 0x00020000
|
||||
+#define UVC_QUIRK_SINGLE_ISO 0x00040000
|
||||
#define UVC_QUIRK_MJPEG_NO_EOF 0x00020000
|
||||
+#define UVC_QUIRK_MOTION 0x00040000
|
||||
+#define UVC_QUIRK_SINGLE_ISO 0x00080000
|
||||
|
||||
/* Format flags */
|
||||
#define UVC_FMT_FLAG_COMPRESSED 0x00000001
|
||||
@@ -585,6 +587,7 @@ struct uvc_device {
|
||||
@@ -587,6 +589,7 @@ struct uvc_device {
|
||||
|
||||
struct input_dev *input;
|
||||
char input_phys[64];
|
||||
|
@ -22,7 +22,7 @@ Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
|
||||
#define PAD_DS_TUNE 0x188
|
||||
#define PAD_CMD_TUNE 0x18c
|
||||
#define EMMC51_CFG0 0x204
|
||||
@@ -400,6 +404,7 @@ struct mtk_mmc_compatible {
|
||||
@@ -402,6 +406,7 @@ struct mtk_mmc_compatible {
|
||||
bool enhance_rx;
|
||||
bool support_64g;
|
||||
bool use_internal_cd;
|
||||
@ -30,7 +30,7 @@ Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
|
||||
};
|
||||
|
||||
struct msdc_tune_para {
|
||||
@@ -537,6 +542,7 @@ static const struct mtk_mmc_compatible m
|
||||
@@ -539,6 +544,7 @@ static const struct mtk_mmc_compatible m
|
||||
.stop_clk_fix = false,
|
||||
.enhance_rx = false,
|
||||
.use_internal_cd = true,
|
||||
@ -38,7 +38,7 @@ Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
|
||||
};
|
||||
|
||||
static const struct mtk_mmc_compatible mt7622_compat = {
|
||||
@@ -1729,9 +1735,11 @@ static void msdc_init_hw(struct msdc_hos
|
||||
@@ -1731,9 +1737,11 @@ static void msdc_init_hw(struct msdc_hos
|
||||
}
|
||||
writel(0, host->base + MSDC_IOCON);
|
||||
sdr_set_field(host->base + MSDC_IOCON, MSDC_IOCON_DDLSEL, 0);
|
||||
@ -53,7 +53,7 @@ Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
|
||||
sdr_set_bits(host->base + EMMC50_CFG0, EMMC50_CFG_CFCSTS_SEL);
|
||||
|
||||
if (host->dev_comp->stop_clk_fix) {
|
||||
@@ -1795,6 +1803,18 @@ static void msdc_init_hw(struct msdc_hos
|
||||
@@ -1797,6 +1805,18 @@ static void msdc_init_hw(struct msdc_hos
|
||||
MSDC_PAD_TUNE_RXDLYSEL);
|
||||
}
|
||||
|
||||
|
@ -48,7 +48,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
clk_disable_unprepare(dwc->susp_clk);
|
||||
clk_disable_unprepare(dwc->ref_clk);
|
||||
clk_disable_unprepare(dwc->bus_clk);
|
||||
@@ -1884,6 +1898,20 @@ static int dwc3_get_clocks(struct dwc3 *
|
||||
@@ -1875,6 +1889,20 @@ static int dwc3_get_clocks(struct dwc3 *
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -67,7 +67,7 @@ Signed-off-by: Minda Chen <minda.chen@starfivetech.com>
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -2813,7 +2826,6 @@ serial8250_do_set_termios(struct uart_po
|
||||
@@ -2822,7 +2835,6 @@ serial8250_do_set_termios(struct uart_po
|
||||
if (termios->c_cflag & CRTSCTS)
|
||||
up->mcr |= UART_MCR_AFE;
|
||||
}
|
||||
|
@ -160,7 +160,7 @@ Signed-off-by: minda.chen <minda.chen@starfivetech.com>
|
||||
}
|
||||
--- a/drivers/usb/host/xhci-ring.c
|
||||
+++ b/drivers/usb/host/xhci-ring.c
|
||||
@@ -3707,7 +3707,8 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
|
||||
@@ -3708,7 +3708,8 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
|
||||
|
||||
full_len = urb->transfer_buffer_length;
|
||||
/* If we have scatter/gather list, we use it. */
|
||||
|
@ -11,9 +11,9 @@ PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL=$(PROJECT_GIT)/project/firmware-utils.git
|
||||
PKG_SOURCE_DATE:=2024-10-20
|
||||
PKG_SOURCE_VERSION:=4b7638925d3eac03e614e40bc30cb49f5877c46d
|
||||
PKG_MIRROR_HASH:=ea0e30f2b20211e4153704019ebb3f8789269893a4af6d853a85fae7c091802c
|
||||
PKG_SOURCE_DATE:=2025-02-16
|
||||
PKG_SOURCE_VERSION:=5d1446bf57d6490573dc71f10c05e83b36d44374
|
||||
PKG_MIRROR_HASH:=e054ea416f5a596f681bba593f71dfbe8149361432d7c17f2374c60dfe227749
|
||||
|
||||
include $(INCLUDE_DIR)/host-build.mk
|
||||
include $(INCLUDE_DIR)/cmake.mk
|
||||
|
Loading…
x
Reference in New Issue
Block a user