mirror of
https://github.com/coolsnowwolf/lede.git
synced 2025-04-16 04:13:31 +00:00
kernel: bump 6.1 to 6.1.112 (#12510)
This commit is contained in:
parent
fac34a2dfe
commit
1a1b7da30d
@ -1,2 +1,2 @@
|
||||
LINUX_VERSION-6.1 = .111
|
||||
LINUX_KERNEL_HASH-6.1.111 = c47298fa1d410bc5dcfb0662bc2cdbe86f5b0d12a1baac297e1ded7b6722edb0
|
||||
LINUX_VERSION-6.1 = .112
|
||||
LINUX_KERNEL_HASH-6.1.112 = 8bd8de3562fb006653e550a934e66ed9f80b7576258a03e2caa2e3ce1c1f9f24
|
||||
|
@ -24,7 +24,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
|
||||
--- a/net/bluetooth/smp.c
|
||||
+++ b/net/bluetooth/smp.c
|
||||
@@ -2208,7 +2208,7 @@ static u8 smp_cmd_pairing_random(struct l2cap_conn *conn, struct sk_buff *skb)
|
||||
@@ -2208,7 +2208,7 @@ mackey_and_ltk:
|
||||
if (err)
|
||||
return SMP_UNSPECIFIED;
|
||||
|
||||
@ -33,7 +33,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
if (test_bit(SMP_FLAG_INITIATOR, &smp->flags)) {
|
||||
sc_dhkey_check(smp);
|
||||
SMP_ALLOW_CMD(smp, SMP_CMD_DHKEY_CHECK);
|
||||
@@ -2223,9 +2223,6 @@ static u8 smp_cmd_pairing_random(struct l2cap_conn *conn, struct sk_buff *skb)
|
||||
@@ -2223,9 +2223,6 @@ mackey_and_ltk:
|
||||
confirm_hint = 0;
|
||||
|
||||
confirm:
|
||||
|
@ -17,7 +17,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
|
||||
--- a/kernel/cgroup/cgroup.c
|
||||
+++ b/kernel/cgroup/cgroup.c
|
||||
@@ -6061,6 +6061,9 @@ int __init cgroup_init_early(void)
|
||||
@@ -6070,6 +6070,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
|
||||
*
|
||||
@@ -6094,6 +6097,12 @@ int __init cgroup_init(void)
|
||||
@@ -6103,6 +6106,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 =
|
||||
@@ -6734,6 +6743,10 @@ static int __init cgroup_disable(char *s
|
||||
@@ -6743,6 +6752,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);
|
||||
@@ -6752,6 +6765,31 @@ static int __init cgroup_disable(char *s
|
||||
@@ -6761,6 +6774,31 @@ static int __init cgroup_disable(char *s
|
||||
}
|
||||
__setup("cgroup_disable=", cgroup_disable);
|
||||
|
||||
|
@ -13,7 +13,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
|
||||
--- a/drivers/spi/spidev.c
|
||||
+++ b/drivers/spi/spidev.c
|
||||
@@ -707,7 +707,7 @@ MODULE_DEVICE_TABLE(spi, spidev_spi_ids)
|
||||
@@ -709,7 +709,7 @@ MODULE_DEVICE_TABLE(spi, spidev_spi_ids)
|
||||
*/
|
||||
static int spidev_of_check(struct device *dev)
|
||||
{
|
||||
|
@ -313,7 +313,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
goto out;
|
||||
--- a/drivers/mmc/core/core.c
|
||||
+++ b/drivers/mmc/core/core.c
|
||||
@@ -1819,7 +1819,8 @@ EXPORT_SYMBOL(mmc_erase);
|
||||
@@ -1818,7 +1818,8 @@ EXPORT_SYMBOL(mmc_erase);
|
||||
|
||||
int mmc_can_erase(struct mmc_card *card)
|
||||
{
|
||||
@ -325,7 +325,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
}
|
||||
--- a/drivers/mmc/core/quirks.h
|
||||
+++ b/drivers/mmc/core/quirks.h
|
||||
@@ -130,6 +130,14 @@ static const struct mmc_fixup __maybe_un
|
||||
@@ -134,6 +134,14 @@ static const struct mmc_fixup __maybe_un
|
||||
MMC_FIXUP(CID_NAME_ANY, CID_MANFID_SANDISK_SD, 0x5344, add_quirk_sd,
|
||||
MMC_QUIRK_BROKEN_SD_DISCARD),
|
||||
|
||||
@ -1987,7 +1987,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
|
||||
#define MAX_TUNING_LOOP 40
|
||||
|
||||
@@ -3236,7 +3236,7 @@ static void sdhci_timeout_timer(struct t
|
||||
@@ -3235,7 +3235,7 @@ static void sdhci_timeout_timer(struct t
|
||||
spin_lock_irqsave(&host->lock, flags);
|
||||
|
||||
if (host->cmd && !sdhci_data_line_cmd(host->cmd)) {
|
||||
@ -1996,7 +1996,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
mmc_hostname(host->mmc));
|
||||
sdhci_err_stats_inc(host, REQ_TIMEOUT);
|
||||
sdhci_dumpregs(host);
|
||||
@@ -3259,7 +3259,7 @@ static void sdhci_timeout_data_timer(str
|
||||
@@ -3258,7 +3258,7 @@ static void sdhci_timeout_data_timer(str
|
||||
|
||||
if (host->data || host->data_cmd ||
|
||||
(host->cmd && sdhci_data_line_cmd(host->cmd))) {
|
||||
|
@ -99,7 +99,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
#endif
|
||||
--- a/arch/arm/include/asm/uaccess.h
|
||||
+++ b/arch/arm/include/asm/uaccess.h
|
||||
@@ -509,6 +509,9 @@ do { \
|
||||
@@ -499,6 +499,9 @@ do { \
|
||||
extern unsigned long __must_check
|
||||
arm_copy_from_user(void *to, const void __user *from, unsigned long n);
|
||||
|
||||
|
@ -17615,7 +17615,7 @@ Signed-off-by: Ashish Vara <ashishhvara@gmail.com>
|
||||
* For devices with more than one control interface, we assume the
|
||||
--- a/sound/usb/quirks.c
|
||||
+++ b/sound/usb/quirks.c
|
||||
@@ -2087,6 +2087,8 @@ static const struct usb_audio_quirk_flag
|
||||
@@ -2089,6 +2089,8 @@ static const struct usb_audio_quirk_flag
|
||||
QUIRK_FLAG_FIXED_RATE),
|
||||
DEVICE_FLG(0x0ecb, 0x2069, /* JBL Quantum810 Wireless */
|
||||
QUIRK_FLAG_FIXED_RATE),
|
||||
|
@ -15,7 +15,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
||||
|
||||
--- a/drivers/usb/host/xhci.c
|
||||
+++ b/drivers/usb/host/xhci.c
|
||||
@@ -1643,6 +1643,109 @@ command_cleanup:
|
||||
@@ -1653,6 +1653,109 @@ command_cleanup:
|
||||
}
|
||||
|
||||
/*
|
||||
@ -125,7 +125,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
||||
* non-error returns are a promise to giveback() the urb later
|
||||
* we drop ownership so next owner (or urb unlink) can get it
|
||||
*/
|
||||
@@ -5480,6 +5583,7 @@ static const struct hc_driver xhci_hc_dr
|
||||
@@ -5492,6 +5595,7 @@ static const struct hc_driver xhci_hc_dr
|
||||
.endpoint_reset = xhci_endpoint_reset,
|
||||
.check_bandwidth = xhci_check_bandwidth,
|
||||
.reset_bandwidth = xhci_reset_bandwidth,
|
||||
|
@ -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
|
||||
|
||||
@@ -1373,6 +1376,9 @@
|
||||
@@ -1385,6 +1388,9 @@
|
||||
#define USB_VENDOR_ID_XIAOMI 0x2717
|
||||
#define USB_DEVICE_ID_MI_SILENT_MOUSE 0x5014
|
||||
|
||||
|
@ -17,7 +17,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
|
||||
--- a/drivers/gpio/gpiolib.c
|
||||
+++ b/drivers/gpio/gpiolib.c
|
||||
@@ -52,6 +52,8 @@
|
||||
@@ -53,6 +53,8 @@
|
||||
#define extra_checks 0
|
||||
#endif
|
||||
|
||||
@ -26,7 +26,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
/* Device and char device-related information */
|
||||
static DEFINE_IDA(gpio_ida);
|
||||
static dev_t gpio_devt;
|
||||
@@ -2423,8 +2425,8 @@ int gpiod_direction_output(struct gpio_d
|
||||
@@ -2424,8 +2426,8 @@ int gpiod_direction_output(struct gpio_d
|
||||
value = !!value;
|
||||
|
||||
/* GPIOs used for enabled IRQs shall not be set as output */
|
||||
@ -37,7 +37,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
gpiod_err(desc,
|
||||
"%s: tried to set a GPIO tied to an IRQ as output\n",
|
||||
__func__);
|
||||
@@ -3302,8 +3304,8 @@ int gpiochip_lock_as_irq(struct gpio_chi
|
||||
@@ -3303,8 +3305,8 @@ int gpiochip_lock_as_irq(struct gpio_chi
|
||||
}
|
||||
|
||||
/* To be valid for IRQ the line needs to be input or open drain */
|
||||
|
@ -16,7 +16,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
|
||||
--- a/scripts/Makefile.lib
|
||||
+++ b/scripts/Makefile.lib
|
||||
@@ -415,6 +415,12 @@ cmd_dtco = mkdir -p $(dir ${dtc-tmp}) ;
|
||||
@@ -419,6 +419,12 @@ cmd_dtco = mkdir -p $(dir ${dtc-tmp}) ;
|
||||
$(DTC) -@ -H epapr -O dtb -o $@ -b 0 \
|
||||
-i $(dir $<) $(DTC_FLAGS) \
|
||||
-Wno-interrupts_property \
|
||||
|
@ -22,4 +22,4 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
+ { .name = "spidev" },
|
||||
{ .name = "bh2228fv" },
|
||||
{ .name = "dh2228fv" },
|
||||
{ .name = "ltc2488" },
|
||||
{ .name = "jg10309-01" },
|
||||
|
@ -10,7 +10,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
|
||||
--- a/drivers/gpio/gpio-pca953x.c
|
||||
+++ b/drivers/gpio/gpio-pca953x.c
|
||||
@@ -1358,6 +1358,7 @@ static const struct of_device_id pca953x
|
||||
@@ -1360,6 +1360,7 @@ static const struct of_device_id pca953x
|
||||
{ .compatible = "ti,tca6416", .data = OF_953X(16, PCA_INT), },
|
||||
{ .compatible = "ti,tca6424", .data = OF_953X(24, PCA_INT), },
|
||||
{ .compatible = "ti,tca9539", .data = OF_953X(16, PCA_INT), },
|
||||
|
@ -19,7 +19,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
|
||||
--- a/drivers/usb/host/xhci.c
|
||||
+++ b/drivers/usb/host/xhci.c
|
||||
@@ -1732,7 +1732,7 @@ static void xhci_fixup_endpoint(struct u
|
||||
@@ -1742,7 +1742,7 @@ static void xhci_fixup_endpoint(struct u
|
||||
return;
|
||||
}
|
||||
ctrl_ctx->add_flags = xhci_get_endpoint_flag_from_index(ep_index);
|
||||
|
@ -46,7 +46,7 @@ Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
|
||||
}
|
||||
|
||||
return err;
|
||||
@@ -5064,11 +5062,9 @@ int f2fs_build_segment_manager(struct f2
|
||||
@@ -5067,11 +5065,9 @@ int f2fs_build_segment_manager(struct f2
|
||||
|
||||
init_f2fs_rwsem(&sm_info->curseg_lock);
|
||||
|
||||
|
@ -26,7 +26,7 @@ sdhci: remove PYA0_INTR_BUG quirk. Add quirks to disable some of the higher SDR
|
||||
static int dwcmshc_rk35xx_init(struct sdhci_host *host, struct dwcmshc_priv *dwc_priv)
|
||||
--- a/drivers/mmc/host/sdhci.c
|
||||
+++ b/drivers/mmc/host/sdhci.c
|
||||
@@ -3074,6 +3074,15 @@ static void sdhci_card_event(struct mmc_
|
||||
@@ -3073,6 +3073,15 @@ static void sdhci_card_event(struct mmc_
|
||||
spin_unlock_irqrestore(&host->lock, flags);
|
||||
}
|
||||
|
||||
@ -42,7 +42,7 @@ sdhci: remove PYA0_INTR_BUG quirk. Add quirks to disable some of the higher SDR
|
||||
static const struct mmc_host_ops sdhci_ops = {
|
||||
.request = sdhci_request,
|
||||
.post_req = sdhci_post_req,
|
||||
@@ -3089,6 +3098,7 @@ static const struct mmc_host_ops sdhci_o
|
||||
@@ -3088,6 +3097,7 @@ static const struct mmc_host_ops sdhci_o
|
||||
.execute_tuning = sdhci_execute_tuning,
|
||||
.card_event = sdhci_card_event,
|
||||
.card_busy = sdhci_card_busy,
|
||||
@ -50,7 +50,7 @@ sdhci: remove PYA0_INTR_BUG quirk. Add quirks to disable some of the higher SDR
|
||||
};
|
||||
|
||||
/*****************************************************************************\
|
||||
@@ -4614,6 +4624,15 @@ int sdhci_setup_host(struct sdhci_host *
|
||||
@@ -4609,6 +4619,15 @@ int sdhci_setup_host(struct sdhci_host *
|
||||
!(host->quirks2 & SDHCI_QUIRK2_BROKEN_DDR50))
|
||||
mmc->caps |= MMC_CAP_UHS_DDR50;
|
||||
|
||||
|
@ -212,7 +212,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
},
|
||||
--- a/drivers/usb/dwc3/core.c
|
||||
+++ b/drivers/usb/dwc3/core.c
|
||||
@@ -1180,6 +1180,24 @@ static void dwc3_config_threshold(struct
|
||||
@@ -1201,6 +1201,24 @@ static void dwc3_config_threshold(struct
|
||||
}
|
||||
}
|
||||
|
||||
@ -237,7 +237,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
/**
|
||||
* dwc3_core_init - Low-level initialization of DWC3 Core
|
||||
* @dwc: Pointer to our controller context structure
|
||||
@@ -1257,6 +1275,8 @@ static int dwc3_core_init(struct dwc3 *d
|
||||
@@ -1278,6 +1296,8 @@ static int dwc3_core_init(struct dwc3 *d
|
||||
|
||||
dwc3_set_incr_burst_type(dwc);
|
||||
|
||||
@ -246,7 +246,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
usb_phy_set_suspend(dwc->usb2_phy, 0);
|
||||
usb_phy_set_suspend(dwc->usb3_phy, 0);
|
||||
ret = phy_power_on(dwc->usb2_generic_phy);
|
||||
@@ -1490,6 +1510,7 @@ static void dwc3_get_properties(struct d
|
||||
@@ -1526,6 +1546,7 @@ static void dwc3_get_properties(struct d
|
||||
u8 tx_thr_num_pkt_prd = 0;
|
||||
u8 tx_max_burst_prd = 0;
|
||||
u8 tx_fifo_resize_max_num;
|
||||
@ -254,7 +254,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
const char *usb_psy_name;
|
||||
int ret;
|
||||
|
||||
@@ -1512,6 +1533,9 @@ static void dwc3_get_properties(struct d
|
||||
@@ -1548,6 +1569,9 @@ static void dwc3_get_properties(struct d
|
||||
*/
|
||||
tx_fifo_resize_max_num = 6;
|
||||
|
||||
@ -264,7 +264,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);
|
||||
@@ -1627,6 +1651,9 @@ static void dwc3_get_properties(struct d
|
||||
@@ -1663,6 +1687,9 @@ static void dwc3_get_properties(struct d
|
||||
dwc->dis_split_quirk = device_property_read_bool(dev,
|
||||
"snps,dis-split-quirk");
|
||||
|
||||
@ -274,7 +274,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
dwc->lpm_nyet_threshold = lpm_nyet_threshold;
|
||||
dwc->tx_de_emphasis = tx_de_emphasis;
|
||||
|
||||
@@ -1644,6 +1671,8 @@ static void dwc3_get_properties(struct d
|
||||
@@ -1680,6 +1707,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;
|
||||
|
||||
@ -283,7 +283,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
dwc->imod_interval = 0;
|
||||
|
||||
dwc->tx_fifo_resize_max_num = tx_fifo_resize_max_num;
|
||||
@@ -1852,6 +1881,12 @@ static int dwc3_probe(struct platform_de
|
||||
@@ -1888,6 +1917,12 @@ static int dwc3_probe(struct platform_de
|
||||
|
||||
dwc3_get_properties(dwc);
|
||||
|
||||
@ -308,7 +308,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
/* Global Debug LSP MUX Select */
|
||||
#define DWC3_GDBGLSPMUX_ENDBC BIT(15) /* Host only */
|
||||
#define DWC3_GDBGLSPMUX_HOSTSELECT(n) ((n) & 0x3fff)
|
||||
@@ -1056,6 +1059,7 @@ struct dwc3_scratchpad_array {
|
||||
@@ -1057,6 +1060,7 @@ struct dwc3_scratchpad_array {
|
||||
* @tx_max_burst_prd: max periodic ESS transmit burst size
|
||||
* @tx_fifo_resize_max_num: max number of fifos allocated during txfifo resize
|
||||
* @clear_stall_protocol: endpoint number that requires a delayed status phase
|
||||
@ -316,7 +316,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
* @hsphy_interface: "utmi" or "ulpi"
|
||||
* @connected: true when we're connected to a host, false otherwise
|
||||
* @softconnect: true when gadget connect is called, false when disconnect runs
|
||||
@@ -1287,6 +1291,7 @@ struct dwc3 {
|
||||
@@ -1289,6 +1293,7 @@ struct dwc3 {
|
||||
u8 tx_max_burst_prd;
|
||||
u8 tx_fifo_resize_max_num;
|
||||
u8 clear_stall_protocol;
|
||||
|
@ -23,7 +23,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
|
||||
--- a/drivers/mmc/host/sdhci.c
|
||||
+++ b/drivers/mmc/host/sdhci.c
|
||||
@@ -1728,6 +1728,12 @@ static bool sdhci_send_command(struct sd
|
||||
@@ -1727,6 +1727,12 @@ static bool sdhci_send_command(struct sd
|
||||
if (host->use_external_dma)
|
||||
sdhci_external_dma_pre_transfer(host, cmd);
|
||||
|
||||
@ -36,7 +36,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
sdhci_writew(host, SDHCI_MAKE_CMD(cmd->opcode, flags), SDHCI_COMMAND);
|
||||
|
||||
return true;
|
||||
@@ -3333,6 +3339,11 @@ static void sdhci_cmd_irq(struct sdhci_h
|
||||
@@ -3332,6 +3338,11 @@ static void sdhci_cmd_irq(struct sdhci_h
|
||||
if (intmask & SDHCI_INT_TIMEOUT) {
|
||||
host->cmd->error = -ETIMEDOUT;
|
||||
sdhci_err_stats_inc(host, CMD_TIMEOUT);
|
||||
|
@ -14,7 +14,7 @@ Signed-off-by: Mark Brown <broonie@kernel.org>
|
||||
|
||||
--- a/drivers/spi/spidev.c
|
||||
+++ b/drivers/spi/spidev.c
|
||||
@@ -702,6 +702,7 @@ static const struct spi_device_id spidev
|
||||
@@ -703,6 +703,7 @@ static const struct spi_device_id spidev
|
||||
{ .name = "spi-petra" },
|
||||
{ .name = "spi-authenta" },
|
||||
{ .name = "em3581" },
|
||||
@ -22,7 +22,7 @@ Signed-off-by: Mark Brown <broonie@kernel.org>
|
||||
{},
|
||||
};
|
||||
MODULE_DEVICE_TABLE(spi, spidev_spi_ids);
|
||||
@@ -730,6 +731,7 @@ static const struct of_device_id spidev_
|
||||
@@ -732,6 +733,7 @@ static const struct of_device_id spidev_
|
||||
{ .compatible = "rohm,dh2228fv", .data = &spidev_of_check },
|
||||
{ .compatible = "semtech,sx1301", .data = &spidev_of_check },
|
||||
{ .compatible = "silabs,em3581", .data = &spidev_of_check },
|
||||
|
@ -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
|
||||
@@ -8012,7 +8012,7 @@ static int nft_register_flowtable_net_ho
|
||||
@@ -8017,7 +8017,7 @@ static int nft_register_flowtable_net_ho
|
||||
err = flowtable->data.type->setup(&flowtable->data,
|
||||
hook->ops.dev,
|
||||
FLOW_BLOCK_BIND);
|
||||
|
@ -36,7 +36,7 @@ Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
|
||||
{ .compatible = "qcom,msm8960", },
|
||||
--- a/drivers/cpufreq/qcom-cpufreq-nvmem.c
|
||||
+++ b/drivers/cpufreq/qcom-cpufreq-nvmem.c
|
||||
@@ -148,6 +148,11 @@ static int qcom_cpufreq_kryo_name_versio
|
||||
@@ -152,6 +152,11 @@ static int qcom_cpufreq_kryo_name_versio
|
||||
switch (msm_id) {
|
||||
case QCOM_ID_MSM8996:
|
||||
case QCOM_ID_APQ8096:
|
||||
|
@ -15,7 +15,7 @@ Link: https://lore.kernel.org/r/20220818220628.339366-9-robimarko@gmail.com
|
||||
|
||||
--- a/arch/arm64/boot/dts/qcom/ipq8074.dtsi
|
||||
+++ b/arch/arm64/boot/dts/qcom/ipq8074.dtsi
|
||||
@@ -677,6 +677,14 @@
|
||||
@@ -679,6 +679,14 @@
|
||||
#mbox-cells = <1>;
|
||||
};
|
||||
|
||||
|
@ -37,7 +37,7 @@ Link: https://lore.kernel.org/r/20220818220245.338396-5-robimarko@gmail.com
|
||||
cryptobam: dma-controller@704000 {
|
||||
compatible = "qcom,bam-v1.7.0";
|
||||
reg = <0x00704000 0x20000>;
|
||||
@@ -876,4 +886,90 @@
|
||||
@@ -878,4 +888,90 @@
|
||||
<GIC_PPI 4 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
|
||||
<GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
|
||||
};
|
||||
|
@ -18,7 +18,7 @@ Link: https://lore.kernel.org/r/20220818220849.339732-4-robimarko@gmail.com
|
||||
|
||||
--- a/arch/arm64/boot/dts/qcom/ipq8074.dtsi
|
||||
+++ b/arch/arm64/boot/dts/qcom/ipq8074.dtsi
|
||||
@@ -682,6 +682,8 @@
|
||||
@@ -684,6 +684,8 @@
|
||||
apcs_glb: mailbox@b111000 {
|
||||
compatible = "qcom,ipq8074-apcs-apps-global";
|
||||
reg = <0x0b111000 0x1000>;
|
||||
|
@ -14,7 +14,7 @@ Signed-off-by: Robert Marko <robimarko@gmail.com>
|
||||
|
||||
--- a/arch/arm64/boot/dts/qcom/ipq8074.dtsi
|
||||
+++ b/arch/arm64/boot/dts/qcom/ipq8074.dtsi
|
||||
@@ -768,6 +768,7 @@
|
||||
@@ -770,6 +770,7 @@
|
||||
linux,pci-domain = <1>;
|
||||
bus-range = <0x00 0xff>;
|
||||
num-lanes = <1>;
|
||||
|
@ -14,7 +14,7 @@ Link: https://lore.kernel.org/r/20230322174148.810938-4-krzysztof.kozlowski@lina
|
||||
|
||||
--- a/arch/arm64/boot/dts/qcom/ipq8074.dtsi
|
||||
+++ b/arch/arm64/boot/dts/qcom/ipq8074.dtsi
|
||||
@@ -682,7 +682,8 @@
|
||||
@@ -684,7 +684,8 @@
|
||||
};
|
||||
|
||||
apcs_glb: mailbox@b111000 {
|
||||
|
@ -17,7 +17,7 @@ Link: https://lore.kernel.org/r/20230607184448.2512179-1-robimarko@gmail.com
|
||||
|
||||
--- a/arch/arm64/boot/dts/qcom/ipq8074.dtsi
|
||||
+++ b/arch/arm64/boot/dts/qcom/ipq8074.dtsi
|
||||
@@ -899,6 +899,14 @@
|
||||
@@ -901,6 +901,14 @@
|
||||
polling-delay = <1000>;
|
||||
|
||||
thermal-sensors = <&tsens 4>;
|
||||
@ -32,7 +32,7 @@ Link: https://lore.kernel.org/r/20230607184448.2512179-1-robimarko@gmail.com
|
||||
};
|
||||
|
||||
nss0-thermal {
|
||||
@@ -906,6 +914,14 @@
|
||||
@@ -908,6 +916,14 @@
|
||||
polling-delay = <1000>;
|
||||
|
||||
thermal-sensors = <&tsens 5>;
|
||||
@ -47,7 +47,7 @@ Link: https://lore.kernel.org/r/20230607184448.2512179-1-robimarko@gmail.com
|
||||
};
|
||||
|
||||
nss1-thermal {
|
||||
@@ -913,6 +929,14 @@
|
||||
@@ -915,6 +931,14 @@
|
||||
polling-delay = <1000>;
|
||||
|
||||
thermal-sensors = <&tsens 6>;
|
||||
@ -62,7 +62,7 @@ Link: https://lore.kernel.org/r/20230607184448.2512179-1-robimarko@gmail.com
|
||||
};
|
||||
|
||||
wcss-phya0-thermal {
|
||||
@@ -920,6 +944,14 @@
|
||||
@@ -922,6 +946,14 @@
|
||||
polling-delay = <1000>;
|
||||
|
||||
thermal-sensors = <&tsens 7>;
|
||||
@ -77,7 +77,7 @@ Link: https://lore.kernel.org/r/20230607184448.2512179-1-robimarko@gmail.com
|
||||
};
|
||||
|
||||
wcss-phya1-thermal {
|
||||
@@ -927,6 +959,14 @@
|
||||
@@ -929,6 +961,14 @@
|
||||
polling-delay = <1000>;
|
||||
|
||||
thermal-sensors = <&tsens 8>;
|
||||
@ -92,7 +92,7 @@ Link: https://lore.kernel.org/r/20230607184448.2512179-1-robimarko@gmail.com
|
||||
};
|
||||
|
||||
cpu0_thermal: cpu0-thermal {
|
||||
@@ -934,6 +974,14 @@
|
||||
@@ -936,6 +976,14 @@
|
||||
polling-delay = <1000>;
|
||||
|
||||
thermal-sensors = <&tsens 9>;
|
||||
@ -107,7 +107,7 @@ Link: https://lore.kernel.org/r/20230607184448.2512179-1-robimarko@gmail.com
|
||||
};
|
||||
|
||||
cpu1_thermal: cpu1-thermal {
|
||||
@@ -941,6 +989,14 @@
|
||||
@@ -943,6 +991,14 @@
|
||||
polling-delay = <1000>;
|
||||
|
||||
thermal-sensors = <&tsens 10>;
|
||||
@ -122,7 +122,7 @@ Link: https://lore.kernel.org/r/20230607184448.2512179-1-robimarko@gmail.com
|
||||
};
|
||||
|
||||
cpu2_thermal: cpu2-thermal {
|
||||
@@ -948,6 +1004,14 @@
|
||||
@@ -950,6 +1006,14 @@
|
||||
polling-delay = <1000>;
|
||||
|
||||
thermal-sensors = <&tsens 11>;
|
||||
@ -137,7 +137,7 @@ Link: https://lore.kernel.org/r/20230607184448.2512179-1-robimarko@gmail.com
|
||||
};
|
||||
|
||||
cpu3_thermal: cpu3-thermal {
|
||||
@@ -955,6 +1019,14 @@
|
||||
@@ -957,6 +1021,14 @@
|
||||
polling-delay = <1000>;
|
||||
|
||||
thermal-sensors = <&tsens 12>;
|
||||
@ -152,7 +152,7 @@ Link: https://lore.kernel.org/r/20230607184448.2512179-1-robimarko@gmail.com
|
||||
};
|
||||
|
||||
cluster_thermal: cluster-thermal {
|
||||
@@ -962,6 +1034,14 @@
|
||||
@@ -964,6 +1036,14 @@
|
||||
polling-delay = <1000>;
|
||||
|
||||
thermal-sensors = <&tsens 13>;
|
||||
@ -167,7 +167,7 @@ Link: https://lore.kernel.org/r/20230607184448.2512179-1-robimarko@gmail.com
|
||||
};
|
||||
|
||||
wcss-phyb0-thermal {
|
||||
@@ -969,6 +1049,14 @@
|
||||
@@ -971,6 +1051,14 @@
|
||||
polling-delay = <1000>;
|
||||
|
||||
thermal-sensors = <&tsens 14>;
|
||||
@ -182,7 +182,7 @@ Link: https://lore.kernel.org/r/20230607184448.2512179-1-robimarko@gmail.com
|
||||
};
|
||||
|
||||
wcss-phyb1-thermal {
|
||||
@@ -976,6 +1064,14 @@
|
||||
@@ -978,6 +1066,14 @@
|
||||
polling-delay = <1000>;
|
||||
|
||||
thermal-sensors = <&tsens 15>;
|
||||
|
@ -44,7 +44,7 @@ Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
|
||||
struct qcom_cpufreq_drv;
|
||||
|
||||
struct qcom_cpufreq_match_data {
|
||||
@@ -203,6 +205,57 @@ len_error:
|
||||
@@ -207,6 +209,57 @@ len_error:
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -102,7 +102,7 @@ Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
|
||||
static const struct qcom_cpufreq_match_data match_data_kryo = {
|
||||
.get_version = qcom_cpufreq_kryo_name_version,
|
||||
};
|
||||
@@ -217,6 +270,10 @@ static const struct qcom_cpufreq_match_d
|
||||
@@ -221,6 +274,10 @@ static const struct qcom_cpufreq_match_d
|
||||
.genpd_names = qcs404_genpd_names,
|
||||
};
|
||||
|
||||
@ -113,7 +113,7 @@ Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
|
||||
static int qcom_cpufreq_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct qcom_cpufreq_drv *drv;
|
||||
@@ -361,6 +418,7 @@ static const struct of_device_id qcom_cp
|
||||
@@ -353,6 +410,7 @@ static const struct of_device_id qcom_cp
|
||||
{ .compatible = "qcom,apq8096", .data = &match_data_kryo },
|
||||
{ .compatible = "qcom,msm8996", .data = &match_data_kryo },
|
||||
{ .compatible = "qcom,qcs404", .data = &match_data_qcs404 },
|
||||
|
@ -47,7 +47,7 @@ Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
|
||||
struct qcom_cpufreq_drv;
|
||||
|
||||
struct qcom_cpufreq_match_data {
|
||||
@@ -256,6 +261,44 @@ static int qcom_cpufreq_ipq6018_name_ver
|
||||
@@ -260,6 +265,44 @@ static int qcom_cpufreq_ipq6018_name_ver
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -92,7 +92,7 @@ Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
|
||||
static const struct qcom_cpufreq_match_data match_data_kryo = {
|
||||
.get_version = qcom_cpufreq_kryo_name_version,
|
||||
};
|
||||
@@ -274,6 +317,10 @@ static const struct qcom_cpufreq_match_d
|
||||
@@ -278,6 +321,10 @@ static const struct qcom_cpufreq_match_d
|
||||
.get_version = qcom_cpufreq_ipq6018_name_version,
|
||||
};
|
||||
|
||||
@ -103,7 +103,7 @@ Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
|
||||
static int qcom_cpufreq_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct qcom_cpufreq_drv *drv;
|
||||
@@ -420,6 +467,7 @@ static const struct of_device_id qcom_cp
|
||||
@@ -412,6 +459,7 @@ static const struct of_device_id qcom_cp
|
||||
{ .compatible = "qcom,qcs404", .data = &match_data_qcs404 },
|
||||
{ .compatible = "qcom,ipq6018", .data = &match_data_ipq6018 },
|
||||
{ .compatible = "qcom,ipq8064", .data = &match_data_krait },
|
||||
|
@ -19,7 +19,7 @@ Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
|
||||
|
||||
--- a/arch/arm64/boot/dts/qcom/ipq8074.dtsi
|
||||
+++ b/arch/arm64/boot/dts/qcom/ipq8074.dtsi
|
||||
@@ -685,8 +685,8 @@
|
||||
@@ -687,8 +687,8 @@
|
||||
compatible = "qcom,ipq8074-apcs-apps-global",
|
||||
"qcom,ipq6018-apcs-apps-global";
|
||||
reg = <0x0b111000 0x1000>;
|
||||
|
@ -12,7 +12,7 @@ Signed-off-by: Robert Marko <robimarko@gmail.com>
|
||||
|
||||
--- a/arch/arm64/boot/dts/qcom/ipq8074.dtsi
|
||||
+++ b/arch/arm64/boot/dts/qcom/ipq8074.dtsi
|
||||
@@ -706,7 +706,7 @@
|
||||
@@ -708,7 +708,7 @@
|
||||
reg = <0x0b000000 0x1000>, <0x0b002000 0x1000>;
|
||||
ranges = <0 0xb00a000 0xffd>;
|
||||
|
||||
@ -21,7 +21,7 @@ Signed-off-by: Robert Marko <robimarko@gmail.com>
|
||||
compatible = "arm,gic-v2m-frame";
|
||||
msi-controller;
|
||||
reg = <0x0 0xffd>;
|
||||
@@ -819,8 +819,7 @@
|
||||
@@ -821,8 +821,7 @@
|
||||
ranges = <0x81000000 0x0 0x00000000 0x10200000 0x0 0x10000>, /* I/O */
|
||||
<0x82000000 0x0 0x10220000 0x10220000 0x0 0xfde0000>; /* MEM */
|
||||
|
||||
@ -31,7 +31,7 @@ Signed-off-by: Robert Marko <robimarko@gmail.com>
|
||||
#interrupt-cells = <1>;
|
||||
interrupt-map-mask = <0 0 0 0x7>;
|
||||
interrupt-map = <0 0 0 1 &intc 0 142
|
||||
@@ -881,8 +880,7 @@
|
||||
@@ -883,8 +882,7 @@
|
||||
ranges = <0x81000000 0x0 0x00000000 0x20200000 0x0 0x10000>, /* I/O */
|
||||
<0x82000000 0x0 0x20220000 0x20220000 0x0 0xfde0000>; /* MEM */
|
||||
|
||||
|
@ -61,7 +61,7 @@ Signed-off-by: Robert Marko <robimarko@gmail.com>
|
||||
spmi_bus: spmi@200f000 {
|
||||
compatible = "qcom,spmi-pmic-arb";
|
||||
reg = <0x0200f000 0x001000>,
|
||||
@@ -921,6 +952,56 @@
|
||||
@@ -923,6 +954,56 @@
|
||||
"axi_s_sticky";
|
||||
status = "disabled";
|
||||
};
|
||||
|
@ -15,7 +15,7 @@ Signed-off-by: Robert Marko <robimarko@gmail.com>
|
||||
|
||||
--- a/arch/arm64/boot/dts/qcom/ipq8074.dtsi
|
||||
+++ b/arch/arm64/boot/dts/qcom/ipq8074.dtsi
|
||||
@@ -1002,6 +1002,117 @@
|
||||
@@ -1004,6 +1004,117 @@
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -111,7 +111,7 @@
|
||||
#endif
|
||||
--- a/include/net/ip6_route.h
|
||||
+++ b/include/net/ip6_route.h
|
||||
@@ -211,6 +211,11 @@ void rt6_multipath_rebalance(struct fib6
|
||||
@@ -219,6 +219,11 @@ void rt6_multipath_rebalance(struct fib6
|
||||
void rt6_uncached_list_add(struct rt6_info *rt);
|
||||
void rt6_uncached_list_del(struct rt6_info *rt);
|
||||
|
||||
@ -326,7 +326,7 @@
|
||||
}
|
||||
|
||||
if (unlikely(test_bit(BR_FDB_ADDED_BY_USER, &flags)))
|
||||
@@ -1471,3 +1533,62 @@ void br_fdb_clear_offload(const struct n
|
||||
@@ -1469,3 +1531,62 @@ void br_fdb_clear_offload(const struct n
|
||||
spin_unlock_bh(&p->br->hash_lock);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(br_fdb_clear_offload);
|
||||
@ -609,7 +609,7 @@
|
||||
return 0;
|
||||
|
||||
out_remove_new_fa:
|
||||
@@ -1775,6 +1781,9 @@ int fib_table_delete(struct net *net, st
|
||||
@@ -1776,6 +1782,9 @@ int fib_table_delete(struct net *net, st
|
||||
if (fa_to_delete->fa_state & FA_S_ACCESSED)
|
||||
rt_cache_flush(cfg->fc_nlinfo.nl_net);
|
||||
|
||||
@ -619,7 +619,7 @@
|
||||
fib_release_info(fa_to_delete->fa_info);
|
||||
alias_free_mem_rcu(fa_to_delete);
|
||||
return 0;
|
||||
@@ -2407,6 +2416,20 @@ void __init fib_trie_init(void)
|
||||
@@ -2408,6 +2417,20 @@ void __init fib_trie_init(void)
|
||||
0, SLAB_PANIC | SLAB_ACCOUNT, NULL);
|
||||
}
|
||||
|
||||
@ -642,7 +642,7 @@
|
||||
struct fib_table *tb;
|
||||
--- a/net/ipv6/ndisc.c
|
||||
+++ b/net/ipv6/ndisc.c
|
||||
@@ -666,6 +666,7 @@ void ndisc_send_ns(struct net_device *de
|
||||
@@ -668,6 +668,7 @@ void ndisc_send_ns(struct net_device *de
|
||||
if (skb)
|
||||
ndisc_send_skb(skb, daddr, saddr);
|
||||
}
|
||||
@ -724,7 +724,7 @@
|
||||
|
||||
static void
|
||||
ipv6_link_dev_addr(struct inet6_dev *idev, struct inet6_ifaddr *ifp)
|
||||
@@ -2061,6 +2062,36 @@ struct inet6_ifaddr *ipv6_get_ifaddr(str
|
||||
@@ -2062,6 +2063,36 @@ struct inet6_ifaddr *ipv6_get_ifaddr(str
|
||||
|
||||
return result;
|
||||
}
|
||||
|
@ -8,7 +8,7 @@
|
||||
|
||||
#include <linux/nsproxy.h>
|
||||
#include <net/net_namespace.h>
|
||||
@@ -254,6 +255,25 @@ struct ppp_net {
|
||||
@@ -255,6 +256,25 @@ struct ppp_net {
|
||||
#define seq_before(a, b) ((s32)((a) - (b)) < 0)
|
||||
#define seq_after(a, b) ((s32)((a) - (b)) > 0)
|
||||
|
||||
@ -34,7 +34,7 @@
|
||||
/* Prototypes. */
|
||||
static int ppp_unattached_ioctl(struct net *net, struct ppp_file *pf,
|
||||
struct file *file, unsigned int cmd, unsigned long arg);
|
||||
@@ -3453,7 +3473,10 @@ ppp_connect_channel(struct channel *pch,
|
||||
@@ -3468,7 +3488,10 @@ ppp_connect_channel(struct channel *pch,
|
||||
struct ppp_net *pn;
|
||||
int ret = -ENXIO;
|
||||
int hdrlen;
|
||||
@ -45,7 +45,7 @@
|
||||
pn = ppp_pernet(pch->chan_net);
|
||||
|
||||
mutex_lock(&pn->all_ppp_mutex);
|
||||
@@ -3485,13 +3508,40 @@ ppp_connect_channel(struct channel *pch,
|
||||
@@ -3500,13 +3523,40 @@ ppp_connect_channel(struct channel *pch,
|
||||
++ppp->n_channels;
|
||||
pch->ppp = ppp;
|
||||
refcount_inc(&ppp->file.refcnt);
|
||||
@ -87,7 +87,7 @@
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -3509,6 +3559,13 @@ ppp_disconnect_channel(struct channel *p
|
||||
@@ -3524,6 +3574,13 @@ ppp_disconnect_channel(struct channel *p
|
||||
pch->ppp = NULL;
|
||||
write_unlock_bh(&pch->upl);
|
||||
if (ppp) {
|
||||
@ -101,7 +101,7 @@
|
||||
/* remove it from the ppp unit's list */
|
||||
ppp_lock(ppp);
|
||||
list_del(&pch->clist);
|
||||
@@ -3588,6 +3645,222 @@ static void *unit_find(struct idr *p, in
|
||||
@@ -3603,6 +3660,222 @@ static void *unit_find(struct idr *p, in
|
||||
return idr_find(p, n);
|
||||
}
|
||||
|
||||
@ -324,7 +324,7 @@
|
||||
/* Module/initialization stuff */
|
||||
|
||||
module_init(ppp_init);
|
||||
@@ -3604,6 +3877,7 @@ EXPORT_SYMBOL(ppp_input_error);
|
||||
@@ -3619,6 +3892,7 @@ EXPORT_SYMBOL(ppp_input_error);
|
||||
EXPORT_SYMBOL(ppp_output_wakeup);
|
||||
EXPORT_SYMBOL(ppp_register_compressor);
|
||||
EXPORT_SYMBOL(ppp_unregister_compressor);
|
||||
|
@ -9,7 +9,7 @@
|
||||
static struct flow_dissector flow_keys_bonding __read_mostly;
|
||||
|
||||
/*-------------------------- Forward declarations ---------------------------*/
|
||||
@@ -4383,6 +4385,24 @@ static int bond_get_lowest_level_rcu(str
|
||||
@@ -4411,6 +4413,24 @@ static int bond_get_lowest_level_rcu(str
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -34,7 +34,7 @@
|
||||
static void bond_get_stats(struct net_device *bond_dev,
|
||||
struct rtnl_link_stats64 *stats)
|
||||
{
|
||||
@@ -5795,6 +5815,11 @@ static void bond_destructor(struct net_d
|
||||
@@ -5823,6 +5843,11 @@ static void bond_destructor(struct net_d
|
||||
|
||||
if (bond->rr_tx_counter)
|
||||
free_percpu(bond->rr_tx_counter);
|
||||
@ -46,7 +46,7 @@
|
||||
}
|
||||
|
||||
void bond_setup(struct net_device *bond_dev)
|
||||
@@ -6358,6 +6383,14 @@ int bond_create(struct net *net, const c
|
||||
@@ -6386,6 +6411,14 @@ int bond_create(struct net *net, const c
|
||||
|
||||
bond_work_init_all(bond);
|
||||
|
||||
|
@ -213,7 +213,7 @@
|
||||
{
|
||||
--- a/drivers/net/bonding/bond_main.c
|
||||
+++ b/drivers/net/bonding/bond_main.c
|
||||
@@ -1186,6 +1186,23 @@ void bond_change_active_slave(struct bon
|
||||
@@ -1214,6 +1214,23 @@ void bond_change_active_slave(struct bon
|
||||
if (BOND_MODE(bond) == BOND_MODE_8023AD)
|
||||
bond_3ad_handle_link_change(new_active, BOND_LINK_UP);
|
||||
|
||||
@ -237,7 +237,7 @@
|
||||
if (bond_is_lb(bond))
|
||||
bond_alb_handle_link_change(bond, new_active, BOND_LINK_UP);
|
||||
} else {
|
||||
@@ -1809,6 +1826,7 @@ int bond_enslave(struct net_device *bond
|
||||
@@ -1837,6 +1854,7 @@ int bond_enslave(struct net_device *bond
|
||||
const struct net_device_ops *slave_ops = slave_dev->netdev_ops;
|
||||
struct slave *new_slave = NULL, *prev_slave;
|
||||
struct sockaddr_storage ss;
|
||||
@ -245,7 +245,7 @@
|
||||
int link_reporting;
|
||||
int res = 0, i;
|
||||
|
||||
@@ -2252,6 +2270,15 @@ int bond_enslave(struct net_device *bond
|
||||
@@ -2280,6 +2298,15 @@ int bond_enslave(struct net_device *bond
|
||||
bond_is_active_slave(new_slave) ? "an active" : "a backup",
|
||||
new_slave->link != BOND_LINK_DOWN ? "an up" : "a down");
|
||||
|
||||
@ -261,7 +261,7 @@
|
||||
/* enslave is successful */
|
||||
bond_queue_slave_event(new_slave);
|
||||
return 0;
|
||||
@@ -2317,6 +2344,15 @@ err_undo_flags:
|
||||
@@ -2345,6 +2372,15 @@ err_undo_flags:
|
||||
}
|
||||
}
|
||||
|
||||
@ -277,7 +277,7 @@
|
||||
return res;
|
||||
}
|
||||
|
||||
@@ -2339,6 +2375,7 @@ static int __bond_release_one(struct net
|
||||
@@ -2367,6 +2403,7 @@ static int __bond_release_one(struct net
|
||||
struct slave *slave, *oldcurrent;
|
||||
struct sockaddr_storage ss;
|
||||
int old_flags = bond_dev->flags;
|
||||
@ -285,7 +285,7 @@
|
||||
netdev_features_t old_features = bond_dev->features;
|
||||
|
||||
/* slave is not a slave or master is not master of this slave */
|
||||
@@ -2360,6 +2397,15 @@ static int __bond_release_one(struct net
|
||||
@@ -2388,6 +2425,15 @@ static int __bond_release_one(struct net
|
||||
|
||||
bond_set_slave_inactive_flags(slave, BOND_SLAVE_NOTIFY_NOW);
|
||||
|
||||
@ -301,7 +301,7 @@
|
||||
bond_sysfs_slave_del(slave);
|
||||
|
||||
/* recompute stats just before removing the slave */
|
||||
@@ -2679,6 +2725,8 @@ static void bond_miimon_commit(struct bo
|
||||
@@ -2707,6 +2753,8 @@ static void bond_miimon_commit(struct bo
|
||||
struct slave *slave, *primary, *active;
|
||||
bool do_failover = false;
|
||||
struct list_head *iter;
|
||||
@ -310,7 +310,7 @@
|
||||
|
||||
ASSERT_RTNL();
|
||||
|
||||
@@ -2718,6 +2766,12 @@ static void bond_miimon_commit(struct bo
|
||||
@@ -2746,6 +2794,12 @@ static void bond_miimon_commit(struct bo
|
||||
bond_set_active_slave(slave);
|
||||
}
|
||||
|
||||
@ -323,7 +323,7 @@
|
||||
slave_info(bond->dev, slave->dev, "link status definitely up, %u Mbps %s duplex\n",
|
||||
slave->speed == SPEED_UNKNOWN ? 0 : slave->speed,
|
||||
slave->duplex ? "full" : "half");
|
||||
@@ -2766,6 +2820,16 @@ static void bond_miimon_commit(struct bo
|
||||
@@ -2794,6 +2848,16 @@ static void bond_miimon_commit(struct bo
|
||||
unblock_netpoll_tx();
|
||||
}
|
||||
|
||||
@ -340,7 +340,7 @@
|
||||
bond_set_carrier(bond);
|
||||
}
|
||||
|
||||
@@ -4013,9 +4077,220 @@ static inline u32 bond_eth_hash(struct s
|
||||
@@ -4041,9 +4105,220 @@ static inline u32 bond_eth_hash(struct s
|
||||
return 0;
|
||||
|
||||
ep = (struct ethhdr *)(data + mhoff);
|
||||
@ -562,7 +562,7 @@
|
||||
static bool bond_flow_ip(struct sk_buff *skb, struct flow_keys *fk, const void *data,
|
||||
int hlen, __be16 l2_proto, int *nhoff, int *ip_proto, bool l34)
|
||||
{
|
||||
@@ -5211,15 +5486,23 @@ static netdev_tx_t bond_3ad_xor_xmit(str
|
||||
@@ -5239,15 +5514,23 @@ static netdev_tx_t bond_3ad_xor_xmit(str
|
||||
struct net_device *dev)
|
||||
{
|
||||
struct bonding *bond = netdev_priv(dev);
|
||||
@ -593,7 +593,7 @@
|
||||
}
|
||||
|
||||
/* in broadcast mode, we send everything to all usable interfaces. */
|
||||
@@ -5469,8 +5752,9 @@ static netdev_tx_t __bond_start_xmit(str
|
||||
@@ -5497,8 +5780,9 @@ static netdev_tx_t __bond_start_xmit(str
|
||||
return bond_xmit_roundrobin(skb, dev);
|
||||
case BOND_MODE_ACTIVEBACKUP:
|
||||
return bond_xmit_activebackup(skb, dev);
|
||||
|
@ -17,7 +17,7 @@ Signed-off-by: Shivani Soni <quic_soni@quicinc.com>
|
||||
|
||||
--- a/drivers/net/bonding/bond_main.c
|
||||
+++ b/drivers/net/bonding/bond_main.c
|
||||
@@ -1439,6 +1439,10 @@ static netdev_features_t bond_fix_featur
|
||||
@@ -1467,6 +1467,10 @@ static netdev_features_t bond_fix_featur
|
||||
return features;
|
||||
}
|
||||
|
||||
@ -28,7 +28,7 @@ Signed-off-by: Shivani Soni <quic_soni@quicinc.com>
|
||||
#define BOND_VLAN_FEATURES (NETIF_F_HW_CSUM | NETIF_F_SG | \
|
||||
NETIF_F_FRAGLIST | NETIF_F_GSO_SOFTWARE | \
|
||||
NETIF_F_HIGHDMA | NETIF_F_LRO)
|
||||
@@ -1469,13 +1473,25 @@ static void bond_compute_features(struct
|
||||
@@ -1497,13 +1501,25 @@ static void bond_compute_features(struct
|
||||
|
||||
if (!bond_has_slaves(bond))
|
||||
goto done;
|
||||
@ -57,7 +57,7 @@ Signed-off-by: Shivani Soni <quic_soni@quicinc.com>
|
||||
enc_features = netdev_increment_features(enc_features,
|
||||
slave->dev->hw_enc_features,
|
||||
BOND_ENC_FEATURES);
|
||||
@@ -1620,6 +1636,16 @@ static rx_handler_result_t bond_handle_f
|
||||
@@ -1648,6 +1664,16 @@ static rx_handler_result_t bond_handle_f
|
||||
bond->dev->addr_len);
|
||||
}
|
||||
|
||||
@ -74,7 +74,7 @@ Signed-off-by: Shivani Soni <quic_soni@quicinc.com>
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -1837,6 +1863,8 @@ int bond_enslave(struct net_device *bond
|
||||
@@ -1865,6 +1891,8 @@ int bond_enslave(struct net_device *bond
|
||||
return -EPERM;
|
||||
}
|
||||
|
||||
@ -83,7 +83,7 @@ Signed-off-by: Shivani Soni <quic_soni@quicinc.com>
|
||||
if (!bond->params.use_carrier &&
|
||||
slave_dev->ethtool_ops->get_link == NULL &&
|
||||
slave_ops->ndo_eth_ioctl == NULL) {
|
||||
@@ -1950,13 +1978,17 @@ int bond_enslave(struct net_device *bond
|
||||
@@ -1978,13 +2006,17 @@ int bond_enslave(struct net_device *bond
|
||||
call_netdevice_notifiers(NETDEV_JOIN, slave_dev);
|
||||
|
||||
/* If this is the first slave, then we need to set the master's hardware
|
||||
@ -107,7 +107,7 @@ Signed-off-by: Shivani Soni <quic_soni@quicinc.com>
|
||||
}
|
||||
|
||||
new_slave = bond_alloc_slave(bond, slave_dev);
|
||||
@@ -1985,18 +2017,21 @@ int bond_enslave(struct net_device *bond
|
||||
@@ -2013,18 +2045,21 @@ int bond_enslave(struct net_device *bond
|
||||
bond_hw_addr_copy(new_slave->perm_hwaddr, slave_dev->dev_addr,
|
||||
slave_dev->addr_len);
|
||||
|
||||
@ -141,7 +141,7 @@ Signed-off-by: Shivani Soni <quic_soni@quicinc.com>
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2355,6 +2390,7 @@ err_undo_flags:
|
||||
@@ -2383,6 +2418,7 @@ err_undo_flags:
|
||||
|
||||
return res;
|
||||
}
|
||||
@ -149,7 +149,7 @@ Signed-off-by: Shivani Soni <quic_soni@quicinc.com>
|
||||
|
||||
/* Try to release the slave device <slave> from the bond device <master>
|
||||
* It is legal to access curr_active_slave without a lock because all the function
|
||||
@@ -2476,13 +2512,23 @@ static int __bond_release_one(struct net
|
||||
@@ -2504,13 +2540,23 @@ static int __bond_release_one(struct net
|
||||
}
|
||||
|
||||
bond_set_carrier(bond);
|
||||
@ -175,7 +175,7 @@ Signed-off-by: Shivani Soni <quic_soni@quicinc.com>
|
||||
if (!bond_has_slaves(bond)) {
|
||||
call_netdevice_notifiers(NETDEV_CHANGEADDR, bond->dev);
|
||||
call_netdevice_notifiers(NETDEV_RELEASE, bond->dev);
|
||||
@@ -2549,6 +2595,7 @@ int bond_release(struct net_device *bond
|
||||
@@ -2577,6 +2623,7 @@ int bond_release(struct net_device *bond
|
||||
{
|
||||
return __bond_release_one(bond_dev, slave_dev, false, false);
|
||||
}
|
||||
@ -183,7 +183,7 @@ Signed-off-by: Shivani Soni <quic_soni@quicinc.com>
|
||||
|
||||
/* First release a slave and then destroy the bond if no more slaves are left.
|
||||
* Must be under rtnl_lock when this function is called.
|
||||
@@ -2570,6 +2617,29 @@ static int bond_release_and_destroy(stru
|
||||
@@ -2598,6 +2645,29 @@ static int bond_release_and_destroy(stru
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -213,7 +213,7 @@ Signed-off-by: Shivani Soni <quic_soni@quicinc.com>
|
||||
static void bond_info_query(struct net_device *bond_dev, struct ifbond *info)
|
||||
{
|
||||
struct bonding *bond = netdev_priv(bond_dev);
|
||||
@@ -4221,6 +4291,24 @@ static struct net_device *bond_xor_get_t
|
||||
@@ -4249,6 +4319,24 @@ static struct net_device *bond_xor_get_t
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -238,7 +238,7 @@ Signed-off-by: Shivani Soni <quic_soni@quicinc.com>
|
||||
/* bond_get_tx_dev - Calculate egress interface for a given packet.
|
||||
*
|
||||
* Supports 802.3AD and balance-xor modes
|
||||
@@ -4261,6 +4349,9 @@ struct net_device *bond_get_tx_dev(struc
|
||||
@@ -4289,6 +4377,9 @@ struct net_device *bond_get_tx_dev(struc
|
||||
return bond_3ad_get_tx_dev(skb, src_mac, dst_mac,
|
||||
src, dst, protocol,
|
||||
bond_dev, layer4hdr);
|
||||
@ -248,7 +248,7 @@ Signed-off-by: Shivani Soni <quic_soni@quicinc.com>
|
||||
default:
|
||||
return NULL;
|
||||
}
|
||||
@@ -5057,20 +5148,26 @@ static int bond_set_mac_address(struct n
|
||||
@@ -5085,20 +5176,26 @@ static int bond_set_mac_address(struct n
|
||||
if (!is_valid_ether_addr(ss->__data))
|
||||
return -EADDRNOTAVAIL;
|
||||
|
||||
@ -289,7 +289,7 @@ Signed-off-by: Shivani Soni <quic_soni@quicinc.com>
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5734,6 +5831,27 @@ static netdev_tx_t bond_tls_device_xmit(
|
||||
@@ -5762,6 +5859,27 @@ static netdev_tx_t bond_tls_device_xmit(
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -317,7 +317,7 @@ Signed-off-by: Shivani Soni <quic_soni@quicinc.com>
|
||||
static netdev_tx_t __bond_start_xmit(struct sk_buff *skb, struct net_device *dev)
|
||||
{
|
||||
struct bonding *bond = netdev_priv(dev);
|
||||
@@ -5762,6 +5880,8 @@ static netdev_tx_t __bond_start_xmit(str
|
||||
@@ -5790,6 +5908,8 @@ static netdev_tx_t __bond_start_xmit(str
|
||||
return bond_alb_xmit(skb, dev);
|
||||
case BOND_MODE_TLB:
|
||||
return bond_tlb_xmit(skb, dev);
|
||||
@ -326,7 +326,7 @@ Signed-off-by: Shivani Soni <quic_soni@quicinc.com>
|
||||
default:
|
||||
/* Should never happen, mode already checked */
|
||||
netdev_err(dev, "Unknown bonding mode %d\n", BOND_MODE(bond));
|
||||
@@ -6104,6 +6224,15 @@ static void bond_destructor(struct net_d
|
||||
@@ -6132,6 +6252,15 @@ static void bond_destructor(struct net_d
|
||||
if (bond->id != (~0U))
|
||||
clear_bit(bond->id, &bond_id_mask);
|
||||
/* QCA NSS ECM bonding support */
|
||||
@ -342,7 +342,7 @@ Signed-off-by: Shivani Soni <quic_soni@quicinc.com>
|
||||
}
|
||||
|
||||
void bond_setup(struct net_device *bond_dev)
|
||||
@@ -6680,6 +6809,76 @@ out:
|
||||
@@ -6708,6 +6837,76 @@ out:
|
||||
return res;
|
||||
}
|
||||
|
||||
|
@ -373,7 +373,7 @@
|
||||
subsys_initcall(pktsched_init);
|
||||
--- a/net/sched/sch_generic.c
|
||||
+++ b/net/sched/sch_generic.c
|
||||
@@ -1073,6 +1073,7 @@ static void __qdisc_destroy(struct Qdisc
|
||||
@@ -1074,6 +1074,7 @@ static void __qdisc_destroy(struct Qdisc
|
||||
|
||||
call_rcu(&qdisc->rcu, qdisc_free_cb);
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
--- a/net/l2tp/l2tp_core.c
|
||||
+++ b/net/l2tp/l2tp_core.c
|
||||
@@ -398,6 +398,31 @@ err_tlock:
|
||||
@@ -403,6 +403,31 @@ err_tlock:
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(l2tp_session_register);
|
||||
|
||||
|
@ -51,7 +51,7 @@
|
||||
#endif /* !(__LINUX_IF_PPPOX_H) */
|
||||
--- a/drivers/net/ppp/ppp_generic.c
|
||||
+++ b/drivers/net/ppp/ppp_generic.c
|
||||
@@ -2973,6 +2973,20 @@ char *ppp_dev_name(struct ppp_channel *c
|
||||
@@ -2988,6 +2988,20 @@ char *ppp_dev_name(struct ppp_channel *c
|
||||
return name;
|
||||
}
|
||||
|
||||
@ -72,7 +72,7 @@
|
||||
|
||||
/*
|
||||
* Disconnect a channel from the generic layer.
|
||||
@@ -3681,6 +3695,28 @@ void ppp_update_stats(struct net_device
|
||||
@@ -3696,6 +3710,28 @@ void ppp_update_stats(struct net_device
|
||||
ppp_recv_unlock(ppp);
|
||||
}
|
||||
|
||||
@ -101,7 +101,7 @@
|
||||
/* Returns >0 if the device is a multilink PPP netdevice, 0 if not or < 0 if
|
||||
* the device is not PPP.
|
||||
*/
|
||||
@@ -3872,6 +3908,7 @@ EXPORT_SYMBOL(ppp_unregister_channel);
|
||||
@@ -3887,6 +3923,7 @@ EXPORT_SYMBOL(ppp_unregister_channel);
|
||||
EXPORT_SYMBOL(ppp_channel_index);
|
||||
EXPORT_SYMBOL(ppp_unit_number);
|
||||
EXPORT_SYMBOL(ppp_dev_name);
|
||||
|
@ -22,7 +22,7 @@
|
||||
#endif /* __NET_IP_TUNNELS_H */
|
||||
--- a/net/ipv6/ip6_tunnel.c
|
||||
+++ b/net/ipv6/ip6_tunnel.c
|
||||
@@ -2413,6 +2413,26 @@ nla_put_failure:
|
||||
@@ -2415,6 +2415,26 @@ nla_put_failure:
|
||||
return -EMSGSIZE;
|
||||
}
|
||||
|
||||
|
@ -261,7 +261,7 @@
|
||||
|
||||
--- a/drivers/net/ppp/ppp_generic.c
|
||||
+++ b/drivers/net/ppp/ppp_generic.c
|
||||
@@ -3743,6 +3743,32 @@ int ppp_is_multilink(struct net_device *
|
||||
@@ -3758,6 +3758,32 @@ int ppp_is_multilink(struct net_device *
|
||||
}
|
||||
EXPORT_SYMBOL(ppp_is_multilink);
|
||||
|
||||
@ -294,7 +294,7 @@
|
||||
/* ppp_channel_get_protocol()
|
||||
* Call this to obtain the underlying protocol of the PPP channel,
|
||||
* e.g. PX_PROTO_OE
|
||||
@@ -3881,6 +3907,59 @@ int ppp_hold_channels(struct net_device
|
||||
@@ -3896,6 +3922,59 @@ int ppp_hold_channels(struct net_device
|
||||
}
|
||||
EXPORT_SYMBOL(ppp_hold_channels);
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
--- a/net/ipv6/ip6_tunnel.c
|
||||
+++ b/net/ipv6/ip6_tunnel.c
|
||||
@@ -2419,7 +2419,7 @@ nla_put_failure:
|
||||
@@ -2421,7 +2421,7 @@ nla_put_failure:
|
||||
*/
|
||||
void ip6_update_offload_stats(struct net_device *dev, void *ptr)
|
||||
{
|
||||
|
@ -25,7 +25,7 @@
|
||||
* flag unset if they can't handle memory allocation failures.
|
||||
--- a/net/ipv4/esp4.c
|
||||
+++ b/net/ipv4/esp4.c
|
||||
@@ -658,6 +658,7 @@ static int esp_output(struct xfrm_state
|
||||
@@ -657,6 +657,7 @@ static int esp_output(struct xfrm_state
|
||||
struct ip_esp_hdr *esph;
|
||||
struct crypto_aead *aead;
|
||||
struct esp_info esp;
|
||||
@ -33,7 +33,7 @@
|
||||
|
||||
esp.inplace = true;
|
||||
|
||||
@@ -669,6 +670,11 @@ static int esp_output(struct xfrm_state
|
||||
@@ -668,6 +669,11 @@ static int esp_output(struct xfrm_state
|
||||
aead = x->data;
|
||||
alen = crypto_aead_authsize(aead);
|
||||
|
||||
@ -45,7 +45,7 @@
|
||||
esp.tfclen = 0;
|
||||
if (x->tfcpad) {
|
||||
struct xfrm_dst *dst = (struct xfrm_dst *)skb_dst(skb);
|
||||
@@ -890,6 +896,7 @@ static int esp_input(struct xfrm_state *
|
||||
@@ -889,6 +895,7 @@ static int esp_input(struct xfrm_state *
|
||||
u8 *iv;
|
||||
struct scatterlist *sg;
|
||||
int err = -EINVAL;
|
||||
@ -53,7 +53,7 @@
|
||||
|
||||
if (!pskb_may_pull(skb, sizeof(struct ip_esp_hdr) + ivlen))
|
||||
goto out;
|
||||
@@ -897,6 +904,12 @@ static int esp_input(struct xfrm_state *
|
||||
@@ -896,6 +903,12 @@ static int esp_input(struct xfrm_state *
|
||||
if (elen <= 0)
|
||||
goto out;
|
||||
|
||||
@ -68,7 +68,7 @@
|
||||
|
||||
--- a/net/ipv6/esp6.c
|
||||
+++ b/net/ipv6/esp6.c
|
||||
@@ -696,6 +696,7 @@ static int esp6_output(struct xfrm_state
|
||||
@@ -695,6 +695,7 @@ static int esp6_output(struct xfrm_state
|
||||
struct ip_esp_hdr *esph;
|
||||
struct crypto_aead *aead;
|
||||
struct esp_info esp;
|
||||
@ -76,7 +76,7 @@
|
||||
|
||||
esp.inplace = true;
|
||||
|
||||
@@ -707,6 +708,11 @@ static int esp6_output(struct xfrm_state
|
||||
@@ -706,6 +707,11 @@ static int esp6_output(struct xfrm_state
|
||||
aead = x->data;
|
||||
alen = crypto_aead_authsize(aead);
|
||||
|
||||
@ -88,7 +88,7 @@
|
||||
esp.tfclen = 0;
|
||||
if (x->tfcpad) {
|
||||
struct xfrm_dst *dst = (struct xfrm_dst *)skb_dst(skb);
|
||||
@@ -934,6 +940,7 @@ static int esp6_input(struct xfrm_state
|
||||
@@ -933,6 +939,7 @@ static int esp6_input(struct xfrm_state
|
||||
__be32 *seqhi;
|
||||
u8 *iv;
|
||||
struct scatterlist *sg;
|
||||
@ -96,7 +96,7 @@
|
||||
|
||||
if (!pskb_may_pull(skb, sizeof(struct ip_esp_hdr) + ivlen)) {
|
||||
ret = -EINVAL;
|
||||
@@ -945,6 +952,12 @@ static int esp6_input(struct xfrm_state
|
||||
@@ -944,6 +951,12 @@ static int esp6_input(struct xfrm_state
|
||||
goto out;
|
||||
}
|
||||
|
||||
|
@ -68,7 +68,7 @@ Signed-off-by: Andrea Righi <andrea.righi@canonical.com>
|
||||
|
||||
--- a/net/ipv6/ip6_output.c
|
||||
+++ b/net/ipv6/ip6_output.c
|
||||
@@ -498,6 +498,9 @@ int ip6_forward(struct sk_buff *skb)
|
||||
@@ -506,6 +506,9 @@ int ip6_forward(struct sk_buff *skb)
|
||||
u32 mtu;
|
||||
|
||||
idev = __in6_dev_get_safely(dev_get_by_index_rcu(net, IP6CB(skb)->iif));
|
||||
|
@ -1,76 +0,0 @@
|
||||
From b7f824141f4163c64a940f3a69bf6d8b76f77c7f Mon Sep 17 00:00:00 2001
|
||||
From: Niklas Cassel <cassel@kernel.org>
|
||||
Date: Wed, 17 Apr 2024 18:42:26 +0200
|
||||
Subject: [PATCH] PCI: dw-rockchip: Fix initial PERST# GPIO value
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
PERST# is active low according to the PCIe specification.
|
||||
|
||||
However, the existing pcie-dw-rockchip.c driver does:
|
||||
|
||||
gpiod_set_value(..., 0); msleep(100); gpiod_set_value(..., 1);
|
||||
|
||||
when asserting + deasserting PERST#.
|
||||
|
||||
This is of course wrong, but because all the device trees for this
|
||||
compatible string have also incorrectly marked this GPIO as ACTIVE_HIGH:
|
||||
|
||||
$ git grep -B 10 reset-gpios arch/arm64/boot/dts/rockchip/rk3568*
|
||||
$ git grep -B 10 reset-gpios arch/arm64/boot/dts/rockchip/rk3588*
|
||||
|
||||
The actual toggling of PERST# is correct, and we cannot change it anyway,
|
||||
since that would break device tree compatibility.
|
||||
|
||||
However, this driver does request the GPIO to be initialized as
|
||||
GPIOD_OUT_HIGH, which does cause a silly sequence where PERST# gets
|
||||
toggled back and forth for no good reason.
|
||||
|
||||
Fix this by requesting the GPIO to be initialized as GPIOD_OUT_LOW (which
|
||||
for this driver means PERST# asserted).
|
||||
|
||||
This will avoid an unnecessary signal change where PERST# gets deasserted
|
||||
(by devm_gpiod_get_optional()) and then gets asserted (by
|
||||
rockchip_pcie_start_link()) just a few instructions later.
|
||||
|
||||
Before patch, debug prints on EP side, when booting RC:
|
||||
|
||||
[ 845.606810] pci: PERST# asserted by host!
|
||||
[ 852.483985] pci: PERST# de-asserted by host!
|
||||
[ 852.503041] pci: PERST# asserted by host!
|
||||
[ 852.610318] pci: PERST# de-asserted by host!
|
||||
|
||||
After patch, debug prints on EP side, when booting RC:
|
||||
|
||||
[ 125.107921] pci: PERST# asserted by host!
|
||||
[ 132.111429] pci: PERST# de-asserted by host!
|
||||
|
||||
This extra, very short, PERST# assertion + deassertion has been reported to
|
||||
cause issues with certain WLAN controllers, e.g. RTL8822CE.
|
||||
|
||||
Fixes: 0e898eb8df4e ("PCI: rockchip-dwc: Add Rockchip RK356X host controller driver")
|
||||
Link: https://lore.kernel.org/linux-pci/20240417164227.398901-1-cassel@kernel.org
|
||||
Tested-by: Heiko Stuebner <heiko@sntech.de>
|
||||
Tested-by: Jianfeng Liu <liujianfeng1994@gmail.com>
|
||||
Signed-off-by: Niklas Cassel <cassel@kernel.org>
|
||||
Signed-off-by: Krzysztof Wilczyński <kwilczynski@kernel.org>
|
||||
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
|
||||
Reviewed-by: Heiko Stuebner <heiko@sntech.de>
|
||||
Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
|
||||
Cc: stable@vger.kernel.org # v5.15+
|
||||
---
|
||||
drivers/pci/controller/dwc/pcie-dw-rockchip.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
--- a/drivers/pci/controller/dwc/pcie-dw-rockchip.c
|
||||
+++ b/drivers/pci/controller/dwc/pcie-dw-rockchip.c
|
||||
@@ -240,7 +240,7 @@ static int rockchip_pcie_resource_get(st
|
||||
return PTR_ERR(rockchip->apb_base);
|
||||
|
||||
rockchip->rst_gpio = devm_gpiod_get_optional(&pdev->dev, "reset",
|
||||
- GPIOD_OUT_HIGH);
|
||||
+ GPIOD_OUT_LOW);
|
||||
if (IS_ERR(rockchip->rst_gpio))
|
||||
return PTR_ERR(rockchip->rst_gpio);
|
||||
|
@ -25,7 +25,7 @@ Subject: [PATCH] r8169: add LED configuration from OF
|
||||
TxDescStartAddrLow = 0x20,
|
||||
TxDescStartAddrHigh = 0x24,
|
||||
TxHDescStartAddrLow = 0x28,
|
||||
@@ -5264,6 +5266,22 @@ static bool rtl_aspm_is_safe(struct rtl8
|
||||
@@ -5260,6 +5262,22 @@ static bool rtl_aspm_is_safe(struct rtl8
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -48,7 +48,7 @@ Subject: [PATCH] r8169: add LED configuration from OF
|
||||
static int rtl_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
|
||||
{
|
||||
struct rtl8169_private *tp;
|
||||
@@ -5435,6 +5453,7 @@ static int rtl_init_one(struct pci_dev *
|
||||
@@ -5431,6 +5449,7 @@ static int rtl_init_one(struct pci_dev *
|
||||
if (!tp->counters)
|
||||
return -ENOMEM;
|
||||
|
||||
|
@ -18,7 +18,7 @@ Subject: [PATCH] net: phy: realtek: add LED configuration from OF for 8211f
|
||||
#define RTL8211F_PHYCR1 0x18
|
||||
#define RTL8211F_PHYCR2 0x19
|
||||
#define RTL8211F_INSR 0x1d
|
||||
@@ -350,6 +352,7 @@ static int rtl8211f_config_init(struct p
|
||||
@@ -354,6 +356,7 @@ static int rtl8211f_config_init(struct p
|
||||
struct rtl821x_priv *priv = phydev->priv;
|
||||
struct device *dev = &phydev->mdio.dev;
|
||||
u16 val_txdly, val_rxdly;
|
||||
@ -26,7 +26,7 @@ Subject: [PATCH] net: phy: realtek: add LED configuration from OF for 8211f
|
||||
int ret;
|
||||
|
||||
ret = phy_modify_paged_changed(phydev, 0xa43, RTL8211F_PHYCR1,
|
||||
@@ -416,6 +419,15 @@ static int rtl8211f_config_init(struct p
|
||||
@@ -420,6 +423,15 @@ static int rtl8211f_config_init(struct p
|
||||
val_rxdly ? "enabled" : "disabled");
|
||||
}
|
||||
|
||||
|
@ -24,7 +24,7 @@ Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
|
||||
|
||||
--- a/drivers/mmc/core/core.c
|
||||
+++ b/drivers/mmc/core/core.c
|
||||
@@ -1371,6 +1371,8 @@ void mmc_power_off(struct mmc_host *host
|
||||
@@ -1370,6 +1370,8 @@ void mmc_power_off(struct mmc_host *host
|
||||
|
||||
mmc_pwrseq_power_off(host);
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
--- a/arch/arm64/Kconfig
|
||||
+++ b/arch/arm64/Kconfig
|
||||
@@ -1169,6 +1169,14 @@ config SOCIONEXT_SYNQUACER_PREITS
|
||||
@@ -1207,6 +1207,14 @@ config SOCIONEXT_SYNQUACER_PREITS
|
||||
|
||||
If unsure, say Y.
|
||||
|
||||
@ -83,7 +83,7 @@
|
||||
};
|
||||
|
||||
usb_host0_ehci: usb@fd800000 {
|
||||
@@ -978,7 +985,7 @@
|
||||
@@ -979,7 +986,7 @@
|
||||
num-ib-windows = <6>;
|
||||
num-ob-windows = <2>;
|
||||
max-link-speed = <2>;
|
||||
|
@ -138,7 +138,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its
|
||||
if (alloc_lpis) {
|
||||
lpi_map = its_lpi_alloc(nvecs, &lpi_base, &nr_lpis);
|
||||
if (lpi_map)
|
||||
@@ -4706,6 +4743,13 @@ static bool __maybe_unused its_enable_qu
|
||||
@@ -4704,6 +4741,13 @@ static bool __maybe_unused its_enable_qu
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -152,7 +152,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its
|
||||
static const struct gic_quirk its_quirks[] = {
|
||||
#ifdef CONFIG_CAVIUM_ERRATUM_22375
|
||||
{
|
||||
@@ -4752,6 +4796,14 @@ static const struct gic_quirk its_quirks
|
||||
@@ -4750,6 +4794,14 @@ static const struct gic_quirk its_quirks
|
||||
.init = its_enable_quirk_hip07_161600802,
|
||||
},
|
||||
#endif
|
||||
@ -167,7 +167,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its
|
||||
{
|
||||
}
|
||||
};
|
||||
@@ -5007,6 +5059,7 @@ static int __init its_probe_one(struct r
|
||||
@@ -5005,6 +5057,7 @@ static int __init its_probe_one(struct r
|
||||
struct page *page;
|
||||
u32 ctlr;
|
||||
int err;
|
||||
@ -175,7 +175,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its
|
||||
|
||||
its_base = its_map_one(res, &err);
|
||||
if (!its_base)
|
||||
@@ -5060,7 +5113,9 @@ static int __init its_probe_one(struct r
|
||||
@@ -5058,7 +5111,9 @@ static int __init its_probe_one(struct r
|
||||
|
||||
its->numa_node = numa_node;
|
||||
|
||||
@ -186,7 +186,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its
|
||||
get_order(ITS_CMD_QUEUE_SZ));
|
||||
if (!page) {
|
||||
err = -ENOMEM;
|
||||
@@ -5091,6 +5146,9 @@ static int __init its_probe_one(struct r
|
||||
@@ -5089,6 +5144,9 @@ static int __init its_probe_one(struct r
|
||||
gits_write_cbaser(baser, its->base + GITS_CBASER);
|
||||
tmp = gits_read_cbaser(its->base + GITS_CBASER);
|
||||
|
||||
|
@ -12,7 +12,7 @@ Change-Id: I2c1d32907168caf8a8afee6d1f742795b3d13536
|
||||
|
||||
--- a/drivers/pinctrl/pinctrl-rockchip.c
|
||||
+++ b/drivers/pinctrl/pinctrl-rockchip.c
|
||||
@@ -2019,6 +2019,150 @@ static int rk3568_calc_pull_reg_and_bit(
|
||||
@@ -2006,6 +2006,150 @@ static int rk3568_calc_pull_reg_and_bit(
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -163,7 +163,7 @@ Change-Id: I2c1d32907168caf8a8afee6d1f742795b3d13536
|
||||
#define RK3568_DRV_PMU_OFFSET 0x70
|
||||
#define RK3568_DRV_GRF_OFFSET 0x200
|
||||
#define RK3568_DRV_BITS_PER_PIN 8
|
||||
@@ -2342,6 +2486,10 @@ static int rockchip_set_drive_perpin(str
|
||||
@@ -2329,6 +2473,10 @@ static int rockchip_set_drive_perpin(str
|
||||
rmask_bits = RK3588_DRV_BITS_PER_PIN;
|
||||
ret = strength;
|
||||
goto config;
|
||||
@ -174,7 +174,7 @@ Change-Id: I2c1d32907168caf8a8afee6d1f742795b3d13536
|
||||
} else if (ctrl->type == RK3568) {
|
||||
rmask_bits = RK3568_DRV_BITS_PER_PIN;
|
||||
ret = (1 << (strength + 1)) - 1;
|
||||
@@ -2482,6 +2630,7 @@ static int rockchip_get_pull(struct rock
|
||||
@@ -2469,6 +2617,7 @@ static int rockchip_get_pull(struct rock
|
||||
case RK3328:
|
||||
case RK3368:
|
||||
case RK3399:
|
||||
@ -182,7 +182,7 @@ Change-Id: I2c1d32907168caf8a8afee6d1f742795b3d13536
|
||||
case RK3568:
|
||||
case RK3588:
|
||||
pull_type = bank->pull_type[pin_num / 8];
|
||||
@@ -2541,6 +2690,7 @@ static int rockchip_set_pull(struct rock
|
||||
@@ -2528,6 +2677,7 @@ static int rockchip_set_pull(struct rock
|
||||
case RK3328:
|
||||
case RK3368:
|
||||
case RK3399:
|
||||
@ -190,7 +190,7 @@ Change-Id: I2c1d32907168caf8a8afee6d1f742795b3d13536
|
||||
case RK3568:
|
||||
case RK3588:
|
||||
pull_type = bank->pull_type[pin_num / 8];
|
||||
@@ -2806,6 +2956,7 @@ static bool rockchip_pinconf_pull_valid(
|
||||
@@ -2793,6 +2943,7 @@ static bool rockchip_pinconf_pull_valid(
|
||||
case RK3328:
|
||||
case RK3368:
|
||||
case RK3399:
|
||||
@ -198,7 +198,7 @@ Change-Id: I2c1d32907168caf8a8afee6d1f742795b3d13536
|
||||
case RK3568:
|
||||
case RK3588:
|
||||
return (pull != PIN_CONFIG_BIAS_PULL_PIN_DEFAULT);
|
||||
@@ -3931,6 +4082,49 @@ static struct rockchip_pin_ctrl rk3399_p
|
||||
@@ -3918,6 +4069,49 @@ static struct rockchip_pin_ctrl rk3399_p
|
||||
.drv_calc_reg = rk3399_calc_drv_reg_and_bit,
|
||||
};
|
||||
|
||||
@ -248,7 +248,7 @@ Change-Id: I2c1d32907168caf8a8afee6d1f742795b3d13536
|
||||
static struct rockchip_pin_bank rk3568_pin_banks[] = {
|
||||
PIN_BANK_IOMUX_FLAGS(0, 32, "gpio0", IOMUX_SOURCE_PMU | IOMUX_WIDTH_4BIT,
|
||||
IOMUX_SOURCE_PMU | IOMUX_WIDTH_4BIT,
|
||||
@@ -4024,6 +4218,8 @@ static const struct of_device_id rockchi
|
||||
@@ -4011,6 +4205,8 @@ static const struct of_device_id rockchi
|
||||
.data = &rk3368_pin_ctrl },
|
||||
{ .compatible = "rockchip,rk3399-pinctrl",
|
||||
.data = &rk3399_pin_ctrl },
|
||||
|
@ -179,7 +179,7 @@ Signed-off-by: hmz007 <hmz007@gmail.com>
|
||||
GATE(0, "clk_ddrupctl", "clk_ddr", CLK_IGNORE_UNUSED,
|
||||
--- a/drivers/clk/rockchip/clk.h
|
||||
+++ b/drivers/clk/rockchip/clk.h
|
||||
@@ -418,7 +418,8 @@ struct clk *rockchip_clk_register_mmc(co
|
||||
@@ -447,7 +447,8 @@ struct clk *rockchip_clk_register_mmc(co
|
||||
* DDRCLK flags, including method of setting the rate
|
||||
* ROCKCHIP_DDRCLK_SIP: use SIP call to bl31 to change ddrclk rate.
|
||||
*/
|
||||
|
@ -1,6 +1,6 @@
|
||||
--- a/arch/arm64/boot/dts/allwinner/sun50i-h616-cpu-opp.dtsi
|
||||
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h616-cpu-opp.dtsi
|
||||
@@ -90,10 +90,9 @@ opp-1416000000 {
|
||||
@@ -90,10 +90,9 @@
|
||||
|
||||
opp-1512000000 {
|
||||
opp-hz = /bits/ 64 <1512000000>;
|
||||
|
@ -81,7 +81,7 @@ and performance for all other cases.
|
||||
|
||||
--- a/net/ipv4/tcp_input.c
|
||||
+++ b/net/ipv4/tcp_input.c
|
||||
@@ -5424,6 +5424,7 @@ static bool tcp_prune_ofo_queue(struct s
|
||||
@@ -5443,6 +5443,7 @@ static bool tcp_prune_ofo_queue(struct s
|
||||
static int tcp_prune_queue(struct sock *sk)
|
||||
{
|
||||
struct tcp_sock *tp = tcp_sk(sk);
|
||||
@ -89,7 +89,7 @@ and performance for all other cases.
|
||||
|
||||
NET_INC_STATS(sock_net(sk), LINUX_MIB_PRUNECALLED);
|
||||
|
||||
@@ -5435,6 +5436,39 @@ static int tcp_prune_queue(struct sock *
|
||||
@@ -5454,6 +5455,39 @@ static int tcp_prune_queue(struct sock *
|
||||
if (atomic_read(&sk->sk_rmem_alloc) <= sk->sk_rcvbuf)
|
||||
return 0;
|
||||
|
||||
@ -129,7 +129,7 @@ and performance for all other cases.
|
||||
tcp_collapse_ofo_queue(sk);
|
||||
if (!skb_queue_empty(&sk->sk_receive_queue))
|
||||
tcp_collapse(sk, &sk->sk_receive_queue, NULL,
|
||||
@@ -5453,6 +5487,8 @@ static int tcp_prune_queue(struct sock *
|
||||
@@ -5472,6 +5506,8 @@ static int tcp_prune_queue(struct sock *
|
||||
if (atomic_read(&sk->sk_rmem_alloc) <= sk->sk_rcvbuf)
|
||||
return 0;
|
||||
|
||||
@ -140,7 +140,7 @@ and performance for all other cases.
|
||||
* and hopefully then we'll have sufficient space.
|
||||
--- a/net/ipv4/tcp_ipv4.c
|
||||
+++ b/net/ipv4/tcp_ipv4.c
|
||||
@@ -3240,6 +3240,8 @@ static int __net_init tcp_sk_init(struct
|
||||
@@ -3237,6 +3237,8 @@ static int __net_init tcp_sk_init(struct
|
||||
|
||||
net->ipv4.sysctl_tcp_shrink_window = 0;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user