Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
2257117
dt-bindings: dma: qcom: bam-dma: Add missing required properties
stephan-gh Feb 12, 2025
5068b52
dmaengine: qcom: bam_dma: Fix DT error handling for num-channels/ees
stephan-gh Feb 12, 2025
942e47a
phy: qualcomm: phy-qcom-eusb2-repeater: fix override properties
right-0903 Aug 12, 2025
5cfdfc6
dt-bindings: phy: marvell,comphy-cp110: Fix clock and child node cons…
robherring Aug 6, 2025
bca0657
phy: tegra: xusb: fix device and OF node leak at probe
jhovold Jul 24, 2025
6496155
phy: ti: omap-usb2: fix device leak at unbind
jhovold Jul 24, 2025
e19bcea
phy: ti-pipe3: fix device leak at unbind
jhovold Jul 24, 2025
aac1256
dt-bindings: phy: qcom,sc8280xp-qmp-pcie-phy: Update pcie phy bindings
Jul 25, 2025
535fd4c
serial: sc16is7xx: fix bug in flow control levels init
hvilleneuvedoo Jul 31, 2025
ee047e1
dt-bindings: serial: brcm,bcm7271-uart: Constrain clocks
krzk Aug 12, 2025
387d000
dt-bindings: serial: 8250: move a constraint
alexelder Aug 13, 2025
a1b5153
dt-bindings: serial: 8250: allow "main" and "uart" as clock names
alexelder Aug 13, 2025
cfd956d
tty: hvc_console: Call hvc_kick in hvc_write unconditionally
Vogtinator Aug 15, 2025
f41c538
dmaengine: idxd: Remove improper idxd_free
ysun Jul 29, 2025
b7cb9a0
dmaengine: idxd: Fix refcount underflow on module unload
ysun Jul 29, 2025
39aaa33
dmaengine: idxd: Fix double free in idxd_setup_wqs()
Aug 11, 2025
cba70af
USB: serial: option: add Telit Cinterion FN990A w/audio compositions
fabio-porcedda Aug 6, 2025
a5a261b
USB: serial: option: add Telit Cinterion LE910C4-WWX new compositions
fabio-porcedda Aug 22, 2025
a22d3b0
phy: ti: gmii-sel: Always write the RGMII ID setting
mwalle Aug 19, 2025
6cb8c1f
phy: qcom: qmp-pcie: Fix PHY initialization when powered down by firm…
stephan-gh Aug 21, 2025
e63419d
dmaengine: ti: edma: Fix memory allocation size for queue_priority_map
roxell Aug 30, 2025
aa2e1e4
dmaengine: dw: dmamux: Fix device reference leak in rzn1_dmamux_route…
Yuuoniy Sep 2, 2025
220a0ff
xhci: dbc: decouple endpoint allocation from initialization
matnyman Sep 2, 2025
a5c98e8
xhci: dbc: Fix full DbC transfer ring after several reconnects
matnyman Sep 2, 2025
edcbe06
xhci: fix memory leak regression when freeing xhci vdev devices depth…
matnyman Sep 2, 2025
8d63c83
USB: gadget: dummy-hcd: Fix locking bug in RT-enabled kernels
AlanStern Aug 25, 2025
f34bfcc
usb: typec: tcpm: properly deliver cable vdms to altmode drivers
Aug 21, 2025
21d8525
usb: gadget: midi2: Fix missing UMP group attributes initialization
tiwai Sep 4, 2025
116e79c
usb: gadget: midi2: Fix MIDI2 IN EP max packet size
tiwai Sep 5, 2025
b5e3277
serial: xilinx_uartps: read reg size from DTS
hshahaxiado Sep 2, 2025
7609fb6
Merge tag 'usb-serial-6.17-rc6' of ssh://gitolite.kernel.org/pub/scm/…
gregkh Sep 12, 2025
9dfec4a
USB: core: remove the move buf action
ea1davis Sep 10, 2025
d6b4278
Merge tag 'usb-6.17-rc6' of git://git.kernel.org/pub/scm/linux/kernel…
torvalds Sep 14, 2025
1519fc7
Merge tag 'tty-6.17-rc6' of git://git.kernel.org/pub/scm/linux/kernel…
torvalds Sep 14, 2025
0676181
Merge tag 'dmaengine-fix-6.17' of git://git.kernel.org/pub/scm/linux/…
torvalds Sep 14, 2025
79e8447
Merge tag 'phy-fix-6.17' of git://git.kernel.org/pub/scm/linux/kernel…
torvalds Sep 14, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions Documentation/devicetree/bindings/dma/qcom,bam-dma.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -92,8 +92,12 @@ required:
anyOf:
- required:
- qcom,powered-remotely
- num-channels
- qcom,num-ees
- required:
- qcom,controlled-remotely
- num-channels
- qcom,num-ees
- required:
- clocks
- clock-names
Expand Down
29 changes: 21 additions & 8 deletions Documentation/devicetree/bindings/phy/marvell,comphy-cp110.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -47,32 +47,34 @@ properties:
const: 0

clocks:
minItems: 1
maxItems: 3
description: Reference clocks for CP110; MG clock, MG Core clock, AXI clock

clock-names:
items:
- const: mg_clk
- const: mg_core_clk
- const: axi_clk
minItems: 1
maxItems: 3

marvell,system-controller:
description: Phandle to the Marvell system controller (CP110 only)
$ref: /schemas/types.yaml#/definitions/phandle

patternProperties:
'^phy@[0-2]$':
'^phy@[0-5]$':
description: A COMPHY lane child node
type: object
additionalProperties: false

properties:
reg:
description: COMPHY lane number
maximum: 5

'#phy-cells':
const: 1

connector:
type: object

required:
- reg
- '#phy-cells'
Expand All @@ -91,13 +93,24 @@ allOf:

then:
properties:
clocks: false
clock-names: false
clocks:
maxItems: 1
clock-names:
const: xtal

required:
- reg-names

else:
properties:
clocks:
minItems: 3
clock-names:
items:
- const: mg_clk
- const: mg_core_clk
- const: axi_clk

required:
- marvell,system-controller

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -176,6 +176,8 @@ allOf:
compatible:
contains:
enum:
- qcom,sa8775p-qmp-gen4x2-pcie-phy
- qcom,sa8775p-qmp-gen4x4-pcie-phy
- qcom,sc8280xp-qmp-gen3x1-pcie-phy
- qcom,sc8280xp-qmp-gen3x2-pcie-phy
- qcom,sc8280xp-qmp-gen3x4-pcie-phy
Expand All @@ -197,8 +199,6 @@ allOf:
contains:
enum:
- qcom,qcs8300-qmp-gen4x2-pcie-phy
- qcom,sa8775p-qmp-gen4x2-pcie-phy
- qcom,sa8775p-qmp-gen4x4-pcie-phy
then:
properties:
clocks:
Expand Down
56 changes: 31 additions & 25 deletions Documentation/devicetree/bindings/serial/8250.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,6 @@ allOf:
oneOf:
- required: [ clock-frequency ]
- required: [ clocks ]

- if:
properties:
compatible:
Expand All @@ -60,12 +59,39 @@ allOf:
items:
- const: uartclk
- const: reg
else:
- if:
properties:
compatible:
contains:
const: spacemit,k1-uart
then:
properties:
clock-names:
items:
- const: core
- const: bus
- if:
properties:
compatible:
contains:
enum:
- spacemit,k1-uart
- nxp,lpc1850-uart
then:
required:
- clocks
- clock-names
properties:
clocks:
minItems: 2
clock-names:
minItems: 2
else:
properties:
clocks:
maxItems: 1
clock-names:
maxItems: 1

properties:
compatible:
Expand Down Expand Up @@ -162,6 +188,9 @@ properties:
minItems: 1
maxItems: 2
oneOf:
- enum:
- main
- uart
- items:
- const: core
- const: bus
Expand Down Expand Up @@ -264,29 +293,6 @@ required:
- reg
- interrupts

if:
properties:
compatible:
contains:
enum:
- spacemit,k1-uart
- nxp,lpc1850-uart
then:
required:
- clocks
- clock-names
properties:
clocks:
minItems: 2
clock-names:
minItems: 2
else:
properties:
clocks:
maxItems: 1
clock-names:
maxItems: 1

unevaluatedProperties: false

examples:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ properties:
- const: dma_intr2

clocks:
minItems: 1
maxItems: 1

clock-names:
const: sw_baud
Expand Down
15 changes: 11 additions & 4 deletions drivers/dma/dw/rzn1-dmamux.c
Original file line number Diff line number Diff line change
Expand Up @@ -48,12 +48,16 @@ static void *rzn1_dmamux_route_allocate(struct of_phandle_args *dma_spec,
u32 mask;
int ret;

if (dma_spec->args_count != RNZ1_DMAMUX_NCELLS)
return ERR_PTR(-EINVAL);
if (dma_spec->args_count != RNZ1_DMAMUX_NCELLS) {
ret = -EINVAL;
goto put_device;
}

map = kzalloc(sizeof(*map), GFP_KERNEL);
if (!map)
return ERR_PTR(-ENOMEM);
if (!map) {
ret = -ENOMEM;
goto put_device;
}

chan = dma_spec->args[0];
map->req_idx = dma_spec->args[4];
Expand Down Expand Up @@ -94,12 +98,15 @@ static void *rzn1_dmamux_route_allocate(struct of_phandle_args *dma_spec,
if (ret)
goto clear_bitmap;

put_device(&pdev->dev);
return map;

clear_bitmap:
clear_bit(map->req_idx, dmamux->used_chans);
free_map:
kfree(map);
put_device:
put_device(&pdev->dev);

return ERR_PTR(ret);
}
Expand Down
39 changes: 21 additions & 18 deletions drivers/dma/idxd/init.c
Original file line number Diff line number Diff line change
Expand Up @@ -189,27 +189,30 @@ static int idxd_setup_wqs(struct idxd_device *idxd)
idxd->wq_enable_map = bitmap_zalloc_node(idxd->max_wqs, GFP_KERNEL, dev_to_node(dev));
if (!idxd->wq_enable_map) {
rc = -ENOMEM;
goto err_bitmap;
goto err_free_wqs;
}

for (i = 0; i < idxd->max_wqs; i++) {
wq = kzalloc_node(sizeof(*wq), GFP_KERNEL, dev_to_node(dev));
if (!wq) {
rc = -ENOMEM;
goto err;
goto err_unwind;
}

idxd_dev_set_type(&wq->idxd_dev, IDXD_DEV_WQ);
conf_dev = wq_confdev(wq);
wq->id = i;
wq->idxd = idxd;
device_initialize(wq_confdev(wq));
device_initialize(conf_dev);
conf_dev->parent = idxd_confdev(idxd);
conf_dev->bus = &dsa_bus_type;
conf_dev->type = &idxd_wq_device_type;
rc = dev_set_name(conf_dev, "wq%d.%d", idxd->id, wq->id);
if (rc < 0)
goto err;
if (rc < 0) {
put_device(conf_dev);
kfree(wq);
goto err_unwind;
}

mutex_init(&wq->wq_lock);
init_waitqueue_head(&wq->err_queue);
Expand All @@ -220,15 +223,20 @@ static int idxd_setup_wqs(struct idxd_device *idxd)
wq->enqcmds_retries = IDXD_ENQCMDS_RETRIES;
wq->wqcfg = kzalloc_node(idxd->wqcfg_size, GFP_KERNEL, dev_to_node(dev));
if (!wq->wqcfg) {
put_device(conf_dev);
kfree(wq);
rc = -ENOMEM;
goto err;
goto err_unwind;
}

if (idxd->hw.wq_cap.op_config) {
wq->opcap_bmap = bitmap_zalloc(IDXD_MAX_OPCAP_BITS, GFP_KERNEL);
if (!wq->opcap_bmap) {
kfree(wq->wqcfg);
put_device(conf_dev);
kfree(wq);
rc = -ENOMEM;
goto err_opcap_bmap;
goto err_unwind;
}
bitmap_copy(wq->opcap_bmap, idxd->opcap_bmap, IDXD_MAX_OPCAP_BITS);
}
Expand All @@ -239,13 +247,7 @@ static int idxd_setup_wqs(struct idxd_device *idxd)

return 0;

err_opcap_bmap:
kfree(wq->wqcfg);

err:
put_device(conf_dev);
kfree(wq);

err_unwind:
while (--i >= 0) {
wq = idxd->wqs[i];
if (idxd->hw.wq_cap.op_config)
Expand All @@ -254,11 +256,10 @@ static int idxd_setup_wqs(struct idxd_device *idxd)
conf_dev = wq_confdev(wq);
put_device(conf_dev);
kfree(wq);

}
bitmap_free(idxd->wq_enable_map);

err_bitmap:
err_free_wqs:
kfree(idxd->wqs);

return rc;
Expand Down Expand Up @@ -1291,10 +1292,12 @@ static void idxd_remove(struct pci_dev *pdev)
device_unregister(idxd_confdev(idxd));
idxd_shutdown(pdev);
idxd_device_remove_debugfs(idxd);
idxd_cleanup(idxd);
perfmon_pmu_remove(idxd);
idxd_cleanup_interrupts(idxd);
if (device_pasid_enabled(idxd))
idxd_disable_system_pasid(idxd);
pci_iounmap(pdev, idxd->reg_base);
put_device(idxd_confdev(idxd));
idxd_free(idxd);
pci_disable_device(pdev);
}

Expand Down
8 changes: 6 additions & 2 deletions drivers/dma/qcom/bam_dma.c
Original file line number Diff line number Diff line change
Expand Up @@ -1283,13 +1283,17 @@ static int bam_dma_probe(struct platform_device *pdev)
if (!bdev->bamclk) {
ret = of_property_read_u32(pdev->dev.of_node, "num-channels",
&bdev->num_channels);
if (ret)
if (ret) {
dev_err(bdev->dev, "num-channels unspecified in dt\n");
return ret;
}

ret = of_property_read_u32(pdev->dev.of_node, "qcom,num-ees",
&bdev->num_ees);
if (ret)
if (ret) {
dev_err(bdev->dev, "num-ees unspecified in dt\n");
return ret;
}
}

ret = clk_prepare_enable(bdev->bamclk);
Expand Down
4 changes: 2 additions & 2 deletions drivers/dma/ti/edma.c
Original file line number Diff line number Diff line change
Expand Up @@ -2064,8 +2064,8 @@ static int edma_setup_from_hw(struct device *dev, struct edma_soc_info *pdata,
* priority. So Q0 is the highest priority queue and the last queue has
* the lowest priority.
*/
queue_priority_map = devm_kcalloc(dev, ecc->num_tc + 1, sizeof(s8),
GFP_KERNEL);
queue_priority_map = devm_kcalloc(dev, ecc->num_tc + 1,
sizeof(*queue_priority_map), GFP_KERNEL);
if (!queue_priority_map)
return -ENOMEM;

Expand Down
4 changes: 2 additions & 2 deletions drivers/phy/qualcomm/phy-qcom-eusb2-repeater.c
Original file line number Diff line number Diff line change
Expand Up @@ -127,13 +127,13 @@ static int eusb2_repeater_init(struct phy *phy)
rptr->cfg->init_tbl[i].value);

/* Override registers from devicetree values */
if (!of_property_read_u8(np, "qcom,tune-usb2-amplitude", &val))
if (!of_property_read_u8(np, "qcom,tune-usb2-preem", &val))
regmap_write(regmap, base + EUSB2_TUNE_USB2_PREEM, val);

if (!of_property_read_u8(np, "qcom,tune-usb2-disc-thres", &val))
regmap_write(regmap, base + EUSB2_TUNE_HSDISC, val);

if (!of_property_read_u8(np, "qcom,tune-usb2-preem", &val))
if (!of_property_read_u8(np, "qcom,tune-usb2-amplitude", &val))
regmap_write(regmap, base + EUSB2_TUNE_IUSB2, val);

/* Wait for status OK */
Expand Down
Loading