-LINUX_VERSION-6.6 = .75
-LINUX_KERNEL_HASH-6.6.75 = f7dfb1fa9716ba139d0b4c8161535816d400dea21d5943f513448429b1790290
+LINUX_VERSION-6.6 = .76
+LINUX_KERNEL_HASH-6.6.76 = 81168b15f0c64034a2ab553ae37a5a38b79c3fe10f69faccc9f374ced4eb13a0
};
/* Uart divisor latch read */
-@@ -2880,6 +2888,12 @@ serial8250_do_set_termios(struct uart_po
+@@ -2881,6 +2889,12 @@ serial8250_do_set_termios(struct uart_po
serial8250_set_divisor(port, baud, quot, frac);
--- 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;
}
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)) {
}
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;
}
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;
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;
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;
* For devices with more than one control interface, we assume the
--- a/sound/usb/quirks.c
+++ b/sound/usb/quirks.c
-@@ -2251,6 +2251,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),
--- 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)) {
--- a/drivers/gpio/gpio-pca953x.c
+++ b/drivers/gpio/gpio-pca953x.c
-@@ -1347,6 +1347,7 @@ static const struct of_device_id pca953x
+@@ -1330,6 +1330,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), },
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:
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;
}
/* 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);
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);
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;
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 */
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
*/
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;
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");
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;
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));
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;
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);
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++;
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;
}
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;
}
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++;
}
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");
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");
--- 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));
+++ /dev/null
-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
-
--- 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 = {
+++ /dev/null
-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)))
+++ /dev/null
-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)))
--- 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);
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)
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();
/* 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
*
*/
/*
* 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;
--- 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
}
}
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;
}
}
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;
}
--- 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));
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);
/* 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.
*/
/**
* 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);
/**
--- 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 */
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)
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);
}
--- 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,
};
--- 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);
--- 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);
+++ 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)
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,
{
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,
{
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) {
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)) {
#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;
/* 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;
}
}
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),
},
[PORT_NPCM] = {
.name = "Nuvoton 16550",
-@@ -2774,6 +2774,11 @@ serial8250_do_set_termios(struct uart_po
+@@ -2775,6 +2775,11 @@ serial8250_do_set_termios(struct uart_po
unsigned long flags;
unsigned int baud, quot, frac = 0;
static struct platform_driver cam_cc_sm8450_driver = {
--- a/drivers/clk/qcom/common.c
+++ b/drivers/clk/qcom/common.c
-@@ -252,11 +252,10 @@ static struct clk_hw *qcom_cc_clk_hw_get
+@@ -250,11 +250,10 @@ static struct clk_hw *qcom_cc_clk_hw_get
return cc->rclks[idx] ? &cc->rclks[idx]->hw : NULL;
}
struct qcom_reset_controller *reset;
struct qcom_cc *cc;
struct gdsc_desc *scd;
-@@ -333,7 +332,7 @@ int qcom_cc_probe(struct platform_device
+@@ -331,7 +330,7 @@ int qcom_cc_probe(struct platform_device
if (IS_ERR(regmap))
return PTR_ERR(regmap);
}
EXPORT_SYMBOL_GPL(qcom_cc_probe);
-@@ -351,7 +350,7 @@ int qcom_cc_probe_by_index(struct platfo
+@@ -349,7 +348,7 @@ int qcom_cc_probe_by_index(struct platfo
if (IS_ERR(regmap))
return PTR_ERR(regmap);
#include <linux/reset-controller.h>
#include <linux/of.h>
-@@ -252,6 +253,38 @@ static struct clk_hw *qcom_cc_clk_hw_get
+@@ -250,6 +251,38 @@ static struct clk_hw *qcom_cc_clk_hw_get
return cc->rclks[idx] ? &cc->rclks[idx]->hw : NULL;
}
int qcom_cc_really_probe(struct device *dev,
const struct qcom_cc_desc *desc, struct regmap *regmap)
{
-@@ -320,7 +353,7 @@ int qcom_cc_really_probe(struct device *
+@@ -318,7 +351,7 @@ int qcom_cc_really_probe(struct device *
if (ret)
return ret;
{ 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)
};
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)
};
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),
.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),
+++ /dev/null
-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)
- };
-
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);
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 *
}
}
}
/*
-@@ -2813,7 +2826,6 @@ serial8250_do_set_termios(struct uart_po
+@@ -2814,7 +2827,6 @@ serial8250_do_set_termios(struct uart_po
if (termios->c_cflag & CRTSCTS)
up->mcr |= UART_MCR_AFE;
}
}
--- 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. */