Skip to content

Commit 8eb0b1e

Browse files
committed
Merge tag 'qcom-drivers-for-6.8' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into soc/drivers
Qualcomm driver updates for v6.8 Support for SM8650 and X1E is added to the LLCC driver, the LLCC_TRP_ATTR2_CFGn register stride is corrected, and a bug where for each iteration looping over slices previous settings for dis_cap_alloc and retain_on_pc are overwritten. A quirk is introduced in UCSI, for implementations that does not handle UCSI_GET_PDOS for non-PD partners. With this, USCI support is enabled by default in pmic_glink. It is later reverted for SC8280XP due reported errors. A few memory leaks in error paths of qseecom are taken care of. A small driver to expose the ADSP PDCharger ULOG debug log is introduced, to aid debugging issues with pmic_glink. The identiy of SM8650, PM8937 and a few DSPs are added to the Qualcomm socinfo driver. The Qualcomm sleep stats driver is extended to allow getting detailed statistics about usage of various DDR states. Unfortunately this ABI does not seem to be stable across platforms, so this addition is dropped again while the reported problems are investigated further. Andy is moved from MAINTAINERS to CREDITS. Thank you, Andy. * tag 'qcom-drivers-for-6.8' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux: (34 commits) soc: qcom: llcc: Fix LLCC_TRP_ATTR2_CFGn offset firmware: qcom: qseecom: fix memory leaks in error paths soc: qcom: llcc: Fix typo in kernel-doc dt-bindings: soc: qcom,aoss-qmp: document the X1E80100 Always-On Subsystem side channel MAINTAINERS: qcom: move Andy Gross to credits soc: qcom: pmic_glink: drop stray semicolons soc: qcom: pmic_glink: disable UCSI on sc8280xp soc: qcom: llcc: Fix dis_cap_alloc and retain_on_pc configuration soc: qcom: pmic_pdcharger_ulog: Fix hypothetical ulog request message endianess soc: qcom: pmic_pdcharger_ulog: Move TRACE_SYSTEM out of #if protection soc: qcom: pmic_pdcharger_ulog: Search current directory for headers soc: qcom: socinfo: Add few DSPs to get their image details soc: qcom: llcc: Add missing description for members in slice config Revert "soc: qcom: stats: Add DDR sleep stats" dt-bindings: firmware: qcom,scm: Allow interconnect for everyone dt-bindings: firmware: qcom,scm: document SCM on X1E80100 SoCs soc: qcom: socinfo: Add PM8937 Power IC soc: qcom: llcc: Add configuration data for X1E80100 dt-bindings: cache: qcom,llcc: Add X1E80100 compatible soc: qcom: pmic_glink_altmode: fix port sanity check ... Link: https://lore.kernel.org/r/20231219041855.732578-1-andersson@kernel.org Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2 parents 1b31719 + 110cb8d commit 8eb0b1e

20 files changed

Lines changed: 418 additions & 53 deletions

File tree

CREDITS

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1425,6 +1425,10 @@ S: University of Stellenbosch
14251425
S: Stellenbosch, Western Cape
14261426
S: South Africa
14271427

1428+
N: Andy Gross
1429+
E: agross@kernel.org
1430+
D: Qualcomm SoC subsystem and drivers
1431+
14281432
N: Grant Grundler
14291433
E: grantgrundler@gmail.com
14301434
W: http://obmouse.sourceforge.net/

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ properties:
3333
- qcom,sm8350-llcc
3434
- qcom,sm8450-llcc
3535
- qcom,sm8550-llcc
36+
- qcom,sm8650-llcc
37+
- qcom,x1e80100-llcc
3638

3739
reg:
3840
minItems: 2
@@ -104,6 +106,7 @@ allOf:
104106
- qcom,qdu1000-llcc
105107
- qcom,sc8180x-llcc
106108
- qcom,sc8280xp-llcc
109+
- qcom,x1e80100-llcc
107110
then:
108111
properties:
109112
reg:

Documentation/devicetree/bindings/firmware/qcom,scm.yaml

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,9 @@ properties:
6363
- qcom,scm-sm8350
6464
- qcom,scm-sm8450
6565
- qcom,scm-sm8550
66+
- qcom,scm-sm8650
6667
- qcom,scm-qcs404
68+
- qcom,scm-x1e80100
6769
- const: qcom,scm
6870

6971
clocks:
@@ -178,21 +180,6 @@ allOf:
178180
minItems: 3
179181
maxItems: 3
180182

181-
# Interconnects
182-
- if:
183-
not:
184-
properties:
185-
compatible:
186-
contains:
187-
enum:
188-
- qcom,scm-qdu1000
189-
- qcom,scm-sc8280xp
190-
- qcom,scm-sm8450
191-
- qcom,scm-sm8550
192-
then:
193-
properties:
194-
interconnects: false
195-
196183
# Interrupts
197184
- if:
198185
not:
@@ -202,6 +189,7 @@ allOf:
202189
enum:
203190
- qcom,scm-sm8450
204191
- qcom,scm-sm8550
192+
- qcom,scm-sm8650
205193
then:
206194
properties:
207195
interrupts: false

Documentation/devicetree/bindings/soc/qcom/qcom,aoss-qmp.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ properties:
3838
- qcom,sm8350-aoss-qmp
3939
- qcom,sm8450-aoss-qmp
4040
- qcom,sm8550-aoss-qmp
41+
- qcom,sm8650-aoss-qmp
42+
- qcom,x1e80100-aoss-qmp
4143
- const: qcom,aoss-qmp
4244

4345
reg:

Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,20 @@ description:
2020

2121
properties:
2222
compatible:
23-
items:
24-
- enum:
25-
- qcom,sc8180x-pmic-glink
26-
- qcom,sc8280xp-pmic-glink
27-
- qcom,sm8350-pmic-glink
28-
- qcom,sm8450-pmic-glink
29-
- qcom,sm8550-pmic-glink
30-
- const: qcom,pmic-glink
23+
oneOf:
24+
- items:
25+
- enum:
26+
- qcom,sc8180x-pmic-glink
27+
- qcom,sc8280xp-pmic-glink
28+
- qcom,sm8350-pmic-glink
29+
- qcom,sm8450-pmic-glink
30+
- qcom,sm8550-pmic-glink
31+
- const: qcom,pmic-glink
32+
- items:
33+
- enum:
34+
- qcom,sm8650-pmic-glink
35+
- const: qcom,sm8550-pmic-glink
36+
- const: qcom,pmic-glink
3137

3238
'#address-cells':
3339
const: 1

Documentation/devicetree/bindings/soc/qcom/qcom-stats.yaml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,24 @@ properties:
3131
reg:
3232
maxItems: 1
3333

34+
qcom,qmp:
35+
$ref: /schemas/types.yaml#/definitions/phandle
36+
description: Reference to the AOSS side-channel message RAM
37+
3438
required:
3539
- compatible
3640
- reg
3741

42+
allOf:
43+
- if:
44+
not:
45+
properties:
46+
compatible:
47+
const: qcom,rpmh-stats
48+
then:
49+
properties:
50+
qcom,qmp: false
51+
3852
additionalProperties: false
3953

4054
examples:

MAINTAINERS

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2555,7 +2555,6 @@ F: arch/arm64/boot/dts/qcom/sc7280*
25552555
F: arch/arm64/boot/dts/qcom/sdm845-cheza*
25562556

25572557
ARM/QUALCOMM SUPPORT
2558-
M: Andy Gross <agross@kernel.org>
25592558
M: Bjorn Andersson <andersson@kernel.org>
25602559
M: Konrad Dybcio <konrad.dybcio@linaro.org>
25612560
L: linux-arm-msm@vger.kernel.org

drivers/firmware/qcom/qcom_qseecom_uefisecapp.c

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -325,8 +325,10 @@ static efi_status_t qsee_uefi_get_variable(struct qcuefi_client *qcuefi, const e
325325
req_data->length = req_size;
326326

327327
status = ucs2_strscpy(((void *)req_data) + req_data->name_offset, name, name_length);
328-
if (status < 0)
329-
return EFI_INVALID_PARAMETER;
328+
if (status < 0) {
329+
efi_status = EFI_INVALID_PARAMETER;
330+
goto out_free;
331+
}
330332

331333
memcpy(((void *)req_data) + req_data->guid_offset, guid, req_data->guid_size);
332334

@@ -471,8 +473,10 @@ static efi_status_t qsee_uefi_set_variable(struct qcuefi_client *qcuefi, const e
471473
req_data->length = req_size;
472474

473475
status = ucs2_strscpy(((void *)req_data) + req_data->name_offset, name, name_length);
474-
if (status < 0)
475-
return EFI_INVALID_PARAMETER;
476+
if (status < 0) {
477+
efi_status = EFI_INVALID_PARAMETER;
478+
goto out_free;
479+
}
476480

477481
memcpy(((void *)req_data) + req_data->guid_offset, guid, req_data->guid_size);
478482

@@ -563,8 +567,10 @@ static efi_status_t qsee_uefi_get_next_variable(struct qcuefi_client *qcuefi,
563567
memcpy(((void *)req_data) + req_data->guid_offset, guid, req_data->guid_size);
564568
status = ucs2_strscpy(((void *)req_data) + req_data->name_offset, name,
565569
*name_size / sizeof(*name));
566-
if (status < 0)
567-
return EFI_INVALID_PARAMETER;
570+
if (status < 0) {
571+
efi_status = EFI_INVALID_PARAMETER;
572+
goto out_free;
573+
}
568574

569575
status = qcom_qseecom_app_send(qcuefi->client, req_data, req_size, rsp_data, rsp_size);
570576
if (status) {
@@ -635,7 +641,7 @@ static efi_status_t qsee_uefi_get_next_variable(struct qcuefi_client *qcuefi,
635641
* have already been validated above, causing this function to
636642
* bail with EFI_BUFFER_TOO_SMALL.
637643
*/
638-
return EFI_DEVICE_ERROR;
644+
efi_status = EFI_DEVICE_ERROR;
639645
}
640646

641647
out_free:

drivers/soc/qcom/Kconfig

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,18 @@ config QCOM_PDR_HELPERS
7777
select QCOM_QMI_HELPERS
7878
depends on NET
7979

80+
config QCOM_PMIC_PDCHARGER_ULOG
81+
tristate "Qualcomm PMIC PDCharger ULOG driver"
82+
depends on RPMSG
83+
depends on EVENT_TRACING
84+
help
85+
The Qualcomm PMIC PDCharger ULOG driver provides access to logs of
86+
the ADSP firmware PDCharger module in charge of Battery and Power
87+
Delivery on modern systems.
88+
89+
Say yes here to support PDCharger ULOG event tracing on modern
90+
Qualcomm platforms.
91+
8092
config QCOM_PMIC_GLINK
8193
tristate "Qualcomm PMIC GLINK driver"
8294
depends on RPMSG
@@ -209,6 +221,7 @@ config QCOM_STATS
209221
tristate "Qualcomm Technologies, Inc. (QTI) Sleep stats driver"
210222
depends on (ARCH_QCOM && DEBUG_FS) || COMPILE_TEST
211223
depends on QCOM_SMEM
224+
depends on QCOM_AOSS_QMP || QCOM_AOSS_QMP=n
212225
help
213226
Qualcomm Technologies, Inc. (QTI) Sleep stats driver to read
214227
the shared memory exported by the remote processor related to

drivers/soc/qcom/Makefile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ obj-$(CONFIG_QCOM_OCMEM) += ocmem.o
99
obj-$(CONFIG_QCOM_PDR_HELPERS) += pdr_interface.o
1010
obj-$(CONFIG_QCOM_PMIC_GLINK) += pmic_glink.o
1111
obj-$(CONFIG_QCOM_PMIC_GLINK) += pmic_glink_altmode.o
12+
obj-$(CONFIG_QCOM_PMIC_PDCHARGER_ULOG) += pmic_pdcharger_ulog.o
13+
CFLAGS_pmic_pdcharger_ulog.o := -I$(src)
1214
obj-$(CONFIG_QCOM_QMI_HELPERS) += qmi_helpers.o
1315
qmi_helpers-y += qmi_encdec.o qmi_interface.o
1416
obj-$(CONFIG_QCOM_RAMP_CTRL) += ramp_controller.o

0 commit comments

Comments
 (0)