mirror of
https://github.com/coolsnowwolf/lede.git
synced 2025-04-16 14:23:38 +00:00
kernel: bump 6.1 to 6.1.95 (#12257)
This commit is contained in:
parent
8482b89587
commit
0e02e8ae03
@ -1,2 +1,2 @@
|
|||||||
LINUX_VERSION-6.1 = .94
|
LINUX_VERSION-6.1 = .95
|
||||||
LINUX_KERNEL_HASH-6.1.94 = 38ea71ad22ae0187fd8ee5ff879b33b0d9bd58161ac9a3e868ae0b4c66b95369
|
LINUX_KERNEL_HASH-6.1.95 = 2960f0aa1d75665f39114ad3c272a999c54796e553a2355d0379f5188d14dfbd
|
||||||
|
@ -19,7 +19,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
|||||||
|
|
||||||
--- a/drivers/gpu/drm/bridge/panel.c
|
--- a/drivers/gpu/drm/bridge/panel.c
|
||||||
+++ b/drivers/gpu/drm/bridge/panel.c
|
+++ b/drivers/gpu/drm/bridge/panel.c
|
||||||
@@ -368,6 +368,8 @@ struct drm_bridge *devm_drm_panel_bridge
|
@@ -371,6 +371,8 @@ struct drm_bridge *devm_drm_panel_bridge
|
||||||
devres_free(ptr);
|
devres_free(ptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -47,7 +47,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
|||||||
val);
|
val);
|
||||||
--- a/drivers/usb/host/xhci.h
|
--- a/drivers/usb/host/xhci.h
|
||||||
+++ b/drivers/usb/host/xhci.h
|
+++ b/drivers/usb/host/xhci.h
|
||||||
@@ -1677,8 +1677,8 @@ struct urb_priv {
|
@@ -1678,8 +1678,8 @@ struct urb_priv {
|
||||||
* Each segment table entry is 4*32bits long. 1K seems like an ok size:
|
* Each segment table entry is 4*32bits long. 1K seems like an ok size:
|
||||||
* (1K bytes * 8bytes/bit) / (4*32 bits) = 64 segment entries in the table,
|
* (1K bytes * 8bytes/bit) / (4*32 bits) = 64 segment entries in the table,
|
||||||
* meaning 64 ring segments.
|
* meaning 64 ring segments.
|
||||||
|
@ -22,7 +22,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|||||||
|
|
||||||
--- a/drivers/usb/host/xhci-pci.c
|
--- a/drivers/usb/host/xhci-pci.c
|
||||||
+++ b/drivers/usb/host/xhci-pci.c
|
+++ b/drivers/usb/host/xhci-pci.c
|
||||||
@@ -293,8 +293,10 @@ static void xhci_pci_quirks(struct devic
|
@@ -300,8 +300,10 @@ static void xhci_pci_quirks(struct devic
|
||||||
pdev->device == 0x3432)
|
pdev->device == 0x3432)
|
||||||
xhci->quirks |= XHCI_BROKEN_STREAMS;
|
xhci->quirks |= XHCI_BROKEN_STREAMS;
|
||||||
|
|
||||||
@ -54,7 +54,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|||||||
addr = xhci_trb_virt_to_dma(new_seg, new_deq);
|
addr = xhci_trb_virt_to_dma(new_seg, new_deq);
|
||||||
--- a/drivers/usb/host/xhci.h
|
--- a/drivers/usb/host/xhci.h
|
||||||
+++ b/drivers/usb/host/xhci.h
|
+++ b/drivers/usb/host/xhci.h
|
||||||
@@ -1907,6 +1907,7 @@ struct xhci_hcd {
|
@@ -1908,6 +1908,7 @@ struct xhci_hcd {
|
||||||
#define XHCI_RESET_TO_DEFAULT BIT_ULL(44)
|
#define XHCI_RESET_TO_DEFAULT BIT_ULL(44)
|
||||||
#define XHCI_ZHAOXIN_TRB_FETCH BIT_ULL(45)
|
#define XHCI_ZHAOXIN_TRB_FETCH BIT_ULL(45)
|
||||||
#define XHCI_ZHAOXIN_HOST BIT_ULL(46)
|
#define XHCI_ZHAOXIN_HOST BIT_ULL(46)
|
||||||
|
@ -204,7 +204,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|||||||
xhci_err(xhci, "Tried to move enqueue past ring segment\n");
|
xhci_err(xhci, "Tried to move enqueue past ring segment\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -3151,7 +3154,7 @@ irqreturn_t xhci_irq(struct usb_hcd *hcd
|
@@ -3182,7 +3185,7 @@ irqreturn_t xhci_irq(struct usb_hcd *hcd
|
||||||
* that clears the EHB.
|
* that clears the EHB.
|
||||||
*/
|
*/
|
||||||
while (xhci_handle_event(xhci) > 0) {
|
while (xhci_handle_event(xhci) > 0) {
|
||||||
@ -213,7 +213,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|||||||
continue;
|
continue;
|
||||||
xhci_update_erst_dequeue(xhci, event_ring_deq);
|
xhci_update_erst_dequeue(xhci, event_ring_deq);
|
||||||
event_ring_deq = xhci->event_ring->dequeue;
|
event_ring_deq = xhci->event_ring->dequeue;
|
||||||
@@ -3293,7 +3296,8 @@ static int prepare_ring(struct xhci_hcd
|
@@ -3324,7 +3327,8 @@ static int prepare_ring(struct xhci_hcd
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -247,7 +247,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|||||||
* when the cycle bit is set to 1.
|
* when the cycle bit is set to 1.
|
||||||
--- a/drivers/usb/host/xhci.h
|
--- a/drivers/usb/host/xhci.h
|
||||||
+++ b/drivers/usb/host/xhci.h
|
+++ b/drivers/usb/host/xhci.h
|
||||||
@@ -1639,6 +1639,7 @@ struct xhci_ring {
|
@@ -1640,6 +1640,7 @@ struct xhci_ring {
|
||||||
unsigned int num_trbs_free;
|
unsigned int num_trbs_free;
|
||||||
unsigned int num_trbs_free_temp;
|
unsigned int num_trbs_free_temp;
|
||||||
unsigned int bounce_buf_len;
|
unsigned int bounce_buf_len;
|
||||||
|
@ -53,7 +53,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|||||||
cycle_state, type, max_packet, flags);
|
cycle_state, type, max_packet, flags);
|
||||||
--- a/drivers/usb/host/xhci-pci.c
|
--- a/drivers/usb/host/xhci-pci.c
|
||||||
+++ b/drivers/usb/host/xhci-pci.c
|
+++ b/drivers/usb/host/xhci-pci.c
|
||||||
@@ -296,6 +296,7 @@ static void xhci_pci_quirks(struct devic
|
@@ -303,6 +303,7 @@ static void xhci_pci_quirks(struct devic
|
||||||
if (pdev->vendor == PCI_VENDOR_ID_VIA && pdev->device == 0x3483) {
|
if (pdev->vendor == PCI_VENDOR_ID_VIA && pdev->device == 0x3483) {
|
||||||
xhci->quirks |= XHCI_LPM_SUPPORT;
|
xhci->quirks |= XHCI_LPM_SUPPORT;
|
||||||
xhci->quirks |= XHCI_AVOID_DQ_ON_LINK;
|
xhci->quirks |= XHCI_AVOID_DQ_ON_LINK;
|
||||||
@ -63,7 +63,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|||||||
if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA &&
|
if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA &&
|
||||||
--- a/drivers/usb/host/xhci.h
|
--- a/drivers/usb/host/xhci.h
|
||||||
+++ b/drivers/usb/host/xhci.h
|
+++ b/drivers/usb/host/xhci.h
|
||||||
@@ -1909,6 +1909,7 @@ struct xhci_hcd {
|
@@ -1910,6 +1910,7 @@ struct xhci_hcd {
|
||||||
#define XHCI_ZHAOXIN_TRB_FETCH BIT_ULL(45)
|
#define XHCI_ZHAOXIN_TRB_FETCH BIT_ULL(45)
|
||||||
#define XHCI_ZHAOXIN_HOST BIT_ULL(46)
|
#define XHCI_ZHAOXIN_HOST BIT_ULL(46)
|
||||||
#define XHCI_AVOID_DQ_ON_LINK BIT_ULL(47)
|
#define XHCI_AVOID_DQ_ON_LINK BIT_ULL(47)
|
||||||
|
@ -26,7 +26,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|||||||
|
|
||||||
--- a/drivers/usb/host/xhci-pci.c
|
--- a/drivers/usb/host/xhci-pci.c
|
||||||
+++ b/drivers/usb/host/xhci-pci.c
|
+++ b/drivers/usb/host/xhci-pci.c
|
||||||
@@ -297,6 +297,7 @@ static void xhci_pci_quirks(struct devic
|
@@ -304,6 +304,7 @@ static void xhci_pci_quirks(struct devic
|
||||||
xhci->quirks |= XHCI_LPM_SUPPORT;
|
xhci->quirks |= XHCI_LPM_SUPPORT;
|
||||||
xhci->quirks |= XHCI_AVOID_DQ_ON_LINK;
|
xhci->quirks |= XHCI_AVOID_DQ_ON_LINK;
|
||||||
xhci->quirks |= XHCI_VLI_TRB_CACHE_BUG;
|
xhci->quirks |= XHCI_VLI_TRB_CACHE_BUG;
|
||||||
@ -36,7 +36,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|||||||
if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA &&
|
if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA &&
|
||||||
--- a/drivers/usb/host/xhci-ring.c
|
--- a/drivers/usb/host/xhci-ring.c
|
||||||
+++ b/drivers/usb/host/xhci-ring.c
|
+++ b/drivers/usb/host/xhci-ring.c
|
||||||
@@ -3606,14 +3606,15 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
|
@@ -3637,14 +3637,15 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
|
||||||
unsigned int num_trbs;
|
unsigned int num_trbs;
|
||||||
unsigned int start_cycle, num_sgs = 0;
|
unsigned int start_cycle, num_sgs = 0;
|
||||||
unsigned int enqd_len, block_len, trb_buff_len, full_len;
|
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;
|
full_len = urb->transfer_buffer_length;
|
||||||
/* If we have scatter/gather list, we use it. */
|
/* If we have scatter/gather list, we use it. */
|
||||||
if (urb->num_sgs && !(urb->transfer_flags & URB_DMA_MAP_SINGLE)) {
|
if (urb->num_sgs && !(urb->transfer_flags & URB_DMA_MAP_SINGLE)) {
|
||||||
@@ -3650,6 +3651,17 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
|
@@ -3681,6 +3682,17 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
|
||||||
start_cycle = ring->cycle_state;
|
start_cycle = ring->cycle_state;
|
||||||
send_addr = addr;
|
send_addr = addr;
|
||||||
|
|
||||||
@ -72,7 +72,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|||||||
/* Queue the TRBs, even if they are zero-length */
|
/* Queue the TRBs, even if they are zero-length */
|
||||||
for (enqd_len = 0; first_trb || enqd_len < full_len;
|
for (enqd_len = 0; first_trb || enqd_len < full_len;
|
||||||
enqd_len += trb_buff_len) {
|
enqd_len += trb_buff_len) {
|
||||||
@@ -3662,6 +3674,11 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
|
@@ -3693,6 +3705,11 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
|
||||||
if (enqd_len + trb_buff_len > full_len)
|
if (enqd_len + trb_buff_len > full_len)
|
||||||
trb_buff_len = full_len - enqd_len;
|
trb_buff_len = full_len - enqd_len;
|
||||||
|
|
||||||
@ -86,7 +86,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|||||||
first_trb = false;
|
first_trb = false;
|
||||||
--- a/drivers/usb/host/xhci.h
|
--- a/drivers/usb/host/xhci.h
|
||||||
+++ b/drivers/usb/host/xhci.h
|
+++ b/drivers/usb/host/xhci.h
|
||||||
@@ -1910,6 +1910,7 @@ struct xhci_hcd {
|
@@ -1911,6 +1911,7 @@ struct xhci_hcd {
|
||||||
#define XHCI_ZHAOXIN_HOST BIT_ULL(46)
|
#define XHCI_ZHAOXIN_HOST BIT_ULL(46)
|
||||||
#define XHCI_AVOID_DQ_ON_LINK BIT_ULL(47)
|
#define XHCI_AVOID_DQ_ON_LINK BIT_ULL(47)
|
||||||
#define XHCI_VLI_TRB_CACHE_BUG BIT_ULL(48)
|
#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
|
--- a/drivers/usb/host/xhci-ring.c
|
||||||
+++ b/drivers/usb/host/xhci-ring.c
|
+++ b/drivers/usb/host/xhci-ring.c
|
||||||
@@ -3606,7 +3606,7 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
|
@@ -3637,7 +3637,7 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
|
||||||
unsigned int num_trbs;
|
unsigned int num_trbs;
|
||||||
unsigned int start_cycle, num_sgs = 0;
|
unsigned int start_cycle, num_sgs = 0;
|
||||||
unsigned int enqd_len, block_len, trb_buff_len, full_len;
|
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;
|
u32 field, length_field, remainder, maxpacket;
|
||||||
u64 addr, send_addr;
|
u64 addr, send_addr;
|
||||||
|
|
||||||
@@ -3652,14 +3652,9 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
|
@@ -3683,14 +3683,9 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
|
||||||
send_addr = addr;
|
send_addr = addr;
|
||||||
|
|
||||||
if (xhci->quirks & XHCI_VLI_SS_BULK_OUT_BUG &&
|
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 */
|
/* Queue the TRBs, even if they are zero-length */
|
||||||
@@ -3674,7 +3669,7 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
|
@@ -3705,7 +3700,7 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
|
||||||
if (enqd_len + trb_buff_len > full_len)
|
if (enqd_len + trb_buff_len > full_len)
|
||||||
trb_buff_len = full_len - enqd_len;
|
trb_buff_len = full_len - enqd_len;
|
||||||
|
|
||||||
|
@ -31,9 +31,9 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|||||||
|
|
||||||
--- a/drivers/usb/host/xhci-ring.c
|
--- a/drivers/usb/host/xhci-ring.c
|
||||||
+++ b/drivers/usb/host/xhci-ring.c
|
+++ b/drivers/usb/host/xhci-ring.c
|
||||||
@@ -1013,11 +1013,13 @@ static int xhci_invalidate_cancelled_tds
|
@@ -1027,11 +1027,13 @@ static int xhci_invalidate_cancelled_tds
|
||||||
td->urb->stream_id, td->urb,
|
|
||||||
cached_td->urb->stream_id, cached_td->urb);
|
td->cancel_status = TD_CLEARING_CACHE;
|
||||||
cached_td = td;
|
cached_td = td;
|
||||||
+ ring->num_trbs_free += td->num_trbs;
|
+ ring->num_trbs_free += td->num_trbs;
|
||||||
break;
|
break;
|
||||||
@ -45,7 +45,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1265,10 +1267,7 @@ static void update_ring_for_set_deq_comp
|
@@ -1285,10 +1287,7 @@ static void update_ring_for_set_deq_comp
|
||||||
unsigned int ep_index)
|
unsigned int ep_index)
|
||||||
{
|
{
|
||||||
union xhci_trb *dequeue_temp;
|
union xhci_trb *dequeue_temp;
|
||||||
@ -56,7 +56,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|||||||
dequeue_temp = ep_ring->dequeue;
|
dequeue_temp = ep_ring->dequeue;
|
||||||
|
|
||||||
/* If we get two back-to-back stalls, and the first stalled transfer
|
/* If we get two back-to-back stalls, and the first stalled transfer
|
||||||
@@ -1283,8 +1282,6 @@ static void update_ring_for_set_deq_comp
|
@@ -1303,8 +1302,6 @@ static void update_ring_for_set_deq_comp
|
||||||
}
|
}
|
||||||
|
|
||||||
while (ep_ring->dequeue != dev->eps[ep_index].queued_deq_ptr) {
|
while (ep_ring->dequeue != dev->eps[ep_index].queued_deq_ptr) {
|
||||||
@ -65,7 +65,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|||||||
ep_ring->dequeue++;
|
ep_ring->dequeue++;
|
||||||
if (trb_is_link(ep_ring->dequeue)) {
|
if (trb_is_link(ep_ring->dequeue)) {
|
||||||
if (ep_ring->dequeue ==
|
if (ep_ring->dequeue ==
|
||||||
@@ -1294,15 +1291,10 @@ static void update_ring_for_set_deq_comp
|
@@ -1314,15 +1311,10 @@ static void update_ring_for_set_deq_comp
|
||||||
ep_ring->dequeue = ep_ring->deq_seg->trbs;
|
ep_ring->dequeue = ep_ring->deq_seg->trbs;
|
||||||
}
|
}
|
||||||
if (ep_ring->dequeue == dequeue_temp) {
|
if (ep_ring->dequeue == dequeue_temp) {
|
||||||
|
@ -30,7 +30,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|||||||
|
|
||||||
--- a/drivers/usb/host/xhci-pci.c
|
--- a/drivers/usb/host/xhci-pci.c
|
||||||
+++ b/drivers/usb/host/xhci-pci.c
|
+++ b/drivers/usb/host/xhci-pci.c
|
||||||
@@ -298,6 +298,7 @@ static void xhci_pci_quirks(struct devic
|
@@ -305,6 +305,7 @@ static void xhci_pci_quirks(struct devic
|
||||||
xhci->quirks |= XHCI_AVOID_DQ_ON_LINK;
|
xhci->quirks |= XHCI_AVOID_DQ_ON_LINK;
|
||||||
xhci->quirks |= XHCI_VLI_TRB_CACHE_BUG;
|
xhci->quirks |= XHCI_VLI_TRB_CACHE_BUG;
|
||||||
xhci->quirks |= XHCI_VLI_SS_BULK_OUT_BUG;
|
xhci->quirks |= XHCI_VLI_SS_BULK_OUT_BUG;
|
||||||
@ -40,7 +40,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|||||||
if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA &&
|
if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA &&
|
||||||
--- a/drivers/usb/host/xhci-ring.c
|
--- a/drivers/usb/host/xhci-ring.c
|
||||||
+++ b/drivers/usb/host/xhci-ring.c
|
+++ b/drivers/usb/host/xhci-ring.c
|
||||||
@@ -3583,6 +3583,48 @@ static int xhci_align_td(struct xhci_hcd
|
@@ -3614,6 +3614,48 @@ static int xhci_align_td(struct xhci_hcd
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -89,7 +89,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|||||||
/* This is very similar to what ehci-q.c qtd_fill() does */
|
/* This is very similar to what ehci-q.c qtd_fill() does */
|
||||||
int xhci_queue_bulk_tx(struct xhci_hcd *xhci, gfp_t mem_flags,
|
int xhci_queue_bulk_tx(struct xhci_hcd *xhci, gfp_t mem_flags,
|
||||||
struct urb *urb, int slot_id, unsigned int ep_index)
|
struct urb *urb, int slot_id, unsigned int ep_index)
|
||||||
@@ -3751,6 +3793,8 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
|
@@ -3782,6 +3824,8 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
|
||||||
}
|
}
|
||||||
|
|
||||||
check_trb_math(urb, enqd_len);
|
check_trb_math(urb, enqd_len);
|
||||||
@ -98,7 +98,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|||||||
giveback_first_trb(xhci, slot_id, ep_index, urb->stream_id,
|
giveback_first_trb(xhci, slot_id, ep_index, urb->stream_id,
|
||||||
start_cycle, start_trb);
|
start_cycle, start_trb);
|
||||||
return 0;
|
return 0;
|
||||||
@@ -3886,6 +3930,8 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *
|
@@ -3917,6 +3961,8 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *
|
||||||
/* Event on completion */
|
/* Event on completion */
|
||||||
field | TRB_IOC | TRB_TYPE(TRB_STATUS) | ep_ring->cycle_state);
|
field | TRB_IOC | TRB_TYPE(TRB_STATUS) | ep_ring->cycle_state);
|
||||||
|
|
||||||
@ -109,7 +109,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|||||||
return 0;
|
return 0;
|
||||||
--- a/drivers/usb/host/xhci.h
|
--- a/drivers/usb/host/xhci.h
|
||||||
+++ b/drivers/usb/host/xhci.h
|
+++ b/drivers/usb/host/xhci.h
|
||||||
@@ -1911,6 +1911,7 @@ struct xhci_hcd {
|
@@ -1912,6 +1912,7 @@ struct xhci_hcd {
|
||||||
#define XHCI_AVOID_DQ_ON_LINK BIT_ULL(47)
|
#define XHCI_AVOID_DQ_ON_LINK BIT_ULL(47)
|
||||||
#define XHCI_VLI_TRB_CACHE_BUG BIT_ULL(48)
|
#define XHCI_VLI_TRB_CACHE_BUG BIT_ULL(48)
|
||||||
#define XHCI_VLI_SS_BULK_OUT_BUG BIT_ULL(49)
|
#define XHCI_VLI_SS_BULK_OUT_BUG BIT_ULL(49)
|
||||||
|
@ -24,7 +24,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|||||||
/* Device for a quirk */
|
/* Device for a quirk */
|
||||||
#define PCI_VENDOR_ID_FRESCO_LOGIC 0x1b73
|
#define PCI_VENDOR_ID_FRESCO_LOGIC 0x1b73
|
||||||
#define PCI_DEVICE_ID_FRESCO_LOGIC_PDK 0x1000
|
#define PCI_DEVICE_ID_FRESCO_LOGIC_PDK 0x1000
|
||||||
@@ -104,6 +106,16 @@ static int xhci_pci_reinit(struct xhci_h
|
@@ -105,6 +107,16 @@ static int xhci_pci_reinit(struct xhci_h
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -41,7 +41,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|||||||
static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci)
|
static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci)
|
||||||
{
|
{
|
||||||
struct pci_dev *pdev = to_pci_dev(dev);
|
struct pci_dev *pdev = to_pci_dev(dev);
|
||||||
@@ -298,7 +310,8 @@ static void xhci_pci_quirks(struct devic
|
@@ -305,7 +317,8 @@ static void xhci_pci_quirks(struct devic
|
||||||
xhci->quirks |= XHCI_AVOID_DQ_ON_LINK;
|
xhci->quirks |= XHCI_AVOID_DQ_ON_LINK;
|
||||||
xhci->quirks |= XHCI_VLI_TRB_CACHE_BUG;
|
xhci->quirks |= XHCI_VLI_TRB_CACHE_BUG;
|
||||||
xhci->quirks |= XHCI_VLI_SS_BULK_OUT_BUG;
|
xhci->quirks |= XHCI_VLI_SS_BULK_OUT_BUG;
|
||||||
|
@ -16,7 +16,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
|||||||
|
|
||||||
--- a/drivers/tty/serial/sc16is7xx.c
|
--- a/drivers/tty/serial/sc16is7xx.c
|
||||||
+++ b/drivers/tty/serial/sc16is7xx.c
|
+++ b/drivers/tty/serial/sc16is7xx.c
|
||||||
@@ -1193,6 +1193,9 @@ static int sc16is7xx_startup(struct uart
|
@@ -1206,6 +1206,9 @@ static int sc16is7xx_startup(struct uart
|
||||||
SC16IS7XX_IER_MSI_BIT;
|
SC16IS7XX_IER_MSI_BIT;
|
||||||
sc16is7xx_port_write(port, SC16IS7XX_IER_REG, val);
|
sc16is7xx_port_write(port, SC16IS7XX_IER_REG, val);
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
|||||||
|
|
||||||
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
|
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||||
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
|
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||||
@@ -3627,6 +3627,7 @@ static int vc4_hdmi_runtime_suspend(stru
|
@@ -3625,6 +3625,7 @@ static int vc4_hdmi_runtime_suspend(stru
|
||||||
{
|
{
|
||||||
struct vc4_hdmi *vc4_hdmi = dev_get_drvdata(dev);
|
struct vc4_hdmi *vc4_hdmi = dev_get_drvdata(dev);
|
||||||
|
|
||||||
@ -26,7 +26,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
|||||||
clk_disable_unprepare(vc4_hdmi->hsm_rpm_clock);
|
clk_disable_unprepare(vc4_hdmi->hsm_rpm_clock);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@@ -3668,6 +3669,10 @@ static int vc4_hdmi_runtime_resume(struc
|
@@ -3666,6 +3667,10 @@ static int vc4_hdmi_runtime_resume(struc
|
||||||
goto err_disable_clk;
|
goto err_disable_clk;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -73,7 +73,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
|||||||
VC4_HD_VID_CTL_ENABLE |
|
VC4_HD_VID_CTL_ENABLE |
|
||||||
VC4_HD_VID_CTL_CLRRGB |
|
VC4_HD_VID_CTL_CLRRGB |
|
||||||
VC4_HD_VID_CTL_UNDERFLOW_ENABLE |
|
VC4_HD_VID_CTL_UNDERFLOW_ENABLE |
|
||||||
@@ -3798,7 +3810,9 @@ static int vc4_hdmi_bind(struct device *
|
@@ -3796,7 +3808,9 @@ static int vc4_hdmi_bind(struct device *
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
if ((of_device_is_compatible(dev->of_node, "brcm,bcm2711-hdmi0") ||
|
if ((of_device_is_compatible(dev->of_node, "brcm,bcm2711-hdmi0") ||
|
||||||
@ -84,7 +84,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
|||||||
HDMI_READ(HDMI_VID_CTL) & VC4_HD_VID_CTL_ENABLE) {
|
HDMI_READ(HDMI_VID_CTL) & VC4_HD_VID_CTL_ENABLE) {
|
||||||
clk_prepare_enable(vc4_hdmi->pixel_clock);
|
clk_prepare_enable(vc4_hdmi->pixel_clock);
|
||||||
clk_prepare_enable(vc4_hdmi->hsm_clock);
|
clk_prepare_enable(vc4_hdmi->hsm_clock);
|
||||||
@@ -3933,10 +3947,66 @@ static const struct vc4_hdmi_variant bcm
|
@@ -3931,10 +3945,66 @@ static const struct vc4_hdmi_variant bcm
|
||||||
.hp_detect = vc5_hdmi_hp_detect,
|
.hp_detect = vc5_hdmi_hp_detect,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -74,7 +74,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
|
|||||||
},
|
},
|
||||||
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
|
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||||
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
|
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||||
@@ -3960,7 +3960,7 @@ static const struct vc4_hdmi_variant bcm
|
@@ -3958,7 +3958,7 @@ static const struct vc4_hdmi_variant bcm
|
||||||
PHY_LANE_2,
|
PHY_LANE_2,
|
||||||
PHY_LANE_CK,
|
PHY_LANE_CK,
|
||||||
},
|
},
|
||||||
@ -83,7 +83,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
|
|||||||
.external_irq_controller = true,
|
.external_irq_controller = true,
|
||||||
|
|
||||||
.init_resources = vc5_hdmi_init_resources,
|
.init_resources = vc5_hdmi_init_resources,
|
||||||
@@ -3987,7 +3987,7 @@ static const struct vc4_hdmi_variant bcm
|
@@ -3985,7 +3985,7 @@ static const struct vc4_hdmi_variant bcm
|
||||||
PHY_LANE_2,
|
PHY_LANE_2,
|
||||||
PHY_LANE_CK,
|
PHY_LANE_CK,
|
||||||
},
|
},
|
||||||
|
@ -36,7 +36,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
|||||||
// Lantech 8330-262D-E can operate at 2500base-X, but incorrectly report
|
// Lantech 8330-262D-E can operate at 2500base-X, but incorrectly report
|
||||||
// 2500MBd NRZ in their EEPROM
|
// 2500MBd NRZ in their EEPROM
|
||||||
SFP_QUIRK_M("Lantech", "8330-262D-E", sfp_quirk_2500basex),
|
SFP_QUIRK_M("Lantech", "8330-262D-E", sfp_quirk_2500basex),
|
||||||
@@ -2344,7 +2347,8 @@ static void sfp_sm_main(struct sfp *sfp,
|
@@ -2343,7 +2346,8 @@ static void sfp_sm_main(struct sfp *sfp,
|
||||||
* or t_start_up, so assume there is a fault.
|
* or t_start_up, so assume there is a fault.
|
||||||
*/
|
*/
|
||||||
sfp_sm_fault(sfp, SFP_S_INIT_TX_FAULT,
|
sfp_sm_fault(sfp, SFP_S_INIT_TX_FAULT,
|
||||||
@ -46,7 +46,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
|||||||
} else if (event == SFP_E_TIMEOUT || event == SFP_E_TX_CLEAR) {
|
} else if (event == SFP_E_TIMEOUT || event == SFP_E_TX_CLEAR) {
|
||||||
init_done:
|
init_done:
|
||||||
/* Create mdiobus and start trying for PHY */
|
/* Create mdiobus and start trying for PHY */
|
||||||
@@ -2573,10 +2577,12 @@ static void sfp_check_state(struct sfp *
|
@@ -2572,10 +2576,12 @@ static void sfp_check_state(struct sfp *
|
||||||
mutex_lock(&sfp->st_mutex);
|
mutex_lock(&sfp->st_mutex);
|
||||||
state = sfp_get_state(sfp);
|
state = sfp_get_state(sfp);
|
||||||
changed = state ^ sfp->state;
|
changed = state ^ sfp->state;
|
||||||
|
@ -235,7 +235,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
if (!pe)
|
if (!pe)
|
||||||
--- a/mm/vmalloc.c
|
--- a/mm/vmalloc.c
|
||||||
+++ b/mm/vmalloc.c
|
+++ b/mm/vmalloc.c
|
||||||
@@ -4205,6 +4205,8 @@ static const struct seq_operations vmall
|
@@ -4222,6 +4222,8 @@ static const struct seq_operations vmall
|
||||||
|
|
||||||
static int __init proc_vmalloc_init(void)
|
static int __init proc_vmalloc_init(void)
|
||||||
{
|
{
|
||||||
|
@ -157,7 +157,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
|||||||
case RTN_THROW:
|
case RTN_THROW:
|
||||||
case RTN_UNREACHABLE:
|
case RTN_UNREACHABLE:
|
||||||
default:
|
default:
|
||||||
@@ -4544,6 +4563,17 @@ static int ip6_pkt_prohibit_out(struct n
|
@@ -4545,6 +4564,17 @@ static int ip6_pkt_prohibit_out(struct n
|
||||||
return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_OUTNOROUTES);
|
return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_OUTNOROUTES);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -175,7 +175,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
|||||||
/*
|
/*
|
||||||
* Allocate a dst for local (unicast / anycast) address.
|
* Allocate a dst for local (unicast / anycast) address.
|
||||||
*/
|
*/
|
||||||
@@ -5037,7 +5067,8 @@ static int rtm_to_fib6_config(struct sk_
|
@@ -5038,7 +5068,8 @@ static int rtm_to_fib6_config(struct sk_
|
||||||
if (rtm->rtm_type == RTN_UNREACHABLE ||
|
if (rtm->rtm_type == RTN_UNREACHABLE ||
|
||||||
rtm->rtm_type == RTN_BLACKHOLE ||
|
rtm->rtm_type == RTN_BLACKHOLE ||
|
||||||
rtm->rtm_type == RTN_PROHIBIT ||
|
rtm->rtm_type == RTN_PROHIBIT ||
|
||||||
@ -185,7 +185,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
|||||||
cfg->fc_flags |= RTF_REJECT;
|
cfg->fc_flags |= RTF_REJECT;
|
||||||
|
|
||||||
if (rtm->rtm_type == RTN_LOCAL)
|
if (rtm->rtm_type == RTN_LOCAL)
|
||||||
@@ -6284,6 +6315,8 @@ static int ip6_route_dev_notify(struct n
|
@@ -6285,6 +6316,8 @@ static int ip6_route_dev_notify(struct n
|
||||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||||
net->ipv6.ip6_prohibit_entry->dst.dev = dev;
|
net->ipv6.ip6_prohibit_entry->dst.dev = dev;
|
||||||
net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev);
|
net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev);
|
||||||
@ -194,7 +194,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
|||||||
net->ipv6.ip6_blk_hole_entry->dst.dev = dev;
|
net->ipv6.ip6_blk_hole_entry->dst.dev = dev;
|
||||||
net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
|
net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
|
||||||
#endif
|
#endif
|
||||||
@@ -6295,6 +6328,7 @@ static int ip6_route_dev_notify(struct n
|
@@ -6296,6 +6329,7 @@ static int ip6_route_dev_notify(struct n
|
||||||
in6_dev_put_clear(&net->ipv6.ip6_null_entry->rt6i_idev);
|
in6_dev_put_clear(&net->ipv6.ip6_null_entry->rt6i_idev);
|
||||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||||
in6_dev_put_clear(&net->ipv6.ip6_prohibit_entry->rt6i_idev);
|
in6_dev_put_clear(&net->ipv6.ip6_prohibit_entry->rt6i_idev);
|
||||||
@ -202,7 +202,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
|||||||
in6_dev_put_clear(&net->ipv6.ip6_blk_hole_entry->rt6i_idev);
|
in6_dev_put_clear(&net->ipv6.ip6_blk_hole_entry->rt6i_idev);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@@ -6486,6 +6520,8 @@ static int __net_init ip6_route_net_init
|
@@ -6487,6 +6521,8 @@ static int __net_init ip6_route_net_init
|
||||||
|
|
||||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||||
net->ipv6.fib6_has_custom_rules = false;
|
net->ipv6.fib6_has_custom_rules = false;
|
||||||
@ -211,7 +211,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
|||||||
net->ipv6.ip6_prohibit_entry = kmemdup(&ip6_prohibit_entry_template,
|
net->ipv6.ip6_prohibit_entry = kmemdup(&ip6_prohibit_entry_template,
|
||||||
sizeof(*net->ipv6.ip6_prohibit_entry),
|
sizeof(*net->ipv6.ip6_prohibit_entry),
|
||||||
GFP_KERNEL);
|
GFP_KERNEL);
|
||||||
@@ -6496,11 +6532,21 @@ static int __net_init ip6_route_net_init
|
@@ -6497,11 +6533,21 @@ static int __net_init ip6_route_net_init
|
||||||
ip6_template_metrics, true);
|
ip6_template_metrics, true);
|
||||||
INIT_LIST_HEAD(&net->ipv6.ip6_prohibit_entry->rt6i_uncached);
|
INIT_LIST_HEAD(&net->ipv6.ip6_prohibit_entry->rt6i_uncached);
|
||||||
|
|
||||||
@ -234,7 +234,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
|||||||
net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops;
|
net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops;
|
||||||
dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst,
|
dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst,
|
||||||
ip6_template_metrics, true);
|
ip6_template_metrics, true);
|
||||||
@@ -6527,6 +6573,8 @@ out:
|
@@ -6528,6 +6574,8 @@ out:
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||||
@ -243,7 +243,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
|||||||
out_ip6_prohibit_entry:
|
out_ip6_prohibit_entry:
|
||||||
kfree(net->ipv6.ip6_prohibit_entry);
|
kfree(net->ipv6.ip6_prohibit_entry);
|
||||||
out_ip6_null_entry:
|
out_ip6_null_entry:
|
||||||
@@ -6546,6 +6594,7 @@ static void __net_exit ip6_route_net_exi
|
@@ -6547,6 +6595,7 @@ static void __net_exit ip6_route_net_exi
|
||||||
kfree(net->ipv6.ip6_null_entry);
|
kfree(net->ipv6.ip6_null_entry);
|
||||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||||
kfree(net->ipv6.ip6_prohibit_entry);
|
kfree(net->ipv6.ip6_prohibit_entry);
|
||||||
@ -251,7 +251,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
|||||||
kfree(net->ipv6.ip6_blk_hole_entry);
|
kfree(net->ipv6.ip6_blk_hole_entry);
|
||||||
#endif
|
#endif
|
||||||
dst_entries_destroy(&net->ipv6.ip6_dst_ops);
|
dst_entries_destroy(&net->ipv6.ip6_dst_ops);
|
||||||
@@ -6629,6 +6678,9 @@ void __init ip6_route_init_special_entri
|
@@ -6630,6 +6679,9 @@ void __init ip6_route_init_special_entri
|
||||||
init_net.ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
|
init_net.ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
|
||||||
init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev;
|
init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev;
|
||||||
init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
|
init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
|
||||||
|
@ -652,7 +652,7 @@
|
|||||||
const struct in6_addr *daddr)
|
const struct in6_addr *daddr)
|
||||||
--- a/net/ipv6/route.c
|
--- a/net/ipv6/route.c
|
||||||
+++ b/net/ipv6/route.c
|
+++ b/net/ipv6/route.c
|
||||||
@@ -3855,6 +3855,9 @@ out_free:
|
@@ -3856,6 +3856,9 @@ out_free:
|
||||||
return ERR_PTR(err);
|
return ERR_PTR(err);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -662,7 +662,7 @@
|
|||||||
int ip6_route_add(struct fib6_config *cfg, gfp_t gfp_flags,
|
int ip6_route_add(struct fib6_config *cfg, gfp_t gfp_flags,
|
||||||
struct netlink_ext_ack *extack)
|
struct netlink_ext_ack *extack)
|
||||||
{
|
{
|
||||||
@@ -3866,6 +3869,10 @@ int ip6_route_add(struct fib6_config *cf
|
@@ -3867,6 +3870,10 @@ int ip6_route_add(struct fib6_config *cf
|
||||||
return PTR_ERR(rt);
|
return PTR_ERR(rt);
|
||||||
|
|
||||||
err = __ip6_ins_rt(rt, &cfg->fc_nlinfo, extack);
|
err = __ip6_ins_rt(rt, &cfg->fc_nlinfo, extack);
|
||||||
@ -673,7 +673,7 @@
|
|||||||
fib6_info_release(rt);
|
fib6_info_release(rt);
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
@@ -3887,6 +3894,9 @@ static int __ip6_del_rt(struct fib6_info
|
@@ -3888,6 +3895,9 @@ static int __ip6_del_rt(struct fib6_info
|
||||||
err = fib6_del(rt, info);
|
err = fib6_del(rt, info);
|
||||||
spin_unlock_bh(&table->tb6_lock);
|
spin_unlock_bh(&table->tb6_lock);
|
||||||
|
|
||||||
@ -683,7 +683,7 @@
|
|||||||
out:
|
out:
|
||||||
fib6_info_release(rt);
|
fib6_info_release(rt);
|
||||||
return err;
|
return err;
|
||||||
@@ -6336,6 +6346,20 @@ static int ip6_route_dev_notify(struct n
|
@@ -6337,6 +6347,20 @@ static int ip6_route_dev_notify(struct n
|
||||||
return NOTIFY_OK;
|
return NOTIFY_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
--- a/include/linux/timer.h
|
--- a/include/linux/timer.h
|
||||||
+++ b/include/linux/timer.h
|
+++ b/include/linux/timer.h
|
||||||
@@ -17,10 +17,7 @@
|
@@ -17,10 +17,7 @@ struct timer_list {
|
||||||
unsigned long expires;
|
unsigned long expires;
|
||||||
void (*function)(struct timer_list *);
|
void (*function)(struct timer_list *);
|
||||||
u32 flags;
|
u32 flags;
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
__u32 flags; /* tunnel flags */
|
__u32 flags; /* tunnel flags */
|
||||||
--- a/include/net/ip_tunnels.h
|
--- a/include/net/ip_tunnels.h
|
||||||
+++ b/include/net/ip_tunnels.h
|
+++ b/include/net/ip_tunnels.h
|
||||||
@@ -586,4 +586,9 @@ static inline void ip_tunnel_info_opts_s
|
@@ -587,4 +587,9 @@ static inline void ip_tunnel_info_opts_s
|
||||||
|
|
||||||
#endif /* CONFIG_INET */
|
#endif /* CONFIG_INET */
|
||||||
|
|
||||||
|
@ -59,7 +59,7 @@
|
|||||||
/* caller should hold vxlan->hash_lock */
|
/* caller should hold vxlan->hash_lock */
|
||||||
static struct vxlan_rdst *vxlan_fdb_find_rdst(struct vxlan_fdb *f,
|
static struct vxlan_rdst *vxlan_fdb_find_rdst(struct vxlan_fdb *f,
|
||||||
union vxlan_addr *ip, __be16 port,
|
union vxlan_addr *ip, __be16 port,
|
||||||
@@ -2671,6 +2702,9 @@ static void vxlan_xmit_one(struct sk_buf
|
@@ -2675,6 +2706,9 @@ static void vxlan_xmit_one(struct sk_buf
|
||||||
goto out_unlock;
|
goto out_unlock;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -69,7 +69,7 @@
|
|||||||
tos = ip_tunnel_ecn_encap(tos, old_iph, skb);
|
tos = ip_tunnel_ecn_encap(tos, old_iph, skb);
|
||||||
ttl = ttl ? : ip4_dst_hoplimit(&rt->dst);
|
ttl = ttl ? : ip4_dst_hoplimit(&rt->dst);
|
||||||
err = vxlan_build_skb(skb, ndst, sizeof(struct iphdr),
|
err = vxlan_build_skb(skb, ndst, sizeof(struct iphdr),
|
||||||
@@ -2742,6 +2776,9 @@ static void vxlan_xmit_one(struct sk_buf
|
@@ -2746,6 +2780,9 @@ static void vxlan_xmit_one(struct sk_buf
|
||||||
if (err < 0)
|
if (err < 0)
|
||||||
goto tx_error;
|
goto tx_error;
|
||||||
|
|
||||||
|
@ -17,7 +17,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its
|
|||||||
|
|
||||||
#define RD_LOCAL_LPI_ENABLED BIT(0)
|
#define RD_LOCAL_LPI_ENABLED BIT(0)
|
||||||
#define RD_LOCAL_PENDTABLE_PREALLOCATED BIT(1)
|
#define RD_LOCAL_PENDTABLE_PREALLOCATED BIT(1)
|
||||||
@@ -2203,6 +2204,11 @@ static struct page *its_allocate_prop_ta
|
@@ -2183,6 +2184,11 @@ static struct page *its_allocate_prop_ta
|
||||||
{
|
{
|
||||||
struct page *prop_page;
|
struct page *prop_page;
|
||||||
|
|
||||||
@ -29,7 +29,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its
|
|||||||
prop_page = alloc_pages(gfp_flags, get_order(LPI_PROPBASE_SZ));
|
prop_page = alloc_pages(gfp_flags, get_order(LPI_PROPBASE_SZ));
|
||||||
if (!prop_page)
|
if (!prop_page)
|
||||||
return NULL;
|
return NULL;
|
||||||
@@ -2326,6 +2332,7 @@ static int its_setup_baser(struct its_no
|
@@ -2306,6 +2312,7 @@ static int its_setup_baser(struct its_no
|
||||||
u32 alloc_pages, psz;
|
u32 alloc_pages, psz;
|
||||||
struct page *page;
|
struct page *page;
|
||||||
void *base;
|
void *base;
|
||||||
@ -37,7 +37,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its
|
|||||||
|
|
||||||
psz = baser->psz;
|
psz = baser->psz;
|
||||||
alloc_pages = (PAGE_ORDER_TO_SIZE(order) / psz);
|
alloc_pages = (PAGE_ORDER_TO_SIZE(order) / psz);
|
||||||
@@ -2337,7 +2344,10 @@ static int its_setup_baser(struct its_no
|
@@ -2317,7 +2324,10 @@ static int its_setup_baser(struct its_no
|
||||||
order = get_order(GITS_BASER_PAGES_MAX * psz);
|
order = get_order(GITS_BASER_PAGES_MAX * psz);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -49,7 +49,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its
|
|||||||
if (!page)
|
if (!page)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
@@ -2384,6 +2394,13 @@ retry_baser:
|
@@ -2364,6 +2374,13 @@ retry_baser:
|
||||||
its_write_baser(its, baser, val);
|
its_write_baser(its, baser, val);
|
||||||
tmp = baser->val;
|
tmp = baser->val;
|
||||||
|
|
||||||
@ -63,7 +63,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its
|
|||||||
if ((val ^ tmp) & GITS_BASER_SHAREABILITY_MASK) {
|
if ((val ^ tmp) & GITS_BASER_SHAREABILITY_MASK) {
|
||||||
/*
|
/*
|
||||||
* Shareability didn't stick. Just use
|
* Shareability didn't stick. Just use
|
||||||
@@ -2966,6 +2983,10 @@ static struct page *its_allocate_pending
|
@@ -2946,6 +2963,10 @@ static struct page *its_allocate_pending
|
||||||
{
|
{
|
||||||
struct page *pend_page;
|
struct page *pend_page;
|
||||||
|
|
||||||
@ -74,7 +74,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its
|
|||||||
pend_page = alloc_pages(gfp_flags | __GFP_ZERO,
|
pend_page = alloc_pages(gfp_flags | __GFP_ZERO,
|
||||||
get_order(LPI_PENDBASE_SZ));
|
get_order(LPI_PENDBASE_SZ));
|
||||||
if (!pend_page)
|
if (!pend_page)
|
||||||
@@ -3121,6 +3142,9 @@ static void its_cpu_init_lpis(void)
|
@@ -3101,6 +3122,9 @@ static void its_cpu_init_lpis(void)
|
||||||
gicr_write_propbaser(val, rbase + GICR_PROPBASER);
|
gicr_write_propbaser(val, rbase + GICR_PROPBASER);
|
||||||
tmp = gicr_read_propbaser(rbase + GICR_PROPBASER);
|
tmp = gicr_read_propbaser(rbase + GICR_PROPBASER);
|
||||||
|
|
||||||
@ -84,7 +84,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its
|
|||||||
if ((tmp ^ val) & GICR_PROPBASER_SHAREABILITY_MASK) {
|
if ((tmp ^ val) & GICR_PROPBASER_SHAREABILITY_MASK) {
|
||||||
if (!(tmp & GICR_PROPBASER_SHAREABILITY_MASK)) {
|
if (!(tmp & GICR_PROPBASER_SHAREABILITY_MASK)) {
|
||||||
/*
|
/*
|
||||||
@@ -3145,6 +3169,9 @@ static void its_cpu_init_lpis(void)
|
@@ -3125,6 +3149,9 @@ static void its_cpu_init_lpis(void)
|
||||||
gicr_write_pendbaser(val, rbase + GICR_PENDBASER);
|
gicr_write_pendbaser(val, rbase + GICR_PENDBASER);
|
||||||
tmp = gicr_read_pendbaser(rbase + GICR_PENDBASER);
|
tmp = gicr_read_pendbaser(rbase + GICR_PENDBASER);
|
||||||
|
|
||||||
@ -94,7 +94,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its
|
|||||||
if (!(tmp & GICR_PENDBASER_SHAREABILITY_MASK)) {
|
if (!(tmp & GICR_PENDBASER_SHAREABILITY_MASK)) {
|
||||||
/*
|
/*
|
||||||
* The HW reports non-shareable, we must remove the
|
* The HW reports non-shareable, we must remove the
|
||||||
@@ -3308,7 +3335,12 @@ static bool its_alloc_table_entry(struct
|
@@ -3288,7 +3315,12 @@ static bool its_alloc_table_entry(struct
|
||||||
|
|
||||||
/* Allocate memory for 2nd level table */
|
/* Allocate memory for 2nd level table */
|
||||||
if (!table[idx]) {
|
if (!table[idx]) {
|
||||||
@ -108,7 +108,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its
|
|||||||
get_order(baser->psz));
|
get_order(baser->psz));
|
||||||
if (!page)
|
if (!page)
|
||||||
return false;
|
return false;
|
||||||
@@ -3397,6 +3429,7 @@ static struct its_device *its_create_dev
|
@@ -3377,6 +3409,7 @@ static struct its_device *its_create_dev
|
||||||
int nr_lpis;
|
int nr_lpis;
|
||||||
int nr_ites;
|
int nr_ites;
|
||||||
int sz;
|
int sz;
|
||||||
@ -116,7 +116,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its
|
|||||||
|
|
||||||
if (!its_alloc_device_table(its, dev_id))
|
if (!its_alloc_device_table(its, dev_id))
|
||||||
return NULL;
|
return NULL;
|
||||||
@@ -3404,7 +3437,11 @@ static struct its_device *its_create_dev
|
@@ -3384,7 +3417,11 @@ static struct its_device *its_create_dev
|
||||||
if (WARN_ON(!is_power_of_2(nvecs)))
|
if (WARN_ON(!is_power_of_2(nvecs)))
|
||||||
nvecs = roundup_pow_of_two(nvecs);
|
nvecs = roundup_pow_of_two(nvecs);
|
||||||
|
|
||||||
@ -129,7 +129,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its
|
|||||||
/*
|
/*
|
||||||
* Even if the device wants a single LPI, the ITT must be
|
* Even if the device wants a single LPI, the ITT must be
|
||||||
* sized as a power of two (and you need at least one bit...).
|
* sized as a power of two (and you need at least one bit...).
|
||||||
@@ -3412,7 +3449,7 @@ static struct its_device *its_create_dev
|
@@ -3392,7 +3429,7 @@ static struct its_device *its_create_dev
|
||||||
nr_ites = max(2, nvecs);
|
nr_ites = max(2, nvecs);
|
||||||
sz = nr_ites * (FIELD_GET(GITS_TYPER_ITT_ENTRY_SIZE, its->typer) + 1);
|
sz = nr_ites * (FIELD_GET(GITS_TYPER_ITT_ENTRY_SIZE, its->typer) + 1);
|
||||||
sz = max(sz, ITS_ITT_ALIGN) + ITS_ITT_ALIGN - 1;
|
sz = max(sz, ITS_ITT_ALIGN) + ITS_ITT_ALIGN - 1;
|
||||||
@ -138,7 +138,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its
|
|||||||
if (alloc_lpis) {
|
if (alloc_lpis) {
|
||||||
lpi_map = its_lpi_alloc(nvecs, &lpi_base, &nr_lpis);
|
lpi_map = its_lpi_alloc(nvecs, &lpi_base, &nr_lpis);
|
||||||
if (lpi_map)
|
if (lpi_map)
|
||||||
@@ -4726,6 +4763,13 @@ static bool __maybe_unused its_enable_qu
|
@@ -4706,6 +4743,13 @@ static bool __maybe_unused its_enable_qu
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -152,7 +152,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its
|
|||||||
static const struct gic_quirk its_quirks[] = {
|
static const struct gic_quirk its_quirks[] = {
|
||||||
#ifdef CONFIG_CAVIUM_ERRATUM_22375
|
#ifdef CONFIG_CAVIUM_ERRATUM_22375
|
||||||
{
|
{
|
||||||
@@ -4772,6 +4816,14 @@ static const struct gic_quirk its_quirks
|
@@ -4752,6 +4796,14 @@ static const struct gic_quirk its_quirks
|
||||||
.init = its_enable_quirk_hip07_161600802,
|
.init = its_enable_quirk_hip07_161600802,
|
||||||
},
|
},
|
||||||
#endif
|
#endif
|
||||||
@ -167,7 +167,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -5027,6 +5079,7 @@ static int __init its_probe_one(struct r
|
@@ -5007,6 +5059,7 @@ static int __init its_probe_one(struct r
|
||||||
struct page *page;
|
struct page *page;
|
||||||
u32 ctlr;
|
u32 ctlr;
|
||||||
int err;
|
int err;
|
||||||
@ -175,7 +175,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its
|
|||||||
|
|
||||||
its_base = its_map_one(res, &err);
|
its_base = its_map_one(res, &err);
|
||||||
if (!its_base)
|
if (!its_base)
|
||||||
@@ -5080,7 +5133,9 @@ static int __init its_probe_one(struct r
|
@@ -5060,7 +5113,9 @@ static int __init its_probe_one(struct r
|
||||||
|
|
||||||
its->numa_node = numa_node;
|
its->numa_node = numa_node;
|
||||||
|
|
||||||
@ -186,7 +186,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its
|
|||||||
get_order(ITS_CMD_QUEUE_SZ));
|
get_order(ITS_CMD_QUEUE_SZ));
|
||||||
if (!page) {
|
if (!page) {
|
||||||
err = -ENOMEM;
|
err = -ENOMEM;
|
||||||
@@ -5111,6 +5166,9 @@ static int __init its_probe_one(struct r
|
@@ -5091,6 +5146,9 @@ static int __init its_probe_one(struct r
|
||||||
gits_write_cbaser(baser, its->base + GITS_CBASER);
|
gits_write_cbaser(baser, its->base + GITS_CBASER);
|
||||||
tmp = gits_read_cbaser(its->base + GITS_CBASER);
|
tmp = gits_read_cbaser(its->base + GITS_CBASER);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user