mirror of
https://github.com/openwrt/openwrt.git
synced 2026-10-12 06:57:57 +04:00
kernel: bump 6.12 to 6.12.112
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.112
Upstream merged patches:
- microchipsw/patches-6.12/0087-v6.17-dmaengine-Add-devm_dma_request_chan.patch[1]
Manually rebased patches:
- generic/backport-6.12/720-05-v6.13-net-phy-mediatek-Move-LED-helper-functions-into-mtk-.patch[2]
- generic/pending-6.12/700-netfilter-nft_flow_offload-handle-netdevice-events-f.patch[3]
- qualcommax/patches-6.12/0185-firmware-qcom_scm-ipq5332-add-support-to-pass-metadata-size.patch[4]
- qualcommax/patches-6.12/0803-firmware-qcom_scm-ipq5332-add-msa-lock-unlock-suppor.patch[4]
- qualcommax/patches-6.12/0811-firmware-qcom_scm-support-MPD.patch[4]
All other patches are automatically refreshed.
[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=325ee501c55bd4c5a1f0fb283e7d37a1fcc0c04e
[2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=298fddcfd19422cb09861051ff8f8755e15a1372
[3] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=8274cdc5f9c57e17ed77fc4ba76212536c840f25
[4] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=7265be88c6569c151dec5dbe7298f84be3fab0a6
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/25553
(cherry picked from commit fc4c9e6ff7)
Link: https://github.com/openwrt/openwrt/pull/25502
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This commit is contained in:
1 parent
ebe71a07b8
commit
12d27e860b
59 files changed
+185
-252
No files matched your search
+1
-1
@@ -31,7 +31,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
|
||||
--- a/drivers/usb/host/xhci-pci.c
|
||||
+++ b/drivers/usb/host/xhci-pci.c
|
||||
@@ -453,6 +453,7 @@ static void xhci_pci_quirks(struct devic
|
||||
@@ -452,6 +452,7 @@ static void xhci_pci_quirks(struct devic
|
||||
if (pdev->vendor == PCI_VENDOR_ID_VIA && pdev->device == PCI_DEVICE_ID_VIA_VL805) {
|
||||
xhci->quirks |= XHCI_LPM_SUPPORT;
|
||||
xhci->quirks |= XHCI_TRB_OVERFETCH;
|
||||
|
||||
+3
-3
@@ -18,7 +18,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
|
||||
--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
|
||||
+++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
|
||||
@@ -2666,7 +2666,7 @@ static void bcmgenet_init_tx_ring(struct
|
||||
@@ -2672,7 +2672,7 @@ static void bcmgenet_init_tx_ring(struct
|
||||
|
||||
bcmgenet_tdma_ring_writel(priv, index, 0, TDMA_PROD_INDEX);
|
||||
bcmgenet_tdma_ring_writel(priv, index, 0, TDMA_CONS_INDEX);
|
||||
@@ -27,7 +27,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
/* Disable rate control for now */
|
||||
bcmgenet_tdma_ring_writel(priv, index, flow_period_val,
|
||||
TDMA_FLOW_PERIOD);
|
||||
@@ -4066,8 +4066,10 @@ static int bcmgenet_probe(struct platfor
|
||||
@@ -4075,8 +4075,10 @@ static int bcmgenet_probe(struct platfor
|
||||
netif_set_real_num_rx_queues(priv->dev, priv->hw_params->rx_queues + 1);
|
||||
|
||||
/* Set default coalescing parameters */
|
||||
@@ -38,4 +38,4 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
+ }
|
||||
|
||||
/* Initialize u64 stats seq counter for 32bit machines */
|
||||
for (i = 0; i <= priv->hw_params->rx_queues; i++)
|
||||
for (i = 0; i <= GENET_MAX_MQ_CNT; i++) {
|
||||
+2
-2
@@ -32,7 +32,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
||||
#define USB_VENDOR_ID_BELKIN 0x050d
|
||||
#define USB_DEVICE_ID_FLIP_KVM 0x3201
|
||||
|
||||
@@ -1485,6 +1488,9 @@
|
||||
@@ -1488,6 +1491,9 @@
|
||||
#define USB_VENDOR_ID_XIAOMI 0x2717
|
||||
#define USB_DEVICE_ID_MI_SILENT_MOUSE 0x5014
|
||||
|
||||
@@ -52,7 +52,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_MULTI_TOUCH), HID_QUIRK_MULTI_INPUT },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE), HID_QUIRK_ALWAYS_POLL },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE2), HID_QUIRK_ALWAYS_POLL },
|
||||
@@ -218,6 +219,7 @@ static const struct hid_device_id hid_qu
|
||||
@@ -219,6 +220,7 @@ static const struct hid_device_id hid_qu
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP, USB_DEVICE_ID_QUAD_USB_JOYPAD), HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_XIN_MO, USB_DEVICE_ID_XIN_MO_DUAL_ARCADE), HID_QUIRK_MULTI_INPUT },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_GROUP_AUDIO), HID_QUIRK_NOGET },
|
||||
|
||||
+1
-1
@@ -37,7 +37,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
|
||||
static inline void bcmgenet_writel(u32 value, void __iomem *offset)
|
||||
{
|
||||
@@ -2504,6 +2507,11 @@ static void reset_umac(struct bcmgenet_p
|
||||
@@ -2510,6 +2513,11 @@ static void reset_umac(struct bcmgenet_p
|
||||
bcmgenet_rbuf_ctrl_set(priv, 0);
|
||||
udelay(10);
|
||||
|
||||
|
||||
+7
-7
@@ -58,15 +58,15 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
return 0;
|
||||
|
||||
default:
|
||||
@@ -470,6 +481,7 @@ static void pwm_fan_cleanup(void *__ctx)
|
||||
@@ -469,6 +480,7 @@ static void pwm_fan_cleanup(void *__ctx)
|
||||
/* Switch off everything */
|
||||
ctx->enable_mode = pwm_disable_reg_disable;
|
||||
pwm_fan_power_off(ctx, true);
|
||||
+ iounmap(ctx->rpm_regbase);
|
||||
}
|
||||
|
||||
static int pwm_fan_probe(struct platform_device *pdev)
|
||||
@@ -542,10 +554,23 @@ static int pwm_fan_probe(struct platform
|
||||
static void pwm_fan_timer_cleanup(void *__ctx)
|
||||
@@ -548,10 +560,23 @@ static int pwm_fan_probe(struct platform
|
||||
return ret;
|
||||
|
||||
ctx->tach_count = platform_irq_count(pdev);
|
||||
@@ -91,7 +91,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
|
||||
if (ctx->tach_count) {
|
||||
channel_count++; /* We also have a FAN channel. */
|
||||
@@ -576,12 +601,24 @@ static int pwm_fan_probe(struct platform
|
||||
@@ -582,12 +607,24 @@ static int pwm_fan_probe(struct platform
|
||||
|
||||
device_property_read_u32_array(dev, "pulses-per-revolution",
|
||||
ctx->pulses_per_revolution, ctx->tach_count);
|
||||
@@ -118,7 +118,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
|
||||
channels[0] = HWMON_CHANNEL_INFO(pwm, HWMON_PWM_INPUT | HWMON_PWM_ENABLE);
|
||||
|
||||
@@ -618,6 +655,8 @@ static int pwm_fan_probe(struct platform
|
||||
@@ -628,6 +665,8 @@ static int pwm_fan_probe(struct platform
|
||||
mod_timer(&ctx->rpm_timer, jiffies + HZ);
|
||||
|
||||
channels[1] = &ctx->fan_channel;
|
||||
@@ -127,7 +127,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
}
|
||||
|
||||
ctx->info.ops = &pwm_fan_hwmon_ops;
|
||||
@@ -627,12 +666,13 @@ static int pwm_fan_probe(struct platform
|
||||
@@ -637,12 +676,13 @@ static int pwm_fan_probe(struct platform
|
||||
ctx, &ctx->info, NULL);
|
||||
if (IS_ERR(hwmon)) {
|
||||
dev_err(dev, "Failed to register hwmon device\n");
|
||||
@@ -143,7 +143,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
|
||||
ctx->pwm_fan_state = ctx->pwm_fan_max_state;
|
||||
if (IS_ENABLED(CONFIG_THERMAL)) {
|
||||
@@ -643,12 +683,17 @@ static int pwm_fan_probe(struct platform
|
||||
@@ -653,12 +693,17 @@ static int pwm_fan_probe(struct platform
|
||||
dev_err(dev,
|
||||
"Failed to register pwm-fan as cooling device: %d\n",
|
||||
ret);
|
||||
|
||||
+1
-1
@@ -26,7 +26,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
|
||||
static inline void bcmgenet_writel(u32 value, void __iomem *offset)
|
||||
{
|
||||
@@ -3352,6 +3355,17 @@ static int bcmgenet_open(struct net_devi
|
||||
@@ -3358,6 +3361,17 @@ static int bcmgenet_open(struct net_devi
|
||||
|
||||
bcmgenet_phy_pause_set(dev, priv->rx_pause, priv->tx_pause);
|
||||
|
||||
|
||||
+1
-1
@@ -24,7 +24,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
|
||||
--- a/drivers/usb/host/xhci-pci.c
|
||||
+++ b/drivers/usb/host/xhci-pci.c
|
||||
@@ -454,6 +454,7 @@ static void xhci_pci_quirks(struct devic
|
||||
@@ -453,6 +453,7 @@ static void xhci_pci_quirks(struct devic
|
||||
xhci->quirks |= XHCI_LPM_SUPPORT;
|
||||
xhci->quirks |= XHCI_TRB_OVERFETCH;
|
||||
xhci->quirks |= XHCI_EP_CTX_BROKEN_DCS;
|
||||
|
||||
+1
-1
@@ -90,7 +90,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
/* Allow 3 retries for everything but isoc, set CErr = 3 */
|
||||
--- a/drivers/usb/host/xhci-pci.c
|
||||
+++ b/drivers/usb/host/xhci-pci.c
|
||||
@@ -455,6 +455,7 @@ static void xhci_pci_quirks(struct devic
|
||||
@@ -454,6 +454,7 @@ static void xhci_pci_quirks(struct devic
|
||||
xhci->quirks |= XHCI_TRB_OVERFETCH;
|
||||
xhci->quirks |= XHCI_EP_CTX_BROKEN_DCS;
|
||||
xhci->quirks |= XHCI_AVOID_DQ_ON_LINK;
|
||||
|
||||
@@ -47,7 +47,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
/* Device for a quirk */
|
||||
#define PCI_VENDOR_ID_FRESCO_LOGIC 0x1b73
|
||||
#define PCI_DEVICE_ID_FRESCO_LOGIC_PDK 0x1000
|
||||
@@ -253,6 +255,16 @@ static int xhci_pci_reinit(struct xhci_h
|
||||
@@ -252,6 +254,16 @@ static int xhci_pci_reinit(struct xhci_h
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -64,7 +64,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci)
|
||||
{
|
||||
struct pci_dev *pdev = to_pci_dev(dev);
|
||||
@@ -457,6 +469,8 @@ static void xhci_pci_quirks(struct devic
|
||||
@@ -456,6 +468,8 @@ static void xhci_pci_quirks(struct devic
|
||||
xhci->quirks |= XHCI_AVOID_DQ_ON_LINK;
|
||||
xhci->quirks |= XHCI_VLI_SS_BULK_OUT_BUG;
|
||||
xhci->dma_mask_bits = 36;
|
||||
|
||||
+12
-12
@@ -211,7 +211,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
|
||||
macb_writel(bp, NCR, ctrl | MACB_BIT(RE));
|
||||
|
||||
@@ -2033,8 +2055,9 @@ static irqreturn_t macb_interrupt(int ir
|
||||
@@ -2030,8 +2052,9 @@ static irqreturn_t macb_interrupt(int ir
|
||||
queue_writel(queue, ISR, MACB_BIT(TCOMP) |
|
||||
MACB_BIT(TXUBR));
|
||||
|
||||
@@ -222,7 +222,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
wmb(); // ensure softirq can see update
|
||||
}
|
||||
|
||||
@@ -2490,6 +2513,11 @@ static netdev_tx_t macb_start_xmit(struc
|
||||
@@ -2484,6 +2507,11 @@ static netdev_tx_t macb_start_xmit(struc
|
||||
skb_tx_timestamp(skb);
|
||||
|
||||
spin_lock(&bp->lock);
|
||||
@@ -234,7 +234,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
macb_writel(bp, NCR, macb_readl(bp, NCR) | MACB_BIT(TSTART));
|
||||
spin_unlock(&bp->lock);
|
||||
|
||||
@@ -2919,6 +2947,37 @@ static void macb_configure_dma(struct ma
|
||||
@@ -2913,6 +2941,37 @@ static void macb_configure_dma(struct ma
|
||||
}
|
||||
}
|
||||
|
||||
@@ -272,7 +272,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
static void macb_init_hw(struct macb *bp)
|
||||
{
|
||||
u32 config;
|
||||
@@ -2947,6 +3006,11 @@ static void macb_init_hw(struct macb *bp
|
||||
@@ -2941,6 +3000,11 @@ static void macb_init_hw(struct macb *bp
|
||||
if (bp->caps & MACB_CAPS_JUMBO)
|
||||
bp->rx_frm_len_mask = MACB_RX_JFRMLEN_MASK;
|
||||
|
||||
@@ -284,7 +284,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
macb_configure_dma(bp);
|
||||
|
||||
/* Enable RX partial store and forward and set watermark */
|
||||
@@ -3314,6 +3378,52 @@ static void gem_get_ethtool_strings(stru
|
||||
@@ -3308,6 +3372,52 @@ static void gem_get_ethtool_strings(stru
|
||||
}
|
||||
}
|
||||
|
||||
@@ -337,7 +337,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
static struct net_device_stats *macb_get_stats(struct net_device *dev)
|
||||
{
|
||||
struct macb *bp = netdev_priv(dev);
|
||||
@@ -3901,6 +4011,8 @@ static const struct ethtool_ops macb_eth
|
||||
@@ -3895,6 +4005,8 @@ static const struct ethtool_ops macb_eth
|
||||
};
|
||||
|
||||
static const struct ethtool_ops gem_ethtool_ops = {
|
||||
@@ -346,7 +346,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
.get_regs_len = macb_get_regs_len,
|
||||
.get_regs = macb_get_regs,
|
||||
.get_wol = macb_get_wol,
|
||||
@@ -3910,6 +4022,8 @@ static const struct ethtool_ops gem_etht
|
||||
@@ -3904,6 +4016,8 @@ static const struct ethtool_ops gem_etht
|
||||
.get_ethtool_stats = gem_get_ethtool_stats,
|
||||
.get_strings = gem_get_ethtool_strings,
|
||||
.get_sset_count = gem_get_sset_count,
|
||||
@@ -355,7 +355,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
.get_link_ksettings = macb_get_link_ksettings,
|
||||
.set_link_ksettings = macb_set_link_ksettings,
|
||||
.get_ringparam = macb_get_ringparam,
|
||||
@@ -5231,6 +5345,11 @@ static int macb_probe(struct platform_de
|
||||
@@ -5225,6 +5339,11 @@ static int macb_probe(struct platform_de
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -366,8 +366,8 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
+
|
||||
spin_lock_init(&bp->lock);
|
||||
spin_lock_init(&bp->stats_lock);
|
||||
|
||||
@@ -5291,6 +5410,21 @@ static int macb_probe(struct platform_de
|
||||
spin_lock_init(&bp->tsu_clk_lock);
|
||||
@@ -5286,6 +5405,21 @@ static int macb_probe(struct platform_de
|
||||
else
|
||||
bp->phy_interface = interface;
|
||||
|
||||
@@ -389,7 +389,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
/* IP specific init */
|
||||
err = init(pdev);
|
||||
if (err)
|
||||
@@ -5367,6 +5501,19 @@ static void macb_remove(struct platform_
|
||||
@@ -5362,6 +5496,19 @@ static void macb_remove(struct platform_
|
||||
}
|
||||
}
|
||||
|
||||
@@ -409,7 +409,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
static int __maybe_unused macb_suspend(struct device *dev)
|
||||
{
|
||||
struct net_device *netdev = dev_get_drvdata(dev);
|
||||
@@ -5639,6 +5786,7 @@ static const struct dev_pm_ops macb_pm_o
|
||||
@@ -5634,6 +5781,7 @@ static const struct dev_pm_ops macb_pm_o
|
||||
static struct platform_driver macb_driver = {
|
||||
.probe = macb_probe,
|
||||
.remove_new = macb_remove,
|
||||
|
||||
+2
-2
@@ -333,7 +333,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)
|
||||
@@ -1089,6 +1092,7 @@ struct dwc3_scratchpad_array {
|
||||
@@ -1090,6 +1093,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
|
||||
@@ -341,7 +341,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
|
||||
@@ -1342,6 +1346,7 @@ struct dwc3 {
|
||||
@@ -1343,6 +1347,7 @@ struct dwc3 {
|
||||
u8 tx_max_burst_prd;
|
||||
u8 tx_fifo_resize_max_num;
|
||||
u8 clear_stall_protocol;
|
||||
|
||||
+2
-2
@@ -19,7 +19,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
|
||||
--- a/drivers/gpu/drm/drm_fb_helper.c
|
||||
+++ b/drivers/gpu/drm/drm_fb_helper.c
|
||||
@@ -1774,7 +1774,7 @@ __drm_fb_helper_initial_config_and_unloc
|
||||
@@ -1775,7 +1775,7 @@ __drm_fb_helper_initial_config_and_unloc
|
||||
struct drm_device *dev = fb_helper->dev;
|
||||
struct fb_info *info;
|
||||
unsigned int width, height;
|
||||
@@ -28,7 +28,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
|
||||
width = dev->mode_config.max_width;
|
||||
height = dev->mode_config.max_height;
|
||||
@@ -1808,6 +1808,15 @@ __drm_fb_helper_initial_config_and_unloc
|
||||
@@ -1809,6 +1809,15 @@ __drm_fb_helper_initial_config_and_unloc
|
||||
* register the fbdev emulation instance in kernel_fb_helper_list. */
|
||||
mutex_unlock(&fb_helper->lock);
|
||||
|
||||
|
||||
+1
-1
@@ -52,7 +52,7 @@ Signed-off-by: Jürgen Kreileder <jk@blackdown.de>
|
||||
* a. if the trend is THERMAL_TREND_RAISING, do nothing
|
||||
* b. if the trend is THERMAL_TREND_DROPPING, use lower cooling
|
||||
* state for this trip point, if the cooling state already
|
||||
@@ -87,19 +87,35 @@ static void thermal_zone_trip_update(str
|
||||
@@ -85,19 +85,35 @@ static void thermal_zone_trip_update(str
|
||||
int trip_id = thermal_zone_trip_id(tz, trip);
|
||||
struct thermal_instance *instance;
|
||||
bool throttle = false;
|
||||
|
||||
+2
-2
@@ -45,7 +45,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
#define DWC3_GUCTL1_RESUME_OPMODE_HS_HOST BIT(10)
|
||||
|
||||
/* Global Status Register */
|
||||
@@ -1144,10 +1145,12 @@ struct dwc3_scratchpad_array {
|
||||
@@ -1145,10 +1146,12 @@ struct dwc3_scratchpad_array {
|
||||
* generation after resume from suspend.
|
||||
* @ulpi_ext_vbus_drv: Set to confiure the upli chip to drives CPEN pin
|
||||
* VBUS with an external supply.
|
||||
@@ -62,7 +62,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
* @gfladj_refclk_lpm_sel: set if we need to enable SOF/ITP counter
|
||||
* running based on ref_clk
|
||||
* @tx_de_emphasis_quirk: set if we enable Tx de-emphasis quirk
|
||||
@@ -1390,6 +1393,7 @@ struct dwc3 {
|
||||
@@ -1391,6 +1394,7 @@ struct dwc3 {
|
||||
unsigned ulpi_ext_vbus_drv:1;
|
||||
unsigned parkmode_disable_ss_quirk:1;
|
||||
unsigned parkmode_disable_hs_quirk:1;
|
||||
|
||||
+2
-2
@@ -57,7 +57,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
#define DWC3_GUCTL1_PARKMODE_DISABLE_SS BIT(17)
|
||||
#define DWC3_GUCTL1_PARKMODE_DISABLE_HS BIT(16)
|
||||
#define DWC3_GUCTL1_PARKMODE_DISABLE_FSLS BIT(15)
|
||||
@@ -1145,6 +1147,8 @@ struct dwc3_scratchpad_array {
|
||||
@@ -1146,6 +1148,8 @@ struct dwc3_scratchpad_array {
|
||||
* generation after resume from suspend.
|
||||
* @ulpi_ext_vbus_drv: Set to confiure the upli chip to drives CPEN pin
|
||||
* VBUS with an external supply.
|
||||
@@ -66,7 +66,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
* @parkmode_disable_ss_quirk: If set, disable park mode feature for all
|
||||
* Superspeed instances.
|
||||
* @parkmode_disable_hs_quirk: If set, disable park mode feature for all
|
||||
@@ -1391,6 +1395,8 @@ struct dwc3 {
|
||||
@@ -1392,6 +1396,8 @@ struct dwc3 {
|
||||
unsigned dis_tx_ipgap_linecheck_quirk:1;
|
||||
unsigned resume_hs_terminations:1;
|
||||
unsigned ulpi_ext_vbus_drv:1;
|
||||
|
||||
+2
-2
@@ -15,7 +15,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
|
||||
--- a/drivers/net/ethernet/cadence/macb_main.c
|
||||
+++ b/drivers/net/ethernet/cadence/macb_main.c
|
||||
@@ -5194,6 +5194,17 @@ static const struct macb_config versal_c
|
||||
@@ -5188,6 +5188,17 @@ static const struct macb_config versal_c
|
||||
.usrio = &macb_default_usrio,
|
||||
};
|
||||
|
||||
@@ -33,7 +33,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
static const struct of_device_id macb_dt_ids[] = {
|
||||
{ .compatible = "cdns,at91sam9260-macb", .data = &at91sam9260_config },
|
||||
{ .compatible = "cdns,macb" },
|
||||
@@ -5214,6 +5225,7 @@ static const struct of_device_id macb_dt
|
||||
@@ -5208,6 +5219,7 @@ static const struct of_device_id macb_dt
|
||||
{ .compatible = "microchip,mpfs-macb", .data = &mpfs_config },
|
||||
{ .compatible = "microchip,sama7g5-gem", .data = &sama7g5_gem_config },
|
||||
{ .compatible = "microchip,sama7g5-emac", .data = &sama7g5_emac_config },
|
||||
|
||||
+2
-2
@@ -16,7 +16,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
--- a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
|
||||
+++ b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
|
||||
@@ -6256,19 +6256,26 @@ static const struct phylink_pcs_ops mvpp
|
||||
@@ -6257,19 +6257,26 @@ static const struct phylink_pcs_ops mvpp
|
||||
.pcs_config = mvpp2_xlg_pcs_config,
|
||||
};
|
||||
|
||||
@@ -51,7 +51,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
}
|
||||
|
||||
static void mvpp2_gmac_pcs_get_state(struct phylink_pcs *pcs,
|
||||
@@ -6375,7 +6382,7 @@ static void mvpp2_gmac_pcs_an_restart(st
|
||||
@@ -6376,7 +6383,7 @@ static void mvpp2_gmac_pcs_an_restart(st
|
||||
}
|
||||
|
||||
static const struct phylink_pcs_ops mvpp2_phylink_gmac_pcs_ops = {
|
||||
|
||||
+1
-1
@@ -77,7 +77,7 @@ Signed-off-by: Andrew Lunn <andrew@lunn.ch>
|
||||
|
||||
static int mt798x_phy_led_hw_is_supported(struct phy_device *phydev, u8 index,
|
||||
unsigned long rules)
|
||||
@@ -1415,7 +1417,7 @@ static int mt7988_phy_probe_shared(struc
|
||||
@@ -1422,7 +1424,7 @@ static int mt7988_phy_probe_shared(struc
|
||||
* LED_C and LED_D respectively. At the same time those pins are used to
|
||||
* bootstrap configuration of the reference clock source (LED_A),
|
||||
* DRAM DDRx16b x2/x1 (LED_B) and boot device (LED_C, LED_D).
|
||||
|
||||
+2
-2
@@ -229,7 +229,7 @@ Signed-off-by: Andrew Lunn <andrew@lunn.ch>
|
||||
(blink & (MTK_PHY_LED_BLINK_RX | MTK_PHY_LED_BLINK_TX)))
|
||||
set_bit(bit_netdev, &priv->led_state);
|
||||
else
|
||||
@@ -1333,17 +1377,23 @@ static int mt798x_phy_led_hw_control_set
|
||||
@@ -1340,17 +1384,23 @@ static int mt798x_phy_led_hw_control_set
|
||||
|
||||
if (rules & BIT(TRIGGER_NETDEV_RX)) {
|
||||
blink |= (on & MTK_PHY_LED_ON_LINK) ?
|
||||
@@ -259,7 +259,7 @@ Signed-off-by: Andrew Lunn <andrew@lunn.ch>
|
||||
MTK_PHY_LED_BLINK_TX;
|
||||
}
|
||||
|
||||
@@ -1400,7 +1450,8 @@ static int mt7988_phy_fix_leds_polaritie
|
||||
@@ -1407,7 +1457,8 @@ static int mt7988_phy_fix_leds_polaritie
|
||||
/* Only now setup pinctrl to avoid bogus blinking */
|
||||
pinctrl = devm_pinctrl_get_select(&phydev->mdio.dev, "gbe-led");
|
||||
if (IS_ERR(pinctrl))
|
||||
|
||||
+37
-23
@@ -226,7 +226,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
}
|
||||
|
||||
static const unsigned long supported_triggers =
|
||||
@@ -1269,155 +1176,26 @@ static const unsigned long supported_tri
|
||||
@@ -1269,162 +1176,26 @@ static const unsigned long supported_tri
|
||||
static int mt798x_phy_led_hw_is_supported(struct phy_device *phydev, u8 index,
|
||||
unsigned long rules)
|
||||
{
|
||||
@@ -288,17 +288,24 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
- if (!rules)
|
||||
- return 0;
|
||||
-
|
||||
- if (on & MTK_PHY_LED_ON_LINK)
|
||||
- /* TRIGGER_NETDEV_LINK must not be reported together with any of the
|
||||
- * per-speed rules, the netdev trigger rejects that combination.
|
||||
- * MTK_PHY_LED_ON_LINK holds every speed this LED can indicate and is what
|
||||
- * mt798x_phy_led_hw_control_set() programs for TRIGGER_NETDEV_LINK, so
|
||||
- * report the speed independent rule only when they are all on.
|
||||
- */
|
||||
- if ((on & MTK_PHY_LED_ON_LINK) == MTK_PHY_LED_ON_LINK) {
|
||||
- *rules |= BIT(TRIGGER_NETDEV_LINK);
|
||||
- } else {
|
||||
- if (on & MTK_PHY_LED_ON_LINK10)
|
||||
- *rules |= BIT(TRIGGER_NETDEV_LINK_10);
|
||||
-
|
||||
- if (on & MTK_PHY_LED_ON_LINK10)
|
||||
- *rules |= BIT(TRIGGER_NETDEV_LINK_10);
|
||||
- if (on & MTK_PHY_LED_ON_LINK100)
|
||||
- *rules |= BIT(TRIGGER_NETDEV_LINK_100);
|
||||
-
|
||||
- if (on & MTK_PHY_LED_ON_LINK100)
|
||||
- *rules |= BIT(TRIGGER_NETDEV_LINK_100);
|
||||
-
|
||||
- if (on & MTK_PHY_LED_ON_LINK1000)
|
||||
- *rules |= BIT(TRIGGER_NETDEV_LINK_1000);
|
||||
- if (on & MTK_PHY_LED_ON_LINK1000)
|
||||
- *rules |= BIT(TRIGGER_NETDEV_LINK_1000);
|
||||
- }
|
||||
-
|
||||
- if (on & MTK_PHY_LED_ON_FDX)
|
||||
- *rules |= BIT(TRIGGER_NETDEV_FULL_DUPLEX);
|
||||
@@ -393,7 +400,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
};
|
||||
|
||||
static bool mt7988_phy_led_get_polarity(struct phy_device *phydev, int led_num)
|
||||
@@ -1492,14 +1270,6 @@ static int mt7988_phy_probe_shared(struc
|
||||
@@ -1499,14 +1270,6 @@ static int mt7988_phy_probe_shared(struc
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -408,7 +415,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
static int mt7988_phy_probe(struct phy_device *phydev)
|
||||
{
|
||||
struct mtk_socphy_shared *shared;
|
||||
@@ -1525,7 +1295,7 @@ static int mt7988_phy_probe(struct phy_d
|
||||
@@ -1532,7 +1295,7 @@ static int mt7988_phy_probe(struct phy_d
|
||||
|
||||
phydev->priv = priv;
|
||||
|
||||
@@ -417,7 +424,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
err = mt7988_phy_fix_leds_polarities(phydev);
|
||||
if (err)
|
||||
@@ -1552,7 +1322,7 @@ static int mt7981_phy_probe(struct phy_d
|
||||
@@ -1559,7 +1322,7 @@ static int mt7981_phy_probe(struct phy_d
|
||||
|
||||
phydev->priv = priv;
|
||||
|
||||
@@ -428,7 +435,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
}
|
||||
--- /dev/null
|
||||
+++ b/drivers/net/phy/mediatek/mtk-phy-lib.c
|
||||
@@ -0,0 +1,254 @@
|
||||
@@ -0,0 +1,261 @@
|
||||
+// SPDX-License-Identifier: GPL-2.0
|
||||
+#include <linux/phy.h>
|
||||
+#include <linux/module.h>
|
||||
@@ -498,20 +505,27 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
+ if (!rules)
|
||||
+ return 0;
|
||||
+
|
||||
+ if (on & on_set)
|
||||
+ /* TRIGGER_NETDEV_LINK must not be reported together with any of the
|
||||
+ * per-speed rules, the netdev trigger rejects that combination.
|
||||
+ * on_set holds every speed this LED can indicate and is what
|
||||
+ * mtk_phy_led_hw_ctrl_set() programs for TRIGGER_NETDEV_LINK, so
|
||||
+ * report the speed independent rule only when they are all on.
|
||||
+ */
|
||||
+ if ((on & on_set) == on_set) {
|
||||
+ *rules |= BIT(TRIGGER_NETDEV_LINK);
|
||||
+ } else {
|
||||
+ if (on & MTK_PHY_LED_ON_LINK10)
|
||||
+ *rules |= BIT(TRIGGER_NETDEV_LINK_10);
|
||||
+
|
||||
+ if (on & MTK_PHY_LED_ON_LINK10)
|
||||
+ *rules |= BIT(TRIGGER_NETDEV_LINK_10);
|
||||
+ if (on & MTK_PHY_LED_ON_LINK100)
|
||||
+ *rules |= BIT(TRIGGER_NETDEV_LINK_100);
|
||||
+
|
||||
+ if (on & MTK_PHY_LED_ON_LINK100)
|
||||
+ *rules |= BIT(TRIGGER_NETDEV_LINK_100);
|
||||
+ if (on & MTK_PHY_LED_ON_LINK1000)
|
||||
+ *rules |= BIT(TRIGGER_NETDEV_LINK_1000);
|
||||
+
|
||||
+ if (on & MTK_PHY_LED_ON_LINK1000)
|
||||
+ *rules |= BIT(TRIGGER_NETDEV_LINK_1000);
|
||||
+
|
||||
+ if (on & MTK_PHY_LED_ON_LINK2500)
|
||||
+ *rules |= BIT(TRIGGER_NETDEV_LINK_2500);
|
||||
+ if (on & MTK_PHY_LED_ON_LINK2500)
|
||||
+ *rules |= BIT(TRIGGER_NETDEV_LINK_2500);
|
||||
+ }
|
||||
+
|
||||
+ if (on & MTK_PHY_LED_ON_FDX)
|
||||
+ *rules |= BIT(TRIGGER_NETDEV_FULL_DUPLEX);
|
||||
|
||||
+1
-1
@@ -16,7 +16,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
--- a/drivers/net/phy/mediatek/mtk-phy-lib.c
|
||||
+++ b/drivers/net/phy/mediatek/mtk-phy-lib.c
|
||||
@@ -129,29 +129,33 @@ int mtk_phy_led_hw_ctrl_set(struct phy_d
|
||||
@@ -136,29 +136,33 @@ int mtk_phy_led_hw_ctrl_set(struct phy_d
|
||||
on |= MTK_PHY_LED_ON_LINK2500;
|
||||
|
||||
if (rules & BIT(TRIGGER_NETDEV_RX)) {
|
||||
|
||||
+3
-3
@@ -39,7 +39,7 @@ Signed-off-by: Qingfang Deng <dqfext@gmail.com>
|
||||
mcr |= MAC_MCR_TX_EN | MAC_MCR_RX_EN | MAC_MCR_FORCE_LINK;
|
||||
mtk_w32(mac->hw, mcr, MTK_MAC_MCR(mac->id));
|
||||
}
|
||||
@@ -4586,6 +4596,61 @@ static int mtk_set_pauseparam(struct net
|
||||
@@ -4590,6 +4600,61 @@ static int mtk_set_pauseparam(struct net
|
||||
return phylink_ethtool_set_pauseparam(mac->phylink, pause);
|
||||
}
|
||||
|
||||
@@ -101,7 +101,7 @@ Signed-off-by: Qingfang Deng <dqfext@gmail.com>
|
||||
static u16 mtk_select_queue(struct net_device *dev, struct sk_buff *skb,
|
||||
struct net_device *sb_dev)
|
||||
{
|
||||
@@ -4618,6 +4683,8 @@ static const struct ethtool_ops mtk_etht
|
||||
@@ -4622,6 +4687,8 @@ static const struct ethtool_ops mtk_etht
|
||||
.set_pauseparam = mtk_set_pauseparam,
|
||||
.get_rxnfc = mtk_get_rxnfc,
|
||||
.set_rxnfc = mtk_set_rxnfc,
|
||||
@@ -110,7 +110,7 @@ Signed-off-by: Qingfang Deng <dqfext@gmail.com>
|
||||
};
|
||||
|
||||
static const struct net_device_ops mtk_netdev_ops = {
|
||||
@@ -4678,6 +4745,8 @@ static int mtk_add_mac(struct mtk_eth *e
|
||||
@@ -4682,6 +4749,8 @@ static int mtk_add_mac(struct mtk_eth *e
|
||||
}
|
||||
mac = netdev_priv(eth->netdev[id]);
|
||||
eth->mac[id] = mac;
|
||||
|
||||
+2
-2
@@ -16,7 +16,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/net/core/page_pool.c
|
||||
+++ b/net/core/page_pool.c
|
||||
@@ -1178,8 +1178,9 @@ static void page_pool_release_retry(stru
|
||||
@@ -1179,8 +1179,9 @@ static void page_pool_release_retry(stru
|
||||
{
|
||||
struct delayed_work *dwq = to_delayed_work(wq);
|
||||
struct page_pool *pool = container_of(dwq, typeof(*pool), release_dw);
|
||||
@@ -27,7 +27,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
inflight = page_pool_release(pool);
|
||||
/* In rare cases, a driver bug may cause inflight to go negative.
|
||||
@@ -1191,6 +1192,21 @@ static void page_pool_release_retry(stru
|
||||
@@ -1192,6 +1193,21 @@ static void page_pool_release_retry(stru
|
||||
if (inflight <= 0)
|
||||
return;
|
||||
|
||||
|
||||
@@ -758,7 +758,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
#include <net/netfilter/nf_flow_table.h>
|
||||
#include <net/netfilter/nf_conntrack.h>
|
||||
#include <net/netfilter/nf_conntrack_core.h>
|
||||
@@ -374,8 +373,7 @@ flow_offload_lookup(struct nf_flowtable
|
||||
@@ -381,8 +380,7 @@ flow_offload_lookup(struct nf_flowtable
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(flow_offload_lookup);
|
||||
|
||||
@@ -768,7 +768,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
void (*iter)(struct nf_flowtable *flowtable,
|
||||
struct flow_offload *flow, void *data),
|
||||
void *data)
|
||||
@@ -436,6 +434,7 @@ static void nf_flow_offload_gc_step(stru
|
||||
@@ -443,6 +441,7 @@ static void nf_flow_offload_gc_step(stru
|
||||
nf_flow_offload_stats(flow_table, flow);
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -14,7 +14,7 @@ Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
|
||||
|
||||
--- a/net/netfilter/nf_conntrack_core.c
|
||||
+++ b/net/netfilter/nf_conntrack_core.c
|
||||
@@ -2608,7 +2608,7 @@ int nf_conntrack_init_start(void)
|
||||
@@ -2610,7 +2610,7 @@ int nf_conntrack_init_start(void)
|
||||
|
||||
if (!nf_conntrack_htable_size) {
|
||||
nf_conntrack_htable_size
|
||||
|
||||
@@ -52,7 +52,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
*/
|
||||
--- a/include/linux/skbuff.h
|
||||
+++ b/include/linux/skbuff.h
|
||||
@@ -3305,6 +3305,10 @@ static inline int pskb_trim(struct sk_bu
|
||||
@@ -3288,6 +3288,10 @@ static inline int pskb_trim(struct sk_bu
|
||||
return (len < skb->len) ? __pskb_trim(skb, len) : 0;
|
||||
}
|
||||
|
||||
@@ -63,7 +63,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
/**
|
||||
* pskb_trim_unique - remove end from a paged unique (not cloned) buffer
|
||||
* @skb: buffer to alter
|
||||
@@ -3470,16 +3474,6 @@ static inline struct sk_buff *dev_alloc_
|
||||
@@ -3453,16 +3457,6 @@ static inline struct sk_buff *dev_alloc_
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -331,7 +331,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/net/core/sock.c
|
||||
+++ b/net/core/sock.c
|
||||
@@ -4293,6 +4293,8 @@ static __net_initdata struct pernet_oper
|
||||
@@ -4316,6 +4316,8 @@ static __net_initdata struct pernet_oper
|
||||
|
||||
static int __init proto_init(void)
|
||||
{
|
||||
|
||||
@@ -74,7 +74,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
+MODULE_LICENSE("GPL");
|
||||
--- a/kernel/sched/core.c
|
||||
+++ b/kernel/sched/core.c
|
||||
@@ -4434,6 +4434,7 @@ int wake_up_state(struct task_struct *p,
|
||||
@@ -4445,6 +4445,7 @@ int wake_up_state(struct task_struct *p,
|
||||
{
|
||||
return try_to_wake_up(p, state, 0);
|
||||
}
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
LINUX_VERSION-6.12 = .111
|
||||
LINUX_KERNEL_HASH-6.12.111 = 9e59dc67624188fa12a6601f9598499cd6662a9066be572b59f935e3d7849810
|
||||
LINUX_VERSION-6.12 = .112
|
||||
LINUX_KERNEL_HASH-6.12.112 = 164dc9d1f6c93c61a15e1f071c48379b467f2b17c469cce7223471968208ed03
|
||||
+1
-1
@@ -25,7 +25,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
__br_handle_local_finish(skb);
|
||||
|
||||
/* return 1 to signal the okfn() was called so it's ok to use the skb */
|
||||
@@ -416,6 +419,17 @@ forward:
|
||||
@@ -425,6 +428,17 @@ forward:
|
||||
goto defer_stp_filtering;
|
||||
|
||||
switch (p->state) {
|
||||
|
||||
@@ -87,7 +87,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
if (!net_eq(dev_net(dev), sock_net(sk)))
|
||||
goto drop;
|
||||
|
||||
@@ -3463,6 +3465,7 @@ static int packet_create(struct net *net
|
||||
@@ -3492,6 +3494,7 @@ static int packet_create(struct net *net
|
||||
mutex_init(&po->pg_vec_lock);
|
||||
po->rollover = NULL;
|
||||
po->prot_hook.func = packet_rcv;
|
||||
@@ -95,7 +95,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
if (sock->type == SOCK_PACKET)
|
||||
po->prot_hook.func = packet_rcv_spkt;
|
||||
@@ -4130,6 +4133,16 @@ packet_setsockopt(struct socket *sock, i
|
||||
@@ -4159,6 +4162,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;
|
||||
}
|
||||
@@ -4192,6 +4205,13 @@ static int packet_getsockopt(struct sock
|
||||
@@ -4221,6 +4234,13 @@ static int packet_getsockopt(struct sock
|
||||
case PACKET_COPY_THRESH:
|
||||
val = READ_ONCE(pkt_sk(sk)->copy_thresh);
|
||||
break;
|
||||
|
||||
@@ -9,7 +9,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/include/linux/skbuff.h
|
||||
+++ b/include/linux/skbuff.h
|
||||
@@ -3272,7 +3272,7 @@ static inline int pskb_network_may_pull(
|
||||
@@ -3255,7 +3255,7 @@ static inline int pskb_network_may_pull(
|
||||
* NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8)
|
||||
*/
|
||||
#ifndef NET_SKB_PAD
|
||||
|
||||
+12
-12
@@ -119,7 +119,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
static void ip6_link_failure(struct sk_buff *skb);
|
||||
static void ip6_rt_update_pmtu(struct dst_entry *dst, struct sock *sk,
|
||||
struct sk_buff *skb, u32 mtu,
|
||||
@@ -316,6 +318,18 @@ static const struct rt6_info ip6_prohibi
|
||||
@@ -317,6 +319,18 @@ static const struct rt6_info ip6_prohibi
|
||||
.rt6i_flags = (RTF_REJECT | RTF_NONEXTHOP),
|
||||
};
|
||||
|
||||
@@ -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),
|
||||
@@ -1089,6 +1103,7 @@ static const int fib6_prop[RTN_MAX + 1]
|
||||
@@ -1091,6 +1105,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,
|
||||
@@ -1124,6 +1139,10 @@ static void ip6_rt_init_dst_reject(struc
|
||||
@@ -1126,6 +1141,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:
|
||||
@@ -4614,6 +4633,17 @@ static int ip6_pkt_prohibit_out(struct n
|
||||
@@ -4619,6 +4638,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.
|
||||
*/
|
||||
@@ -5108,7 +5138,8 @@ static int rtm_to_fib6_config(struct sk_
|
||||
@@ -5113,7 +5143,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)
|
||||
@@ -6381,6 +6412,8 @@ static int ip6_route_dev_notify(struct n
|
||||
@@ -6386,6 +6417,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
|
||||
@@ -6392,6 +6425,7 @@ static int ip6_route_dev_notify(struct n
|
||||
@@ -6397,6 +6430,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
|
||||
}
|
||||
@@ -6587,6 +6621,8 @@ static int __net_init ip6_route_net_init
|
||||
@@ -6592,6 +6626,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);
|
||||
@@ -6597,11 +6633,21 @@ static int __net_init ip6_route_net_init
|
||||
@@ -6602,11 +6638,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);
|
||||
@@ -6628,6 +6674,8 @@ out:
|
||||
@@ -6633,6 +6679,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:
|
||||
@@ -6647,6 +6695,7 @@ static void __net_exit ip6_route_net_exi
|
||||
@@ -6652,6 +6700,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);
|
||||
@@ -6730,6 +6779,9 @@ void __init ip6_route_init_special_entri
|
||||
@@ -6735,6 +6784,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);
|
||||
|
||||
+2
-2
@@ -76,7 +76,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
if ((ret & NETIF_F_GSO_ENCAP_ALL) && (ret & NETIF_F_CSUM_MASK))
|
||||
--- a/net/8021q/vlan_dev.c
|
||||
+++ b/net/8021q/vlan_dev.c
|
||||
@@ -518,7 +518,7 @@ static int vlan_dev_init(struct net_devi
|
||||
@@ -523,7 +523,7 @@ static int vlan_dev_init(struct net_devi
|
||||
dev->state |= (1 << __LINK_STATE_NOCARRIER);
|
||||
|
||||
dev->hw_features = NETIF_F_HW_CSUM | NETIF_F_SG |
|
||||
@@ -85,7 +85,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
NETIF_F_GSO_ENCAP_ALL |
|
||||
NETIF_F_HIGHDMA | NETIF_F_SCTP_CRC |
|
||||
NETIF_F_FCOE_CRC | NETIF_F_FSO;
|
||||
@@ -610,7 +610,7 @@ static netdev_features_t vlan_dev_fix_fe
|
||||
@@ -615,7 +615,7 @@ static netdev_features_t vlan_dev_fix_fe
|
||||
if (lower_features & (NETIF_F_IP_CSUM|NETIF_F_IPV6_CSUM))
|
||||
lower_features |= NETIF_F_HW_CSUM;
|
||||
features = netdev_intersect_features(features, lower_features);
|
||||
|
||||
+4
-4
@@ -10,7 +10,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
|
||||
--- a/net/netfilter/nf_flow_table_core.c
|
||||
+++ b/net/netfilter/nf_flow_table_core.c
|
||||
@@ -659,6 +659,23 @@ static struct pernet_operations nf_flow_
|
||||
@@ -666,6 +666,23 @@ static struct pernet_operations nf_flow_
|
||||
.exit_batch = nf_flow_table_pernet_exit,
|
||||
};
|
||||
|
||||
@@ -34,7 +34,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
static int __init nf_flow_table_module_init(void)
|
||||
{
|
||||
int ret;
|
||||
@@ -675,6 +692,10 @@ static int __init nf_flow_table_module_i
|
||||
@@ -682,6 +699,10 @@ static int __init nf_flow_table_module_i
|
||||
if (ret)
|
||||
goto out_bpf;
|
||||
|
||||
@@ -45,14 +45,14 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
return 0;
|
||||
|
||||
out_bpf:
|
||||
@@ -686,6 +707,7 @@ out_offload:
|
||||
@@ -693,6 +714,7 @@ out_offload:
|
||||
|
||||
static void __exit nf_flow_table_module_exit(void)
|
||||
{
|
||||
+ unregister_netdevice_notifier(&flow_offload_netdev_notifier);
|
||||
rcu_barrier();
|
||||
nf_flow_table_offload_exit();
|
||||
unregister_pernet_subsys(&nf_flow_table_net_ops);
|
||||
}
|
||||
--- a/net/netfilter/nft_flow_offload.c
|
||||
+++ b/net/netfilter/nft_flow_offload.c
|
||||
@@ -493,47 +493,14 @@ static struct nft_expr_type nft_flow_off
|
||||
|
||||
+1
-1
@@ -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
|
||||
@@ -8523,7 +8523,7 @@ static int nft_register_flowtable_net_ho
|
||||
@@ -8529,7 +8529,7 @@ static int nft_register_flowtable_net_ho
|
||||
err = flowtable->data.type->setup(&flowtable->data,
|
||||
hook->ops.dev,
|
||||
FLOW_BLOCK_BIND);
|
||||
|
||||
+1
-1
@@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||
@@ -5213,6 +5213,8 @@ static int mtk_probe(struct platform_dev
|
||||
@@ -5217,6 +5217,8 @@ static int mtk_probe(struct platform_dev
|
||||
dev_err(eth->dev, "failed to allocated dummy device\n");
|
||||
goto err_unreg_netdev;
|
||||
}
|
||||
|
||||
+4
-4
@@ -45,7 +45,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
if (!(p->flags & BR_BCAST_FLOOD) && skb->dev != br->dev)
|
||||
--- a/net/bridge/br_input.c
|
||||
+++ b/net/bridge/br_input.c
|
||||
@@ -368,6 +368,8 @@ static rx_handler_result_t br_handle_fra
|
||||
@@ -376,6 +376,8 @@ static rx_handler_result_t br_handle_fra
|
||||
fwd_mask |= p->group_fwd_mask;
|
||||
switch (dest[5]) {
|
||||
case 0x00: /* Bridge Group Address */
|
||||
@@ -74,7 +74,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
};
|
||||
--- a/net/bridge/br_stp_bpdu.c
|
||||
+++ b/net/bridge/br_stp_bpdu.c
|
||||
@@ -80,7 +80,8 @@ void br_send_config_bpdu(struct net_brid
|
||||
@@ -83,7 +83,8 @@ void br_send_config_bpdu(struct net_brid
|
||||
{
|
||||
unsigned char buf[35];
|
||||
|
||||
@@ -84,7 +84,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
return;
|
||||
|
||||
buf[0] = 0;
|
||||
@@ -127,7 +128,8 @@ void br_send_tcn_bpdu(struct net_bridge_
|
||||
@@ -130,7 +131,8 @@ void br_send_tcn_bpdu(struct net_bridge_
|
||||
{
|
||||
unsigned char buf[4];
|
||||
|
||||
@@ -94,7 +94,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
return;
|
||||
|
||||
buf[0] = 0;
|
||||
@@ -172,6 +174,9 @@ void br_stp_rcv(const struct stp_proto *
|
||||
@@ -175,6 +177,9 @@ void br_stp_rcv(const struct stp_proto *
|
||||
if (!(br->dev->flags & IFF_UP))
|
||||
goto out;
|
||||
|
||||
|
||||
+10
-10
@@ -294,7 +294,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
eth->scratch_ring, eth->phy_scratch_ring);
|
||||
eth->scratch_ring = NULL;
|
||||
eth->phy_scratch_ring = 0;
|
||||
@@ -5301,6 +5304,9 @@ static void mtk_remove(struct platform_d
|
||||
@@ -5305,6 +5308,9 @@ static void mtk_remove(struct platform_d
|
||||
mtk_mdio_cleanup(eth);
|
||||
}
|
||||
|
||||
@@ -304,7 +304,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
static const struct mtk_soc_data mt2701_data = {
|
||||
.reg_map = &mtk_reg_map,
|
||||
.caps = MT7623_CAPS | MTK_HWLRO,
|
||||
@@ -5309,14 +5315,14 @@ static const struct mtk_soc_data mt2701_
|
||||
@@ -5313,14 +5319,14 @@ static const struct mtk_soc_data mt2701_
|
||||
.required_pctl = true,
|
||||
.version = 1,
|
||||
.tx = {
|
||||
@@ -321,7 +321,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
.irq_done_mask = MTK_RX_DONE_INT,
|
||||
.dma_l4_valid = RX_DMA_L4_VALID,
|
||||
.dma_size = MTK_DMA_SIZE(2K),
|
||||
@@ -5337,14 +5343,14 @@ static const struct mtk_soc_data mt7621_
|
||||
@@ -5341,14 +5347,14 @@ static const struct mtk_soc_data mt7621_
|
||||
.hash_offset = 2,
|
||||
.foe_entry_size = MTK_FOE_ENTRY_V1_SIZE,
|
||||
.tx = {
|
||||
@@ -338,7 +338,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
.irq_done_mask = MTK_RX_DONE_INT,
|
||||
.dma_l4_valid = RX_DMA_L4_VALID,
|
||||
.dma_size = MTK_DMA_SIZE(2K),
|
||||
@@ -5367,14 +5373,14 @@ static const struct mtk_soc_data mt7622_
|
||||
@@ -5371,14 +5377,14 @@ static const struct mtk_soc_data mt7622_
|
||||
.has_accounting = true,
|
||||
.foe_entry_size = MTK_FOE_ENTRY_V1_SIZE,
|
||||
.tx = {
|
||||
@@ -355,7 +355,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
.irq_done_mask = MTK_RX_DONE_INT,
|
||||
.dma_l4_valid = RX_DMA_L4_VALID,
|
||||
.dma_size = MTK_DMA_SIZE(2K),
|
||||
@@ -5396,14 +5402,14 @@ static const struct mtk_soc_data mt7623_
|
||||
@@ -5400,14 +5406,14 @@ static const struct mtk_soc_data mt7623_
|
||||
.foe_entry_size = MTK_FOE_ENTRY_V1_SIZE,
|
||||
.disable_pll_modes = true,
|
||||
.tx = {
|
||||
@@ -372,7 +372,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
.irq_done_mask = MTK_RX_DONE_INT,
|
||||
.dma_l4_valid = RX_DMA_L4_VALID,
|
||||
.dma_size = MTK_DMA_SIZE(2K),
|
||||
@@ -5422,14 +5428,14 @@ static const struct mtk_soc_data mt7629_
|
||||
@@ -5426,14 +5432,14 @@ static const struct mtk_soc_data mt7629_
|
||||
.has_accounting = true,
|
||||
.version = 1,
|
||||
.tx = {
|
||||
@@ -389,7 +389,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
.irq_done_mask = MTK_RX_DONE_INT,
|
||||
.dma_l4_valid = RX_DMA_L4_VALID,
|
||||
.dma_size = MTK_DMA_SIZE(2K),
|
||||
@@ -5452,14 +5458,14 @@ static const struct mtk_soc_data mt7981_
|
||||
@@ -5456,14 +5462,14 @@ static const struct mtk_soc_data mt7981_
|
||||
.has_accounting = true,
|
||||
.foe_entry_size = MTK_FOE_ENTRY_V2_SIZE,
|
||||
.tx = {
|
||||
@@ -406,7 +406,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
.irq_done_mask = MTK_RX_DONE_INT,
|
||||
.dma_l4_valid = RX_DMA_L4_VALID_V2,
|
||||
.dma_max_len = MTK_TX_DMA_BUF_LEN,
|
||||
@@ -5482,14 +5488,14 @@ static const struct mtk_soc_data mt7986_
|
||||
@@ -5486,14 +5492,14 @@ static const struct mtk_soc_data mt7986_
|
||||
.has_accounting = true,
|
||||
.foe_entry_size = MTK_FOE_ENTRY_V2_SIZE,
|
||||
.tx = {
|
||||
@@ -423,7 +423,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
.irq_done_mask = MTK_RX_DONE_INT,
|
||||
.dma_l4_valid = RX_DMA_L4_VALID_V2,
|
||||
.dma_max_len = MTK_TX_DMA_BUF_LEN,
|
||||
@@ -5512,14 +5518,14 @@ static const struct mtk_soc_data mt7988_
|
||||
@@ -5516,14 +5522,14 @@ static const struct mtk_soc_data mt7988_
|
||||
.has_accounting = true,
|
||||
.foe_entry_size = MTK_FOE_ENTRY_V3_SIZE,
|
||||
.tx = {
|
||||
@@ -440,7 +440,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
.irq_done_mask = MTK_RX_DONE_INT_V2,
|
||||
.dma_l4_valid = RX_DMA_L4_VALID_V2,
|
||||
.dma_max_len = MTK_TX_DMA_BUF_LEN_V2,
|
||||
@@ -5536,13 +5542,13 @@ static const struct mtk_soc_data rt5350_
|
||||
@@ -5540,13 +5546,13 @@ static const struct mtk_soc_data rt5350_
|
||||
.required_pctl = false,
|
||||
.version = 1,
|
||||
.tx = {
|
||||
|
||||
+7
-7
@@ -497,7 +497,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -4900,6 +5051,7 @@ static const struct net_device_ops mtk_n
|
||||
@@ -4904,6 +5055,7 @@ static const struct net_device_ops mtk_n
|
||||
static int mtk_add_mac(struct mtk_eth *eth, struct device_node *np)
|
||||
{
|
||||
const __be32 *_id = of_get_property(np, "reg", NULL);
|
||||
@@ -505,7 +505,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
phy_interface_t phy_mode;
|
||||
struct phylink *phylink;
|
||||
struct mtk_mac *mac;
|
||||
@@ -4938,16 +5090,44 @@ static int mtk_add_mac(struct mtk_eth *e
|
||||
@@ -4942,16 +5094,44 @@ static int mtk_add_mac(struct mtk_eth *e
|
||||
mac->id = id;
|
||||
mac->hw = eth;
|
||||
mac->of_node = np;
|
||||
@@ -558,7 +558,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
}
|
||||
|
||||
memset(mac->hwlro_ip, 0, sizeof(mac->hwlro_ip));
|
||||
@@ -5030,8 +5210,21 @@ static int mtk_add_mac(struct mtk_eth *e
|
||||
@@ -5034,8 +5214,21 @@ static int mtk_add_mac(struct mtk_eth *e
|
||||
phy_interface_zero(mac->phylink_config.supported_interfaces);
|
||||
__set_bit(PHY_INTERFACE_MODE_INTERNAL,
|
||||
mac->phylink_config.supported_interfaces);
|
||||
@@ -580,7 +580,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
phylink = phylink_create(&mac->phylink_config,
|
||||
of_fwnode_handle(mac->of_node),
|
||||
phy_mode, &mtk_phylink_ops);
|
||||
@@ -5082,6 +5275,26 @@ free_netdev:
|
||||
@@ -5086,6 +5279,26 @@ free_netdev:
|
||||
return err;
|
||||
}
|
||||
|
||||
@@ -607,7 +607,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
void mtk_eth_set_dma_device(struct mtk_eth *eth, struct device *dma_dev)
|
||||
{
|
||||
struct net_device *dev, *tmp;
|
||||
@@ -5228,7 +5441,8 @@ static int mtk_probe(struct platform_dev
|
||||
@@ -5232,7 +5445,8 @@ static int mtk_probe(struct platform_dev
|
||||
regmap_write(cci, 0, 3);
|
||||
}
|
||||
|
||||
@@ -617,7 +617,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
err = mtk_sgmii_init(eth);
|
||||
|
||||
if (err)
|
||||
@@ -5332,6 +5546,24 @@ static int mtk_probe(struct platform_dev
|
||||
@@ -5336,6 +5550,24 @@ static int mtk_probe(struct platform_dev
|
||||
}
|
||||
}
|
||||
|
||||
@@ -642,7 +642,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
if (MTK_HAS_CAPS(eth->soc->caps, MTK_SHARED_INT)) {
|
||||
err = devm_request_irq(eth->dev, eth->irq[MTK_FE_IRQ_SHARED],
|
||||
mtk_handle_irq, 0,
|
||||
@@ -5442,6 +5674,11 @@ static void mtk_remove(struct platform_d
|
||||
@@ -5446,6 +5678,11 @@ static void mtk_remove(struct platform_d
|
||||
mtk_stop(eth->netdev[i]);
|
||||
mac = netdev_priv(eth->netdev[i]);
|
||||
phylink_disconnect_phy(mac->phylink);
|
||||
|
||||
+8
-8
@@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||
@@ -5712,7 +5712,7 @@ static const struct mtk_soc_data mt2701_
|
||||
@@ -5716,7 +5716,7 @@ static const struct mtk_soc_data mt2701_
|
||||
DESC_SIZE(struct mtk_rx_dma),
|
||||
.irq_done_mask = MTK_RX_DONE_INT,
|
||||
.dma_l4_valid = RX_DMA_L4_VALID,
|
||||
@@ -39,7 +39,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
.dma_max_len = MTK_TX_DMA_BUF_LEN,
|
||||
.dma_len_offset = 16,
|
||||
},
|
||||
@@ -5740,7 +5740,7 @@ static const struct mtk_soc_data mt7621_
|
||||
@@ -5744,7 +5744,7 @@ static const struct mtk_soc_data mt7621_
|
||||
DESC_SIZE(struct mtk_rx_dma),
|
||||
.irq_done_mask = MTK_RX_DONE_INT,
|
||||
.dma_l4_valid = RX_DMA_L4_VALID,
|
||||
@@ -48,7 +48,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
.dma_max_len = MTK_TX_DMA_BUF_LEN,
|
||||
.dma_len_offset = 16,
|
||||
},
|
||||
@@ -5770,7 +5770,7 @@ static const struct mtk_soc_data mt7622_
|
||||
@@ -5774,7 +5774,7 @@ static const struct mtk_soc_data mt7622_
|
||||
DESC_SIZE(struct mtk_rx_dma),
|
||||
.irq_done_mask = MTK_RX_DONE_INT,
|
||||
.dma_l4_valid = RX_DMA_L4_VALID,
|
||||
@@ -57,7 +57,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
.dma_max_len = MTK_TX_DMA_BUF_LEN,
|
||||
.dma_len_offset = 16,
|
||||
},
|
||||
@@ -5799,7 +5799,7 @@ static const struct mtk_soc_data mt7623_
|
||||
@@ -5803,7 +5803,7 @@ static const struct mtk_soc_data mt7623_
|
||||
DESC_SIZE(struct mtk_rx_dma),
|
||||
.irq_done_mask = MTK_RX_DONE_INT,
|
||||
.dma_l4_valid = RX_DMA_L4_VALID,
|
||||
@@ -66,7 +66,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
.dma_max_len = MTK_TX_DMA_BUF_LEN,
|
||||
.dma_len_offset = 16,
|
||||
},
|
||||
@@ -5825,7 +5825,7 @@ static const struct mtk_soc_data mt7629_
|
||||
@@ -5829,7 +5829,7 @@ static const struct mtk_soc_data mt7629_
|
||||
DESC_SIZE(struct mtk_rx_dma),
|
||||
.irq_done_mask = MTK_RX_DONE_INT,
|
||||
.dma_l4_valid = RX_DMA_L4_VALID,
|
||||
@@ -75,7 +75,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
.dma_max_len = MTK_TX_DMA_BUF_LEN,
|
||||
.dma_len_offset = 16,
|
||||
},
|
||||
@@ -5857,7 +5857,7 @@ static const struct mtk_soc_data mt7981_
|
||||
@@ -5861,7 +5861,7 @@ static const struct mtk_soc_data mt7981_
|
||||
.dma_l4_valid = RX_DMA_L4_VALID_V2,
|
||||
.dma_max_len = MTK_TX_DMA_BUF_LEN,
|
||||
.dma_len_offset = 16,
|
||||
@@ -84,7 +84,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
},
|
||||
};
|
||||
|
||||
@@ -5887,7 +5887,7 @@ static const struct mtk_soc_data mt7986_
|
||||
@@ -5891,7 +5891,7 @@ static const struct mtk_soc_data mt7986_
|
||||
.dma_l4_valid = RX_DMA_L4_VALID_V2,
|
||||
.dma_max_len = MTK_TX_DMA_BUF_LEN,
|
||||
.dma_len_offset = 16,
|
||||
@@ -93,7 +93,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
},
|
||||
};
|
||||
|
||||
@@ -5940,7 +5940,7 @@ static const struct mtk_soc_data rt5350_
|
||||
@@ -5944,7 +5944,7 @@ static const struct mtk_soc_data rt5350_
|
||||
.dma_l4_valid = RX_DMA_L4_VALID_PDMA,
|
||||
.dma_max_len = MTK_TX_DMA_BUF_LEN,
|
||||
.dma_len_offset = 16,
|
||||
|
||||
+2
-2
@@ -25,7 +25,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
help
|
||||
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||
@@ -4819,6 +4819,7 @@ static int mtk_get_sset_count(struct net
|
||||
@@ -4823,6 +4823,7 @@ static int mtk_get_sset_count(struct net
|
||||
|
||||
static void mtk_ethtool_pp_stats(struct mtk_eth *eth, u64 *data)
|
||||
{
|
||||
@@ -33,7 +33,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
struct page_pool_stats stats = {};
|
||||
int i;
|
||||
|
||||
@@ -4831,6 +4832,7 @@ static void mtk_ethtool_pp_stats(struct
|
||||
@@ -4835,6 +4836,7 @@ static void mtk_ethtool_pp_stats(struct
|
||||
page_pool_get_stats(ring->page_pool, &stats);
|
||||
}
|
||||
page_pool_ethtool_stats_get(data, &stats);
|
||||
|
||||
+1
-1
@@ -132,7 +132,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
|
||||
|
||||
--- a/include/linux/pci.h
|
||||
+++ b/include/linux/pci.h
|
||||
@@ -486,6 +486,7 @@ struct pci_dev {
|
||||
@@ -498,6 +498,7 @@ struct pci_dev {
|
||||
unsigned int rom_attr_enabled:1; /* Display of ROM attribute enabled? */
|
||||
pci_dev_flags_t dev_flags;
|
||||
atomic_t enable_cnt; /* pci_enable_device has been called */
|
||||
|
||||
@@ -31,7 +31,7 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
|
||||
help
|
||||
--- a/init/main.c
|
||||
+++ b/init/main.c
|
||||
@@ -588,6 +588,29 @@ static inline void setup_nr_cpu_ids(void
|
||||
@@ -593,6 +593,29 @@ static inline void setup_nr_cpu_ids(void
|
||||
static inline void smp_prepare_cpus(unsigned int maxcpus) { }
|
||||
#endif
|
||||
|
||||
@@ -61,7 +61,7 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
|
||||
/*
|
||||
* We need to store the untouched command line for future reference.
|
||||
* We also need to store the touched command line since the parameter
|
||||
@@ -893,6 +916,7 @@ void start_kernel(void)
|
||||
@@ -898,6 +921,7 @@ void start_kernel(void)
|
||||
jump_label_init();
|
||||
static_call_init();
|
||||
early_security_init();
|
||||
|
||||
+1
-1
@@ -93,7 +93,7 @@ Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
|
||||
+#endif
|
||||
--- a/include/linux/skbuff.h
|
||||
+++ b/include/linux/skbuff.h
|
||||
@@ -4881,6 +4881,9 @@ enum skb_ext_id {
|
||||
@@ -4867,6 +4867,9 @@ enum skb_ext_id {
|
||||
#if IS_ENABLED(CONFIG_MCTP_FLOWS)
|
||||
SKB_EXT_MCTP,
|
||||
#endif
|
||||
|
||||
@@ -124,7 +124,7 @@ Subject: [PATCH] UGW_SW-29163: ATM oam support
|
||||
|
||||
--- a/net/atm/pppoatm.c
|
||||
+++ b/net/atm/pppoatm.c
|
||||
@@ -422,6 +422,12 @@ static int pppoatm_assign_vcc(struct atm
|
||||
@@ -414,6 +414,12 @@ static int pppoatm_assign_vcc(struct atm
|
||||
atmvcc->user_back = pvcc;
|
||||
atmvcc->push = pppoatm_push;
|
||||
atmvcc->pop = pppoatm_pop;
|
||||
|
||||
+1
-1
@@ -177,7 +177,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
|
||||
#include <linux/percpu.h>
|
||||
#include <linux/kmod.h>
|
||||
#include <linux/kprobes.h>
|
||||
@@ -927,6 +928,17 @@ void start_kernel(void)
|
||||
@@ -932,6 +933,17 @@ void start_kernel(void)
|
||||
|
||||
pr_notice("Kernel command line: %s\n", saved_command_line);
|
||||
/* parameters may set static keys */
|
||||
|
||||
@@ -5518,7 +5518,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||
(transaction layer end-to-end CRC checking).
|
||||
--- a/include/linux/pci.h
|
||||
+++ b/include/linux/pci.h
|
||||
@@ -1654,6 +1654,8 @@ void pci_walk_bus_locked(struct pci_bus
|
||||
@@ -1666,6 +1666,8 @@ void pci_walk_bus_locked(struct pci_bus
|
||||
void *userdata);
|
||||
int pci_cfg_space_size(struct pci_dev *dev);
|
||||
unsigned char pci_bus_max_busnr(struct pci_bus *bus);
|
||||
|
||||
+2
-2
@@ -126,7 +126,7 @@ Signed-off-by: Bo-Cun Chen <bc-bocun.chen@mediatek.com>
|
||||
if (mtk_is_netsys_v1(eth))
|
||||
val |= MTK_QTX_SCH_LEAKY_BUCKET_EN;
|
||||
mtk_w32(eth, val, soc->reg_map->qdma.qtx_sch + ofs);
|
||||
@@ -5948,6 +5984,36 @@ static const struct mtk_soc_data mt7986_
|
||||
@@ -5952,6 +5988,36 @@ static const struct mtk_soc_data mt7986_
|
||||
},
|
||||
};
|
||||
|
||||
@@ -163,7 +163,7 @@ Signed-off-by: Bo-Cun Chen <bc-bocun.chen@mediatek.com>
|
||||
static const struct mtk_soc_data mt7988_data = {
|
||||
.reg_map = &mt7988_reg_map,
|
||||
.ana_rgc3 = 0x128,
|
||||
@@ -6009,6 +6075,7 @@ const struct of_device_id of_mtk_match[]
|
||||
@@ -6013,6 +6079,7 @@ const struct of_device_id of_mtk_match[]
|
||||
{ .compatible = "mediatek,mt7629-eth", .data = &mt7629_data },
|
||||
{ .compatible = "mediatek,mt7981-eth", .data = &mt7981_data },
|
||||
{ .compatible = "mediatek,mt7986-eth", .data = &mt7986_data },
|
||||
|
||||
-81
@@ -1,81 +0,0 @@
|
||||
From 92da9095958114aca94d7ab0c8fa76ee556d412d Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Bence=20Cs=C3=B3k=C3=A1s?= <csokas.bence@prolan.hu>
|
||||
Date: Tue, 10 Jun 2025 10:22:53 +0200
|
||||
Subject: [PATCH 107/112] dmaengine: Add devm_dma_request_chan()
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Expand the arsenal of devm functions for DMA devices, this time for
|
||||
requesting channels.
|
||||
|
||||
Signed-off-by: Bence Csókás <csokas.bence@prolan.hu>
|
||||
Link: https://lore.kernel.org/r/20250610082256.400492-2-csokas.bence@prolan.hu
|
||||
Signed-off-by: Vinod Koul <vkoul@kernel.org>
|
||||
---
|
||||
drivers/dma/dmaengine.c | 30 ++++++++++++++++++++++++++++++
|
||||
include/linux/dmaengine.h | 7 +++++++
|
||||
2 files changed, 37 insertions(+)
|
||||
|
||||
--- a/drivers/dma/dmaengine.c
|
||||
+++ b/drivers/dma/dmaengine.c
|
||||
@@ -927,6 +927,36 @@ void dma_release_channel(struct dma_chan
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(dma_release_channel);
|
||||
|
||||
+static void dmaenginem_release_channel(void *chan)
|
||||
+{
|
||||
+ dma_release_channel(chan);
|
||||
+}
|
||||
+
|
||||
+/**
|
||||
+ * devm_dma_request_chan - try to allocate an exclusive slave channel
|
||||
+ * @dev: pointer to client device structure
|
||||
+ * @name: slave channel name
|
||||
+ *
|
||||
+ * Returns pointer to appropriate DMA channel on success or an error pointer.
|
||||
+ *
|
||||
+ * The operation is managed and will be undone on driver detach.
|
||||
+ */
|
||||
+
|
||||
+struct dma_chan *devm_dma_request_chan(struct device *dev, const char *name)
|
||||
+{
|
||||
+ struct dma_chan *chan = dma_request_chan(dev, name);
|
||||
+ int ret = 0;
|
||||
+
|
||||
+ if (!IS_ERR(chan))
|
||||
+ ret = devm_add_action_or_reset(dev, dmaenginem_release_channel, chan);
|
||||
+
|
||||
+ if (ret)
|
||||
+ return ERR_PTR(ret);
|
||||
+
|
||||
+ return chan;
|
||||
+}
|
||||
+EXPORT_SYMBOL_GPL(devm_dma_request_chan);
|
||||
+
|
||||
/**
|
||||
* dmaengine_get - register interest in dma_channels
|
||||
*/
|
||||
--- a/include/linux/dmaengine.h
|
||||
+++ b/include/linux/dmaengine.h
|
||||
@@ -1521,6 +1521,7 @@ struct dma_chan *__dma_request_channel(c
|
||||
|
||||
struct dma_chan *dma_request_chan(struct device *dev, const char *name);
|
||||
struct dma_chan *dma_request_chan_by_mask(const dma_cap_mask_t *mask);
|
||||
+struct dma_chan *devm_dma_request_chan(struct device *dev, const char *name);
|
||||
|
||||
void dma_release_channel(struct dma_chan *chan);
|
||||
int dma_get_slave_caps(struct dma_chan *chan, struct dma_slave_caps *caps);
|
||||
@@ -1557,6 +1558,12 @@ static inline struct dma_chan *dma_reque
|
||||
{
|
||||
return ERR_PTR(-ENODEV);
|
||||
}
|
||||
+
|
||||
+static inline struct dma_chan *devm_dma_request_chan(struct device *dev, const char *name)
|
||||
+{
|
||||
+ return ERR_PTR(-ENODEV);
|
||||
+}
|
||||
+
|
||||
static inline void dma_release_channel(struct dma_chan *chan)
|
||||
{
|
||||
}
|
||||
+1
-1
@@ -258,7 +258,7 @@ Signed-off-by: Michael Gray <michael.gray@lantisproject.com>
|
||||
static int kernel_init(void *);
|
||||
|
||||
/*
|
||||
@@ -926,6 +930,18 @@ void start_kernel(void)
|
||||
@@ -931,6 +935,18 @@ void start_kernel(void)
|
||||
boot_cpu_hotplug_init();
|
||||
|
||||
pr_notice("Kernel command line: %s\n", saved_command_line);
|
||||
|
||||
+1
-1
@@ -24,7 +24,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
|
||||
--- a/drivers/thermal/gov_step_wise.c
|
||||
+++ b/drivers/thermal/gov_step_wise.c
|
||||
@@ -87,19 +87,28 @@ static void thermal_zone_trip_update(str
|
||||
@@ -85,19 +85,28 @@ static void thermal_zone_trip_update(str
|
||||
int trip_id = thermal_zone_trip_id(tz, trip);
|
||||
struct thermal_instance *instance;
|
||||
bool throttle = false;
|
||||
|
||||
@@ -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
|
||||
@@ -6198,6 +6198,12 @@ static int mvpp2_port_copy_mac_addr(stru
|
||||
@@ -6199,6 +6199,12 @@ static int mvpp2_port_copy_mac_addr(stru
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
+#include <asm/octeon/octeon-platform.h>
|
||||
#include <asm/octeon/cvmx-helper-board.h>
|
||||
|
||||
#ifdef CONFIG_USB
|
||||
#if IS_ENABLED(CONFIG_USB)
|
||||
--- a/arch/mips/cavium-octeon/executive/cvmx-interrupt-decodes.c
|
||||
+++ b/arch/mips/cavium-octeon/executive/cvmx-interrupt-decodes.c
|
||||
@@ -34,6 +34,7 @@
|
||||
|
||||
+5
-5
@@ -21,17 +21,17 @@ Signed-off-by: Gokul Sriram Palanisamy <gokul.sriram.p@oss.qualcomm.com>
|
||||
|
||||
--- a/drivers/firmware/qcom/qcom_scm.c
|
||||
+++ b/drivers/firmware/qcom/qcom_scm.c
|
||||
@@ -593,9 +593,6 @@ int qcom_scm_pas_init_image(u32 peripher
|
||||
@@ -593,9 +593,6 @@ int qcom_scm_pas_init_image(u32 pas_id,
|
||||
int ret;
|
||||
struct qcom_scm_desc desc = {
|
||||
.svc = QCOM_SCM_SVC_PIL,
|
||||
- .cmd = QCOM_SCM_PIL_PAS_INIT_IMAGE,
|
||||
- .arginfo = QCOM_SCM_ARGS(2, QCOM_SCM_VAL, QCOM_SCM_RW),
|
||||
- .args[0] = peripheral,
|
||||
- .args[0] = pas_id,
|
||||
.owner = ARM_SMCCC_OWNER_SIP,
|
||||
};
|
||||
struct qcom_scm_res res;
|
||||
@@ -627,7 +624,19 @@ int qcom_scm_pas_init_image(u32 peripher
|
||||
@@ -627,7 +624,19 @@ int qcom_scm_pas_init_image(u32 pas_id,
|
||||
if (ret)
|
||||
goto disable_clk;
|
||||
|
||||
@@ -40,13 +40,13 @@ Signed-off-by: Gokul Sriram Palanisamy <gokul.sriram.p@oss.qualcomm.com>
|
||||
+ QCOM_SCM_PIL_PAS_INIT_IMAGE_V2)) {
|
||||
+ desc.cmd = QCOM_SCM_PIL_PAS_INIT_IMAGE_V2;
|
||||
+ desc.arginfo = QCOM_SCM_ARGS(3, QCOM_SCM_VAL, QCOM_SCM_RW, QCOM_SCM_VAL);
|
||||
+ desc.args[0] = peripheral;
|
||||
+ desc.args[0] = pas_id;
|
||||
+ desc.args[1] = mdata_phys;
|
||||
+ desc.args[2] = size;
|
||||
+ } else {
|
||||
+ desc.cmd = QCOM_SCM_PIL_PAS_INIT_IMAGE;
|
||||
+ desc.arginfo = QCOM_SCM_ARGS(2, QCOM_SCM_VAL, QCOM_SCM_RW);
|
||||
+ desc.args[0] = peripheral;
|
||||
+ desc.args[0] = pas_id;
|
||||
+ desc.args[1] = mdata_phys;
|
||||
+ }
|
||||
|
||||
|
||||
+5
-5
@@ -17,10 +17,10 @@ Signed-off-by: Manikanta Mylavarapu <quic_mmanikan@quicinc.com>
|
||||
|
||||
--- a/include/linux/firmware/qcom/qcom_scm.h
|
||||
+++ b/include/linux/firmware/qcom/qcom_scm.h
|
||||
@@ -79,6 +79,8 @@ int qcom_scm_pas_mem_setup(u32 periphera
|
||||
int qcom_scm_pas_auth_and_reset(u32 peripheral);
|
||||
int qcom_scm_pas_shutdown(u32 peripheral);
|
||||
bool qcom_scm_pas_supported(u32 peripheral);
|
||||
@@ -83,6 +83,8 @@ int qcom_scm_pas_mem_setup(u32 pas_id, p
|
||||
int qcom_scm_pas_auth_and_reset(u32 pas_id);
|
||||
int qcom_scm_pas_shutdown(u32 pas_id);
|
||||
bool qcom_scm_pas_supported(u32 pas_id);
|
||||
+int qcom_scm_msa_lock(u32 peripheral);
|
||||
+int qcom_scm_msa_unlock(u32 peripheral);
|
||||
|
||||
@@ -28,7 +28,7 @@ Signed-off-by: Manikanta Mylavarapu <quic_mmanikan@quicinc.com>
|
||||
int qcom_scm_io_writel(phys_addr_t addr, unsigned int val);
|
||||
--- a/drivers/firmware/qcom/qcom_scm.c
|
||||
+++ b/drivers/firmware/qcom/qcom_scm.c
|
||||
@@ -817,6 +817,84 @@ bool qcom_scm_pas_supported(u32 peripher
|
||||
@@ -817,6 +817,84 @@ bool qcom_scm_pas_supported(u32 pas_id)
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(qcom_scm_pas_supported);
|
||||
|
||||
|
||||
@@ -16,10 +16,10 @@ Signed-off-by: George Moussalem <george.moussalem@outlook.com>
|
||||
|
||||
--- a/include/linux/firmware/qcom/qcom_scm.h
|
||||
+++ b/include/linux/firmware/qcom/qcom_scm.h
|
||||
@@ -79,6 +79,9 @@ int qcom_scm_pas_mem_setup(u32 periphera
|
||||
int qcom_scm_pas_auth_and_reset(u32 peripheral);
|
||||
int qcom_scm_pas_shutdown(u32 peripheral);
|
||||
bool qcom_scm_pas_supported(u32 peripheral);
|
||||
@@ -83,6 +83,9 @@ int qcom_scm_pas_mem_setup(u32 pas_id, p
|
||||
int qcom_scm_pas_auth_and_reset(u32 pas_id);
|
||||
int qcom_scm_pas_shutdown(u32 pas_id);
|
||||
bool qcom_scm_pas_supported(u32 pas_id);
|
||||
+int qcom_scm_internal_wifi_powerup(u32 peripheral);
|
||||
+int qcom_scm_internal_wifi_shutdown(u32 peripheral);
|
||||
+int qcom_scm_pas_load_segment(u32 peripheral, int segment, dma_addr_t dma, int seg_cnt);
|
||||
@@ -28,7 +28,7 @@ Signed-off-by: George Moussalem <george.moussalem@outlook.com>
|
||||
|
||||
--- a/drivers/firmware/qcom/qcom_scm.c
|
||||
+++ b/drivers/firmware/qcom/qcom_scm.c
|
||||
@@ -818,6 +818,85 @@ bool qcom_scm_pas_supported(u32 peripher
|
||||
@@ -818,6 +818,85 @@ bool qcom_scm_pas_supported(u32 pas_id)
|
||||
EXPORT_SYMBOL_GPL(qcom_scm_pas_supported);
|
||||
|
||||
/**
|
||||
|
||||
+1
-1
@@ -156,7 +156,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
#define RK3568_GRF_GMAC0_CON0 0x0380
|
||||
#define RK3568_GRF_GMAC0_CON1 0x0384
|
||||
#define RK3568_GRF_GMAC1_CON0 0x0388
|
||||
@@ -2080,6 +2211,7 @@ static const struct of_device_id rk_gmac
|
||||
@@ -2083,6 +2214,7 @@ static const struct of_device_id rk_gmac
|
||||
{ .compatible = "rockchip,rk3366-gmac", .data = &rk3366_ops },
|
||||
{ .compatible = "rockchip,rk3368-gmac", .data = &rk3368_ops },
|
||||
{ .compatible = "rockchip,rk3399-gmac", .data = &rk3399_ops },
|
||||
|
||||
+1
-1
@@ -89,7 +89,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
};
|
||||
|
||||
#define RK3366_GRF_SOC_CON6 0x0418
|
||||
@@ -2070,16 +2074,16 @@ static int rk_gmac_powerup(struct rk_pri
|
||||
@@ -2073,16 +2077,16 @@ static int rk_gmac_powerup(struct rk_pri
|
||||
|
||||
pm_runtime_get_sync(dev);
|
||||
|
||||
|
||||
Reference in new issue
Block a user