linux/drivers/soc/qcom
Atul Dhudase bf5e9d28a8 soc: qcom: llcc: Fix dis_cap_alloc and retain_on_pc configuration
[ Upstream commit eed6e57e9f ]

Commit c14e64b469 ("soc: qcom: llcc: Support chipsets that can
 write to llcc") add the support for chipset where capacity based
allocation and retention through power collapse can be programmed
based on content of SCT table mentioned in the llcc driver where
the target like sdm845 where the entire programming related to it
is controlled in firmware. However, the commit introduces a bug
where capacity/retention register get overwritten each time it
gets programmed for each slice and that results in misconfiguration
of the register based on SCT table and that is not expected
behaviour instead it should be read modify write to retain the
configuration of other slices.

This issue is totally caught from code review and programming test
and not through any power/perf numbers so, it is not known what
impact this could make if we don't have this change however,
this feature are for these targets and they should have been
programmed accordingly as per their configuration mentioned in
SCT table like others bits information.

This change brings one difference where it keeps capacity/retention
bits of the slices that are not mentioned in SCT table in unknown
state where as earlier it was initialized to zero.

Fixes: c14e64b469 ("soc: qcom: llcc: Support chipsets that can write to llcc")
Signed-off-by: Atul Dhudase <quic_adhudase@quicinc.com>
Signed-off-by: Mukesh Ojha <quic_mojha@quicinc.com>
Reviewed-by: Douglas Anderson <dianders@chromium.org>
Link: https://lore.kernel.org/r/1701876771-10695-1-git-send-email-quic_mojha@quicinc.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2024-01-25 15:27:28 -08:00
..
apr.c soc: qcom: apr: Make qcom,protection-domain optional again 2023-01-24 07:24:44 +01:00
cmd-db.c soc: qcom: cmd-db: replace strscpy_pad() with strncpy() 2022-06-28 14:44:44 -05:00
cpr.c PM: AVS: qcom-cpr: Fix an error handling path in cpr_probe() 2023-02-01 08:34:08 +01:00
icc-bwmon.c soc: qcom: icc-bwmon: fix incorrect error code passed to dev_err_probe() 2023-06-14 11:15:28 +02:00
Kconfig soc: qcom: Select REMAP_MMIO for ICC_BWMON driver 2023-01-07 11:11:36 +01:00
kryo-l2-accessors.c soc: qcom: kryo-l2-accessors: Fix misnaming of 'val' 2020-11-10 23:23:02 -06:00
llcc-qcom.c soc: qcom: llcc: Fix dis_cap_alloc and retain_on_pc configuration 2024-01-25 15:27:28 -08:00
Makefile soc: qcom: icc-bwmon: Add bandwidth monitoring driver 2022-07-06 15:57:51 -05:00
mdt_loader.c soc: qcom: mdt_loader: Fix unconditional call to scm_pas_mem_setup 2023-07-23 13:49:34 +02:00
ocmem.c soc: qcom: ocmem: Fix NUM_PORTS & NUM_MACROS macros 2023-09-13 09:42:36 +02:00
pdr_interface.c soc: qcom: pdr: replace usage of found with dedicated list iterator variable 2022-04-07 22:20:27 -05:00
pdr_internal.h soc: qcom: pdr: use static for servreg_* variables 2022-05-05 22:08:15 -05:00
qcom-geni-se.c soc: qcom: geni: Disable MMIO tracing for GENI SE 2022-06-15 17:41:12 +02:00
qcom_aoss.c soc: qcom: aoss: Fix refcount leak in qmp_cooling_devices_register 2022-06-30 22:03:58 -05:00
qcom_gsbi.c soc: qcom: gsbi: Make use of the helper function devm_platform_ioremap_resource() 2021-09-21 17:41:48 -05:00
qcom_stats.c soc: qcom: stats: Populate all subsystem debugfs files 2023-03-11 13:55:22 +01:00
qmi_encdec.c soc: qcom: qmi_encdec: Restrict string length in decode 2023-09-19 12:27:57 +02:00
qmi_interface.c soc: qcom: qmi: use const for struct qmi_elem_info 2022-08-29 17:33:01 -05:00
rmtfs_mem.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 284 2019-06-05 17:36:37 +02:00
rpmh-internal.h soc: qcom: rpmh-rsc: Sleep waiting for tcs slots to be free 2020-09-10 16:56:12 +00:00
rpmh-rsc.c soc: qcom: rpmh-rsc: Fix typo in a comment 2021-12-20 19:10:11 -06:00
rpmh.c soc: qcom: rpmh: Use __fill_rpmh_msg API during rpmh_write() 2020-11-26 11:43:00 -06:00
rpmhpd.c soc: qcom: rpmhpd: fix typos in comment 2022-06-25 22:36:13 -05:00
rpmpd.c soc: qcom: rpmpd: Add SM6375 support 2022-09-13 22:25:35 -05:00
smd-rpm.c soc: qcom: smd-rpm: Add compatible for MSM8909 2022-07-18 18:05:07 -05:00
smem.c soc: qcom: smem: Fix incompatible types in comparison 2023-09-13 09:42:42 +02:00
smem_state.c soc: qcom: smem_state: Add refcounting for the 'state->of_node' 2022-08-18 14:13:46 -05:00
smp2p.c soc: qcom: correct kerneldoc 2022-06-25 22:05:31 -05:00
smsm.c soc: qcom: smsm: Fix refcount leak bugs in qcom_smsm_probe() 2022-08-18 14:13:46 -05:00
socinfo.c soc: qcom: socinfo: Add PM6125 ID 2022-08-18 14:13:46 -05:00
spm.c soc: qcom: spm: Add CPU data for MSM8909 2022-07-18 18:05:07 -05:00
trace-rpmh.h drivers: qcom: rpmh-rsc: log RPMH requests in FTRACE 2018-07-21 13:32:31 -05:00
wcnss_ctrl.c soc: qcom: wcnss_ctrl: Allow reading firmware-name from DT 2021-04-05 22:35:06 -05:00