mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-30 02:29:01 +00:00
kernel: bump 5.15 to 5.15.150
Removed because it is upstream:
bcm53xx/patches-5.15/030-v5.16-0019-ARM-dts-BCM53573-Describe-on-SoC-BCM53125-rev-4-swit.patch
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=cb1003c07e746e4e82bdd3959c9ea37018ed41a3
Removed because it is upstream:
bcm53xx/patches-5.15/037-v6.6-0004-ARM-dts-BCM53573-Drop-nonexistent-default-off-LED-tr.patch
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=c65a23e98e38dc991f495d6bdb3cfa6163a88a0c
Removed because it is upstream:
bcm53xx/patches-5.15/037-v6.6-0005-ARM-dts-BCM53573-Drop-nonexistent-usb-cells.patch
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=71475bcee001cae3844644c2787eef93b26489d1
Adapted hack-5.15/650-netfilter-add-xt_FLOWOFFLOAD-target.patch to match
the changes from the upstream flow offload patch:
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=7c71b831220edeab7ce603d818dc1708d9ea4137
Manually Adapted the following patch:
bcm53xx/patches-5.15/035-v6.2-0004-ARM-dts-broadcom-align-LED-node-names-with-dtschema.patch
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 387fde0da0
)
This commit is contained in:
parent
3062b186bf
commit
db7b247fa9
@ -1,2 +1,2 @@
|
||||
LINUX_VERSION-5.15 = .149
|
||||
LINUX_KERNEL_HASH-5.15.149 = bd84809a367eb400eb04e0e70294e6ba12fc03b6bfb5a7dfaca548f8947501b0
|
||||
LINUX_VERSION-5.15 = .150
|
||||
LINUX_KERNEL_HASH-5.15.150 = ee05592b458e7fcdc515b43605883a10cc2f65f2e2b58d60af8a72b93467e4d4
|
||||
|
@ -18,7 +18,7 @@ Signed-off-by: Stephen Boyd <sboyd@kernel.org>
|
||||
|
||||
--- a/drivers/clk/clk.c
|
||||
+++ b/drivers/clk/clk.c
|
||||
@@ -3131,7 +3131,10 @@ static int clk_rate_get(void *data, u64
|
||||
@@ -3142,7 +3142,10 @@ static int clk_rate_get(void *data, u64
|
||||
{
|
||||
struct clk_core *core = data;
|
||||
|
||||
|
@ -17,7 +17,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
|
||||
--- a/drivers/tty/serial/amba-pl011.c
|
||||
+++ b/drivers/tty/serial/amba-pl011.c
|
||||
@@ -1431,6 +1431,7 @@ static bool pl011_tx_char(struct uart_am
|
||||
@@ -1461,6 +1461,7 @@ static bool pl011_tx_char(struct uart_am
|
||||
return false; /* unable to transmit character */
|
||||
|
||||
pl011_write(c, uap, REG_DR);
|
||||
|
@ -22,7 +22,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
||||
|
||||
--- a/drivers/usb/host/xhci-mem.c
|
||||
+++ b/drivers/usb/host/xhci-mem.c
|
||||
@@ -2541,9 +2541,11 @@ int xhci_mem_init(struct xhci_hcd *xhci,
|
||||
@@ -2544,9 +2544,11 @@ int xhci_mem_init(struct xhci_hcd *xhci,
|
||||
* Event ring setup: Allocate a normal ring, but also setup
|
||||
* the event ring segment table (ERST). Section 4.9.3.
|
||||
*/
|
||||
@ -36,7 +36,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
||||
if (!xhci->event_ring)
|
||||
goto fail;
|
||||
if (xhci_check_trb_in_td_math(xhci) < 0)
|
||||
@@ -2556,7 +2558,7 @@ int xhci_mem_init(struct xhci_hcd *xhci,
|
||||
@@ -2559,7 +2561,7 @@ int xhci_mem_init(struct xhci_hcd *xhci,
|
||||
/* set ERST count with the number of entries in the segment table */
|
||||
val = readl(&xhci->ir_set->erst_size);
|
||||
val &= ERST_SIZE_MASK;
|
||||
|
@ -17,7 +17,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
|
||||
--- a/drivers/clk/clk.c
|
||||
+++ b/drivers/clk/clk.c
|
||||
@@ -1346,6 +1346,8 @@ static int clk_core_determine_round_nolo
|
||||
@@ -1357,6 +1357,8 @@ static int clk_core_determine_round_nolo
|
||||
if (!core)
|
||||
return 0;
|
||||
|
||||
|
@ -54,7 +54,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
addr = xhci_trb_virt_to_dma(new_seg, new_deq);
|
||||
--- a/drivers/usb/host/xhci.h
|
||||
+++ b/drivers/usb/host/xhci.h
|
||||
@@ -1908,6 +1908,7 @@ struct xhci_hcd {
|
||||
@@ -1907,6 +1907,7 @@ struct xhci_hcd {
|
||||
#define XHCI_RESET_TO_DEFAULT BIT_ULL(44)
|
||||
#define XHCI_ZHAOXIN_TRB_FETCH BIT_ULL(45)
|
||||
#define XHCI_ZHAOXIN_HOST BIT_ULL(46)
|
||||
|
@ -205,7 +205,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
xhci_err(xhci, "Tried to move enqueue past ring segment\n");
|
||||
return;
|
||||
}
|
||||
@@ -3166,7 +3169,7 @@ irqreturn_t xhci_irq(struct usb_hcd *hcd
|
||||
@@ -3165,7 +3168,7 @@ irqreturn_t xhci_irq(struct usb_hcd *hcd
|
||||
* that clears the EHB.
|
||||
*/
|
||||
while (xhci_handle_event(xhci) > 0) {
|
||||
@ -214,7 +214,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
continue;
|
||||
xhci_update_erst_dequeue(xhci, event_ring_deq);
|
||||
event_ring_deq = xhci->event_ring->dequeue;
|
||||
@@ -3308,7 +3311,8 @@ static int prepare_ring(struct xhci_hcd
|
||||
@@ -3307,7 +3310,8 @@ static int prepare_ring(struct xhci_hcd
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -63,7 +63,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA &&
|
||||
--- a/drivers/usb/host/xhci.h
|
||||
+++ b/drivers/usb/host/xhci.h
|
||||
@@ -1910,6 +1910,7 @@ struct xhci_hcd {
|
||||
@@ -1909,6 +1909,7 @@ struct xhci_hcd {
|
||||
#define XHCI_ZHAOXIN_TRB_FETCH BIT_ULL(45)
|
||||
#define XHCI_ZHAOXIN_HOST BIT_ULL(46)
|
||||
#define XHCI_AVOID_DQ_ON_LINK BIT_ULL(47)
|
||||
|
@ -36,7 +36,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA &&
|
||||
--- a/drivers/usb/host/xhci-ring.c
|
||||
+++ b/drivers/usb/host/xhci-ring.c
|
||||
@@ -3621,14 +3621,15 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
|
||||
@@ -3620,14 +3620,15 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
|
||||
unsigned int num_trbs;
|
||||
unsigned int start_cycle, num_sgs = 0;
|
||||
unsigned int enqd_len, block_len, trb_buff_len, full_len;
|
||||
@ -54,7 +54,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
full_len = urb->transfer_buffer_length;
|
||||
/* If we have scatter/gather list, we use it. */
|
||||
if (urb->num_sgs && !(urb->transfer_flags & URB_DMA_MAP_SINGLE)) {
|
||||
@@ -3665,6 +3666,17 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
|
||||
@@ -3664,6 +3665,17 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
|
||||
start_cycle = ring->cycle_state;
|
||||
send_addr = addr;
|
||||
|
||||
@ -72,7 +72,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
/* Queue the TRBs, even if they are zero-length */
|
||||
for (enqd_len = 0; first_trb || enqd_len < full_len;
|
||||
enqd_len += trb_buff_len) {
|
||||
@@ -3677,6 +3689,11 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
|
||||
@@ -3676,6 +3688,11 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
|
||||
if (enqd_len + trb_buff_len > full_len)
|
||||
trb_buff_len = full_len - enqd_len;
|
||||
|
||||
@ -86,7 +86,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
first_trb = false;
|
||||
--- a/drivers/usb/host/xhci.h
|
||||
+++ b/drivers/usb/host/xhci.h
|
||||
@@ -1911,6 +1911,7 @@ struct xhci_hcd {
|
||||
@@ -1910,6 +1910,7 @@ struct xhci_hcd {
|
||||
#define XHCI_ZHAOXIN_HOST BIT_ULL(46)
|
||||
#define XHCI_AVOID_DQ_ON_LINK BIT_ULL(47)
|
||||
#define XHCI_VLI_TRB_CACHE_BUG BIT_ULL(48)
|
||||
|
@ -13,7 +13,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
|
||||
--- a/drivers/usb/host/xhci-ring.c
|
||||
+++ b/drivers/usb/host/xhci-ring.c
|
||||
@@ -3621,7 +3621,7 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
|
||||
@@ -3620,7 +3620,7 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
|
||||
unsigned int num_trbs;
|
||||
unsigned int start_cycle, num_sgs = 0;
|
||||
unsigned int enqd_len, block_len, trb_buff_len, full_len;
|
||||
@ -22,7 +22,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
u32 field, length_field, remainder, maxpacket;
|
||||
u64 addr, send_addr;
|
||||
|
||||
@@ -3667,14 +3667,9 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
|
||||
@@ -3666,14 +3666,9 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
|
||||
send_addr = addr;
|
||||
|
||||
if (xhci->quirks & XHCI_VLI_SS_BULK_OUT_BUG &&
|
||||
@ -40,7 +40,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
}
|
||||
|
||||
/* Queue the TRBs, even if they are zero-length */
|
||||
@@ -3689,7 +3684,7 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
|
||||
@@ -3688,7 +3683,7 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
|
||||
if (enqd_len + trb_buff_len > full_len)
|
||||
trb_buff_len = full_len - enqd_len;
|
||||
|
||||
|
@ -18,7 +18,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
|
||||
--- a/drivers/clk/clk.c
|
||||
+++ b/drivers/clk/clk.c
|
||||
@@ -2386,11 +2386,7 @@ int clk_set_rate_range(struct clk *clk,
|
||||
@@ -2397,11 +2397,7 @@ int clk_set_rate_range(struct clk *clk,
|
||||
* this corner case when determining the rate
|
||||
*/
|
||||
|
||||
|
@ -30,7 +30,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
|
||||
--- a/drivers/clk/clk.c
|
||||
+++ b/drivers/clk/clk.c
|
||||
@@ -2371,28 +2371,29 @@ int clk_set_rate_range(struct clk *clk,
|
||||
@@ -2382,28 +2382,29 @@ int clk_set_rate_range(struct clk *clk,
|
||||
goto out;
|
||||
}
|
||||
|
||||
|
@ -29,7 +29,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
|
||||
--- a/drivers/clk/clk.c
|
||||
+++ b/drivers/clk/clk.c
|
||||
@@ -2330,19 +2330,15 @@ int clk_set_rate_exclusive(struct clk *c
|
||||
@@ -2341,19 +2341,15 @@ int clk_set_rate_exclusive(struct clk *c
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(clk_set_rate_exclusive);
|
||||
|
||||
@ -54,7 +54,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
if (!clk)
|
||||
return 0;
|
||||
|
||||
@@ -2355,8 +2351,6 @@ int clk_set_rate_range(struct clk *clk,
|
||||
@@ -2366,8 +2362,6 @@ int clk_set_rate_range(struct clk *clk,
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
@ -63,7 +63,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
if (clk->exclusive_count)
|
||||
clk_core_rate_unprotect(clk->core);
|
||||
|
||||
@@ -2400,6 +2394,28 @@ out:
|
||||
@@ -2411,6 +2405,28 @@ out:
|
||||
if (clk->exclusive_count)
|
||||
clk_core_rate_protect(clk->core);
|
||||
|
||||
@ -92,7 +92,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
clk_prepare_unlock();
|
||||
|
||||
return ret;
|
||||
@@ -4362,9 +4378,10 @@ void __clk_put(struct clk *clk)
|
||||
@@ -4373,9 +4389,10 @@ void __clk_put(struct clk *clk)
|
||||
}
|
||||
|
||||
hlist_del(&clk->clks_node);
|
||||
|
@ -22,7 +22,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
|
||||
--- a/drivers/clk/clk.c
|
||||
+++ b/drivers/clk/clk.c
|
||||
@@ -2365,6 +2365,10 @@ static int clk_set_rate_range_nolock(str
|
||||
@@ -2376,6 +2376,10 @@ static int clk_set_rate_range_nolock(str
|
||||
goto out;
|
||||
}
|
||||
|
||||
@ -33,7 +33,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
/*
|
||||
* Since the boundaries have been changed, let's give the
|
||||
* opportunity to the provider to adjust the clock rate based on
|
||||
@@ -2382,7 +2386,7 @@ static int clk_set_rate_range_nolock(str
|
||||
@@ -2393,7 +2397,7 @@ static int clk_set_rate_range_nolock(str
|
||||
* - the determine_rate() callback does not really check for
|
||||
* this corner case when determining the rate
|
||||
*/
|
||||
|
@ -23,7 +23,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
|
||||
--- a/drivers/clk/clk.c
|
||||
+++ b/drivers/clk/clk.c
|
||||
@@ -1757,6 +1757,23 @@ static void clk_core_update_orphan_statu
|
||||
@@ -1768,6 +1768,23 @@ static void clk_core_update_orphan_statu
|
||||
clk_core_update_orphan_status(child, is_orphan);
|
||||
}
|
||||
|
||||
@ -47,7 +47,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
static void clk_reparent(struct clk_core *core, struct clk_core *new_parent)
|
||||
{
|
||||
bool was_orphan = core->orphan;
|
||||
@@ -1781,6 +1798,7 @@ static void clk_reparent(struct clk_core
|
||||
@@ -1792,6 +1809,7 @@ static void clk_reparent(struct clk_core
|
||||
}
|
||||
|
||||
core->parent = new_parent;
|
||||
|
@ -25,7 +25,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
|
||||
--- a/drivers/clk/clk.c
|
||||
+++ b/drivers/clk/clk.c
|
||||
@@ -2387,6 +2387,12 @@ static int clk_set_rate_range_nolock(str
|
||||
@@ -2398,6 +2398,12 @@ static int clk_set_rate_range_nolock(str
|
||||
if (clk->core->flags & CLK_GET_RATE_NOCACHE)
|
||||
rate = clk_core_get_rate_recalc(clk->core);
|
||||
|
||||
|
@ -26,7 +26,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
|
||||
--- a/drivers/clk/clk.c
|
||||
+++ b/drivers/clk/clk.c
|
||||
@@ -1380,6 +1380,8 @@ static void clk_core_init_rate_req(struc
|
||||
@@ -1391,6 +1391,8 @@ static void clk_core_init_rate_req(struc
|
||||
if (WARN_ON(!core || !req))
|
||||
return;
|
||||
|
||||
@ -35,7 +35,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
parent = core->parent;
|
||||
if (parent) {
|
||||
req->best_parent_hw = parent->hw;
|
||||
@@ -1454,7 +1456,6 @@ unsigned long clk_hw_round_rate(struct c
|
||||
@@ -1465,7 +1467,6 @@ unsigned long clk_hw_round_rate(struct c
|
||||
int ret;
|
||||
struct clk_rate_request req;
|
||||
|
||||
@ -43,7 +43,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
req.rate = rate;
|
||||
|
||||
ret = clk_core_round_rate_nolock(hw->core, &req);
|
||||
@@ -1487,7 +1488,6 @@ long clk_round_rate(struct clk *clk, uns
|
||||
@@ -1498,7 +1499,6 @@ long clk_round_rate(struct clk *clk, uns
|
||||
if (clk->exclusive_count)
|
||||
clk_core_rate_unprotect(clk->core);
|
||||
|
||||
@ -51,7 +51,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
req.rate = rate;
|
||||
|
||||
ret = clk_core_round_rate_nolock(clk->core, &req);
|
||||
@@ -1994,8 +1994,6 @@ static struct clk_core *clk_calc_new_rat
|
||||
@@ -2005,8 +2005,6 @@ static struct clk_core *clk_calc_new_rat
|
||||
struct clk_rate_request req;
|
||||
|
||||
req.rate = rate;
|
||||
|
@ -19,7 +19,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
|
||||
--- a/drivers/clk/clk.c
|
||||
+++ b/drivers/clk/clk.c
|
||||
@@ -1373,13 +1373,15 @@ static int clk_core_determine_round_nolo
|
||||
@@ -1384,13 +1384,15 @@ static int clk_core_determine_round_nolo
|
||||
}
|
||||
|
||||
static void clk_core_init_rate_req(struct clk_core * const core,
|
||||
@ -36,7 +36,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
clk_core_get_boundaries(core, &req->min_rate, &req->max_rate);
|
||||
|
||||
parent = core->parent;
|
||||
@@ -1407,7 +1409,7 @@ static int clk_core_round_rate_nolock(st
|
||||
@@ -1418,7 +1420,7 @@ static int clk_core_round_rate_nolock(st
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -45,7 +45,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
|
||||
if (clk_core_can_round(core))
|
||||
return clk_core_determine_round_nolock(core, req);
|
||||
@@ -1993,9 +1995,7 @@ static struct clk_core *clk_calc_new_rat
|
||||
@@ -2004,9 +2006,7 @@ static struct clk_core *clk_calc_new_rat
|
||||
if (clk_core_can_round(core)) {
|
||||
struct clk_rate_request req;
|
||||
|
||||
|
@ -22,7 +22,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
|
||||
--- a/drivers/clk/clk.c
|
||||
+++ b/drivers/clk/clk.c
|
||||
@@ -1394,6 +1394,26 @@ static void clk_core_init_rate_req(struc
|
||||
@@ -1405,6 +1405,26 @@ static void clk_core_init_rate_req(struc
|
||||
}
|
||||
}
|
||||
|
||||
@ -69,5 +69,5 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
+ unsigned long rate);
|
||||
+
|
||||
/**
|
||||
* struct clk_duty - Struture encoding the duty cycle ratio of a clock
|
||||
* struct clk_duty - Structure encoding the duty cycle ratio of a clock
|
||||
*
|
||||
|
@ -19,7 +19,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
|
||||
--- a/drivers/clk/clk.c
|
||||
+++ b/drivers/clk/clk.c
|
||||
@@ -1478,7 +1478,7 @@ unsigned long clk_hw_round_rate(struct c
|
||||
@@ -1489,7 +1489,7 @@ unsigned long clk_hw_round_rate(struct c
|
||||
int ret;
|
||||
struct clk_rate_request req;
|
||||
|
||||
@ -28,7 +28,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
|
||||
ret = clk_core_round_rate_nolock(hw->core, &req);
|
||||
if (ret)
|
||||
@@ -1510,7 +1510,7 @@ long clk_round_rate(struct clk *clk, uns
|
||||
@@ -1521,7 +1521,7 @@ long clk_round_rate(struct clk *clk, uns
|
||||
if (clk->exclusive_count)
|
||||
clk_core_rate_unprotect(clk->core);
|
||||
|
||||
@ -37,7 +37,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
|
||||
ret = clk_core_round_rate_nolock(clk->core, &req);
|
||||
|
||||
@@ -2214,8 +2214,7 @@ static unsigned long clk_core_req_round_
|
||||
@@ -2225,8 +2225,7 @@ static unsigned long clk_core_req_round_
|
||||
if (cnt < 0)
|
||||
return cnt;
|
||||
|
||||
|
@ -23,7 +23,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
|
||||
--- a/drivers/clk/clk.c
|
||||
+++ b/drivers/clk/clk.c
|
||||
@@ -1429,8 +1429,6 @@ static int clk_core_round_rate_nolock(st
|
||||
@@ -1440,8 +1440,6 @@ static int clk_core_round_rate_nolock(st
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -24,7 +24,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
|
||||
--- a/drivers/clk/clk.c
|
||||
+++ b/drivers/clk/clk.c
|
||||
@@ -542,6 +542,9 @@ static bool mux_is_better_rate(unsigned
|
||||
@@ -553,6 +553,9 @@ static bool mux_is_better_rate(unsigned
|
||||
return now <= rate && now > best;
|
||||
}
|
||||
|
||||
@ -34,7 +34,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
int clk_mux_determine_rate_flags(struct clk_hw *hw,
|
||||
struct clk_rate_request *req,
|
||||
unsigned long flags)
|
||||
@@ -555,8 +558,12 @@ int clk_mux_determine_rate_flags(struct
|
||||
@@ -566,8 +569,12 @@ int clk_mux_determine_rate_flags(struct
|
||||
if (core->flags & CLK_SET_RATE_NO_REPARENT) {
|
||||
parent = core->parent;
|
||||
if (core->flags & CLK_SET_RATE_PARENT) {
|
||||
@ -49,7 +49,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
@@ -579,7 +586,7 @@ int clk_mux_determine_rate_flags(struct
|
||||
@@ -590,7 +597,7 @@ int clk_mux_determine_rate_flags(struct
|
||||
|
||||
if (core->flags & CLK_SET_RATE_PARENT) {
|
||||
parent_req = *req;
|
||||
|
@ -20,7 +20,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
|
||||
--- a/drivers/clk/clk.c
|
||||
+++ b/drivers/clk/clk.c
|
||||
@@ -545,6 +545,26 @@ static bool mux_is_better_rate(unsigned
|
||||
@@ -556,6 +556,26 @@ static bool mux_is_better_rate(unsigned
|
||||
static int clk_core_round_rate_nolock(struct clk_core *core,
|
||||
struct clk_rate_request *req);
|
||||
|
||||
@ -47,7 +47,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
int clk_mux_determine_rate_flags(struct clk_hw *hw,
|
||||
struct clk_rate_request *req,
|
||||
unsigned long flags)
|
||||
@@ -2568,25 +2588,11 @@ void clk_hw_reparent(struct clk_hw *hw,
|
||||
@@ -2579,25 +2599,11 @@ void clk_hw_reparent(struct clk_hw *hw,
|
||||
*/
|
||||
bool clk_has_parent(struct clk *clk, struct clk *parent)
|
||||
{
|
||||
|
@ -35,7 +35,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
|
||||
--- a/drivers/clk/clk.c
|
||||
+++ b/drivers/clk/clk.c
|
||||
@@ -542,6 +542,10 @@ static bool mux_is_better_rate(unsigned
|
||||
@@ -553,6 +553,10 @@ static bool mux_is_better_rate(unsigned
|
||||
return now <= rate && now > best;
|
||||
}
|
||||
|
||||
@ -46,7 +46,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
static int clk_core_round_rate_nolock(struct clk_core *core,
|
||||
struct clk_rate_request *req);
|
||||
|
||||
@@ -565,6 +569,24 @@ static bool clk_core_has_parent(struct c
|
||||
@@ -576,6 +580,24 @@ static bool clk_core_has_parent(struct c
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -71,7 +71,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
int clk_mux_determine_rate_flags(struct clk_hw *hw,
|
||||
struct clk_rate_request *req,
|
||||
unsigned long flags)
|
||||
@@ -572,17 +594,19 @@ int clk_mux_determine_rate_flags(struct
|
||||
@@ -583,17 +605,19 @@ int clk_mux_determine_rate_flags(struct
|
||||
struct clk_core *core = hw->core, *parent, *best_parent = NULL;
|
||||
int i, num_parents, ret;
|
||||
unsigned long best = 0;
|
||||
@ -92,7 +92,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
ret = clk_core_round_rate_nolock(parent, &parent_req);
|
||||
if (ret)
|
||||
return ret;
|
||||
@@ -600,23 +624,29 @@ int clk_mux_determine_rate_flags(struct
|
||||
@@ -611,23 +635,29 @@ int clk_mux_determine_rate_flags(struct
|
||||
/* find the parent that can provide the fastest rate <= rate */
|
||||
num_parents = core->num_parents;
|
||||
for (i = 0; i < num_parents; i++) {
|
||||
@ -126,7 +126,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1449,6 +1479,8 @@ static bool clk_core_can_round(struct cl
|
||||
@@ -1460,6 +1490,8 @@ static bool clk_core_can_round(struct cl
|
||||
static int clk_core_round_rate_nolock(struct clk_core *core,
|
||||
struct clk_rate_request *req)
|
||||
{
|
||||
@ -135,7 +135,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
lockdep_assert_held(&prepare_lock);
|
||||
|
||||
if (!core) {
|
||||
@@ -1458,8 +1490,20 @@ static int clk_core_round_rate_nolock(st
|
||||
@@ -1469,8 +1501,20 @@ static int clk_core_round_rate_nolock(st
|
||||
|
||||
if (clk_core_can_round(core))
|
||||
return clk_core_determine_round_nolock(core, req);
|
||||
|
@ -17,7 +17,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
|
||||
--- a/drivers/clk/clk.c
|
||||
+++ b/drivers/clk/clk.c
|
||||
@@ -1438,6 +1438,8 @@ static void clk_core_init_rate_req(struc
|
||||
@@ -1449,6 +1449,8 @@ static void clk_core_init_rate_req(struc
|
||||
if (WARN_ON(!core || !req))
|
||||
return;
|
||||
|
||||
|
@ -18,7 +18,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
|
||||
--- a/drivers/clk/clk.c
|
||||
+++ b/drivers/clk/clk.c
|
||||
@@ -269,7 +269,7 @@ EXPORT_SYMBOL_GPL(__clk_get_name);
|
||||
@@ -280,7 +280,7 @@ EXPORT_SYMBOL_GPL(__clk_get_name);
|
||||
|
||||
const char *clk_hw_get_name(const struct clk_hw *hw)
|
||||
{
|
||||
|
@ -28,7 +28,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
|
||||
--- a/drivers/clk/clk.c
|
||||
+++ b/drivers/clk/clk.c
|
||||
@@ -2575,6 +2575,24 @@ int clk_set_max_rate(struct clk *clk, un
|
||||
@@ -2586,6 +2586,24 @@ int clk_set_max_rate(struct clk *clk, un
|
||||
EXPORT_SYMBOL_GPL(clk_set_max_rate);
|
||||
|
||||
/**
|
||||
|
@ -13,7 +13,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
|
||||
--- a/drivers/clk/clk.c
|
||||
+++ b/drivers/clk/clk.c
|
||||
@@ -2588,7 +2588,9 @@ void clk_get_rate_range(struct clk *clk,
|
||||
@@ -2599,7 +2599,9 @@ void clk_get_rate_range(struct clk *clk,
|
||||
if (!clk || !min || !max)
|
||||
return;
|
||||
|
||||
|
@ -1,44 +0,0 @@
|
||||
From 9fb90ae6cae7f8fe4fbf626945f32cd9da2c3892 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
|
||||
Date: Mon, 20 Sep 2021 16:10:23 +0200
|
||||
Subject: [PATCH] ARM: dts: BCM53573: Describe on-SoC BCM53125 rev 4 switch
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
BCM53573 family SoC have Ethernet switch connected to the first Ethernet
|
||||
controller (accessible over MDIO).
|
||||
|
||||
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
|
||||
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
---
|
||||
arch/arm/boot/dts/bcm53573.dtsi | 18 ++++++++++++++++++
|
||||
1 file changed, 18 insertions(+)
|
||||
|
||||
--- a/arch/arm/boot/dts/bcm53573.dtsi
|
||||
+++ b/arch/arm/boot/dts/bcm53573.dtsi
|
||||
@@ -183,6 +183,24 @@
|
||||
|
||||
gmac0: ethernet@5000 {
|
||||
reg = <0x5000 0x1000>;
|
||||
+
|
||||
+ mdio {
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+
|
||||
+ switch: switch@1e {
|
||||
+ compatible = "brcm,bcm53125";
|
||||
+ reg = <0x1e>;
|
||||
+
|
||||
+ status = "disabled";
|
||||
+
|
||||
+ /* ports are defined in board DTS */
|
||||
+ ports {
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
};
|
||||
|
||||
gmac1: ethernet@b000 {
|
@ -781,7 +781,7 @@ Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
gpios = <&chipcommon 17 GPIO_ACTIVE_LOW>;
|
||||
--- a/arch/arm/boot/dts/bcm47189-luxul-xap-1440.dts
|
||||
+++ b/arch/arm/boot/dts/bcm47189-luxul-xap-1440.dts
|
||||
@@ -39,7 +39,7 @@
|
||||
@@ -38,7 +38,7 @@
|
||||
gpio-keys {
|
||||
compatible = "gpio-keys";
|
||||
|
||||
@ -792,7 +792,7 @@ Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
gpios = <&chipcommon 7 GPIO_ACTIVE_LOW>;
|
||||
--- a/arch/arm/boot/dts/bcm47189-luxul-xap-810.dts
|
||||
+++ b/arch/arm/boot/dts/bcm47189-luxul-xap-810.dts
|
||||
@@ -49,7 +49,7 @@
|
||||
@@ -47,7 +47,7 @@
|
||||
gpio-keys {
|
||||
compatible = "gpio-keys";
|
||||
|
||||
|
@ -1514,7 +1514,7 @@ Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
};
|
||||
--- a/arch/arm/boot/dts/bcm47189-luxul-xap-1440.dts
|
||||
+++ b/arch/arm/boot/dts/bcm47189-luxul-xap-1440.dts
|
||||
@@ -23,13 +23,13 @@
|
||||
@@ -23,12 +23,12 @@
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
@ -1522,7 +1522,6 @@ Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
+ led-wlan {
|
||||
label = "bcm53xx:blue:wlan";
|
||||
gpios = <&chipcommon 10 GPIO_ACTIVE_LOW>;
|
||||
linux,default-trigger = "default-off";
|
||||
};
|
||||
|
||||
- system {
|
||||
@ -1532,7 +1531,7 @@ Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
linux,default-trigger = "timer";
|
||||
--- a/arch/arm/boot/dts/bcm47189-luxul-xap-810.dts
|
||||
+++ b/arch/arm/boot/dts/bcm47189-luxul-xap-810.dts
|
||||
@@ -20,26 +20,26 @@
|
||||
@@ -20,25 +20,25 @@
|
||||
reg = <0x00000000 0x08000000>;
|
||||
};
|
||||
|
||||
@ -1544,7 +1543,6 @@ Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
+ led-5ghz {
|
||||
label = "bcm53xx:blue:5ghz";
|
||||
gpios = <&chipcommon 11 GPIO_ACTIVE_HIGH>;
|
||||
linux,default-trigger = "default-off";
|
||||
};
|
||||
|
||||
- system {
|
||||
@ -1563,7 +1561,7 @@ Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
+ led-2ghz {
|
||||
label = "bcm53xx:blue:2ghz";
|
||||
gpios = <&pcie0_chipcommon 3 GPIO_ACTIVE_HIGH>;
|
||||
linux,default-trigger = "default-off";
|
||||
};
|
||||
--- a/arch/arm/boot/dts/bcm47189-tenda-ac9.dts
|
||||
+++ b/arch/arm/boot/dts/bcm47189-tenda-ac9.dts
|
||||
@@ -20,37 +20,37 @@
|
||||
|
@ -1,57 +0,0 @@
|
||||
From be7e1e5b0f67c58ec4be0a54db23b6a4fa6e2116 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
|
||||
Date: Fri, 7 Jul 2023 13:40:01 +0200
|
||||
Subject: [PATCH] ARM: dts: BCM53573: Drop nonexistent "default-off" LED
|
||||
trigger
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
There is no such trigger documented or implemented in Linux. It was a
|
||||
copy & paste mistake.
|
||||
|
||||
This fixes:
|
||||
arch/arm/boot/dts/broadcom/bcm47189-luxul-xap-1440.dtb: leds: led-wlan:linux,default-trigger: 'oneOf' conditional failed, one must be fixed:
|
||||
'default-off' is not one of ['backlight', 'default-on', 'heartbeat', 'disk-activity', 'disk-read', 'disk-write', 'timer', 'pattern', 'audio-micmute', 'audio-mute', 'bluetooth-power', 'flash', 'kbd-capslock', 'mtd', 'nand-disk', 'none', 'torch', 'usb-gadget', 'usb-host', 'usbport']
|
||||
'default-off' does not match '^cpu[0-9]*$'
|
||||
'default-off' does not match '^hci[0-9]+-power$'
|
||||
'default-off' does not match '^mmc[0-9]+$'
|
||||
'default-off' does not match '^phy[0-9]+tx$'
|
||||
From schema: Documentation/devicetree/bindings/leds/leds-gpio.yaml
|
||||
|
||||
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
|
||||
Link: https://lore.kernel.org/r/20230707114004.2740-1-zajec5@gmail.com
|
||||
Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
|
||||
---
|
||||
arch/arm/boot/dts/broadcom/bcm47189-luxul-xap-1440.dts | 1 -
|
||||
arch/arm/boot/dts/broadcom/bcm47189-luxul-xap-810.dts | 2 --
|
||||
2 files changed, 3 deletions(-)
|
||||
|
||||
--- a/arch/arm/boot/dts/bcm47189-luxul-xap-1440.dts
|
||||
+++ b/arch/arm/boot/dts/bcm47189-luxul-xap-1440.dts
|
||||
@@ -26,7 +26,6 @@
|
||||
led-wlan {
|
||||
label = "bcm53xx:blue:wlan";
|
||||
gpios = <&chipcommon 10 GPIO_ACTIVE_LOW>;
|
||||
- linux,default-trigger = "default-off";
|
||||
};
|
||||
|
||||
led-system {
|
||||
--- a/arch/arm/boot/dts/bcm47189-luxul-xap-810.dts
|
||||
+++ b/arch/arm/boot/dts/bcm47189-luxul-xap-810.dts
|
||||
@@ -26,7 +26,6 @@
|
||||
led-5ghz {
|
||||
label = "bcm53xx:blue:5ghz";
|
||||
gpios = <&chipcommon 11 GPIO_ACTIVE_HIGH>;
|
||||
- linux,default-trigger = "default-off";
|
||||
};
|
||||
|
||||
led-system {
|
||||
@@ -42,7 +41,6 @@
|
||||
led-2ghz {
|
||||
label = "bcm53xx:blue:2ghz";
|
||||
gpios = <&pcie0_chipcommon 3 GPIO_ACTIVE_HIGH>;
|
||||
- linux,default-trigger = "default-off";
|
||||
};
|
||||
};
|
||||
|
@ -1,32 +0,0 @@
|
||||
From 05d2c3d552b8c92fc397377d9d1112fc58e2cd59 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
|
||||
Date: Fri, 7 Jul 2023 13:40:02 +0200
|
||||
Subject: [PATCH] ARM: dts: BCM53573: Drop nonexistent #usb-cells
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Such property simply doesn't exist (is not documented or used anywhere).
|
||||
|
||||
This fixes:
|
||||
arch/arm/boot/dts/broadcom/bcm47189-luxul-xap-1440.dtb: usb@d000: Unevaluated properties are not allowed ('#usb-cells' was unexpected)
|
||||
From schema: Documentation/devicetree/bindings/usb/generic-ohci.yaml
|
||||
|
||||
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
|
||||
Link: https://lore.kernel.org/r/20230707114004.2740-2-zajec5@gmail.com
|
||||
Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
|
||||
---
|
||||
arch/arm/boot/dts/broadcom/bcm53573.dtsi | 2 --
|
||||
1 file changed, 2 deletions(-)
|
||||
|
||||
--- a/arch/arm/boot/dts/bcm53573.dtsi
|
||||
+++ b/arch/arm/boot/dts/bcm53573.dtsi
|
||||
@@ -159,8 +159,6 @@
|
||||
};
|
||||
|
||||
ohci: usb@d000 {
|
||||
- #usb-cells = <0>;
|
||||
-
|
||||
compatible = "generic-ohci";
|
||||
reg = <0xd000 0x1000>;
|
||||
interrupt-parent = <&gic>;
|
@ -109,7 +109,7 @@ it on BCM4708 family.
|
||||
|
||||
--- a/drivers/usb/host/xhci.h
|
||||
+++ b/drivers/usb/host/xhci.h
|
||||
@@ -1908,6 +1908,7 @@ struct xhci_hcd {
|
||||
@@ -1907,6 +1907,7 @@ struct xhci_hcd {
|
||||
#define XHCI_RESET_TO_DEFAULT BIT_ULL(44)
|
||||
#define XHCI_ZHAOXIN_TRB_FETCH BIT_ULL(45)
|
||||
#define XHCI_ZHAOXIN_HOST BIT_ULL(46)
|
||||
|
@ -538,7 +538,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
|
||||
(1UL << PG_private | 1UL << PG_private_2)
|
||||
--- a/include/linux/sched.h
|
||||
+++ b/include/linux/sched.h
|
||||
@@ -911,6 +911,10 @@ struct task_struct {
|
||||
@@ -907,6 +907,10 @@ struct task_struct {
|
||||
#ifdef CONFIG_MEMCG
|
||||
unsigned in_user_fault:1;
|
||||
#endif
|
||||
|
@ -31,15 +31,15 @@ Signed-off-by: Vinod Koul <vkoul@kernel.org>
|
||||
|
||||
--- a/drivers/ata/ahci.h
|
||||
+++ b/drivers/ata/ahci.h
|
||||
@@ -241,8 +241,6 @@ enum {
|
||||
@@ -240,8 +240,6 @@ enum {
|
||||
as default lpm_policy */
|
||||
AHCI_HFLAG_SUSPEND_PHYS = BIT(26), /* handle PHYs during
|
||||
suspend/resume */
|
||||
- AHCI_HFLAG_IGN_NOTSUPP_POWER_ON = BIT(27), /* ignore -EOPNOTSUPP
|
||||
- from phy_power_on() */
|
||||
AHCI_HFLAG_NO_SXS = BIT(28), /* SXS not supported */
|
||||
AHCI_HFLAG_43BIT_ONLY = BIT(29), /* 43bit DMA addr limit */
|
||||
|
||||
/* ap->flags bits */
|
||||
--- a/drivers/ata/ahci_mvebu.c
|
||||
+++ b/drivers/ata/ahci_mvebu.c
|
||||
@@ -227,7 +227,7 @@ static const struct ahci_mvebu_plat_data
|
||||
|
@ -71,7 +71,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
ret = stmmac_hw_setup(dev, true);
|
||||
if (ret < 0) {
|
||||
netdev_err(priv->dev, "%s: Hw setup failed\n", __func__);
|
||||
@@ -6430,6 +6423,7 @@ void stmmac_enable_rx_queue(struct stmma
|
||||
@@ -6410,6 +6403,7 @@ void stmmac_enable_rx_queue(struct stmma
|
||||
return;
|
||||
}
|
||||
|
||||
@ -79,7 +79,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
stmmac_clear_rx_descriptors(priv, queue);
|
||||
|
||||
stmmac_init_rx_chan(priv, priv->ioaddr, priv->plat->dma_cfg,
|
||||
@@ -6491,6 +6485,7 @@ void stmmac_enable_tx_queue(struct stmma
|
||||
@@ -6471,6 +6465,7 @@ void stmmac_enable_tx_queue(struct stmma
|
||||
return;
|
||||
}
|
||||
|
||||
@ -87,7 +87,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
stmmac_clear_tx_descriptors(priv, queue);
|
||||
|
||||
stmmac_init_tx_chan(priv, priv->ioaddr, priv->plat->dma_cfg,
|
||||
@@ -7418,6 +7413,25 @@ int stmmac_suspend(struct device *dev)
|
||||
@@ -7398,6 +7393,25 @@ int stmmac_suspend(struct device *dev)
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(stmmac_suspend);
|
||||
|
||||
@ -113,7 +113,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
/**
|
||||
* stmmac_reset_queues_param - reset queue parameters
|
||||
* @priv: device pointer
|
||||
@@ -7428,22 +7442,11 @@ static void stmmac_reset_queues_param(st
|
||||
@@ -7408,22 +7422,11 @@ static void stmmac_reset_queues_param(st
|
||||
u32 tx_cnt = priv->plat->tx_queues_to_use;
|
||||
u32 queue;
|
||||
|
||||
|
@ -1033,7 +1033,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
/* Data payload appended into SKB */
|
||||
page_pool_release_page(rx_q->page_pool, buf->sec_page);
|
||||
@@ -5768,11 +5768,13 @@ static irqreturn_t stmmac_safety_interru
|
||||
@@ -5758,11 +5758,13 @@ static irqreturn_t stmmac_safety_interru
|
||||
static irqreturn_t stmmac_msi_intr_tx(int irq, void *data)
|
||||
{
|
||||
struct stmmac_tx_queue *tx_q = (struct stmmac_tx_queue *)data;
|
||||
@ -1046,9 +1046,9 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
+ dma_conf = container_of(tx_q, struct stmmac_dma_conf, tx_queue[chan]);
|
||||
+ priv = container_of(dma_conf, struct stmmac_priv, dma_conf);
|
||||
|
||||
if (unlikely(!data)) {
|
||||
netdev_err(priv->dev, "%s: invalid dev pointer\n", __func__);
|
||||
@@ -5812,10 +5814,12 @@ static irqreturn_t stmmac_msi_intr_tx(in
|
||||
/* Check if adapter is up */
|
||||
if (test_bit(STMMAC_DOWN, &priv->state))
|
||||
@@ -5797,10 +5799,12 @@ static irqreturn_t stmmac_msi_intr_tx(in
|
||||
static irqreturn_t stmmac_msi_intr_rx(int irq, void *data)
|
||||
{
|
||||
struct stmmac_rx_queue *rx_q = (struct stmmac_rx_queue *)data;
|
||||
@ -1060,9 +1060,9 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
+ dma_conf = container_of(rx_q, struct stmmac_dma_conf, rx_queue[chan]);
|
||||
+ priv = container_of(dma_conf, struct stmmac_priv, dma_conf);
|
||||
|
||||
if (unlikely(!data)) {
|
||||
netdev_err(priv->dev, "%s: invalid dev pointer\n", __func__);
|
||||
@@ -5846,10 +5850,10 @@ static void stmmac_poll_controller(struc
|
||||
/* Check if adapter is up */
|
||||
if (test_bit(STMMAC_DOWN, &priv->state))
|
||||
@@ -5826,10 +5830,10 @@ static void stmmac_poll_controller(struc
|
||||
|
||||
if (priv->plat->multi_msi_en) {
|
||||
for (i = 0; i < priv->plat->rx_queues_to_use; i++)
|
||||
@ -1075,7 +1075,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
} else {
|
||||
disable_irq(dev->irq);
|
||||
stmmac_interrupt(dev->irq, dev);
|
||||
@@ -6030,34 +6034,34 @@ static int stmmac_rings_status_show(stru
|
||||
@@ -6010,34 +6014,34 @@ static int stmmac_rings_status_show(stru
|
||||
return 0;
|
||||
|
||||
for (queue = 0; queue < rx_count; queue++) {
|
||||
@ -1116,7 +1116,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6404,7 +6408,7 @@ void stmmac_disable_rx_queue(struct stmm
|
||||
@@ -6384,7 +6388,7 @@ void stmmac_disable_rx_queue(struct stmm
|
||||
|
||||
void stmmac_enable_rx_queue(struct stmmac_priv *priv, u32 queue)
|
||||
{
|
||||
@ -1125,7 +1125,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
struct stmmac_channel *ch = &priv->channel[queue];
|
||||
unsigned long flags;
|
||||
u32 buf_size;
|
||||
@@ -6441,7 +6445,7 @@ void stmmac_enable_rx_queue(struct stmma
|
||||
@@ -6421,7 +6425,7 @@ void stmmac_enable_rx_queue(struct stmma
|
||||
rx_q->queue_index);
|
||||
} else {
|
||||
stmmac_set_dma_bfsize(priv, priv->ioaddr,
|
||||
@ -1134,7 +1134,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
rx_q->queue_index);
|
||||
}
|
||||
|
||||
@@ -6467,7 +6471,7 @@ void stmmac_disable_tx_queue(struct stmm
|
||||
@@ -6447,7 +6451,7 @@ void stmmac_disable_tx_queue(struct stmm
|
||||
|
||||
void stmmac_enable_tx_queue(struct stmmac_priv *priv, u32 queue)
|
||||
{
|
||||
@ -1143,7 +1143,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
struct stmmac_channel *ch = &priv->channel[queue];
|
||||
unsigned long flags;
|
||||
int ret;
|
||||
@@ -6517,7 +6521,7 @@ void stmmac_xdp_release(struct net_devic
|
||||
@@ -6497,7 +6501,7 @@ void stmmac_xdp_release(struct net_devic
|
||||
stmmac_disable_all_queues(priv);
|
||||
|
||||
for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++)
|
||||
@ -1152,7 +1152,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
/* Free the IRQ lines */
|
||||
stmmac_free_irq(dev, REQ_IRQ_ERR_ALL, 0);
|
||||
@@ -6576,7 +6580,7 @@ int stmmac_xdp_open(struct net_device *d
|
||||
@@ -6556,7 +6560,7 @@ int stmmac_xdp_open(struct net_device *d
|
||||
|
||||
/* DMA RX Channel Configuration */
|
||||
for (chan = 0; chan < rx_cnt; chan++) {
|
||||
@ -1161,7 +1161,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
stmmac_init_rx_chan(priv, priv->ioaddr, priv->plat->dma_cfg,
|
||||
rx_q->dma_rx_phy, chan);
|
||||
@@ -6594,7 +6598,7 @@ int stmmac_xdp_open(struct net_device *d
|
||||
@@ -6574,7 +6578,7 @@ int stmmac_xdp_open(struct net_device *d
|
||||
rx_q->queue_index);
|
||||
} else {
|
||||
stmmac_set_dma_bfsize(priv, priv->ioaddr,
|
||||
@ -1170,7 +1170,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
rx_q->queue_index);
|
||||
}
|
||||
|
||||
@@ -6603,7 +6607,7 @@ int stmmac_xdp_open(struct net_device *d
|
||||
@@ -6583,7 +6587,7 @@ int stmmac_xdp_open(struct net_device *d
|
||||
|
||||
/* DMA TX Channel Configuration */
|
||||
for (chan = 0; chan < tx_cnt; chan++) {
|
||||
@ -1179,7 +1179,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
stmmac_init_tx_chan(priv, priv->ioaddr, priv->plat->dma_cfg,
|
||||
tx_q->dma_tx_phy, chan);
|
||||
@@ -6636,7 +6640,7 @@ int stmmac_xdp_open(struct net_device *d
|
||||
@@ -6616,7 +6620,7 @@ int stmmac_xdp_open(struct net_device *d
|
||||
|
||||
irq_error:
|
||||
for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++)
|
||||
@ -1188,7 +1188,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
stmmac_hw_teardown(dev);
|
||||
init_error:
|
||||
@@ -6663,8 +6667,8 @@ int stmmac_xsk_wakeup(struct net_device
|
||||
@@ -6643,8 +6647,8 @@ int stmmac_xsk_wakeup(struct net_device
|
||||
queue >= priv->plat->tx_queues_to_use)
|
||||
return -EINVAL;
|
||||
|
||||
@ -1199,7 +1199,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
ch = &priv->channel[queue];
|
||||
|
||||
if (!rx_q->xsk_pool && !tx_q->xsk_pool)
|
||||
@@ -6924,8 +6928,8 @@ int stmmac_reinit_ringparam(struct net_d
|
||||
@@ -6904,8 +6908,8 @@ int stmmac_reinit_ringparam(struct net_d
|
||||
if (netif_running(dev))
|
||||
stmmac_release(dev);
|
||||
|
||||
@ -1210,7 +1210,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
if (netif_running(dev))
|
||||
ret = stmmac_open(dev);
|
||||
@@ -7363,7 +7367,7 @@ int stmmac_suspend(struct device *dev)
|
||||
@@ -7343,7 +7347,7 @@ int stmmac_suspend(struct device *dev)
|
||||
stmmac_disable_all_queues(priv);
|
||||
|
||||
for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++)
|
||||
@ -1219,7 +1219,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
if (priv->eee_enabled) {
|
||||
priv->tx_path_in_lpi_mode = false;
|
||||
@@ -7415,7 +7419,7 @@ EXPORT_SYMBOL_GPL(stmmac_suspend);
|
||||
@@ -7395,7 +7399,7 @@ EXPORT_SYMBOL_GPL(stmmac_suspend);
|
||||
|
||||
static void stmmac_reset_rx_queue(struct stmmac_priv *priv, u32 queue)
|
||||
{
|
||||
@ -1228,7 +1228,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
rx_q->cur_rx = 0;
|
||||
rx_q->dirty_rx = 0;
|
||||
@@ -7423,7 +7427,7 @@ static void stmmac_reset_rx_queue(struct
|
||||
@@ -7403,7 +7407,7 @@ static void stmmac_reset_rx_queue(struct
|
||||
|
||||
static void stmmac_reset_tx_queue(struct stmmac_priv *priv, u32 queue)
|
||||
{
|
||||
|
@ -1045,7 +1045,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
/* Disable the MAC Rx/Tx */
|
||||
stmmac_mac_set(priv, priv->ioaddr, false);
|
||||
@@ -6403,7 +6519,7 @@ void stmmac_disable_rx_queue(struct stmm
|
||||
@@ -6383,7 +6499,7 @@ void stmmac_disable_rx_queue(struct stmm
|
||||
spin_unlock_irqrestore(&ch->lock, flags);
|
||||
|
||||
stmmac_stop_rx_dma(priv, queue);
|
||||
@ -1054,7 +1054,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
}
|
||||
|
||||
void stmmac_enable_rx_queue(struct stmmac_priv *priv, u32 queue)
|
||||
@@ -6414,21 +6530,21 @@ void stmmac_enable_rx_queue(struct stmma
|
||||
@@ -6394,21 +6510,21 @@ void stmmac_enable_rx_queue(struct stmma
|
||||
u32 buf_size;
|
||||
int ret;
|
||||
|
||||
@ -1080,7 +1080,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
stmmac_init_rx_chan(priv, priv->ioaddr, priv->plat->dma_cfg,
|
||||
rx_q->dma_rx_phy, rx_q->queue_index);
|
||||
@@ -6466,7 +6582,7 @@ void stmmac_disable_tx_queue(struct stmm
|
||||
@@ -6446,7 +6562,7 @@ void stmmac_disable_tx_queue(struct stmm
|
||||
spin_unlock_irqrestore(&ch->lock, flags);
|
||||
|
||||
stmmac_stop_tx_dma(priv, queue);
|
||||
@ -1089,7 +1089,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
}
|
||||
|
||||
void stmmac_enable_tx_queue(struct stmmac_priv *priv, u32 queue)
|
||||
@@ -6476,21 +6592,21 @@ void stmmac_enable_tx_queue(struct stmma
|
||||
@@ -6456,21 +6572,21 @@ void stmmac_enable_tx_queue(struct stmma
|
||||
unsigned long flags;
|
||||
int ret;
|
||||
|
||||
@ -1115,7 +1115,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
stmmac_init_tx_chan(priv, priv->ioaddr, priv->plat->dma_cfg,
|
||||
tx_q->dma_tx_phy, tx_q->queue_index);
|
||||
@@ -6530,7 +6646,7 @@ void stmmac_xdp_release(struct net_devic
|
||||
@@ -6510,7 +6626,7 @@ void stmmac_xdp_release(struct net_devic
|
||||
stmmac_stop_all_dma(priv);
|
||||
|
||||
/* Release and free the Rx/Tx resources */
|
||||
@ -1124,7 +1124,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
/* Disable the MAC Rx/Tx */
|
||||
stmmac_mac_set(priv, priv->ioaddr, false);
|
||||
@@ -6555,14 +6671,14 @@ int stmmac_xdp_open(struct net_device *d
|
||||
@@ -6535,14 +6651,14 @@ int stmmac_xdp_open(struct net_device *d
|
||||
u32 chan;
|
||||
int ret;
|
||||
|
||||
@ -1141,7 +1141,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
if (ret < 0) {
|
||||
netdev_err(dev, "%s: DMA descriptors initialization failed\n",
|
||||
__func__);
|
||||
@@ -6644,7 +6760,7 @@ irq_error:
|
||||
@@ -6624,7 +6740,7 @@ irq_error:
|
||||
|
||||
stmmac_hw_teardown(dev);
|
||||
init_error:
|
||||
@ -1150,7 +1150,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
dma_desc_error:
|
||||
return ret;
|
||||
}
|
||||
@@ -7510,7 +7626,7 @@ int stmmac_resume(struct device *dev)
|
||||
@@ -7490,7 +7606,7 @@ int stmmac_resume(struct device *dev)
|
||||
stmmac_reset_queues_param(priv);
|
||||
|
||||
stmmac_free_tx_skbufs(priv);
|
||||
|
@ -98,7 +98,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
obj-$(CONFIG_NETFILTER_XT_TARGET_LED) += xt_LED.o
|
||||
--- /dev/null
|
||||
+++ b/net/netfilter/xt_FLOWOFFLOAD.c
|
||||
@@ -0,0 +1,698 @@
|
||||
@@ -0,0 +1,701 @@
|
||||
+/*
|
||||
+ * Copyright (C) 2018-2021 Felix Fietkau <nbd@nbd.name>
|
||||
+ *
|
||||
@ -544,10 +544,15 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ nf_route(xt_net(par), &other_dst, &fl, false, xt_family(par));
|
||||
+ if (!other_dst)
|
||||
+ if (!dst_hold_safe(this_dst))
|
||||
+ return -ENOENT;
|
||||
+
|
||||
+ nf_route(xt_net(par), &other_dst, &fl, false, xt_family(par));
|
||||
+ if (!other_dst) {
|
||||
+ dst_release(this_dst);
|
||||
+ return -ENOENT;
|
||||
+ }
|
||||
+
|
||||
+ nf_default_forward_path(route, this_dst, dir, devs);
|
||||
+ nf_default_forward_path(route, other_dst, !dir, devs);
|
||||
+
|
||||
@ -622,8 +627,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
+ if (!flow)
|
||||
+ goto err_flow_alloc;
|
||||
+
|
||||
+ if (flow_offload_route_init(flow, &route) < 0)
|
||||
+ goto err_flow_add;
|
||||
+ flow_offload_route_init(flow, &route);
|
||||
+
|
||||
+ if (tcph) {
|
||||
+ ct->proto.tcp.seen[0].flags |= IP_CT_TCP_FLAG_BE_LIBERAL;
|
||||
@ -642,13 +646,12 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
+ xt_flowoffload_check_device(table, devs[0]);
|
||||
+ xt_flowoffload_check_device(table, devs[1]);
|
||||
+
|
||||
+ dst_release(route.tuple[!dir].dst);
|
||||
+
|
||||
+ return XT_CONTINUE;
|
||||
+
|
||||
+err_flow_add:
|
||||
+ flow_offload_free(flow);
|
||||
+err_flow_alloc:
|
||||
+ dst_release(route.tuple[dir].dst);
|
||||
+ dst_release(route.tuple[!dir].dst);
|
||||
+err_flow_route:
|
||||
+ clear_bit(IPS_OFFLOAD_BIT, &ct->status);
|
||||
@ -807,7 +810,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>
|
||||
@@ -380,8 +379,7 @@ flow_offload_lookup(struct nf_flowtable
|
||||
@@ -373,8 +372,7 @@ flow_offload_lookup(struct nf_flowtable
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(flow_offload_lookup);
|
||||
|
||||
@ -817,7 +820,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
void (*iter)(struct nf_flowtable *flowtable,
|
||||
struct flow_offload *flow, void *data),
|
||||
void *data)
|
||||
@@ -435,6 +433,7 @@ static void nf_flow_offload_gc_step(stru
|
||||
@@ -428,6 +426,7 @@ static void nf_flow_offload_gc_step(stru
|
||||
nf_flow_offload_stats(flow_table, flow);
|
||||
}
|
||||
}
|
||||
|
@ -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
|
||||
@@ -613,13 +613,41 @@ void nf_flow_table_free(struct nf_flowta
|
||||
@@ -606,13 +606,41 @@ void nf_flow_table_free(struct nf_flowta
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(nf_flow_table_free);
|
||||
|
||||
@ -55,7 +55,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
|
||||
--- a/net/netfilter/nft_flow_offload.c
|
||||
+++ b/net/netfilter/nft_flow_offload.c
|
||||
@@ -451,47 +451,14 @@ static struct nft_expr_type nft_flow_off
|
||||
@@ -455,47 +455,14 @@ static struct nft_expr_type nft_flow_off
|
||||
.owner = THIS_MODULE,
|
||||
};
|
||||
|
||||
|
@ -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
|
||||
@@ -7760,7 +7760,7 @@ static int nft_register_flowtable_net_ho
|
||||
@@ -7763,7 +7763,7 @@ static int nft_register_flowtable_net_ho
|
||||
err = flowtable->data.type->setup(&flowtable->data,
|
||||
hook->ops.dev,
|
||||
FLOW_BLOCK_BIND);
|
||||
|
@ -116,7 +116,7 @@ Signed-off-by: Oskari Lemmela <oskari@lemmela.net>
|
||||
|
||||
netif_tx_disable(dev);
|
||||
|
||||
@@ -6655,7 +6648,7 @@ void stmmac_xdp_release(struct net_devic
|
||||
@@ -6635,7 +6628,7 @@ void stmmac_xdp_release(struct net_devic
|
||||
stmmac_disable_all_queues(priv);
|
||||
|
||||
for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++)
|
||||
@ -125,7 +125,7 @@ Signed-off-by: Oskari Lemmela <oskari@lemmela.net>
|
||||
|
||||
/* Free the IRQ lines */
|
||||
stmmac_free_irq(dev, REQ_IRQ_ERR_ALL, 0);
|
||||
@@ -6750,8 +6743,7 @@ int stmmac_xdp_open(struct net_device *d
|
||||
@@ -6730,8 +6723,7 @@ int stmmac_xdp_open(struct net_device *d
|
||||
stmmac_set_tx_tail_ptr(priv, priv->ioaddr,
|
||||
tx_q->tx_tail_addr, chan);
|
||||
|
||||
@ -135,7 +135,7 @@ Signed-off-by: Oskari Lemmela <oskari@lemmela.net>
|
||||
}
|
||||
|
||||
/* Enable the MAC Rx/Tx */
|
||||
@@ -6774,7 +6766,7 @@ int stmmac_xdp_open(struct net_device *d
|
||||
@@ -6754,7 +6746,7 @@ int stmmac_xdp_open(struct net_device *d
|
||||
|
||||
irq_error:
|
||||
for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++)
|
||||
@ -144,7 +144,7 @@ Signed-off-by: Oskari Lemmela <oskari@lemmela.net>
|
||||
|
||||
stmmac_hw_teardown(dev);
|
||||
init_error:
|
||||
@@ -7501,7 +7493,7 @@ int stmmac_suspend(struct device *dev)
|
||||
@@ -7481,7 +7473,7 @@ int stmmac_suspend(struct device *dev)
|
||||
stmmac_disable_all_queues(priv);
|
||||
|
||||
for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++)
|
||||
|
@ -51,7 +51,7 @@ Signed-off-by: Stefan Koch <stefan.koch10@gmail.com>
|
||||
#define read_vpe_c0_status() mftc0(12, 0)
|
||||
--- a/arch/mips/include/asm/vpe.h
|
||||
+++ b/arch/mips/include/asm/vpe.h
|
||||
@@ -124,4 +124,13 @@ void cleanup_tc(struct tc *tc);
|
||||
@@ -123,4 +123,13 @@ void cleanup_tc(struct tc *tc);
|
||||
|
||||
int __init vpe_module_init(void);
|
||||
void __exit vpe_module_exit(void);
|
||||
@ -75,7 +75,7 @@ Signed-off-by: Stefan Koch <stefan.koch10@gmail.com>
|
||||
|
||||
/* check we are the Master VPE */
|
||||
local_irq_save(flags);
|
||||
@@ -416,6 +417,8 @@ int __init vpe_module_init(void)
|
||||
@@ -415,6 +416,8 @@ int __init vpe_module_init(void)
|
||||
}
|
||||
|
||||
v->ntcs = hw_tcs - aprp_cpu_index();
|
||||
@ -84,7 +84,7 @@ Signed-off-by: Stefan Koch <stefan.koch10@gmail.com>
|
||||
|
||||
/* add the tc to the list of this vpe's tc's. */
|
||||
list_add(&t->tc, &v->tc);
|
||||
@@ -519,3 +522,47 @@ void __exit vpe_module_exit(void)
|
||||
@@ -518,3 +521,47 @@ void __exit vpe_module_exit(void)
|
||||
release_vpe(v);
|
||||
}
|
||||
}
|
||||
@ -178,7 +178,7 @@ Signed-off-by: Stefan Koch <stefan.koch10@gmail.com>
|
||||
{
|
||||
--- a/arch/mips/lantiq/prom.c
|
||||
+++ b/arch/mips/lantiq/prom.c
|
||||
@@ -34,10 +34,14 @@ unsigned long physical_memsize = 0L;
|
||||
@@ -28,10 +28,14 @@ EXPORT_SYMBOL_GPL(ebu_lock);
|
||||
*/
|
||||
static struct ltq_soc_info soc_info;
|
||||
|
||||
|
@ -10,7 +10,7 @@ Signed-off-by: Stefan Koch <stefan.koch10@gmail.com>
|
||||
|
||||
--- a/arch/mips/kernel/vpe-mt.c
|
||||
+++ b/arch/mips/kernel/vpe-mt.c
|
||||
@@ -132,7 +132,10 @@ int vpe_run(struct vpe *v)
|
||||
@@ -131,7 +131,10 @@ int vpe_run(struct vpe *v)
|
||||
* kernels need to turn it on, even if that wasn't the pre-dvpe() state.
|
||||
*/
|
||||
#ifdef CONFIG_SMP
|
||||
|
@ -39,7 +39,7 @@ Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
|
||||
|
||||
--- a/arch/mips/lantiq/prom.c
|
||||
+++ b/arch/mips/lantiq/prom.c
|
||||
@@ -37,6 +37,14 @@ static struct ltq_soc_info soc_info;
|
||||
@@ -31,6 +31,14 @@ static struct ltq_soc_info soc_info;
|
||||
/* for Multithreading (APRP), vpe.c will use it */
|
||||
unsigned long cp0_memsize;
|
||||
|
||||
@ -54,7 +54,7 @@ Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
|
||||
const char *get_system_type(void)
|
||||
{
|
||||
return soc_info.sys_type;
|
||||
@@ -93,6 +101,17 @@ void __init device_tree_init(void)
|
||||
@@ -87,6 +95,17 @@ void __init device_tree_init(void)
|
||||
unflatten_and_copy_device_tree();
|
||||
}
|
||||
|
||||
@ -72,7 +72,7 @@ Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
|
||||
void __init prom_init(void)
|
||||
{
|
||||
/* call the soc specific detetcion code and get it to fill soc_info */
|
||||
@@ -104,7 +123,10 @@ void __init prom_init(void)
|
||||
@@ -98,7 +117,10 @@ void __init prom_init(void)
|
||||
prom_init_cmdline();
|
||||
|
||||
#if defined(CONFIG_MIPS_MT_SMP)
|
||||
|
@ -19,7 +19,7 @@
|
||||
},
|
||||
[PORT_NPCM] = {
|
||||
.name = "Nuvoton 16550",
|
||||
@@ -2766,6 +2766,11 @@ serial8250_do_set_termios(struct uart_po
|
||||
@@ -2752,6 +2752,11 @@ serial8250_do_set_termios(struct uart_po
|
||||
unsigned long flags;
|
||||
unsigned int baud, quot, frac = 0;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user