Skip to content

Commit 733f030

Browse files
committed
Merge tag 'qcom-drivers-for-6.20' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into soc/drivers
Qualcomm driver updates for v6.20 Support multiple wait queues in the SCM firmware interface and provide discovery of the wait queue interrupt to deal with the cases where bootloader didn't patch the DeviceTree with the IRQ information. Refactor the MDT loader and the SCM driver's peripheral authentication service interface and introduce support for passing a remoteproc resource table to the firmware. The remoteproc patches that uses this and uses this to configure the IOMMU are included here due to bidirectional dependencies. The end result is remoteproc support on the Glymur platform. Enable QSEECOM and thereby UEFI variable access, on the Surface Pro 11. Make the QMI interface endianness aware, to support ath1Xk on big endian machines. Add the Glymur support in LLCC driver. * tag 'qcom-drivers-for-6.20' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux: (33 commits) soc: qcom: preserve CPU endianness for QMI_DATA_LEN soc: qcom: fix QMI encoding/decoding for basic elements soc: qcom: check QMI basic element error codes soc: qcom: ubwc: add missing include remoteproc: qcom: pas: Enable Secure PAS support with IOMMU managed by Linux remoteproc: pas: Extend parse_fw callback to fetch resources via SMC call firmware: qcom_scm: Add qcom_scm_pas_get_rsc_table() to get resource table firmware: qcom_scm: Add SHM bridge handling for PAS when running without QHEE firmware: qcom_scm: Refactor qcom_scm_pas_init_image() firmware: qcom_scm: Add a prep version of auth_and_reset function soc: qcom: mdtloader: Remove qcom_mdt_pas_init() from exported symbols soc: qcom: mdtloader: Add PAS context aware qcom_mdt_pas_load() function remoteproc: pas: Replace metadata context with PAS context structure firmware: qcom_scm: Introduce PAS context allocator helper function firmware: qcom_scm: Rename peripheral as pas_id firmware: qcom_scm: Remove redundant piece of code dt-bindings: remoteproc: qcom,pas: Add iommus property soc: qcom: cmd-db: Use devm_memremap() to fix memory leak in cmd_db_dev_probe soc: qcom: pmic_glink_altmode: Consume TBT3/USB4 mode notifications dt-bindings: qcom,pdc: document the Milos Power Domain Controller ... Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2 parents 599efa0 + fe099c3 commit 733f030

20 files changed

Lines changed: 1199 additions & 189 deletions

File tree

Documentation/devicetree/bindings/cache/qcom,llcc.yaml

Lines changed: 44 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ description: |
2020
properties:
2121
compatible:
2222
enum:
23+
- qcom,glymur-llcc
2324
- qcom,ipq5424-llcc
2425
- qcom,kaanapali-llcc
2526
- qcom,qcs615-llcc
@@ -46,11 +47,11 @@ properties:
4647

4748
reg:
4849
minItems: 1
49-
maxItems: 10
50+
maxItems: 14
5051

5152
reg-names:
5253
minItems: 1
53-
maxItems: 10
54+
maxItems: 14
5455

5556
interrupts:
5657
maxItems: 1
@@ -84,6 +85,47 @@ allOf:
8485
items:
8586
- const: llcc0_base
8687

88+
- if:
89+
properties:
90+
compatible:
91+
contains:
92+
enum:
93+
- qcom,glymur-llcc
94+
then:
95+
properties:
96+
reg:
97+
items:
98+
- description: LLCC0 base register region
99+
- description: LLCC1 base register region
100+
- description: LLCC2 base register region
101+
- description: LLCC3 base register region
102+
- description: LLCC4 base register region
103+
- description: LLCC5 base register region
104+
- description: LLCC6 base register region
105+
- description: LLCC7 base register region
106+
- description: LLCC8 base register region
107+
- description: LLCC9 base register region
108+
- description: LLCC10 base register region
109+
- description: LLCC11 base register region
110+
- description: LLCC broadcast base register region
111+
- description: LLCC broadcast AND register region
112+
reg-names:
113+
items:
114+
- const: llcc0_base
115+
- const: llcc1_base
116+
- const: llcc2_base
117+
- const: llcc3_base
118+
- const: llcc4_base
119+
- const: llcc5_base
120+
- const: llcc6_base
121+
- const: llcc7_base
122+
- const: llcc8_base
123+
- const: llcc9_base
124+
- const: llcc10_base
125+
- const: llcc11_base
126+
- const: llcc_broadcast_base
127+
- const: llcc_broadcast_and_base
128+
87129
- if:
88130
properties:
89131
compatible:

Documentation/devicetree/bindings/crypto/qcom,prng.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ properties:
2121
- qcom,ipq5424-trng
2222
- qcom,ipq9574-trng
2323
- qcom,kaanapali-trng
24+
- qcom,milos-trng
2425
- qcom,qcs615-trng
2526
- qcom,qcs8300-trng
2627
- qcom,sa8255p-trng

Documentation/devicetree/bindings/interrupt-controller/qcom,pdc.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ properties:
2727
items:
2828
- enum:
2929
- qcom,glymur-pdc
30+
- qcom,kaanapali-pdc
31+
- qcom,milos-pdc
3032
- qcom,qcs615-pdc
3133
- qcom,qcs8300-pdc
3234
- qcom,qdu1000-pdc

Documentation/devicetree/bindings/remoteproc/qcom,pas-common.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,9 @@ properties:
4444
- const: stop-ack
4545
- const: shutdown-ack
4646

47+
iommus:
48+
maxItems: 1
49+
4750
power-domains:
4851
minItems: 1
4952
maxItems: 3

Documentation/devicetree/bindings/sram/sram.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ properties:
3434
- nvidia,tegra186-sysram
3535
- nvidia,tegra194-sysram
3636
- nvidia,tegra234-sysram
37+
- qcom,kaanapali-imem
3738
- qcom,rpm-msg-ram
3839
- rockchip,rk3288-pmu-sram
3940

@@ -89,6 +90,7 @@ patternProperties:
8990
- arm,juno-scp-shmem
9091
- arm,scmi-shmem
9192
- arm,scp-shmem
93+
- qcom,pil-reloc-info
9294
- renesas,smp-sram
9395
- rockchip,rk3066-smp-sram
9496
- samsung,exynos4210-sysram

drivers/bus/qcom-ebi2.c

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -292,7 +292,6 @@ static void qcom_ebi2_setup_chipselect(struct device_node *np,
292292
static int qcom_ebi2_probe(struct platform_device *pdev)
293293
{
294294
struct device_node *np = pdev->dev.of_node;
295-
struct device_node *child;
296295
struct device *dev = &pdev->dev;
297296
struct resource *res;
298297
void __iomem *ebi2_base;
@@ -348,15 +347,13 @@ static int qcom_ebi2_probe(struct platform_device *pdev)
348347
writel(val, ebi2_base);
349348

350349
/* Walk over the child nodes and see what chipselects we use */
351-
for_each_available_child_of_node(np, child) {
350+
for_each_available_child_of_node_scoped(np, child) {
352351
u32 csindex;
353352

354353
/* Figure out the chipselect */
355354
ret = of_property_read_u32(child, "reg", &csindex);
356-
if (ret) {
357-
of_node_put(child);
355+
if (ret)
358356
return ret;
359-
}
360357

361358
if (csindex > 5) {
362359
dev_err(dev,

drivers/clk/qcom/common.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -454,7 +454,7 @@ int qcom_cc_probe_by_index(struct platform_device *pdev, int index,
454454

455455
base = devm_platform_ioremap_resource(pdev, index);
456456
if (IS_ERR(base))
457-
return -ENOMEM;
457+
return PTR_ERR(base);
458458

459459
regmap = devm_regmap_init_mmio(&pdev->dev, base, desc->config);
460460
if (IS_ERR(regmap))

0 commit comments

Comments
 (0)