--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
-@@ -1519,6 +1519,109 @@ static int xhci_check_ep0_maxpacket(stru
+@@ -1515,6 +1515,109 @@ static int xhci_check_ep0_maxpacket(stru
}
/*
* non-error returns are a promise to giveback() the urb later
* we drop ownership so next owner (or urb unlink) can get it
*/
-@@ -5390,6 +5493,7 @@ static const struct hc_driver xhci_hc_dr
+@@ -5386,6 +5489,7 @@ static const struct hc_driver xhci_hc_dr
.endpoint_reset = xhci_endpoint_reset,
.check_bandwidth = xhci_check_bandwidth,
.reset_bandwidth = xhci_reset_bandwidth,
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
-@@ -1608,7 +1608,7 @@ static void xhci_fixup_endpoint(struct u
+@@ -1604,7 +1604,7 @@ static void xhci_fixup_endpoint(struct u
return;
}
ctrl_ctx->add_flags = xhci_get_endpoint_flag_from_index(ep_index);
if (addr == 0) {
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
-@@ -1628,6 +1628,9 @@ struct xhci_hcd {
+@@ -1631,6 +1631,9 @@ struct xhci_hcd {
#define XHCI_ETRON_HOST BIT_ULL(49)
#define XHCI_LIMIT_ENDPOINT_INTERVAL_9 BIT_ULL(50)
--- a/drivers/usb/host/xhci-mem.c
+++ b/drivers/usb/host/xhci-mem.c
-@@ -1397,6 +1397,7 @@ int xhci_endpoint_init(struct xhci_hcd *
+@@ -1383,6 +1383,7 @@ int xhci_endpoint_init(struct xhci_hcd *
unsigned int ep_index;
struct xhci_ep_ctx *ep_ctx;
struct xhci_ring *ep_ring;
unsigned int max_packet;
enum xhci_ring_type ring_type;
u32 max_esit_payload;
-@@ -1406,6 +1407,8 @@ int xhci_endpoint_init(struct xhci_hcd *
+@@ -1392,6 +1393,8 @@ int xhci_endpoint_init(struct xhci_hcd *
unsigned int mult;
unsigned int avg_trb_len;
unsigned int err_count = 0;
ep_index = xhci_get_endpoint_index(&ep->desc);
ep_ctx = xhci_get_ep_ctx(xhci, virt_dev->in_ctx, ep_index);
-@@ -1441,9 +1444,35 @@ int xhci_endpoint_init(struct xhci_hcd *
+@@ -1427,9 +1430,35 @@ int xhci_endpoint_init(struct xhci_hcd *
mult = xhci_get_endpoint_mult(udev, ep);
max_packet = usb_endpoint_maxp(&ep->desc);
if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA &&
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
-@@ -1630,6 +1630,7 @@ struct xhci_hcd {
+@@ -1633,6 +1633,7 @@ struct xhci_hcd {
/* Downstream VLI fixes */
#define XHCI_AVOID_DQ_ON_LINK BIT_ULL(56)
return 0;
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
-@@ -1631,6 +1631,7 @@ struct xhci_hcd {
+@@ -1634,6 +1634,7 @@ struct xhci_hcd {
/* Downstream VLI fixes */
#define XHCI_AVOID_DQ_ON_LINK BIT_ULL(56)
#define XHCI_VLI_SS_BULK_OUT_BUG BIT_ULL(57)
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
-@@ -1395,7 +1395,7 @@ struct urb_priv {
+@@ -1398,7 +1398,7 @@ struct urb_priv {
};
/* Number of Event Ring segments to allocate, when amount is not specified. (spec allows 32k) */
--- a/drivers/usb/host/xhci-mem.c
+++ b/drivers/usb/host/xhci-mem.c
-@@ -715,6 +715,14 @@ void xhci_setup_streams_ep_input_ctx(str
+@@ -701,6 +701,14 @@ void xhci_setup_streams_ep_input_ctx(str
ep_ctx->ep_info &= cpu_to_le32(~EP_MAXPSTREAMS_MASK);
ep_ctx->ep_info |= cpu_to_le32(EP_MAXPSTREAMS(max_primary_streams)
| EP_HAS_LSA);
--- a/kernel/cgroup/cgroup.c
+++ b/kernel/cgroup/cgroup.c
-@@ -6887,6 +6887,39 @@ static int __init cgroup_disable(char *s
+@@ -6916,6 +6916,39 @@ static int __init cgroup_disable(char *s
}
__setup("cgroup_disable=", cgroup_disable);
+
static bool td_on_ring(struct xhci_td *td, struct xhci_ring *ring)
{
- struct xhci_segment *seg = ring->first_seg;
-@@ -4795,7 +4799,7 @@ static u16 xhci_calculate_u1_timeout(str
+ struct xhci_segment *seg;
+@@ -4791,7 +4795,7 @@ static u16 xhci_calculate_u1_timeout(str
}
}
timeout_ns = xhci_calculate_intel_u1_timeout(udev, desc);
else
timeout_ns = udev->u1_params.sel;
-@@ -4859,7 +4863,7 @@ static u16 xhci_calculate_u2_timeout(str
+@@ -4855,7 +4859,7 @@ static u16 xhci_calculate_u2_timeout(str
}
}
-LINUX_VERSION-6.12 = .48
-LINUX_KERNEL_HASH-6.12.48 = 5bf9eb676751bf48978e38363c772298b41a75336d5038ed6d37012399471db2
+LINUX_VERSION-6.12 = .49
+LINUX_KERNEL_HASH-6.12.49 = 234621e146dacce2241049555d550e4f7a6bde67ccd7ef232d47ac8145425526