Merge Official Source

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
This commit is contained in:
Tianling Shen 2025-02-26 23:53:46 +08:00
commit 32ddb642ea
No known key found for this signature in database
GPG Key ID: 6850B6345C862176
75 changed files with 210 additions and 351 deletions

View File

@ -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

View File

@ -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>

View File

@ -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

View File

@ -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);

View File

@ -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;
}

View File

@ -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;

View File

@ -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;

View File

@ -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);

View File

@ -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);

View File

@ -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),

View File

@ -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)) {

View File

@ -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

View File

@ -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" : ""));

View File

@ -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), },

View File

@ -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 @@

View File

@ -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:

View File

@ -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);

View File

@ -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",

View File

@ -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
*/

View File

@ -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));

View File

@ -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++)

View File

@ -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++;
}

View File

@ -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);

View File

@ -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);

View File

@ -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");

View File

@ -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.
*

View File

@ -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;

View File

@ -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;

View File

@ -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");

View File

@ -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));

View File

@ -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,

View File

@ -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 &&

View File

@ -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;

View File

@ -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

View File

@ -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 = {

View File

@ -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)))

View File

@ -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));

View File

@ -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)))

View File

@ -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);

View File

@ -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;

View File

@ -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);
}

View File

@ -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;
}

View File

@ -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));

View File

@ -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);
/**

View File

@ -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)
{

View File

@ -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
},
};

View File

@ -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 */

View File

@ -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);

View File

@ -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) },

View File

@ -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);
}

View File

@ -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);

View File

@ -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,
};

View File

@ -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);

View File

@ -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);

View File

@ -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)

View File

@ -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);

View File

@ -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)) {

View File

@ -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);

View File

@ -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;
}

View File

@ -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..."

View File

@ -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)))

View File

@ -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),

View File

@ -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,

View File

@ -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;
}

View File

@ -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;

View File

@ -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

View File

@ -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),

View File

@ -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)
};

View File

@ -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;
}
/**

View File

@ -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];

View File

@ -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);
}

View File

@ -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 *
}
}

View File

@ -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;
}

View File

@ -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. */

View File

@ -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