kernel: bump 5.15 to 5.15.67
All patches automatically rebased Build system: x86_64 Build-tested: bcm2711/RPi4B, mt7622/RT3200 Run-tested: bcm2711/RPi4B, mt7622/RT3200 Signed-off-by: John Audia <therealgraysky@proton.me>
This commit is contained in:
		| @@ -1,2 +1,2 @@ | |||||||
| LINUX_VERSION-5.15 = .64 | LINUX_VERSION-5.15 = .67 | ||||||
| LINUX_KERNEL_HASH-5.15.64 = c6a1d38c6fa3798341372d5cf0088ae806ccdc827e31ecbff8988e097ba5de50 | LINUX_KERNEL_HASH-5.15.67 = da47d9a80b694548835ccb553b6eb1a1f3f5d5cddd9e2bd6f4886b99ca14f940 | ||||||
|   | |||||||
| @@ -70,7 +70,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org> | |||||||
|   * @dev: the device whose endpoint is being disabled |   * @dev: the device whose endpoint is being disabled | ||||||
| --- a/include/linux/usb.h | --- a/include/linux/usb.h | ||||||
| +++ b/include/linux/usb.h | +++ b/include/linux/usb.h | ||||||
| @@ -1840,6 +1840,8 @@ extern int usb_clear_halt(struct usb_dev | @@ -1842,6 +1842,8 @@ extern int usb_clear_halt(struct usb_dev | ||||||
|  extern int usb_reset_configuration(struct usb_device *dev); |  extern int usb_reset_configuration(struct usb_device *dev); | ||||||
|  extern int usb_set_interface(struct usb_device *dev, int ifnum, int alternate); |  extern int usb_set_interface(struct usb_device *dev, int ifnum, int alternate); | ||||||
|  extern void usb_reset_endpoint(struct usb_device *dev, unsigned int epaddr); |  extern void usb_reset_endpoint(struct usb_device *dev, unsigned int epaddr); | ||||||
|   | |||||||
| @@ -15,7 +15,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org> | |||||||
|  |  | ||||||
| --- a/drivers/usb/host/xhci.c | --- a/drivers/usb/host/xhci.c | ||||||
| +++ b/drivers/usb/host/xhci.c | +++ b/drivers/usb/host/xhci.c | ||||||
| @@ -1620,6 +1620,109 @@ command_cleanup: | @@ -1611,6 +1611,109 @@ command_cleanup: | ||||||
|  } |  } | ||||||
|   |   | ||||||
|  /* |  /* | ||||||
| @@ -125,7 +125,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org> | |||||||
|   * non-error returns are a promise to giveback() the urb later |   * non-error returns are a promise to giveback() the urb later | ||||||
|   * we drop ownership so next owner (or urb unlink) can get it |   * we drop ownership so next owner (or urb unlink) can get it | ||||||
|   */ |   */ | ||||||
| @@ -5445,6 +5548,7 @@ static const struct hc_driver xhci_hc_dr | @@ -5436,6 +5539,7 @@ static const struct hc_driver xhci_hc_dr | ||||||
|  	.endpoint_reset =	xhci_endpoint_reset, |  	.endpoint_reset =	xhci_endpoint_reset, | ||||||
|  	.check_bandwidth =	xhci_check_bandwidth, |  	.check_bandwidth =	xhci_check_bandwidth, | ||||||
|  	.reset_bandwidth =	xhci_reset_bandwidth, |  	.reset_bandwidth =	xhci_reset_bandwidth, | ||||||
|   | |||||||
| @@ -10,7 +10,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com> | |||||||
|  |  | ||||||
| --- a/drivers/clk/bcm/clk-raspberrypi.c | --- a/drivers/clk/bcm/clk-raspberrypi.c | ||||||
| +++ b/drivers/clk/bcm/clk-raspberrypi.c | +++ b/drivers/clk/bcm/clk-raspberrypi.c | ||||||
| @@ -271,6 +271,7 @@ static int raspberrypi_discover_clocks(s | @@ -276,6 +276,7 @@ static int raspberrypi_discover_clocks(s | ||||||
|  		case RPI_FIRMWARE_CORE_CLK_ID: |  		case RPI_FIRMWARE_CORE_CLK_ID: | ||||||
|  		case RPI_FIRMWARE_M2MC_CLK_ID: |  		case RPI_FIRMWARE_M2MC_CLK_ID: | ||||||
|  		case RPI_FIRMWARE_V3D_CLK_ID: |  		case RPI_FIRMWARE_V3D_CLK_ID: | ||||||
|   | |||||||
| @@ -17,7 +17,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech> | |||||||
|  |  | ||||||
| --- a/drivers/clk/clk.c | --- a/drivers/clk/clk.c | ||||||
| +++ b/drivers/clk/clk.c | +++ b/drivers/clk/clk.c | ||||||
| @@ -1347,6 +1347,8 @@ static int clk_core_determine_round_nolo | @@ -1346,6 +1346,8 @@ static int clk_core_determine_round_nolo | ||||||
|  	if (!core) |  	if (!core) | ||||||
|  		return 0; |  		return 0; | ||||||
|   |   | ||||||
|   | |||||||
| @@ -26,7 +26,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com> | |||||||
|  }; |  }; | ||||||
|   |   | ||||||
|  #define RPI_FIRMWARE_STATE_ENABLE_BIT	BIT(0) |  #define RPI_FIRMWARE_STATE_ENABLE_BIT	BIT(0) | ||||||
| @@ -273,6 +275,7 @@ static int raspberrypi_discover_clocks(s | @@ -278,6 +280,7 @@ static int raspberrypi_discover_clocks(s | ||||||
|  		case RPI_FIRMWARE_V3D_CLK_ID: |  		case RPI_FIRMWARE_V3D_CLK_ID: | ||||||
|  		case RPI_FIRMWARE_HEVC_CLK_ID: |  		case RPI_FIRMWARE_HEVC_CLK_ID: | ||||||
|  		case RPI_FIRMWARE_PIXEL_BVB_CLK_ID: |  		case RPI_FIRMWARE_PIXEL_BVB_CLK_ID: | ||||||
|   | |||||||
| @@ -16,7 +16,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com> | |||||||
|  |  | ||||||
| --- a/drivers/clk/bcm/clk-raspberrypi.c | --- a/drivers/clk/bcm/clk-raspberrypi.c | ||||||
| +++ b/drivers/clk/bcm/clk-raspberrypi.c | +++ b/drivers/clk/bcm/clk-raspberrypi.c | ||||||
| @@ -276,6 +276,7 @@ static int raspberrypi_discover_clocks(s | @@ -281,6 +281,7 @@ static int raspberrypi_discover_clocks(s | ||||||
|  		case RPI_FIRMWARE_HEVC_CLK_ID: |  		case RPI_FIRMWARE_HEVC_CLK_ID: | ||||||
|  		case RPI_FIRMWARE_PIXEL_BVB_CLK_ID: |  		case RPI_FIRMWARE_PIXEL_BVB_CLK_ID: | ||||||
|  		case RPI_FIRMWARE_VEC_CLK_ID: |  		case RPI_FIRMWARE_VEC_CLK_ID: | ||||||
|   | |||||||
| @@ -226,7 +226,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com> | |||||||
|  	} |  	} | ||||||
| --- a/drivers/usb/host/xhci.c | --- a/drivers/usb/host/xhci.c | ||||||
| +++ b/drivers/usb/host/xhci.c | +++ b/drivers/usb/host/xhci.c | ||||||
| @@ -879,8 +879,8 @@ static void xhci_clear_command_ring(stru | @@ -870,8 +870,8 @@ static void xhci_clear_command_ring(stru | ||||||
|  	seg = ring->deq_seg; |  	seg = ring->deq_seg; | ||||||
|  	do { |  	do { | ||||||
|  		memset(seg->trbs, 0, |  		memset(seg->trbs, 0, | ||||||
| @@ -237,7 +237,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com> | |||||||
|  			cpu_to_le32(~TRB_CYCLE); |  			cpu_to_le32(~TRB_CYCLE); | ||||||
|  		seg = seg->next; |  		seg = seg->next; | ||||||
|  	} while (seg != ring->deq_seg); |  	} while (seg != ring->deq_seg); | ||||||
| @@ -891,7 +891,7 @@ static void xhci_clear_command_ring(stru | @@ -882,7 +882,7 @@ static void xhci_clear_command_ring(stru | ||||||
|  	ring->enq_seg = ring->deq_seg; |  	ring->enq_seg = ring->deq_seg; | ||||||
|  	ring->enqueue = ring->dequeue; |  	ring->enqueue = ring->dequeue; | ||||||
|   |   | ||||||
|   | |||||||
| @@ -18,7 +18,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech> | |||||||
|  |  | ||||||
| --- a/drivers/clk/clk.c | --- a/drivers/clk/clk.c | ||||||
| +++ b/drivers/clk/clk.c | +++ b/drivers/clk/clk.c | ||||||
| @@ -2387,11 +2387,7 @@ int clk_set_rate_range(struct clk *clk, | @@ -2386,11 +2386,7 @@ int clk_set_rate_range(struct clk *clk, | ||||||
|  		 *   this corner case when determining the rate |  		 *   this corner case when determining the rate | ||||||
|  		 */ |  		 */ | ||||||
|   |   | ||||||
|   | |||||||
| @@ -30,7 +30,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech> | |||||||
|  |  | ||||||
| --- a/drivers/clk/clk.c | --- a/drivers/clk/clk.c | ||||||
| +++ b/drivers/clk/clk.c | +++ b/drivers/clk/clk.c | ||||||
| @@ -2372,28 +2372,29 @@ int clk_set_rate_range(struct clk *clk, | @@ -2371,28 +2371,29 @@ int clk_set_rate_range(struct clk *clk, | ||||||
|  		goto out; |  		goto out; | ||||||
|  	} |  	} | ||||||
|   |   | ||||||
|   | |||||||
| @@ -29,7 +29,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech> | |||||||
|  |  | ||||||
| --- a/drivers/clk/clk.c | --- a/drivers/clk/clk.c | ||||||
| +++ b/drivers/clk/clk.c | +++ b/drivers/clk/clk.c | ||||||
| @@ -2331,19 +2331,15 @@ int clk_set_rate_exclusive(struct clk *c | @@ -2330,19 +2330,15 @@ int clk_set_rate_exclusive(struct clk *c | ||||||
|  } |  } | ||||||
|  EXPORT_SYMBOL_GPL(clk_set_rate_exclusive); |  EXPORT_SYMBOL_GPL(clk_set_rate_exclusive); | ||||||
|   |   | ||||||
| @@ -54,7 +54,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech> | |||||||
|  	if (!clk) |  	if (!clk) | ||||||
|  		return 0; |  		return 0; | ||||||
|   |   | ||||||
| @@ -2356,8 +2352,6 @@ int clk_set_rate_range(struct clk *clk, | @@ -2355,8 +2351,6 @@ int clk_set_rate_range(struct clk *clk, | ||||||
|  		return -EINVAL; |  		return -EINVAL; | ||||||
|  	} |  	} | ||||||
|   |   | ||||||
| @@ -63,7 +63,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech> | |||||||
|  	if (clk->exclusive_count) |  	if (clk->exclusive_count) | ||||||
|  		clk_core_rate_unprotect(clk->core); |  		clk_core_rate_unprotect(clk->core); | ||||||
|   |   | ||||||
| @@ -2401,6 +2395,28 @@ out: | @@ -2400,6 +2394,28 @@ out: | ||||||
|  	if (clk->exclusive_count) |  	if (clk->exclusive_count) | ||||||
|  		clk_core_rate_protect(clk->core); |  		clk_core_rate_protect(clk->core); | ||||||
|   |   | ||||||
| @@ -92,7 +92,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech> | |||||||
|  	clk_prepare_unlock(); |  	clk_prepare_unlock(); | ||||||
|   |   | ||||||
|  	return ret; |  	return ret; | ||||||
| @@ -4360,9 +4376,10 @@ void __clk_put(struct clk *clk) | @@ -4359,9 +4375,10 @@ void __clk_put(struct clk *clk) | ||||||
|  	} |  	} | ||||||
|   |   | ||||||
|  	hlist_del(&clk->clks_node); |  	hlist_del(&clk->clks_node); | ||||||
|   | |||||||
| @@ -22,7 +22,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech> | |||||||
|  |  | ||||||
| --- a/drivers/clk/clk.c | --- a/drivers/clk/clk.c | ||||||
| +++ b/drivers/clk/clk.c | +++ b/drivers/clk/clk.c | ||||||
| @@ -2366,6 +2366,10 @@ static int clk_set_rate_range_nolock(str | @@ -2365,6 +2365,10 @@ static int clk_set_rate_range_nolock(str | ||||||
|  		goto out; |  		goto out; | ||||||
|  	} |  	} | ||||||
|   |   | ||||||
| @@ -33,7 +33,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech> | |||||||
|  	/* |  	/* | ||||||
|  	 * Since the boundaries have been changed, let's give the |  	 * Since the boundaries have been changed, let's give the | ||||||
|  	 * opportunity to the provider to adjust the clock rate based on |  	 * opportunity to the provider to adjust the clock rate based on | ||||||
| @@ -2383,7 +2387,7 @@ static int clk_set_rate_range_nolock(str | @@ -2382,7 +2386,7 @@ static int clk_set_rate_range_nolock(str | ||||||
|  	 * - the determine_rate() callback does not really check for |  	 * - the determine_rate() callback does not really check for | ||||||
|  	 *   this corner case when determining the rate |  	 *   this corner case when determining the rate | ||||||
|  	 */ |  	 */ | ||||||
|   | |||||||
| @@ -23,7 +23,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech> | |||||||
|  |  | ||||||
| --- a/drivers/clk/clk.c | --- a/drivers/clk/clk.c | ||||||
| +++ b/drivers/clk/clk.c | +++ b/drivers/clk/clk.c | ||||||
| @@ -1758,6 +1758,23 @@ static void clk_core_update_orphan_statu | @@ -1757,6 +1757,23 @@ static void clk_core_update_orphan_statu | ||||||
|  		clk_core_update_orphan_status(child, is_orphan); |  		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) |  static void clk_reparent(struct clk_core *core, struct clk_core *new_parent) | ||||||
|  { |  { | ||||||
|  	bool was_orphan = core->orphan; |  	bool was_orphan = core->orphan; | ||||||
| @@ -1782,6 +1799,7 @@ static void clk_reparent(struct clk_core | @@ -1781,6 +1798,7 @@ static void clk_reparent(struct clk_core | ||||||
|  	} |  	} | ||||||
|   |   | ||||||
|  	core->parent = new_parent; |  	core->parent = new_parent; | ||||||
|   | |||||||
| @@ -25,7 +25,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech> | |||||||
|  |  | ||||||
| --- a/drivers/clk/clk.c | --- a/drivers/clk/clk.c | ||||||
| +++ b/drivers/clk/clk.c | +++ b/drivers/clk/clk.c | ||||||
| @@ -2388,6 +2388,12 @@ static int clk_set_rate_range_nolock(str | @@ -2387,6 +2387,12 @@ static int clk_set_rate_range_nolock(str | ||||||
|  	if (clk->core->flags & CLK_GET_RATE_NOCACHE) |  	if (clk->core->flags & CLK_GET_RATE_NOCACHE) | ||||||
|  		rate = clk_core_get_rate_recalc(clk->core); |  		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 | --- a/drivers/clk/clk.c | ||||||
| +++ b/drivers/clk/clk.c | +++ b/drivers/clk/clk.c | ||||||
| @@ -1381,6 +1381,8 @@ static void clk_core_init_rate_req(struc | @@ -1380,6 +1380,8 @@ static void clk_core_init_rate_req(struc | ||||||
|  	if (WARN_ON(!core || !req)) |  	if (WARN_ON(!core || !req)) | ||||||
|  		return; |  		return; | ||||||
|   |   | ||||||
| @@ -35,7 +35,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech> | |||||||
|  	parent = core->parent; |  	parent = core->parent; | ||||||
|  	if (parent) { |  	if (parent) { | ||||||
|  		req->best_parent_hw = parent->hw; |  		req->best_parent_hw = parent->hw; | ||||||
| @@ -1455,7 +1457,6 @@ unsigned long clk_hw_round_rate(struct c | @@ -1454,7 +1456,6 @@ unsigned long clk_hw_round_rate(struct c | ||||||
|  	int ret; |  	int ret; | ||||||
|  	struct clk_rate_request req; |  	struct clk_rate_request req; | ||||||
|   |   | ||||||
| @@ -43,7 +43,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech> | |||||||
|  	req.rate = rate; |  	req.rate = rate; | ||||||
|   |   | ||||||
|  	ret = clk_core_round_rate_nolock(hw->core, &req); |  	ret = clk_core_round_rate_nolock(hw->core, &req); | ||||||
| @@ -1488,7 +1489,6 @@ long clk_round_rate(struct clk *clk, uns | @@ -1487,7 +1488,6 @@ long clk_round_rate(struct clk *clk, uns | ||||||
|  	if (clk->exclusive_count) |  	if (clk->exclusive_count) | ||||||
|  		clk_core_rate_unprotect(clk->core); |  		clk_core_rate_unprotect(clk->core); | ||||||
|   |   | ||||||
| @@ -51,7 +51,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech> | |||||||
|  	req.rate = rate; |  	req.rate = rate; | ||||||
|   |   | ||||||
|  	ret = clk_core_round_rate_nolock(clk->core, &req); |  	ret = clk_core_round_rate_nolock(clk->core, &req); | ||||||
| @@ -1995,8 +1995,6 @@ static struct clk_core *clk_calc_new_rat | @@ -1994,8 +1994,6 @@ static struct clk_core *clk_calc_new_rat | ||||||
|  		struct clk_rate_request req; |  		struct clk_rate_request req; | ||||||
|   |   | ||||||
|  		req.rate = rate; |  		req.rate = rate; | ||||||
|   | |||||||
| @@ -19,7 +19,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech> | |||||||
|  |  | ||||||
| --- a/drivers/clk/clk.c | --- a/drivers/clk/clk.c | ||||||
| +++ b/drivers/clk/clk.c | +++ b/drivers/clk/clk.c | ||||||
| @@ -1374,13 +1374,15 @@ static int clk_core_determine_round_nolo | @@ -1373,13 +1373,15 @@ static int clk_core_determine_round_nolo | ||||||
|  } |  } | ||||||
|   |   | ||||||
|  static void clk_core_init_rate_req(struct clk_core * const core, |  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); |  	clk_core_get_boundaries(core, &req->min_rate, &req->max_rate); | ||||||
|   |   | ||||||
|  	parent = core->parent; |  	parent = core->parent; | ||||||
| @@ -1408,7 +1410,7 @@ static int clk_core_round_rate_nolock(st | @@ -1407,7 +1409,7 @@ static int clk_core_round_rate_nolock(st | ||||||
|  		return 0; |  		return 0; | ||||||
|  	} |  	} | ||||||
|   |   | ||||||
| @@ -45,7 +45,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech> | |||||||
|   |   | ||||||
|  	if (clk_core_can_round(core)) |  	if (clk_core_can_round(core)) | ||||||
|  		return clk_core_determine_round_nolock(core, req); |  		return clk_core_determine_round_nolock(core, req); | ||||||
| @@ -1994,9 +1996,7 @@ static struct clk_core *clk_calc_new_rat | @@ -1993,9 +1995,7 @@ static struct clk_core *clk_calc_new_rat | ||||||
|  	if (clk_core_can_round(core)) { |  	if (clk_core_can_round(core)) { | ||||||
|  		struct clk_rate_request req; |  		struct clk_rate_request req; | ||||||
|   |   | ||||||
|   | |||||||
| @@ -22,7 +22,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech> | |||||||
|  |  | ||||||
| --- a/drivers/clk/clk.c | --- a/drivers/clk/clk.c | ||||||
| +++ b/drivers/clk/clk.c | +++ b/drivers/clk/clk.c | ||||||
| @@ -1395,6 +1395,26 @@ static void clk_core_init_rate_req(struc | @@ -1394,6 +1394,26 @@ static void clk_core_init_rate_req(struc | ||||||
|  	} |  	} | ||||||
|  } |  } | ||||||
|   |   | ||||||
|   | |||||||
| @@ -19,7 +19,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech> | |||||||
|  |  | ||||||
| --- a/drivers/clk/clk.c | --- a/drivers/clk/clk.c | ||||||
| +++ b/drivers/clk/clk.c | +++ b/drivers/clk/clk.c | ||||||
| @@ -1479,7 +1479,7 @@ unsigned long clk_hw_round_rate(struct c | @@ -1478,7 +1478,7 @@ unsigned long clk_hw_round_rate(struct c | ||||||
|  	int ret; |  	int ret; | ||||||
|  	struct clk_rate_request req; |  	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); |  	ret = clk_core_round_rate_nolock(hw->core, &req); | ||||||
|  	if (ret) |  	if (ret) | ||||||
| @@ -1511,7 +1511,7 @@ long clk_round_rate(struct clk *clk, uns | @@ -1510,7 +1510,7 @@ long clk_round_rate(struct clk *clk, uns | ||||||
|  	if (clk->exclusive_count) |  	if (clk->exclusive_count) | ||||||
|  		clk_core_rate_unprotect(clk->core); |  		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); |  	ret = clk_core_round_rate_nolock(clk->core, &req); | ||||||
|   |   | ||||||
| @@ -2215,8 +2215,7 @@ static unsigned long clk_core_req_round_ | @@ -2214,8 +2214,7 @@ static unsigned long clk_core_req_round_ | ||||||
|  	if (cnt < 0) |  	if (cnt < 0) | ||||||
|  		return cnt; |  		return cnt; | ||||||
|   |   | ||||||
|   | |||||||
| @@ -23,7 +23,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech> | |||||||
|  |  | ||||||
| --- a/drivers/clk/clk.c | --- a/drivers/clk/clk.c | ||||||
| +++ b/drivers/clk/clk.c | +++ b/drivers/clk/clk.c | ||||||
| @@ -1430,8 +1430,6 @@ static int clk_core_round_rate_nolock(st | @@ -1429,8 +1429,6 @@ static int clk_core_round_rate_nolock(st | ||||||
|  		return 0; |  		return 0; | ||||||
|  	} |  	} | ||||||
|   |   | ||||||
|   | |||||||
| @@ -47,7 +47,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech> | |||||||
|  int clk_mux_determine_rate_flags(struct clk_hw *hw, |  int clk_mux_determine_rate_flags(struct clk_hw *hw, | ||||||
|  				 struct clk_rate_request *req, |  				 struct clk_rate_request *req, | ||||||
|  				 unsigned long flags) |  				 unsigned long flags) | ||||||
| @@ -2569,25 +2589,11 @@ void clk_hw_reparent(struct clk_hw *hw, | @@ -2568,25 +2588,11 @@ void clk_hw_reparent(struct clk_hw *hw, | ||||||
|   */ |   */ | ||||||
|  bool clk_has_parent(struct clk *clk, struct clk *parent) |  bool clk_has_parent(struct clk *clk, struct clk *parent) | ||||||
|  { |  { | ||||||
|   | |||||||
| @@ -126,7 +126,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech> | |||||||
|  		} |  		} | ||||||
|  	} |  	} | ||||||
|   |   | ||||||
| @@ -1450,6 +1480,8 @@ static bool clk_core_can_round(struct cl | @@ -1449,6 +1479,8 @@ static bool clk_core_can_round(struct cl | ||||||
|  static int clk_core_round_rate_nolock(struct clk_core *core, |  static int clk_core_round_rate_nolock(struct clk_core *core, | ||||||
|  				      struct clk_rate_request *req) |  				      struct clk_rate_request *req) | ||||||
|  { |  { | ||||||
| @@ -135,7 +135,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech> | |||||||
|  	lockdep_assert_held(&prepare_lock); |  	lockdep_assert_held(&prepare_lock); | ||||||
|   |   | ||||||
|  	if (!core) { |  	if (!core) { | ||||||
| @@ -1459,8 +1491,20 @@ static int clk_core_round_rate_nolock(st | @@ -1458,8 +1490,20 @@ static int clk_core_round_rate_nolock(st | ||||||
|   |   | ||||||
|  	if (clk_core_can_round(core)) |  	if (clk_core_can_round(core)) | ||||||
|  		return clk_core_determine_round_nolock(core, req); |  		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 | --- a/drivers/clk/clk.c | ||||||
| +++ b/drivers/clk/clk.c | +++ b/drivers/clk/clk.c | ||||||
| @@ -1439,6 +1439,8 @@ static void clk_core_init_rate_req(struc | @@ -1438,6 +1438,8 @@ static void clk_core_init_rate_req(struc | ||||||
|  	if (WARN_ON(!core || !req)) |  	if (WARN_ON(!core || !req)) | ||||||
|  		return; |  		return; | ||||||
|   |   | ||||||
|   | |||||||
| @@ -105,7 +105,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech> | |||||||
|  		if (ret) { |  		if (ret) { | ||||||
|  			dev_err(rpi->dev, "Failed to initialize clkdev\n"); |  			dev_err(rpi->dev, "Failed to initialize clkdev\n"); | ||||||
|  			return ERR_PTR(ret); |  			return ERR_PTR(ret); | ||||||
| @@ -266,30 +305,27 @@ static int raspberrypi_discover_clocks(s | @@ -271,30 +310,27 @@ static int raspberrypi_discover_clocks(s | ||||||
|  		return ret; |  		return ret; | ||||||
|   |   | ||||||
|  	while (clks->id) { |  	while (clks->id) { | ||||||
|   | |||||||
| @@ -28,7 +28,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech> | |||||||
|  |  | ||||||
| --- a/drivers/clk/clk.c | --- a/drivers/clk/clk.c | ||||||
| +++ b/drivers/clk/clk.c | +++ b/drivers/clk/clk.c | ||||||
| @@ -2576,6 +2576,24 @@ int clk_set_max_rate(struct clk *clk, un | @@ -2575,6 +2575,24 @@ int clk_set_max_rate(struct clk *clk, un | ||||||
|  EXPORT_SYMBOL_GPL(clk_set_max_rate); |  EXPORT_SYMBOL_GPL(clk_set_max_rate); | ||||||
|   |   | ||||||
|  /** |  /** | ||||||
|   | |||||||
| @@ -13,7 +13,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech> | |||||||
|  |  | ||||||
| --- a/drivers/clk/clk.c | --- a/drivers/clk/clk.c | ||||||
| +++ b/drivers/clk/clk.c | +++ b/drivers/clk/clk.c | ||||||
| @@ -2589,7 +2589,9 @@ void clk_get_rate_range(struct clk *clk, | @@ -2588,7 +2588,9 @@ void clk_get_rate_range(struct clk *clk, | ||||||
|  	if (!clk || !min || !max) |  	if (!clk || !min || !max) | ||||||
|  		return; |  		return; | ||||||
|   |   | ||||||
|   | |||||||
| @@ -40,7 +40,7 @@ it on BCM4708 family. | |||||||
|  /* called during probe() after chip reset completes */ |  /* called during probe() after chip reset completes */ | ||||||
| --- a/drivers/usb/host/xhci.c | --- a/drivers/usb/host/xhci.c | ||||||
| +++ b/drivers/usb/host/xhci.c | +++ b/drivers/usb/host/xhci.c | ||||||
| @@ -155,6 +155,49 @@ int xhci_start(struct xhci_hcd *xhci) | @@ -157,6 +157,49 @@ int xhci_start(struct xhci_hcd *xhci) | ||||||
|  	return ret; |  	return ret; | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @@ -90,7 +90,7 @@ it on BCM4708 family. | |||||||
|  /* |  /* | ||||||
|   * Reset a halted HC. |   * Reset a halted HC. | ||||||
|   * |   * | ||||||
| @@ -605,10 +648,20 @@ static int xhci_init(struct usb_hcd *hcd | @@ -607,10 +650,20 @@ static int xhci_init(struct usb_hcd *hcd | ||||||
|   |   | ||||||
|  static int xhci_run_finished(struct xhci_hcd *xhci) |  static int xhci_run_finished(struct xhci_hcd *xhci) | ||||||
|  { |  { | ||||||
| @@ -114,7 +114,7 @@ it on BCM4708 family. | |||||||
|  	xhci->shared_hcd->state = HC_STATE_RUNNING; |  	xhci->shared_hcd->state = HC_STATE_RUNNING; | ||||||
|  	xhci->cmd_ring_state = CMD_RING_STATE_RUNNING; |  	xhci->cmd_ring_state = CMD_RING_STATE_RUNNING; | ||||||
|   |   | ||||||
| @@ -618,6 +671,10 @@ static int xhci_run_finished(struct xhci | @@ -620,6 +673,10 @@ static int xhci_run_finished(struct xhci | ||||||
|  	xhci_dbg_trace(xhci, trace_xhci_dbg_init, |  	xhci_dbg_trace(xhci, trace_xhci_dbg_init, | ||||||
|  			"Finished xhci_run for USB3 roothub"); |  			"Finished xhci_run for USB3 roothub"); | ||||||
|  	return 0; |  	return 0; | ||||||
|   | |||||||
| @@ -60,7 +60,7 @@ Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> | |||||||
|  	if (is531x5(dev) && phy_interface_is_rgmii(phydev)) { |  	if (is531x5(dev) && phy_interface_is_rgmii(phydev)) { | ||||||
|  		if (port == dev->imp_port) |  		if (port == dev->imp_port) | ||||||
|  			off = B53_RGMII_CTRL_IMP; |  			off = B53_RGMII_CTRL_IMP; | ||||||
| @@ -1421,6 +1454,9 @@ void b53_phylink_mac_link_up(struct dsa_ | @@ -1419,6 +1452,9 @@ void b53_phylink_mac_link_up(struct dsa_ | ||||||
|  { |  { | ||||||
|  	struct b53_device *dev = ds->priv; |  	struct b53_device *dev = ds->priv; | ||||||
|   |   | ||||||
|   | |||||||
| @@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  |  | ||||||
| --- a/Makefile | --- a/Makefile | ||||||
| +++ b/Makefile | +++ b/Makefile | ||||||
| @@ -523,7 +523,7 @@ KBUILD_LDFLAGS_MODULE := | @@ -525,7 +525,7 @@ KBUILD_LDFLAGS_MODULE := | ||||||
|  KBUILD_LDFLAGS := |  KBUILD_LDFLAGS := | ||||||
|  CLANG_FLAGS := |  CLANG_FLAGS := | ||||||
|   |   | ||||||
|   | |||||||
| @@ -530,7 +530,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> | |||||||
|  static int |  static int | ||||||
| --- a/drivers/net/dsa/xrs700x/xrs700x.c | --- a/drivers/net/dsa/xrs700x/xrs700x.c | ||||||
| +++ b/drivers/net/dsa/xrs700x/xrs700x.c | +++ b/drivers/net/dsa/xrs700x/xrs700x.c | ||||||
| @@ -456,7 +456,7 @@ static void xrs700x_phylink_validate(str | @@ -457,7 +457,7 @@ static void xrs700x_phylink_validate(str | ||||||
|  		phylink_set(mask, 1000baseT_Full); |  		phylink_set(mask, 1000baseT_Full); | ||||||
|  		break; |  		break; | ||||||
|  	default: |  	default: | ||||||
| @@ -539,7 +539,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> | |||||||
|  		dev_err(ds->dev, "Unsupported port: %i\n", port); |  		dev_err(ds->dev, "Unsupported port: %i\n", port); | ||||||
|  		return; |  		return; | ||||||
|  	} |  	} | ||||||
| @@ -467,10 +467,8 @@ static void xrs700x_phylink_validate(str | @@ -468,10 +468,8 @@ static void xrs700x_phylink_validate(str | ||||||
|  	phylink_set(mask, 10baseT_Full); |  	phylink_set(mask, 10baseT_Full); | ||||||
|  	phylink_set(mask, 100baseT_Full); |  	phylink_set(mask, 100baseT_Full); | ||||||
|   |   | ||||||
|   | |||||||
| @@ -9,7 +9,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  |  | ||||||
| --- a/net/netfilter/Kconfig | --- a/net/netfilter/Kconfig | ||||||
| +++ b/net/netfilter/Kconfig | +++ b/net/netfilter/Kconfig | ||||||
| @@ -243,7 +243,6 @@ config NF_CONNTRACK_FTP | @@ -242,7 +242,6 @@ config NF_CONNTRACK_FTP | ||||||
|   |   | ||||||
|  config NF_CONNTRACK_H323 |  config NF_CONNTRACK_H323 | ||||||
|  	tristate "H.323 protocol support" |  	tristate "H.323 protocol support" | ||||||
| @@ -17,7 +17,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  	depends on NETFILTER_ADVANCED |  	depends on NETFILTER_ADVANCED | ||||||
|  	help |  	help | ||||||
|  	  H.323 is a VoIP signalling protocol from ITU-T. As one of the most |  	  H.323 is a VoIP signalling protocol from ITU-T. As one of the most | ||||||
| @@ -1106,7 +1105,6 @@ config NETFILTER_XT_TARGET_SECMARK | @@ -1105,7 +1104,6 @@ config NETFILTER_XT_TARGET_SECMARK | ||||||
|   |   | ||||||
|  config NETFILTER_XT_TARGET_TCPMSS |  config NETFILTER_XT_TARGET_TCPMSS | ||||||
|  	tristate '"TCPMSS" target support' |  	tristate '"TCPMSS" target support' | ||||||
|   | |||||||
| @@ -47,7 +47,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  	depends on !NF_CONNTRACK || NF_CONNTRACK |  	depends on !NF_CONNTRACK || NF_CONNTRACK | ||||||
| --- a/net/netfilter/Kconfig | --- a/net/netfilter/Kconfig | ||||||
| +++ b/net/netfilter/Kconfig | +++ b/net/netfilter/Kconfig | ||||||
| @@ -708,8 +708,6 @@ config NFT_REJECT_NETDEV | @@ -707,8 +707,6 @@ config NFT_REJECT_NETDEV | ||||||
|   |   | ||||||
|  endif # NF_TABLES_NETDEV |  endif # NF_TABLES_NETDEV | ||||||
|   |   | ||||||
| @@ -56,7 +56,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  config NF_FLOW_TABLE_INET |  config NF_FLOW_TABLE_INET | ||||||
|  	tristate "Netfilter flow table mixed IPv4/IPv6 module" |  	tristate "Netfilter flow table mixed IPv4/IPv6 module" | ||||||
|  	depends on NF_FLOW_TABLE |  	depends on NF_FLOW_TABLE | ||||||
| @@ -718,11 +716,12 @@ config NF_FLOW_TABLE_INET | @@ -717,11 +715,12 @@ config NF_FLOW_TABLE_INET | ||||||
|   |   | ||||||
|  	  To compile it as a module, choose M here. |  	  To compile it as a module, choose M here. | ||||||
|   |   | ||||||
| @@ -70,7 +70,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  	help |  	help | ||||||
|  	  This option adds the flow table core infrastructure. |  	  This option adds the flow table core infrastructure. | ||||||
|   |   | ||||||
| @@ -1011,6 +1010,15 @@ config NETFILTER_XT_TARGET_NOTRACK | @@ -1010,6 +1009,15 @@ config NETFILTER_XT_TARGET_NOTRACK | ||||||
|  	depends on NETFILTER_ADVANCED |  	depends on NETFILTER_ADVANCED | ||||||
|  	select NETFILTER_XT_TARGET_CT |  	select NETFILTER_XT_TARGET_CT | ||||||
|   |   | ||||||
|   | |||||||
| @@ -71,7 +71,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|   */ |   */ | ||||||
| --- a/include/linux/skbuff.h | --- a/include/linux/skbuff.h | ||||||
| +++ b/include/linux/skbuff.h | +++ b/include/linux/skbuff.h | ||||||
| @@ -2816,6 +2816,10 @@ static inline int pskb_trim(struct sk_bu | @@ -2824,6 +2824,10 @@ static inline int pskb_trim(struct sk_bu | ||||||
|  	return (len < skb->len) ? __pskb_trim(skb, len) : 0; |  	return (len < skb->len) ? __pskb_trim(skb, len) : 0; | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @@ -82,7 +82,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  /** |  /** | ||||||
|   *	pskb_trim_unique - remove end from a paged unique (not cloned) buffer |   *	pskb_trim_unique - remove end from a paged unique (not cloned) buffer | ||||||
|   *	@skb: buffer to alter |   *	@skb: buffer to alter | ||||||
| @@ -2966,16 +2970,6 @@ static inline struct sk_buff *dev_alloc_ | @@ -2974,16 +2978,6 @@ static inline struct sk_buff *dev_alloc_ | ||||||
|  } |  } | ||||||
|   |   | ||||||
|   |   | ||||||
|   | |||||||
| @@ -29,7 +29,7 @@ Subject: [PATCH] net/usb/qmi_wwan: add MeigLink modem support | |||||||
|   |   | ||||||
|  #define QUECTEL_VENDOR_ID			0x2c7c |  #define QUECTEL_VENDOR_ID			0x2c7c | ||||||
|  /* These Quectel products use Quectel's vendor ID */ |  /* These Quectel products use Quectel's vendor ID */ | ||||||
| @@ -1133,6 +1135,11 @@ static const struct usb_device_id option | @@ -1140,6 +1142,11 @@ static const struct usb_device_id option | ||||||
|  	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EG95, 0xff, 0, 0) }, |  	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EG95, 0xff, 0, 0) }, | ||||||
|  	{ USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_BG96), |  	{ USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_BG96), | ||||||
|  	  .driver_info = RSVD(4) }, |  	  .driver_info = RSVD(4) }, | ||||||
|   | |||||||
| @@ -106,7 +106,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  		} |  		} | ||||||
| --- a/scripts/link-vmlinux.sh | --- a/scripts/link-vmlinux.sh | ||||||
| +++ b/scripts/link-vmlinux.sh | +++ b/scripts/link-vmlinux.sh | ||||||
| @@ -266,6 +266,10 @@ kallsyms() | @@ -257,6 +257,10 @@ kallsyms() | ||||||
|  		kallsymopt="${kallsymopt} --base-relative" |  		kallsymopt="${kallsymopt} --base-relative" | ||||||
|  	fi |  	fi | ||||||
|   |   | ||||||
|   | |||||||
| @@ -9,7 +9,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  |  | ||||||
| --- a/include/linux/skbuff.h | --- a/include/linux/skbuff.h | ||||||
| +++ b/include/linux/skbuff.h | +++ b/include/linux/skbuff.h | ||||||
| @@ -2782,7 +2782,7 @@ static inline int pskb_network_may_pull( | @@ -2790,7 +2790,7 @@ static inline int pskb_network_may_pull( | ||||||
|   * NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8) |   * NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8) | ||||||
|   */ |   */ | ||||||
|  #ifndef NET_SKB_PAD |  #ifndef NET_SKB_PAD | ||||||
|   | |||||||
| @@ -32,7 +32,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  	__u8			inner_protocol_type:1; |  	__u8			inner_protocol_type:1; | ||||||
| --- a/net/core/dev.c | --- a/net/core/dev.c | ||||||
| +++ b/net/core/dev.c | +++ b/net/core/dev.c | ||||||
| @@ -6062,6 +6062,9 @@ static enum gro_result dev_gro_receive(s | @@ -6063,6 +6063,9 @@ static enum gro_result dev_gro_receive(s | ||||||
|  	int same_flow; |  	int same_flow; | ||||||
|  	int grow; |  	int grow; | ||||||
|   |   | ||||||
| @@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  	if (netif_elide_gro(skb->dev)) |  	if (netif_elide_gro(skb->dev)) | ||||||
|  		goto normal; |  		goto normal; | ||||||
|   |   | ||||||
| @@ -8076,6 +8079,48 @@ static void __netdev_adjacent_dev_unlink | @@ -8077,6 +8080,48 @@ static void __netdev_adjacent_dev_unlink | ||||||
|  					   &upper_dev->adj_list.lower); |  					   &upper_dev->adj_list.lower); | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  static int __netdev_upper_dev_link(struct net_device *dev, |  static int __netdev_upper_dev_link(struct net_device *dev, | ||||||
|  				   struct net_device *upper_dev, bool master, |  				   struct net_device *upper_dev, bool master, | ||||||
|  				   void *upper_priv, void *upper_info, |  				   void *upper_priv, void *upper_info, | ||||||
| @@ -8127,6 +8172,7 @@ static int __netdev_upper_dev_link(struc | @@ -8128,6 +8173,7 @@ static int __netdev_upper_dev_link(struc | ||||||
|  	if (ret) |  	if (ret) | ||||||
|  		return ret; |  		return ret; | ||||||
|   |   | ||||||
| @@ -99,7 +99,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  	ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, |  	ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, | ||||||
|  					    &changeupper_info.info); |  					    &changeupper_info.info); | ||||||
|  	ret = notifier_to_errno(ret); |  	ret = notifier_to_errno(ret); | ||||||
| @@ -8223,6 +8269,7 @@ static void __netdev_upper_dev_unlink(st | @@ -8224,6 +8270,7 @@ static void __netdev_upper_dev_unlink(st | ||||||
|   |   | ||||||
|  	__netdev_adjacent_dev_unlink_neighbour(dev, upper_dev); |  	__netdev_adjacent_dev_unlink_neighbour(dev, upper_dev); | ||||||
|   |   | ||||||
| @@ -107,7 +107,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  	call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, |  	call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, | ||||||
|  				      &changeupper_info.info); |  				      &changeupper_info.info); | ||||||
|   |   | ||||||
| @@ -9042,6 +9089,7 @@ int dev_set_mac_address(struct net_devic | @@ -9043,6 +9090,7 @@ int dev_set_mac_address(struct net_devic | ||||||
|  	if (err) |  	if (err) | ||||||
|  		return err; |  		return err; | ||||||
|  	dev->addr_assign_type = NET_ADDR_SET; |  	dev->addr_assign_type = NET_ADDR_SET; | ||||||
|   | |||||||
| @@ -13,7 +13,7 @@ Signed-off-by: Alexander Couzens <lynxis@fe80.eu> | |||||||
|  |  | ||||||
| --- a/drivers/net/ethernet/mediatek/mtk_sgmii.c | --- a/drivers/net/ethernet/mediatek/mtk_sgmii.c | ||||||
| +++ b/drivers/net/ethernet/mediatek/mtk_sgmii.c | +++ b/drivers/net/ethernet/mediatek/mtk_sgmii.c | ||||||
| @@ -180,6 +180,7 @@ int mtk_sgmii_init(struct mtk_sgmii *ss, | @@ -182,6 +182,7 @@ int mtk_sgmii_init(struct mtk_sgmii *ss, | ||||||
|  			return PTR_ERR(ss->pcs[i].regmap); |  			return PTR_ERR(ss->pcs[i].regmap); | ||||||
|   |   | ||||||
|  		ss->pcs[i].pcs.ops = &mtk_pcs_ops; |  		ss->pcs[i].pcs.ops = &mtk_pcs_ops; | ||||||
|   | |||||||
| @@ -9,7 +9,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
| --- | --- | ||||||
| --- a/drivers/net/ethernet/marvell/mvneta.c | --- a/drivers/net/ethernet/marvell/mvneta.c | ||||||
| +++ b/drivers/net/ethernet/marvell/mvneta.c | +++ b/drivers/net/ethernet/marvell/mvneta.c | ||||||
| @@ -4987,6 +4987,16 @@ static int mvneta_setup_tc(struct net_de | @@ -4943,6 +4943,16 @@ static int mvneta_setup_tc(struct net_de | ||||||
|  	} |  	} | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @@ -26,7 +26,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  static const struct net_device_ops mvneta_netdev_ops = { |  static const struct net_device_ops mvneta_netdev_ops = { | ||||||
|  	.ndo_open            = mvneta_open, |  	.ndo_open            = mvneta_open, | ||||||
|  	.ndo_stop            = mvneta_stop, |  	.ndo_stop            = mvneta_stop, | ||||||
| @@ -4997,6 +5007,9 @@ static const struct net_device_ops mvnet | @@ -4953,6 +4963,9 @@ static const struct net_device_ops mvnet | ||||||
|  	.ndo_fix_features    = mvneta_fix_features, |  	.ndo_fix_features    = mvneta_fix_features, | ||||||
|  	.ndo_get_stats64     = mvneta_get_stats64, |  	.ndo_get_stats64     = mvneta_get_stats64, | ||||||
|  	.ndo_eth_ioctl        = mvneta_ioctl, |  	.ndo_eth_ioctl        = mvneta_ioctl, | ||||||
|   | |||||||
| @@ -26,7 +26,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> | |||||||
|  #include <linux/bpf_trace.h> |  #include <linux/bpf_trace.h> | ||||||
|   |   | ||||||
|  /* Registers */ |  /* Registers */ | ||||||
| @@ -4947,14 +4948,14 @@ static void mvneta_setup_rx_prio_map(str | @@ -4903,14 +4904,14 @@ static void mvneta_setup_rx_prio_map(str | ||||||
|  } |  } | ||||||
|   |   | ||||||
|  static int mvneta_setup_mqprio(struct net_device *dev, |  static int mvneta_setup_mqprio(struct net_device *dev, | ||||||
| @@ -44,7 +44,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> | |||||||
|   |   | ||||||
|  	if (num_tc > rxq_number) |  	if (num_tc > rxq_number) | ||||||
|  		return -EINVAL; |  		return -EINVAL; | ||||||
| @@ -4965,13 +4966,15 @@ static int mvneta_setup_mqprio(struct ne | @@ -4921,13 +4922,15 @@ static int mvneta_setup_mqprio(struct ne | ||||||
|  		return 0; |  		return 0; | ||||||
|  	} |  	} | ||||||
|   |   | ||||||
|   | |||||||
| @@ -17,7 +17,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> | |||||||
|  |  | ||||||
| --- a/drivers/net/ethernet/marvell/mvneta.c | --- a/drivers/net/ethernet/marvell/mvneta.c | ||||||
| +++ b/drivers/net/ethernet/marvell/mvneta.c | +++ b/drivers/net/ethernet/marvell/mvneta.c | ||||||
| @@ -4954,7 +4954,9 @@ static int mvneta_setup_mqprio(struct ne | @@ -4910,7 +4910,9 @@ static int mvneta_setup_mqprio(struct ne | ||||||
|  	u8 num_tc; |  	u8 num_tc; | ||||||
|  	int i; |  	int i; | ||||||
|   |   | ||||||
|   | |||||||
| @@ -30,7 +30,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> | |||||||
|   |   | ||||||
|  	phy_interface_t phy_interface; |  	phy_interface_t phy_interface; | ||||||
|  	struct device_node *dn; |  	struct device_node *dn; | ||||||
| @@ -4936,13 +4935,12 @@ static void mvneta_clear_rx_prio_map(str | @@ -4892,13 +4891,12 @@ static void mvneta_clear_rx_prio_map(str | ||||||
|  	mvreg_write(pp, MVNETA_VLAN_PRIO_TO_RXQ, 0); |  	mvreg_write(pp, MVNETA_VLAN_PRIO_TO_RXQ, 0); | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @@ -48,7 +48,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> | |||||||
|   |   | ||||||
|  	mvreg_write(pp, MVNETA_VLAN_PRIO_TO_RXQ, val); |  	mvreg_write(pp, MVNETA_VLAN_PRIO_TO_RXQ, val); | ||||||
|  } |  } | ||||||
| @@ -4951,8 +4949,8 @@ static int mvneta_setup_mqprio(struct ne | @@ -4907,8 +4905,8 @@ static int mvneta_setup_mqprio(struct ne | ||||||
|  			       struct tc_mqprio_qopt_offload *mqprio) |  			       struct tc_mqprio_qopt_offload *mqprio) | ||||||
|  { |  { | ||||||
|  	struct mvneta_port *pp = netdev_priv(dev); |  	struct mvneta_port *pp = netdev_priv(dev); | ||||||
| @@ -58,7 +58,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> | |||||||
|   |   | ||||||
|  	if (mqprio->qopt.hw != TC_MQPRIO_HW_OFFLOAD_TCS) |  	if (mqprio->qopt.hw != TC_MQPRIO_HW_OFFLOAD_TCS) | ||||||
|  		return 0; |  		return 0; | ||||||
| @@ -4962,21 +4960,28 @@ static int mvneta_setup_mqprio(struct ne | @@ -4918,21 +4916,28 @@ static int mvneta_setup_mqprio(struct ne | ||||||
|  	if (num_tc > rxq_number) |  	if (num_tc > rxq_number) | ||||||
|  		return -EINVAL; |  		return -EINVAL; | ||||||
|   |   | ||||||
|   | |||||||
| @@ -62,7 +62,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> | |||||||
|  #define MVNETA_LPI_CTRL_0                        0x2cc0 |  #define MVNETA_LPI_CTRL_0                        0x2cc0 | ||||||
|  #define MVNETA_LPI_CTRL_1                        0x2cc4 |  #define MVNETA_LPI_CTRL_1                        0x2cc4 | ||||||
|  #define      MVNETA_LPI_REQUEST_ENABLE           BIT(0) |  #define      MVNETA_LPI_REQUEST_ENABLE           BIT(0) | ||||||
| @@ -4945,11 +4972,74 @@ static void mvneta_map_vlan_prio_to_rxq( | @@ -4901,11 +4928,74 @@ static void mvneta_map_vlan_prio_to_rxq( | ||||||
|  	mvreg_write(pp, MVNETA_VLAN_PRIO_TO_RXQ, val); |  	mvreg_write(pp, MVNETA_VLAN_PRIO_TO_RXQ, val); | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @@ -138,7 +138,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> | |||||||
|  	u8 num_tc; |  	u8 num_tc; | ||||||
|   |   | ||||||
|  	if (mqprio->qopt.hw != TC_MQPRIO_HW_OFFLOAD_TCS) |  	if (mqprio->qopt.hw != TC_MQPRIO_HW_OFFLOAD_TCS) | ||||||
| @@ -4963,6 +5053,7 @@ static int mvneta_setup_mqprio(struct ne | @@ -4919,6 +5009,7 @@ static int mvneta_setup_mqprio(struct ne | ||||||
|  	mvneta_clear_rx_prio_map(pp); |  	mvneta_clear_rx_prio_map(pp); | ||||||
|   |   | ||||||
|  	if (!num_tc) { |  	if (!num_tc) { | ||||||
| @@ -146,7 +146,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> | |||||||
|  		netdev_reset_tc(dev); |  		netdev_reset_tc(dev); | ||||||
|  		return 0; |  		return 0; | ||||||
|  	} |  	} | ||||||
| @@ -4983,6 +5074,33 @@ static int mvneta_setup_mqprio(struct ne | @@ -4939,6 +5030,33 @@ static int mvneta_setup_mqprio(struct ne | ||||||
|  		} |  		} | ||||||
|  	} |  	} | ||||||
|   |   | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 John Audia
					John Audia