mirror of
https://github.com/openwrt/openwrt.git
synced 2025-01-31 16:35:44 +00:00
kernel: bump 6.6 to 6.6.36
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.36
Manually rebased:
generic/hack-6.6/765-mxl-gpy-control-LED-reg-from-DT.patch
bcm27xx/patches-6.6/950-0536-dmaengine-dw-axi-dmac-Fixes-for-RP1.patch
Removed upstreamed:
bmips/patches-6.6/010-v6.10-mips-bmips-BCM6358-make-sure-CBR-is-correctly-set.patch[1]
All other patches automatically rebased.
1. 7c9644a7b5
Build system: x86/64
Build-tested: x86/64/AMD Cezanne, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3
Run-tested: x86/64/AMD Cezanne, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3
Signed-off-by: John Audia <therealgraysky@proton.me>
This commit is contained in:
parent
93cb81cf2b
commit
3711557bdf
@ -1,2 +1,2 @@
|
||||
LINUX_VERSION-6.6 = .35
|
||||
LINUX_KERNEL_HASH-6.6.35 = fce3ee728712ed063aa8c14a8756c8ff8c7a46ba3827f61d2b04a73c7cf5dd9e
|
||||
LINUX_VERSION-6.6 = .36
|
||||
LINUX_KERNEL_HASH-6.6.36 = b9676828b737e8fb8eaa5198303d35d35e8df019550be153c8a42c99afe0cdd5
|
||||
|
@ -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
|
||||
|
||||
@@ -1404,6 +1407,9 @@
|
||||
@@ -1405,6 +1408,9 @@
|
||||
#define USB_VENDOR_ID_XIAOMI 0x2717
|
||||
#define USB_DEVICE_ID_MI_SILENT_MOUSE 0x5014
|
||||
|
||||
|
@ -93,16 +93,16 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
for (i = 0; i < chip->dw->hdata->nr_channels; i++) {
|
||||
axi_chan_irq_disable(&chip->dw->chan[i], DWAXIDMAC_IRQ_ALL);
|
||||
axi_chan_disable(&chip->dw->chan[i]);
|
||||
@@ -282,7 +305,7 @@ static struct axi_dma_lli *axi_desc_get(
|
||||
@@ -283,7 +306,7 @@ static struct axi_dma_lli *axi_desc_get(
|
||||
static void axi_desc_put(struct axi_dma_desc *desc)
|
||||
{
|
||||
struct axi_dma_chan *chan = desc->chan;
|
||||
- int count = atomic_read(&chan->descs_allocated);
|
||||
- int count = desc->nr_hw_descs;
|
||||
+ u32 count = desc->hw_desc_count;
|
||||
struct axi_dma_hw_desc *hw_desc;
|
||||
int descs_put;
|
||||
|
||||
@@ -304,6 +327,48 @@ static void vchan_desc_put(struct virt_d
|
||||
@@ -305,6 +328,48 @@ static void vchan_desc_put(struct virt_d
|
||||
axi_desc_put(vd_to_axi_desc(vdesc));
|
||||
}
|
||||
|
||||
@ -151,7 +151,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
static enum dma_status
|
||||
dma_chan_tx_status(struct dma_chan *dchan, dma_cookie_t cookie,
|
||||
struct dma_tx_state *txstate)
|
||||
@@ -313,10 +378,7 @@ dma_chan_tx_status(struct dma_chan *dcha
|
||||
@@ -314,10 +379,7 @@ dma_chan_tx_status(struct dma_chan *dcha
|
||||
enum dma_status status;
|
||||
u32 completed_length;
|
||||
unsigned long flags;
|
||||
@ -162,7 +162,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
|
||||
status = dma_cookie_status(dchan, cookie, txstate);
|
||||
if (status == DMA_COMPLETE || !txstate)
|
||||
@@ -325,16 +387,31 @@ dma_chan_tx_status(struct dma_chan *dcha
|
||||
@@ -326,16 +388,31 @@ dma_chan_tx_status(struct dma_chan *dcha
|
||||
spin_lock_irqsave(&chan->vc.lock, flags);
|
||||
|
||||
vdesc = vchan_find_desc(&chan->vc, cookie);
|
||||
@ -201,7 +201,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
|
||||
return status;
|
||||
}
|
||||
@@ -522,7 +599,7 @@ static void dw_axi_dma_set_hw_channel(st
|
||||
@@ -523,7 +600,7 @@ static void dw_axi_dma_set_hw_channel(st
|
||||
unsigned long reg_value, val;
|
||||
|
||||
if (!chip->apb_regs) {
|
||||
@ -210,7 +210,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -626,18 +703,25 @@ static int dw_axi_dma_set_hw_desc(struct
|
||||
@@ -627,18 +704,25 @@ static int dw_axi_dma_set_hw_desc(struct
|
||||
switch (chan->direction) {
|
||||
case DMA_MEM_TO_DEV:
|
||||
reg_width = __ffs(chan->config.dst_addr_width);
|
||||
@ -238,7 +238,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
DWAXIDMAC_CH_CTL_L_INC << CH_CTL_L_DST_INC_POS |
|
||||
DWAXIDMAC_CH_CTL_L_NOINC << CH_CTL_L_SRC_INC_POS;
|
||||
block_ts = len >> reg_width;
|
||||
@@ -673,9 +757,6 @@ static int dw_axi_dma_set_hw_desc(struct
|
||||
@@ -674,9 +758,6 @@ static int dw_axi_dma_set_hw_desc(struct
|
||||
}
|
||||
|
||||
hw_desc->lli->block_ts_lo = cpu_to_le32(block_ts - 1);
|
||||
@ -248,7 +248,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
hw_desc->lli->ctl_lo = cpu_to_le32(ctllo);
|
||||
|
||||
set_desc_src_master(hw_desc);
|
||||
@@ -770,6 +851,8 @@ dw_axi_dma_chan_prep_cyclic(struct dma_c
|
||||
@@ -771,6 +852,8 @@ dw_axi_dma_chan_prep_cyclic(struct dma_c
|
||||
src_addr += segment_len;
|
||||
}
|
||||
|
||||
@ -257,7 +257,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
llp = desc->hw_desc[0].llp;
|
||||
|
||||
/* Managed transfer list */
|
||||
@@ -849,6 +932,8 @@ dw_axi_dma_chan_prep_slave_sg(struct dma
|
||||
@@ -850,6 +933,8 @@ dw_axi_dma_chan_prep_slave_sg(struct dma
|
||||
} while (len >= segment_len);
|
||||
}
|
||||
|
||||
@ -266,7 +266,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
/* Set end-of-link to the last link descriptor of list */
|
||||
set_desc_last(&desc->hw_desc[num_sgs - 1]);
|
||||
|
||||
@@ -956,6 +1041,8 @@ dma_chan_prep_dma_memcpy(struct dma_chan
|
||||
@@ -957,6 +1042,8 @@ dma_chan_prep_dma_memcpy(struct dma_chan
|
||||
num++;
|
||||
}
|
||||
|
||||
@ -275,7 +275,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
/* Set end-of-link to the last link descriptor of list */
|
||||
set_desc_last(&desc->hw_desc[num - 1]);
|
||||
/* Managed transfer list */
|
||||
@@ -1004,7 +1091,7 @@ static void axi_chan_dump_lli(struct axi
|
||||
@@ -1005,7 +1092,7 @@ static void axi_chan_dump_lli(struct axi
|
||||
static void axi_chan_list_dump_lli(struct axi_dma_chan *chan,
|
||||
struct axi_dma_desc *desc_head)
|
||||
{
|
||||
@ -284,7 +284,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
int i;
|
||||
|
||||
for (i = 0; i < count; i++)
|
||||
@@ -1047,11 +1134,11 @@ out:
|
||||
@@ -1048,11 +1135,11 @@ out:
|
||||
|
||||
static void axi_chan_block_xfer_complete(struct axi_dma_chan *chan)
|
||||
{
|
||||
@ -297,7 +297,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
u64 llp;
|
||||
int i;
|
||||
|
||||
@@ -1073,6 +1160,7 @@ static void axi_chan_block_xfer_complete
|
||||
@@ -1074,6 +1161,7 @@ static void axi_chan_block_xfer_complete
|
||||
if (chan->cyclic) {
|
||||
desc = vd_to_axi_desc(vd);
|
||||
if (desc) {
|
||||
@ -305,7 +305,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
llp = lo_hi_readq(chan->chan_regs + CH_LLP);
|
||||
for (i = 0; i < count; i++) {
|
||||
hw_desc = &desc->hw_desc[i];
|
||||
@@ -1325,6 +1413,10 @@ static int parse_device_properties(struc
|
||||
@@ -1323,6 +1411,10 @@ static int parse_device_properties(struc
|
||||
|
||||
chip->dw->hdata->nr_masters = tmp;
|
||||
|
||||
|
@ -30,7 +30,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
|
||||
--- a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
|
||||
+++ b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
|
||||
@@ -465,8 +465,6 @@ static void axi_chan_block_xfer_start(st
|
||||
@@ -466,8 +466,6 @@ static void axi_chan_block_xfer_start(st
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -15,7 +15,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
|
||||
--- a/drivers/net/usb/ax88179_178a.c
|
||||
+++ b/drivers/net/usb/ax88179_178a.c
|
||||
@@ -1320,6 +1320,8 @@ static int ax88179_bind(struct usbnet *d
|
||||
@@ -1319,6 +1319,8 @@ static int ax88179_bind(struct usbnet *d
|
||||
|
||||
ax88179_reset(dev);
|
||||
|
||||
|
@ -22,7 +22,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
|
||||
|
||||
--- a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
|
||||
+++ b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
|
||||
@@ -916,6 +916,9 @@ dw_axi_dma_chan_prep_slave_sg(struct dma
|
||||
@@ -917,6 +917,9 @@ dw_axi_dma_chan_prep_slave_sg(struct dma
|
||||
mem = sg_dma_address(sg);
|
||||
len = sg_dma_len(sg);
|
||||
num_segments = DIV_ROUND_UP(sg_dma_len(sg), axi_block_len);
|
||||
|
@ -1,35 +0,0 @@
|
||||
From ce5cdd3b05216b704a704f466fb4c2dff3778caf Mon Sep 17 00:00:00 2001
|
||||
From: Christian Marangi <ansuelsmth@gmail.com>
|
||||
Date: Tue, 11 Jun 2024 13:35:33 +0200
|
||||
Subject: [PATCH] mips: bmips: BCM6358: make sure CBR is correctly set
|
||||
|
||||
It was discovered that some device have CBR address set to 0 causing
|
||||
kernel panic when arch_sync_dma_for_cpu_all is called.
|
||||
|
||||
This was notice in situation where the system is booted from TP1 and
|
||||
BMIPS_GET_CBR() returns 0 instead of a valid address and
|
||||
!!(read_c0_brcm_cmt_local() & (1 << 31)); not failing.
|
||||
|
||||
The current check whether RAC flush should be disabled or not are not
|
||||
enough hence lets check if CBR is a valid address or not.
|
||||
|
||||
Fixes: ab327f8acdf8 ("mips: bmips: BCM6358: disable RAC flush for TP1")
|
||||
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
|
||||
Acked-by: Florian Fainelli <florian.fainelli@broadcom.com>
|
||||
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
|
||||
---
|
||||
arch/mips/bmips/setup.c | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
--- a/arch/mips/bmips/setup.c
|
||||
+++ b/arch/mips/bmips/setup.c
|
||||
@@ -110,7 +110,8 @@ static void bcm6358_quirks(void)
|
||||
* RAC flush causes kernel panics on BCM6358 when booting from TP1
|
||||
* because the bootloader is not initializing it properly.
|
||||
*/
|
||||
- bmips_rac_flush_disable = !!(read_c0_brcm_cmt_local() & (1 << 31));
|
||||
+ bmips_rac_flush_disable = !!(read_c0_brcm_cmt_local() & (1 << 31)) ||
|
||||
+ !!BMIPS_GET_CBR();
|
||||
}
|
||||
|
||||
static void bcm6368_quirks(void)
|
@ -55,7 +55,7 @@ Signed-off-by: David Bauer <mail@david-bauer.net>
|
||||
#define PHY_PMA_MGBT_POLARITY 0x82
|
||||
#define PHY_MDI_MDI_X_MASK GENMASK(1, 0)
|
||||
#define PHY_MDI_MDI_X_NORMAL 0x3
|
||||
@@ -260,6 +267,35 @@ out:
|
||||
@@ -270,10 +277,39 @@ out:
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -90,15 +90,8 @@ Signed-off-by: David Bauer <mail@david-bauer.net>
|
||||
+
|
||||
static int gpy_config_init(struct phy_device *phydev)
|
||||
{
|
||||
int ret;
|
||||
@@ -271,7 +307,10 @@ static int gpy_config_init(struct phy_de
|
||||
|
||||
/* Clear all pending interrupts */
|
||||
ret = phy_read(phydev, PHY_ISTAT);
|
||||
- return ret < 0 ? ret : 0;
|
||||
+ if (ret < 0)
|
||||
+ return ret;
|
||||
+
|
||||
/* Nothing to configure. Configuration Requirement Placeholder */
|
||||
- return 0;
|
||||
+ return gpy_led_write(phydev);
|
||||
}
|
||||
|
||||
|
@ -36,7 +36,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
// Lantech 8330-262D-E can operate at 2500base-X, but incorrectly report
|
||||
// 2500MBd NRZ in their EEPROM
|
||||
SFP_QUIRK_M("Lantech", "8330-262D-E", sfp_quirk_2500basex),
|
||||
@@ -2586,7 +2589,8 @@ static void sfp_sm_main(struct sfp *sfp,
|
||||
@@ -2589,7 +2592,8 @@ static void sfp_sm_main(struct sfp *sfp,
|
||||
* or t_start_up, so assume there is a fault.
|
||||
*/
|
||||
sfp_sm_fault(sfp, SFP_S_INIT_TX_FAULT,
|
||||
@ -46,7 +46,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
} else if (event == SFP_E_TIMEOUT || event == SFP_E_TX_CLEAR) {
|
||||
init_done:
|
||||
/* Create mdiobus and start trying for PHY */
|
||||
@@ -2840,10 +2844,12 @@ static void sfp_check_state(struct sfp *
|
||||
@@ -2843,10 +2847,12 @@ static void sfp_check_state(struct sfp *
|
||||
mutex_lock(&sfp->st_mutex);
|
||||
state = sfp_get_state(sfp);
|
||||
changed = state ^ sfp->state;
|
||||
|
@ -133,7 +133,7 @@ Subject: [PATCH] ssb_sprom: add generic kernel support for Broadcom Fallback SP
|
||||
# host support
|
||||
--- a/drivers/ssb/main.c
|
||||
+++ b/drivers/ssb/main.c
|
||||
@@ -1287,6 +1287,14 @@ static int __init ssb_modinit(void)
|
||||
@@ -1289,6 +1289,14 @@ static int __init ssb_modinit(void)
|
||||
{
|
||||
int err;
|
||||
|
||||
|
@ -330,7 +330,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/net/core/sock.c
|
||||
+++ b/net/core/sock.c
|
||||
@@ -4145,6 +4145,8 @@ static __net_initdata struct pernet_oper
|
||||
@@ -4148,6 +4148,8 @@ static __net_initdata struct pernet_oper
|
||||
|
||||
static int __init proto_init(void)
|
||||
{
|
||||
|
@ -17,7 +17,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
#include <net/net_namespace.h>
|
||||
#ifdef CONFIG_SYSCTL
|
||||
#include <linux/sysctl.h>
|
||||
@@ -461,6 +462,58 @@ static int ct_cpu_seq_show(struct seq_fi
|
||||
@@ -458,6 +459,58 @@ static int ct_cpu_seq_show(struct seq_fi
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -76,7 +76,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
static const struct seq_operations ct_cpu_seq_ops = {
|
||||
.start = ct_cpu_seq_start,
|
||||
.next = ct_cpu_seq_next,
|
||||
@@ -474,8 +527,9 @@ static int nf_conntrack_standalone_init_
|
||||
@@ -471,8 +524,9 @@ static int nf_conntrack_standalone_init_
|
||||
kuid_t root_uid;
|
||||
kgid_t root_gid;
|
||||
|
||||
|
@ -95,7 +95,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
if (sock->type == SOCK_PACKET)
|
||||
po->prot_hook.func = packet_rcv_spkt;
|
||||
@@ -4034,6 +4037,16 @@ packet_setsockopt(struct socket *sock, i
|
||||
@@ -4036,6 +4039,16 @@ packet_setsockopt(struct socket *sock, i
|
||||
packet_sock_flag_set(po, PACKET_SOCK_QDISC_BYPASS, val);
|
||||
return 0;
|
||||
}
|
||||
@ -112,7 +112,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
default:
|
||||
return -ENOPROTOOPT;
|
||||
}
|
||||
@@ -4093,6 +4106,13 @@ static int packet_getsockopt(struct sock
|
||||
@@ -4095,6 +4108,13 @@ static int packet_getsockopt(struct sock
|
||||
case PACKET_VNET_HDR_SZ:
|
||||
val = READ_ONCE(po->vnet_hdr_sz);
|
||||
break;
|
||||
|
@ -138,7 +138,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
static const struct rt6_info ip6_blk_hole_entry_template = {
|
||||
.dst = {
|
||||
.__rcuref = RCUREF_INIT(1),
|
||||
@@ -1038,6 +1052,7 @@ static const int fib6_prop[RTN_MAX + 1]
|
||||
@@ -1040,6 +1054,7 @@ static const int fib6_prop[RTN_MAX + 1]
|
||||
[RTN_BLACKHOLE] = -EINVAL,
|
||||
[RTN_UNREACHABLE] = -EHOSTUNREACH,
|
||||
[RTN_PROHIBIT] = -EACCES,
|
||||
@ -146,7 +146,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
[RTN_THROW] = -EAGAIN,
|
||||
[RTN_NAT] = -EINVAL,
|
||||
[RTN_XRESOLVE] = -EINVAL,
|
||||
@@ -1073,6 +1088,10 @@ static void ip6_rt_init_dst_reject(struc
|
||||
@@ -1075,6 +1090,10 @@ static void ip6_rt_init_dst_reject(struc
|
||||
rt->dst.output = ip6_pkt_prohibit_out;
|
||||
rt->dst.input = ip6_pkt_prohibit;
|
||||
break;
|
||||
@ -157,7 +157,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
case RTN_THROW:
|
||||
case RTN_UNREACHABLE:
|
||||
default:
|
||||
@@ -4544,6 +4563,17 @@ static int ip6_pkt_prohibit_out(struct n
|
||||
@@ -4546,6 +4565,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.
|
||||
*/
|
||||
@@ -5035,7 +5065,8 @@ static int rtm_to_fib6_config(struct sk_
|
||||
@@ -5037,7 +5067,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)
|
||||
@@ -6282,6 +6313,8 @@ static int ip6_route_dev_notify(struct n
|
||||
@@ -6284,6 +6315,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
|
||||
@@ -6293,6 +6326,7 @@ static int ip6_route_dev_notify(struct n
|
||||
@@ -6295,6 +6328,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
|
||||
}
|
||||
@@ -6493,6 +6527,8 @@ static int __net_init ip6_route_net_init
|
||||
@@ -6495,6 +6529,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);
|
||||
@@ -6503,11 +6539,21 @@ static int __net_init ip6_route_net_init
|
||||
@@ -6505,11 +6541,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);
|
||||
@@ -6534,6 +6580,8 @@ out:
|
||||
@@ -6536,6 +6582,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:
|
||||
@@ -6553,6 +6601,7 @@ static void __net_exit ip6_route_net_exi
|
||||
@@ -6555,6 +6603,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);
|
||||
@@ -6636,6 +6685,9 @@ void __init ip6_route_init_special_entri
|
||||
@@ -6638,6 +6687,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);
|
||||
|
@ -14,7 +14,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
|
||||
--- a/drivers/net/phy/mxl-gpy.c
|
||||
+++ b/drivers/net/phy/mxl-gpy.c
|
||||
@@ -386,8 +386,11 @@ static bool gpy_2500basex_chk(struct phy
|
||||
@@ -385,8 +385,11 @@ static bool gpy_2500basex_chk(struct phy
|
||||
|
||||
phydev->speed = SPEED_2500;
|
||||
phydev->interface = PHY_INTERFACE_MODE_2500BASEX;
|
||||
@ -28,7 +28,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -438,6 +441,14 @@ static int gpy_config_aneg(struct phy_de
|
||||
@@ -437,6 +440,14 @@ static int gpy_config_aneg(struct phy_de
|
||||
u32 adv;
|
||||
int ret;
|
||||
|
||||
@ -43,7 +43,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
if (phydev->autoneg == AUTONEG_DISABLE) {
|
||||
/* Configure half duplex with genphy_setup_forced,
|
||||
* because genphy_c45_pma_setup_forced does not support.
|
||||
@@ -560,6 +571,8 @@ static int gpy_update_interface(struct p
|
||||
@@ -559,6 +570,8 @@ static int gpy_update_interface(struct p
|
||||
switch (phydev->speed) {
|
||||
case SPEED_2500:
|
||||
phydev->interface = PHY_INTERFACE_MODE_2500BASEX;
|
||||
@ -52,7 +52,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
ret = phy_modify_mmd(phydev, MDIO_MMD_VEND1, VSPEC1_SGMII_CTRL,
|
||||
VSPEC1_SGMII_CTRL_ANEN, 0);
|
||||
if (ret < 0) {
|
||||
@@ -573,7 +586,7 @@ static int gpy_update_interface(struct p
|
||||
@@ -572,7 +585,7 @@ static int gpy_update_interface(struct p
|
||||
case SPEED_100:
|
||||
case SPEED_10:
|
||||
phydev->interface = PHY_INTERFACE_MODE_SGMII;
|
||||
|
@ -29,7 +29,7 @@ Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
|
||||
|
||||
--- a/drivers/thermal/mediatek/lvts_thermal.c
|
||||
+++ b/drivers/thermal/mediatek/lvts_thermal.c
|
||||
@@ -1243,7 +1243,7 @@ static int lvts_probe(struct platform_de
|
||||
@@ -1247,7 +1247,7 @@ static int lvts_probe(struct platform_de
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -38,7 +38,7 @@ Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
|
||||
{
|
||||
struct lvts_domain *lvts_td;
|
||||
int i;
|
||||
@@ -1254,8 +1254,6 @@ static int lvts_remove(struct platform_d
|
||||
@@ -1258,8 +1258,6 @@ static int lvts_remove(struct platform_d
|
||||
lvts_ctrl_set_enable(&lvts_td->lvts_ctrl[i], false);
|
||||
|
||||
lvts_debugfs_exit(lvts_td);
|
||||
@ -47,7 +47,7 @@ Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
|
||||
}
|
||||
|
||||
static const struct lvts_ctrl_data mt8195_lvts_mcu_data_ctrl[] = {
|
||||
@@ -1356,7 +1354,7 @@ MODULE_DEVICE_TABLE(of, lvts_of_match);
|
||||
@@ -1360,7 +1358,7 @@ MODULE_DEVICE_TABLE(of, lvts_of_match);
|
||||
|
||||
static struct platform_driver lvts_driver = {
|
||||
.probe = lvts_probe,
|
||||
|
@ -135,8 +135,8 @@ Link: https://lore.kernel.org/r/20230922055020.6436-4-linux@fw-web.de
|
||||
{
|
||||
u32 gt;
|
||||
|
||||
@@ -703,7 +712,7 @@ static int lvts_golden_temp_init(struct
|
||||
if (gt && gt < LVTS_GOLDEN_TEMP_MAX)
|
||||
@@ -707,7 +716,7 @@ static int lvts_golden_temp_init(struct
|
||||
if (gt < LVTS_GOLDEN_TEMP_MAX)
|
||||
golden_temp = gt;
|
||||
|
||||
- coeff_b = golden_temp * 500 + LVTS_COEFF_B;
|
||||
@ -144,7 +144,7 @@ Link: https://lore.kernel.org/r/20230922055020.6436-4-linux@fw-web.de
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -726,7 +735,7 @@ static int lvts_ctrl_init(struct device
|
||||
@@ -730,7 +739,7 @@ static int lvts_ctrl_init(struct device
|
||||
* The golden temp information is contained in the first chunk
|
||||
* of efuse data.
|
||||
*/
|
||||
@ -153,7 +153,7 @@ Link: https://lore.kernel.org/r/20230922055020.6436-4-linux@fw-web.de
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
@@ -737,6 +746,7 @@ static int lvts_ctrl_init(struct device
|
||||
@@ -741,6 +750,7 @@ static int lvts_ctrl_init(struct device
|
||||
for (i = 0; i < lvts_data->num_lvts_ctrl; i++) {
|
||||
|
||||
lvts_ctrl[i].base = lvts_td->base + lvts_data->lvts_ctrl[i].offset;
|
||||
@ -161,7 +161,7 @@ Link: https://lore.kernel.org/r/20230922055020.6436-4-linux@fw-web.de
|
||||
|
||||
ret = lvts_sensor_init(dev, &lvts_ctrl[i],
|
||||
&lvts_data->lvts_ctrl[i]);
|
||||
@@ -760,7 +770,8 @@ static int lvts_ctrl_init(struct device
|
||||
@@ -764,7 +774,8 @@ static int lvts_ctrl_init(struct device
|
||||
* after initializing the calibration.
|
||||
*/
|
||||
lvts_ctrl[i].hw_tshut_raw_temp =
|
||||
@ -171,7 +171,7 @@ Link: https://lore.kernel.org/r/20230922055020.6436-4-linux@fw-web.de
|
||||
|
||||
lvts_ctrl[i].low_thresh = INT_MIN;
|
||||
lvts_ctrl[i].high_thresh = INT_MIN;
|
||||
@@ -1225,6 +1236,8 @@ static int lvts_probe(struct platform_de
|
||||
@@ -1229,6 +1240,8 @@ static int lvts_probe(struct platform_de
|
||||
if (irq < 0)
|
||||
return irq;
|
||||
|
||||
@ -180,7 +180,7 @@ Link: https://lore.kernel.org/r/20230922055020.6436-4-linux@fw-web.de
|
||||
ret = lvts_domain_init(dev, lvts_td, lvts_data);
|
||||
if (ret)
|
||||
return dev_err_probe(dev, ret, "Failed to initialize the lvts domain\n");
|
||||
@@ -1338,11 +1351,15 @@ static const struct lvts_ctrl_data mt819
|
||||
@@ -1342,11 +1355,15 @@ static const struct lvts_ctrl_data mt819
|
||||
static const struct lvts_data mt8195_lvts_mcu_data = {
|
||||
.lvts_ctrl = mt8195_lvts_mcu_data_ctrl,
|
||||
.num_lvts_ctrl = ARRAY_SIZE(mt8195_lvts_mcu_data_ctrl),
|
||||
|
@ -33,7 +33,7 @@ Link: https://lore.kernel.org/r/20230922055020.6436-5-linux@fw-web.de
|
||||
#define LVTS_HW_SHUTDOWN_MT8195 105000
|
||||
|
||||
#define LVTS_MINIMUM_THRESHOLD 20000
|
||||
@@ -1269,6 +1272,33 @@ static void lvts_remove(struct platform_
|
||||
@@ -1273,6 +1276,33 @@ static void lvts_remove(struct platform_
|
||||
lvts_debugfs_exit(lvts_td);
|
||||
}
|
||||
|
||||
@ -67,7 +67,7 @@ Link: https://lore.kernel.org/r/20230922055020.6436-5-linux@fw-web.de
|
||||
static const struct lvts_ctrl_data mt8195_lvts_mcu_data_ctrl[] = {
|
||||
{
|
||||
.cal_offset = { 0x04, 0x07 },
|
||||
@@ -1348,6 +1378,13 @@ static const struct lvts_ctrl_data mt819
|
||||
@@ -1352,6 +1382,13 @@ static const struct lvts_ctrl_data mt819
|
||||
}
|
||||
};
|
||||
|
||||
@ -81,7 +81,7 @@ Link: https://lore.kernel.org/r/20230922055020.6436-5-linux@fw-web.de
|
||||
static const struct lvts_data mt8195_lvts_mcu_data = {
|
||||
.lvts_ctrl = mt8195_lvts_mcu_data_ctrl,
|
||||
.num_lvts_ctrl = ARRAY_SIZE(mt8195_lvts_mcu_data_ctrl),
|
||||
@@ -1363,6 +1400,7 @@ static const struct lvts_data mt8195_lvt
|
||||
@@ -1367,6 +1404,7 @@ static const struct lvts_data mt8195_lvt
|
||||
};
|
||||
|
||||
static const struct of_device_id lvts_of_match[] = {
|
||||
|
@ -24,7 +24,7 @@ Link: https://lore.kernel.org/r/20231017190545.157282-3-bero@baylibre.com
|
||||
|
||||
--- a/drivers/thermal/mediatek/lvts_thermal.c
|
||||
+++ b/drivers/thermal/mediatek/lvts_thermal.c
|
||||
@@ -1299,6 +1299,38 @@ static const struct lvts_ctrl_data mt798
|
||||
@@ -1303,6 +1303,38 @@ static const struct lvts_ctrl_data mt798
|
||||
}
|
||||
};
|
||||
|
||||
@ -63,7 +63,7 @@ Link: https://lore.kernel.org/r/20231017190545.157282-3-bero@baylibre.com
|
||||
static const struct lvts_ctrl_data mt8195_lvts_mcu_data_ctrl[] = {
|
||||
{
|
||||
.cal_offset = { 0x04, 0x07 },
|
||||
@@ -1407,12 +1439,17 @@ static const struct of_device_id lvts_of
|
||||
@@ -1411,12 +1443,17 @@ static const struct of_device_id lvts_of
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, lvts_of_match);
|
||||
|
||||
|
@ -34,7 +34,7 @@ Link: https://lore.kernel.org/r/20231017190545.157282-4-bero@baylibre.com
|
||||
#define LVTS_HW_SHUTDOWN_MT8195 105000
|
||||
|
||||
#define LVTS_MINIMUM_THRESHOLD 20000
|
||||
@@ -1331,6 +1332,88 @@ static int lvts_resume(struct device *de
|
||||
@@ -1335,6 +1336,88 @@ static int lvts_resume(struct device *de
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -123,7 +123,7 @@ Link: https://lore.kernel.org/r/20231017190545.157282-4-bero@baylibre.com
|
||||
static const struct lvts_ctrl_data mt8195_lvts_mcu_data_ctrl[] = {
|
||||
{
|
||||
.cal_offset = { 0x04, 0x07 },
|
||||
@@ -1417,6 +1500,16 @@ static const struct lvts_data mt7988_lvt
|
||||
@@ -1421,6 +1504,16 @@ static const struct lvts_data mt7988_lvt
|
||||
.temp_offset = LVTS_COEFF_B_MT7988,
|
||||
};
|
||||
|
||||
@ -140,7 +140,7 @@ Link: https://lore.kernel.org/r/20231017190545.157282-4-bero@baylibre.com
|
||||
static const struct lvts_data mt8195_lvts_mcu_data = {
|
||||
.lvts_ctrl = mt8195_lvts_mcu_data_ctrl,
|
||||
.num_lvts_ctrl = ARRAY_SIZE(mt8195_lvts_mcu_data_ctrl),
|
||||
@@ -1433,6 +1526,8 @@ static const struct lvts_data mt8195_lvt
|
||||
@@ -1437,6 +1530,8 @@ static const struct lvts_data mt8195_lvt
|
||||
|
||||
static const struct of_device_id lvts_of_match[] = {
|
||||
{ .compatible = "mediatek,mt7988-lvts-ap", .data = &mt7988_lvts_ap_data },
|
||||
|
@ -12,7 +12,7 @@ Signed-off-by: Tobias Schramm <tobias@t-sys.eu>
|
||||
---
|
||||
--- a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
|
||||
+++ b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
|
||||
@@ -6153,6 +6153,12 @@ static int mvpp2_port_copy_mac_addr(stru
|
||||
@@ -6156,6 +6156,12 @@ static int mvpp2_port_copy_mac_addr(stru
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user