Skip to content

Commit

Permalink
kernel: Linux 6.6.76
Browse files Browse the repository at this point in the history
  • Loading branch information
mj22226 committed Feb 8, 2025
1 parent 65f7f47 commit e80d9f3
Show file tree
Hide file tree
Showing 35 changed files with 84 additions and 143 deletions.
4 changes: 2 additions & 2 deletions include/kernel-6.6
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
LINUX_VERSION-6.6 = .75
LINUX_KERNEL_HASH-6.6.75 = f7dfb1fa9716ba139d0b4c8161535816d400dea21d5943f513448429b1790290
LINUX_VERSION-6.6 = .76
LINUX_KERNEL_HASH-6.6.76 = 81168b15f0c64034a2ab553ae37a5a38b79c3fe10f69faccc9f374ced4eb13a0
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ We don't agree with upstream revert so undo it.
pdev->device == PCI_DEVICE_ID_ASMEDIA_1042_XHCI) {
--- a/drivers/usb/host/xhci-ring.c
+++ b/drivers/usb/host/xhci-ring.c
@@ -634,8 +634,11 @@ static int xhci_move_dequeue_past_td(str
@@ -635,8 +635,11 @@ static int xhci_move_dequeue_past_td(str
struct xhci_ring *ep_ring;
struct xhci_command *cmd;
struct xhci_segment *new_seg;
Expand All @@ -40,7 +40,7 @@ We don't agree with upstream revert so undo it.
dma_addr_t addr;
u64 hw_dequeue;
bool cycle_found = false;
@@ -673,7 +676,27 @@ static int xhci_move_dequeue_past_td(str
@@ -674,7 +677,27 @@ static int xhci_move_dequeue_past_td(str
hw_dequeue = xhci_get_hw_deq(xhci, dev, ep_index, stream_id);
new_seg = ep_ring->deq_seg;
new_deq = ep_ring->dequeue;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17583,7 +17583,7 @@ Signed-off-by: Phil Elwell <[email protected]>
* For devices with more than one control interface, we assume the
--- a/sound/usb/quirks.c
+++ b/sound/usb/quirks.c
@@ -2251,6 +2251,8 @@ static const struct usb_audio_quirk_flag
@@ -2253,6 +2253,8 @@ static const struct usb_audio_quirk_flag
QUIRK_FLAG_ALIGN_TRANSFER),
DEVICE_FLG(0x534d, 0x2109, /* MacroSilicon MS2109 */
QUIRK_FLAG_ALIGN_TRANSFER),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ Signed-off-by: Jonathan Bell <[email protected]>

--- a/drivers/usb/host/xhci-ring.c
+++ b/drivers/usb/host/xhci-ring.c
@@ -739,9 +739,9 @@ deq_found:
@@ -740,9 +740,9 @@ deq_found:
}

if ((ep->ep_state & SET_DEQ_PENDING)) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,23 +13,23 @@ Signed-off-by: Phil Elwell <[email protected]>

--- a/drivers/gpu/drm/v3d/v3d_irq.c
+++ b/drivers/gpu/drm/v3d/v3d_irq.c
@@ -181,6 +181,7 @@ v3d_hub_irq(int irq, void *arg)
@@ -189,6 +189,7 @@ v3d_hub_irq(int irq, void *arg)
"GMP",
};
const char *client = "?";
+ static int logged_error;

V3D_WRITE(V3D_MMU_CTL, V3D_READ(V3D_MMU_CTL));

@@ -190,6 +191,7 @@ v3d_hub_irq(int irq, void *arg)
@@ -198,6 +199,7 @@ v3d_hub_irq(int irq, void *arg)
client = v3d41_axi_ids[axi_id];
}

+ if (!logged_error)
dev_err(v3d->drm.dev, "MMU error from client %s (%d) at 0x%llx%s%s%s\n",
client, axi_id, (long long)vio_addr,
((intsts & V3D_HUB_INT_MMU_WRV) ?
@@ -198,6 +200,7 @@ v3d_hub_irq(int irq, void *arg)
@@ -206,6 +208,7 @@ v3d_hub_irq(int irq, void *arg)
", pte invalid" : ""),
((intsts & V3D_HUB_INT_MMU_CAP) ?
", cap exceeded" : ""));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ Signed-off-by: Phil Elwell <[email protected]>

--- a/drivers/gpio/gpio-pca953x.c
+++ b/drivers/gpio/gpio-pca953x.c
@@ -1347,6 +1347,7 @@ static const struct of_device_id pca953x
@@ -1330,6 +1330,7 @@ static const struct of_device_id pca953x
{ .compatible = "ti,tca6424", .data = OF_953X(24, PCA_INT), },
{ .compatible = "ti,tca9538", .data = OF_953X( 8, PCA_INT), },
{ .compatible = "ti,tca9539", .data = OF_953X(16, PCA_INT), },
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -257,31 +257,31 @@ Signed-off-by: Jose Maria Casanova Crespo <[email protected]>
+ v3d->gpu_queue_stats[V3D_BIN].last_exec_end = local_clock();

trace_v3d_bcl_irq(&v3d->drm, fence->seqno);
dma_fence_signal(&fence->base);
@@ -110,6 +112,7 @@ v3d_irq(int irq, void *arg)

@@ -112,6 +114,7 @@ v3d_irq(int irq, void *arg)
if (intsts & V3D_INT_FRDONE) {
struct v3d_fence *fence =
to_v3d_fence(v3d->render_job->base.irq_fence);
+ v3d->gpu_queue_stats[V3D_RENDER].last_exec_end = local_clock();

trace_v3d_rcl_irq(&v3d->drm, fence->seqno);
dma_fence_signal(&fence->base);
@@ -120,6 +123,7 @@ v3d_irq(int irq, void *arg)

@@ -124,6 +127,7 @@ v3d_irq(int irq, void *arg)
if (intsts & V3D_INT_CSDDONE) {
struct v3d_fence *fence =
to_v3d_fence(v3d->csd_job->base.irq_fence);
+ v3d->gpu_queue_stats[V3D_CSD].last_exec_end = local_clock();

trace_v3d_csd_irq(&v3d->drm, fence->seqno);
dma_fence_signal(&fence->base);
@@ -157,6 +161,7 @@ v3d_hub_irq(int irq, void *arg)

@@ -163,6 +167,7 @@ v3d_hub_irq(int irq, void *arg)
if (intsts & V3D_HUB_INT_TFUC) {
struct v3d_fence *fence =
to_v3d_fence(v3d->tfu_job->base.irq_fence);
+ v3d->gpu_queue_stats[V3D_TFU].last_exec_end = local_clock();

trace_v3d_tfu_irq(&v3d->drm, fence->seqno);
dma_fence_signal(&fence->base);

--- a/drivers/gpu/drm/v3d/v3d_sched.c
+++ b/drivers/gpu/drm/v3d/v3d_sched.c
@@ -19,6 +19,7 @@
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ Signed-off-by: Jonathan Bell <[email protected]>
if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA &&
--- a/drivers/usb/host/xhci-ring.c
+++ b/drivers/usb/host/xhci-ring.c
@@ -729,6 +729,15 @@ static int xhci_move_dequeue_past_td(str
@@ -730,6 +730,15 @@ static int xhci_move_dequeue_past_td(str
} while (!cycle_found || !td_last_trb_found);

deq_found:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ Signed-off-by: Jonathan Bell <[email protected]>
if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA &&
--- a/drivers/usb/host/xhci-ring.c
+++ b/drivers/usb/host/xhci-ring.c
@@ -3714,6 +3714,48 @@ static int xhci_align_td(struct xhci_hcd
@@ -3715,6 +3715,48 @@ static int xhci_align_td(struct xhci_hcd
return 1;
}

Expand Down Expand Up @@ -124,7 +124,7 @@ Signed-off-by: Jonathan Bell <[email protected]>
/* 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,
struct urb *urb, int slot_id, unsigned int ep_index)
@@ -3870,6 +3912,8 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
@@ -3871,6 +3913,8 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
}

check_trb_math(urb, enqd_len);
Expand All @@ -133,7 +133,7 @@ Signed-off-by: Jonathan Bell <[email protected]>
giveback_first_trb(xhci, slot_id, ep_index, urb->stream_id,
start_cycle, start_trb);
return 0;
@@ -4019,6 +4063,8 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *
@@ -4020,6 +4064,8 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *
/* Event on completion */
field | TRB_IOC | TRB_TYPE(TRB_STATUS) | ep_ring->cycle_state);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,16 +53,16 @@ Signed-off-by: Phil Elwell <[email protected]>
help
--- a/drivers/gpio/gpio-brcmstb.c
+++ b/drivers/gpio/gpio-brcmstb.c
@@ -639,6 +639,8 @@ static int brcmstb_gpio_probe(struct pla
@@ -637,6 +637,8 @@ static int brcmstb_gpio_probe(struct pla
#if defined(CONFIG_MIPS) && defined(__BIG_ENDIAN)
flags = BGPIOF_BIG_ENDIAN_BYTE_ORDER;
#endif
+ if (of_property_read_bool(np, "brcm,gpio-direct"))
+ flags |= BGPIOF_REG_DIRECT;

of_property_for_each_u32(np, "brcm,gpio-bank-widths", prop, p,
bank_width) {
@@ -688,7 +690,9 @@ static int brcmstb_gpio_probe(struct pla
of_property_for_each_u32(np, "brcm,gpio-bank-widths", bank_width) {
struct brcmstb_gpio_bank *bank;
@@ -685,7 +687,9 @@ static int brcmstb_gpio_probe(struct pla
}

gc->owner = THIS_MODULE;
Expand All @@ -73,7 +73,7 @@ Signed-off-by: Phil Elwell <[email protected]>
if (!gc->label) {
err = -ENOMEM;
goto fail;
@@ -697,7 +701,7 @@ static int brcmstb_gpio_probe(struct pla
@@ -694,7 +698,7 @@ static int brcmstb_gpio_probe(struct pla
gc->of_gpio_n_cells = 2;
gc->of_xlate = brcmstb_gpio_of_xlate;
/* not all ngpio lines are valid, will use bank width later */
Expand All @@ -82,7 +82,7 @@ Signed-off-by: Phil Elwell <[email protected]>
gc->offset = bank->id * MAX_GPIO_PER_BANK;
if (priv->parent_irq > 0)
gc->to_irq = brcmstb_gpio_to_irq;
@@ -706,8 +710,10 @@ static int brcmstb_gpio_probe(struct pla
@@ -703,8 +707,10 @@ static int brcmstb_gpio_probe(struct pla
* Mask all interrupts by default, since wakeup interrupts may
* be retained from S5 cold boot
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -276,10 +276,10 @@ Signed-off-by: Jonathan Bell <[email protected]>
u8 tx_max_burst_prd = 0;
u8 tx_fifo_resize_max_num;
+ u8 axi_pipe_limit;
const char *usb_psy_name;
int ret;

@@ -1527,6 +1566,9 @@ static void dwc3_get_properties(struct d
/* default to highest possible threshold */
lpm_nyet_threshold = 0xf;
@@ -1525,6 +1564,9 @@ static void dwc3_get_properties(struct d
*/
tx_fifo_resize_max_num = 6;

Expand All @@ -289,7 +289,7 @@ Signed-off-by: Jonathan Bell <[email protected]>
dwc->maximum_speed = usb_get_maximum_speed(dev);
dwc->max_ssp_rate = usb_get_maximum_ssp_rate(dev);
dwc->dr_mode = usb_get_dr_mode(dev);
@@ -1648,6 +1690,9 @@ static void dwc3_get_properties(struct d
@@ -1639,6 +1681,9 @@ static void dwc3_get_properties(struct d
dwc->dis_split_quirk = device_property_read_bool(dev,
"snps,dis-split-quirk");

Expand All @@ -299,7 +299,7 @@ Signed-off-by: Jonathan Bell <[email protected]>
dwc->lpm_nyet_threshold = lpm_nyet_threshold;
dwc->tx_de_emphasis = tx_de_emphasis;

@@ -1665,6 +1710,8 @@ static void dwc3_get_properties(struct d
@@ -1656,6 +1701,8 @@ static void dwc3_get_properties(struct d
dwc->tx_thr_num_pkt_prd = tx_thr_num_pkt_prd;
dwc->tx_max_burst_prd = tx_max_burst_prd;

Expand All @@ -308,9 +308,9 @@ Signed-off-by: Jonathan Bell <[email protected]>
dwc->imod_interval = 0;

dwc->tx_fifo_resize_max_num = tx_fifo_resize_max_num;
@@ -1940,6 +1987,12 @@ static int dwc3_probe(struct platform_de

dwc3_get_properties(dwc);
@@ -1952,6 +1999,12 @@ static int dwc3_probe(struct platform_de
if (IS_ERR(dwc->usb_psy))
return dev_err_probe(dev, PTR_ERR(dwc->usb_psy), "couldn't get usb power supply\n");

+ if (!dwc->sysdev_is_parent) {
+ ret = dma_set_mask_and_coherent(dwc->sysdev, DMA_BIT_MASK(64));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -295,7 +295,7 @@ v2: fix kernel panic with debug-fs interface to list registers

static irqreturn_t
v3d_hub_irq(int irq, void *arg);
@@ -120,7 +121,8 @@ v3d_irq(int irq, void *arg)
@@ -124,7 +125,8 @@ v3d_irq(int irq, void *arg)
status = IRQ_HANDLED;
}

Expand All @@ -305,7 +305,7 @@ v2: fix kernel panic with debug-fs interface to list registers
struct v3d_fence *fence =
to_v3d_fence(v3d->csd_job->base.irq_fence);
v3d->gpu_queue_stats[V3D_CSD].last_exec_end = local_clock();
@@ -134,7 +136,7 @@ v3d_irq(int irq, void *arg)
@@ -140,7 +142,7 @@ v3d_irq(int irq, void *arg)
/* We shouldn't be triggering these if we have GMP in
* always-allowed mode.
*/
Expand All @@ -314,7 +314,7 @@ v2: fix kernel panic with debug-fs interface to list registers
dev_err(v3d->drm.dev, "GMP violation\n");

/* V3D 4.2 wires the hub and core IRQs together, so if we &
@@ -209,6 +211,11 @@ v3d_hub_irq(int irq, void *arg)
@@ -217,6 +219,11 @@ v3d_hub_irq(int irq, void *arg)
status = IRQ_HANDLED;
}

Expand All @@ -326,7 +326,7 @@ v2: fix kernel panic with debug-fs interface to list registers
return status;
}

@@ -223,8 +230,8 @@ v3d_irq_init(struct v3d_dev *v3d)
@@ -231,8 +238,8 @@ v3d_irq_init(struct v3d_dev *v3d)
* for us.
*/
for (core = 0; core < v3d->cores; core++)
Expand All @@ -337,7 +337,7 @@ v2: fix kernel panic with debug-fs interface to list registers

irq1 = platform_get_irq_optional(v3d_to_pdev(v3d), 1);
if (irq1 == -EPROBE_DEFER)
@@ -268,12 +275,12 @@ v3d_irq_enable(struct v3d_dev *v3d)
@@ -276,12 +283,12 @@ v3d_irq_enable(struct v3d_dev *v3d)

/* Enable our set of interrupts, masking out any others. */
for (core = 0; core < v3d->cores; core++) {
Expand All @@ -354,7 +354,7 @@ v2: fix kernel panic with debug-fs interface to list registers
}

void
@@ -288,8 +295,8 @@ v3d_irq_disable(struct v3d_dev *v3d)
@@ -296,8 +303,8 @@ v3d_irq_disable(struct v3d_dev *v3d)

/* Clear any pending interrupts we might have left. */
for (core = 0; core < v3d->cores; core++)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,8 +61,8 @@ Fixes: 3b0213d56eb7 ("gpio: Add GPIO support for Broadcom STB SoCs")
if (offset >= gc->ngpio || offset < 0)
return -EINVAL;

@@ -598,8 +598,8 @@ static int brcmstb_gpio_probe(struct pla
const __be32 *p;
@@ -596,8 +596,8 @@ static int brcmstb_gpio_probe(struct pla
struct resource *res;
u32 bank_width;
int num_banks = 0;
+ int num_gpios = 0;
Expand All @@ -71,15 +71,15 @@ Fixes: 3b0213d56eb7 ("gpio: Add GPIO support for Broadcom STB SoCs")
unsigned long flags = 0;
bool need_wakeup_event = false;

@@ -613,7 +613,6 @@ static int brcmstb_gpio_probe(struct pla
@@ -611,7 +611,6 @@ static int brcmstb_gpio_probe(struct pla
if (IS_ERR(reg_base))
return PTR_ERR(reg_base);

- priv->gpio_base = gpio_base;
priv->reg_base = reg_base;
priv->pdev = pdev;

@@ -655,7 +654,7 @@ static int brcmstb_gpio_probe(struct pla
@@ -652,7 +651,7 @@ static int brcmstb_gpio_probe(struct pla
dev_dbg(dev, "Width 0 found: Empty bank @ %d\n",
num_banks);
num_banks++;
Expand All @@ -88,7 +88,7 @@ Fixes: 3b0213d56eb7 ("gpio: Add GPIO support for Broadcom STB SoCs")
continue;
}

@@ -697,7 +696,7 @@ static int brcmstb_gpio_probe(struct pla
@@ -694,7 +693,7 @@ static int brcmstb_gpio_probe(struct pla
err = -ENOMEM;
goto fail;
}
Expand All @@ -97,7 +97,7 @@ Fixes: 3b0213d56eb7 ("gpio: Add GPIO support for Broadcom STB SoCs")
gc->of_gpio_n_cells = 2;
gc->of_xlate = brcmstb_gpio_of_xlate;
/* not all ngpio lines are valid, will use bank width later */
@@ -721,7 +720,7 @@ static int brcmstb_gpio_probe(struct pla
@@ -718,7 +717,7 @@ static int brcmstb_gpio_probe(struct pla
bank->id);
goto fail;
}
Expand All @@ -106,7 +106,7 @@ Fixes: 3b0213d56eb7 ("gpio: Add GPIO support for Broadcom STB SoCs")

dev_dbg(dev, "bank=%d, base=%d, ngpio=%d, width=%d\n", bank->id,
gc->base, gc->ngpio, bank->width);
@@ -732,7 +731,7 @@ static int brcmstb_gpio_probe(struct pla
@@ -729,7 +728,7 @@ static int brcmstb_gpio_probe(struct pla
num_banks++;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ Signed-off-by: Jonathan Bell <[email protected]>
if (DWC3_VER_IS_WITHIN(DWC3, 290A, ANY) &&
(dwc->maximum_speed == USB_SPEED_HIGH ||
dwc->maximum_speed == USB_SPEED_FULL))
@@ -1670,6 +1673,8 @@ static void dwc3_get_properties(struct d
@@ -1661,6 +1664,8 @@ static void dwc3_get_properties(struct d
"snps,parkmode-disable-ss-quirk");
dwc->parkmode_disable_hs_quirk = device_property_read_bool(dev,
"snps,parkmode-disable-hs-quirk");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ Signed-off-by: Jonathan Bell <[email protected]>
if (dwc->parkmode_disable_ss_quirk)
reg |= DWC3_GUCTL1_PARKMODE_DISABLE_SS;

@@ -1669,6 +1675,10 @@ static void dwc3_get_properties(struct d
@@ -1660,6 +1666,10 @@ static void dwc3_get_properties(struct d
"snps,resume-hs-terminations");
dwc->ulpi_ext_vbus_drv = device_property_read_bool(dev,
"snps,ulpi-ext-vbus-drv");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ Signed-off-by: Jonathan Bell <[email protected]>

--- a/drivers/usb/host/xhci-ring.c
+++ b/drivers/usb/host/xhci-ring.c
@@ -506,6 +506,19 @@ void xhci_ring_ep_doorbell(struct xhci_h
@@ -507,6 +507,19 @@ void xhci_ring_ep_doorbell(struct xhci_h

trace_xhci_ring_ep_doorbell(slot_id, DB_VALUE(ep_index, stream_id));

Expand Down
Loading

0 comments on commit e80d9f3

Please sign in to comment.