Commit Graph

1073485 Commits

Author SHA1 Message Date
Mike Tipton
d2d4f6d777 interconnect: qcom: icc-rpmh: Add keepalive_early flag
Some BCMs only need to be kept alive early in the boot process. Add the
keepalive_early flag, which only prevents them from turning off before
the sync_state callback.

Change-Id: I0699fb0420d1d9f9473e28ede57380fd5b08ca53
Signed-off-by: Mike Tipton <mdtipton@codeaurora.org>
2022-05-02 09:07:17 -07:00
Mike Tipton
b3588ad7e0 interconnect: qcom: icc-rpmh: Vote initial floor in sleep set
Currently the initial floor is only voted in AMC/WAKE, which means the
floor is removed when entering the sleep set. However, some use cases
require bus BW even when the CPU is idle. If all clients haven't voted
yet, then assume we need to keep these votes around permanently.

Change-Id: I2277e62e0a4e1ea949f1c7fbad052e76cf451c68
Signed-off-by: Mike Tipton <mdtipton@codeaurora.org>
2022-05-02 09:07:17 -07:00
Vivek Aknurwar
bba0dddd2a interconnect: qcom: qnoc-qos: Add prio_fwd_disable support
Add prio_fwd_disable flag support to stop forwarding QoS information
from the master. So respective noc will ignore master's claimed priority
and send out the default priortiy.

Change-Id: I21ca11b44f200453c70c02f195779ef583a90e8c
Signed-off-by: Vivek Aknurwar <quic_viveka@quicinc.com>
2022-05-02 09:07:16 -07:00
Veera Vegivada
fd8e26e71e interconnect: qcom: icc-rpmh: Add support for enabling BCMs needed for QoS
Some QoS blocks require voting for BCMs before their registers can be
accessed, since they require clocks and regulators controlled by BCM.
Hence add qos_proxy flag to indicate the BCM needs to be voted for
QoS configuration.

Change-Id: Idc618e7a3d28d31d38d85f5b21e6b9f12e86ebe2
Signed-off-by: Veera Vegivada <vvegivad@codeaurora.org>
2022-05-02 09:07:16 -07:00
Veera Vegivada
487d9a368e interconnect: qcom: icc-rpmh: use devm_ioremap
Using devm_ioremap_resource will check the resource boundaries.
In legacy hardwares we have memory overlaps between the noc devices.
Hence use devm_ioremap instead of devm_ioremap_resource.

Change-Id: Ifc8a1bb60183058a7c3845c231edfa53115d817e
Signed-off-by: Veera Vegivada <quic_vvegivad@quicinc.com>
2022-05-02 09:07:16 -07:00
Vivek Aknurwar
d9aae10c87 interconnect: qcom: icc-rpmh: Add skip-qos node property
Add skip-qos node property to skip qos settings which happens on
each provider probe. Early in presil this property is useful to skip
qos settings as not all needed clocks are voted/set on and device ends
up unclocked access. This property will help to deliver interconnect
earlier without qos settings which can be enabled when things are ready
before bring up.

Change-Id: I9619f651f40f49ec03d9ea0dc7c45b3b13ffae6c
Signed-off-by: Vivek Aknurwar <viveka@codeaurora.org>
Signed-off-by: Mike Tipton <quic_mdtipton@quicinc.com>
2022-05-02 09:07:16 -07:00
Mike Tipton
796c5f9e43 interconnect: qcom: icc-rpmh: Enable BCMs needed for QoS configuration
Some QoS blocks require voting for BCMs before their registers can be
accessed, since they require clocks and regulators controlled by BCM.
Vote for these BCMs before configuring QoS during probe.

Change-Id: Ic93d224c7dc56c8e56d527179a0c2d1e888e3822
Signed-off-by: Mike Tipton <mdtipton@codeaurora.org>
2022-05-02 09:07:16 -07:00
Mike Tipton
81216c014f interconnect: qcom: qnoc-qos: Don't skip writing urg_fwd when it's zero
Some QoS enable urgent forwarding by default, but we don't always want
this. So don't assume the register already has zero and write it
unconditionally.

Change-Id: I257e099a588870f8d6e6d68b7fd794e22781450e
Signed-off-by: Mike Tipton <mdtipton@codeaurora.org>
2022-05-02 09:07:16 -07:00
Vivek Aknurwar
bc2e1198cc interconnect: qcom: icc-rpmh: Implement stub handling
Skip bcm init and implement stubs for icc apis when stub property
is defined.

Change-Id: Ic56a75578b6fa4fe35bebaf103d41205e444efed
Signed-off-by: Vivek Aknurwar <viveka@codeaurora.org>
2022-05-02 09:07:16 -07:00
Mike Tipton
bdebb74665 interconnect: qcom: Add support for PERF_MODE on RPMh targets
Add support for QCOM_ICC_TAG_PERF_MODE on RPMh architectures. When
QCOM_ICC_TAG_PERF_MODE is specified using icc_set_tag(), each node in
the requested path will use latency-optimized settings if supported by
the node. The improved latency comes at the cost of higher power.

Change-Id: I83c52e5677f8842b4c17987053d566971b84086f
Signed-off-by: Mike Tipton <mdtipton@codeaurora.org>
2022-05-02 09:07:16 -07:00
Mike Tipton
1f035351b7 dt-bindings: interconnect: Add QCOM_ICC_TAG_PERF_MODE
Add binding for QCOM_ICC_TAG_PERF_MODE, which can be used with
icc_set_tag() to indicate that the path should use latency-optimized
settings for each node in the path if supported.

Change-Id: I748df7bdaa79784ade4ad9a135e4f91b92b97513
Signed-off-by: Mike Tipton <mdtipton@codeaurora.org>
2022-05-02 09:07:16 -07:00
Mike Tipton
6d75baa3d2 interconnect: qcom: Add support for mask-based BCMs
Some BCMs aren't directly associated with the data path (i.e. ACV) and
therefore don't communicate using BW. Instead, they are simply
enabled/disabled with a simple bit mask. Add support for these.

Change-Id: I9b73e0ce05a09338d22571ff311c5b058fb8e1b2
Signed-off-by: Mike Tipton <mdtipton@codeaurora.org>
2022-05-02 09:07:16 -07:00
Mike Tipton
5d9a29660b interconnect: qcom: Set floor of 1 for BCM unit/width
Some BCMs that aren't directly associated with NOC ports (i.e. ACV)
publish their width as 0 in cmd_db. The client votes are multiplied by
this width when adjusting for node/BCM width differences. This means a
zero width also zeroes the client votes, making it impossible to vote on
these zero-width BCMs. Set a width floor of 1 to allow aggregation on
these nodes.

Also set a floor on the BCM units. They should never by 0 in cmd_db, but
if they are it would cause a div-by-zero.

Change-Id: I14ba89411ec02077db6d2c27b6de932c5b7dfe1e
Signed-off-by: Mike Tipton <mdtipton@codeaurora.org>
2022-05-02 09:07:16 -07:00
Vivek Aknurwar
07cbd50500 interconnect: qcom: Add stub icc_get_bw stub callback
Currently avg and peak bandwidth are voted as allowed max on kernel boot.
Add stub icc_get_bw() callback that return default avg, peak bandwidth.

Change-Id: I5c42f933d770e2c63c8bbc2d8e7afe5b9748ba1d
Signed-off-by: Vivek Aknurwar <viveka@codeaurora.org>
2022-05-02 09:07:16 -07:00
Mike Tipton
98b202c507 interconnect: qcom: Add debug library
Add a debug library that provides QCOM-specific interconnect debug
features. This includes support for printing all enabled interconnect
votes to console when entering suspend.

Change-Id: I61302f95c94176f833bd1c88ddc76b88121b3f79
Signed-off-by: Mike Tipton <mdtipton@codeaurora.org>
2022-05-02 09:07:06 -07:00
Mike Tipton
428497d097 interconnect: qcom: Add stub icc_set/aggregate() callbacks
Add stub icc_set() and icc_aggregate() callbacks that return success
without doing anything. These can be used early in development before
the rest of the system is ready to service RPMh requests. Additionally,
they can be used during probe to avoid unnecessary set/aggregate() calls
each time icc_node_add() is called.

Change-Id: If495ffc8f9839c3d2651c166c62a7936927e3c02
Signed-off-by: Mike Tipton <mdtipton@codeaurora.org>
2022-04-29 17:21:17 -07:00
Mike Tipton
fc89958b2d interconnect: qcom: Ignore -EBUSY for AMC requests
AMC requests made while the RSC is in solver mode result in a -EBUSY
response from the rpmh driver. This is expected and is a non-issue since
in this case we just need the request to apply to the WAKE set instead.
It's only possible to see this for secondary RSCs like the Display RSC,
since the primary Apps RSC will only be in solver during the power
collapse/restore sequences while SW isn't running. Ignore -EBUSY so we
don't return an error and short-circuit before sending the necessary
WAKE/SLEEP requests.

Change-Id: Id34b91c6e46d282be2522434d3c2b4837291b3b7
Signed-off-by: Mike Tipton <mdtipton@codeaurora.org>
2022-04-29 17:21:17 -07:00
David Dai
1f6f4c0a2a interconnect: qcom: Add multiple voter support
Add support for targeting alternate bcm-voters which
live under different RSC devices.

Change-Id: Ia1ad8a4c6c6b8531f0dae67cc7b22e2faa55c418
Signed-off-by: David Dai <daidavid1@codeaurora.org>
Signed-off-by: Georgi Djakov <gdjako@codeaurora.org>
Signed-off-by: Mike Tipton <mdtipton@codeaurora.org>
2022-04-29 17:21:17 -07:00
David Dai
a4165efa30 interconnect: qcom: Add QoS config support
Introduce support to initialize QoS settings for
QNOC platforms.

Change-Id: I17a237e88f21f7bbc98621d072fff9c1b1bc6403
Signed-off-by: David Dai <daidavid1@codeaurora.org>
Signed-off-by: Odelu Kukatla <okukatla@codeaurora.org>
Signed-off-by: Mike Tipton <mdtipton@codeaurora.org>
2022-04-29 17:21:14 -07:00
David Dai
0a20a2a4e7 interconnect: qcom: Add sync_state for QNOC
Add sync_state functionality to remove threshold held during initial
boot up and clean up any linger proxy resources that were voted for
from bootloaders.

Change-Id: Ib2fe3f3e54775b85c3ee8107c9aafdcd32841017
Signed-off-by: David Dai <daidavid1@codeaurora.org>
Signed-off-by: Mike Tipton <mdtipton@codeaurora.org>
2022-04-29 17:17:50 -07:00
David Dai
9787cfc9b5 iinterconnect: qcom: Hold high bandwidth vote for keepalive BCMs
Add a high bandwidth vote for critical NoCs during boot up.

Change-Id: I739df67083e13f542c0021054b1ca4c1f2d9bd09
Signed-off-by: David Dai <daidavid1@codeaurora.org>
2022-04-29 17:17:50 -07:00
qctecmdr
ce693c08de Merge "build.config.msm.gki: Add sanity_check_abi()" 2022-04-28 21:00:17 -07:00
Guru Das Srinagesh
104be1a452 build.config.msm.gki: Add sanity_check_abi()
When running build_abi.sh, mixed build is explicitly disabled. In that
case, turn on some options for trimming and strict mode which would
normally be disabled because they conflict with mixed build.

Change-Id: I545705e14c2f55b72986e579724713de95e08dfd
Signed-off-by: Elliot Berman <quic_eberman@quicinc.com>
Signed-off-by: Guru Das Srinagesh <quic_gurus@quicinc.com>
2022-04-28 20:07:40 -07:00
qctecmdr
94d5b2aa9c Merge "abi_gki_aarch64_qcom: Add necessary symbols for SCM driver" 2022-04-28 18:37:11 -07:00
qctecmdr
82665d760a Merge "pineapple: Add USB modules to modules.list.msm.pineapple" 2022-04-28 16:21:11 -07:00
Huang Yiwei
b91a83b811 soc: qcom: socinfo: Add PINEAPPLE soc id
Add PINEAPPLE mapping from SOC ID -> name.

Change-Id: I5616f82d2645ae1890557293c17cb0c806b6c1c5
Signed-off-by: Huang Yiwei <quic_hyiwei@quicinc.com>
2022-04-28 10:34:08 +08:00
Wesley Cheng
7d254d8653 pineapple: Add USB modules to modules.list.msm.pineapple
Add DWC3 and EMU PHY related modules to the module list.

Change-Id: If0836806531d3964172efffbba5abc838337677c
Signed-off-by: Wesley Cheng <quic_wcheng@quicinc.com>
2022-04-27 17:02:42 -07:00
Wesley Cheng
3e7e062372 usb: dwc3: Add snapshot of DWC3 drivers
Snapshot of the downstream DWC3 drivers based on msm-5.15.
commit 4c957648c2ae ("Merge "usb: dwc3-msm-core: Remove
redundant dwc3_msm_set_clk_sel calls"").

Change-Id: Ifad5bc07dec41ba1edd32322940e171f198f2508
Signed-off-by: Wesley Cheng <quic_wcheng@quicinc.com>
2022-04-27 17:02:42 -07:00
Wesley Cheng
a5f8942a16 usb: phy: Add snapshot of USB PHY drivers
Snapshot of the downstream USB PHY drivers based on msm-5.15.
commit 00801f75c3b8 ("Merge "msm: Add initial support for
Khaje in Kconfig platform"").

Change-Id: If7560e3f279d6d14e7356dd911a69cec3165ae05
Signed-off-by: Wesley Cheng <quic_wcheng@quicinc.com>
2022-04-27 16:59:45 -07:00
qctecmdr
0a2f06a0a3 Merge "soc: qcom: Add snapshot of minidump driver" 2022-04-27 12:12:28 -07:00
qctecmdr
d39513b72f Merge "soc: qcom: Add snapshot of watchdog driver" 2022-04-27 12:12:27 -07:00
Huang Yiwei
fafe592c8d abi_gki_aarch64_qcom: Add necessary symbols for SCM driver
Add necessary symbols for SCM driver.

Change-Id: I18b4cffe26d0852eaf46f844388619b08a9dd4ea
Signed-off-by: Huang Yiwei <quic_hyiwei@quicinc.com>
2022-04-27 19:47:43 +08:00
qctecmdr
fd253fa298 Merge "secure_buffer: Port a snapshot of the secure-buffer driver" 2022-04-22 15:33:36 -07:00
qctecmdr
4325803d1c Merge "soc: qcom: Add snapshot of memory dump driver" 2022-04-22 12:20:07 -07:00
qctecmdr
1c7cf63f87 Merge "secure_buffer: Add the secure_buffer.h header file" 2022-04-21 16:30:53 -07:00
Chris Goldsworthy
69b737bb70 secure_buffer: Port a snapshot of the secure-buffer driver
Take a snapshot of the secure-buffer driver as of commit f843a80d2c45
("Merge "defconfig: gen3auto: Separated if_changed"") on msm-5.15.
secure_buffer.h is already merged.

Change-Id: I98cfe097d6b3b332a8a1a6ab2e42f090308585d3
Signed-off-by: Chris Goldsworthy <quic_cgoldswo@quicinc.com>
2022-04-21 13:33:38 -07:00
Chris Goldsworthy
9b3ea8593a secure_buffer: Add the secure_buffer.h header file
Take a snapshot of the secure_buffer.h file as of commit f843a80d2c45
("Merge "defconfig: gen3auto: Separated if_changed"") on msm-5.15.

Change-Id: Ic6f1b59ead3bb2947d05ed3d2ea0eecf70597fe7
Signed-off-by: Chris Goldsworthy <quic_cgoldswo@quicinc.com>
2022-04-21 13:33:38 -07:00
qctecmdr
4726ba2157 Merge "defconfig:pineapple_consolidate: Enable CONFIG_UFS_DBG" 2022-04-21 06:05:43 -07:00
Huang Yiwei
1ce2d41f84 soc: qcom: Add snapshot of minidump driver
This is a snapshot of the minidump driver as of msm-5.15
commit <908a517b050d> ("Merge "sched/walt: remove duplicate
definitions of rt_task_arrival_time"").

Change-Id: I47eba0f9aedb1732724b94f567404287378c6189
Signed-off-by: Huang Yiwei <quic_hyiwei@quicinc.com>
2022-04-21 18:55:13 +08:00
Can Guo
2fe724d3cc defconfig:pineapple_consolidate: Enable CONFIG_UFS_DBG
Enable UFS debug features for consolidate build.

Change-Id: Iad925570af96eb1490010c8582ad12f1215d23c3
Signed-off-by: Can Guo <quic_cang@quicinc.com>
2022-04-21 01:07:36 -07:00
Bao D. Nguyen
c905f4e5f4 scsi: ufs: Add configuration option for UFS debug support
Add CONFIG_UFS_DBG option to support UFS debug features.

Change-Id: I98fb46223b74da587f265d96abd51526f0b488fd
Signed-off-by: Bao D. Nguyen <quic_nguyenb@quicinc.com>
Signed-off-by: Can Guo <quic_cang@quicinc.com>
2022-04-21 00:54:14 -07:00
Huang Yiwei
c06fec2f03 soc: qcom: Add snapshot of watchdog driver
This is a snapshot of the soc watchdog, gunyah
watchdog and watchdog core driver as of msm-5.15
commit <908a517b050d> ("Merge "sched/walt: remove
duplicate definitions of rt_task_arrival_time"").

Change-Id: I78134e1b42e0abd74c3b4630c135715ee959afa1
Signed-off-by: Huang Yiwei <quic_hyiwei@quicinc.com>
2022-04-21 14:06:26 +08:00
qctecmdr
686aa245d9 Merge "soc: qcom: Add snapshot of cpu vendor hooks driver" 2022-04-20 19:12:34 -07:00
qctecmdr
490cb81275 Merge "power: reset: Add snapshot of qcom-dload-mode driver" 2022-04-20 12:25:15 -07:00
qctecmdr
e05c2a8819 Merge "soc: qcom: Add snapshot of socinfo driver" 2022-04-20 10:04:09 -07:00
qctecmdr
8f3a41f605 Merge "build.config.msm.gki: Enable downstream symbol trimming" 2022-04-20 10:04:08 -07:00
Huang Yiwei
80fc3aba43 power: reset: Add snapshot of qcom-dload-mode driver
This is a snapshot of the qcom-dload-mode driver as of msm-5.15
commit <908a517b050d> ("Merge "sched/walt: remove duplicate
definitions of rt_task_arrival_time"").

Change-Id: I267e2ef3d4d86aba285e38d8b03ce5f3037d3c13
Signed-off-by: Huang Yiwei <quic_hyiwei@quicinc.com>
2022-04-20 20:18:31 +08:00
Huang Yiwei
8979557e1e soc: qcom: Add snapshot of memory dump driver
This is a snapshot of the memory dump driver as of msm-5.15
commit <908a517b050d> ("Merge "sched/walt: remove duplicate
definitions of rt_task_arrival_time"").

Change-Id: If6fd016ee13340ec90cdd6f34bbc87293f5a39ee
Signed-off-by: Huang Yiwei <quic_hyiwei@quicinc.com>
2022-04-20 19:52:07 +08:00
Huang Yiwei
15d0a17a18 soc: qcom: Add snapshot of socinfo driver
This is a snapshot of the socinfo driver as of msm-5.15
commit <908a517b050d> ("Merge "sched/walt: remove duplicate
definitions of rt_task_arrival_time"").

Change-Id: Ib969b851ccbfc5651259aba5872575d0fa3994db
Signed-off-by: Huang Yiwei <quic_hyiwei@quicinc.com>
2022-04-20 19:26:28 +08:00
Huang Yiwei
d4a31c35fb soc: qcom: Add snapshot of cpu vendor hooks driver
This is a snapshot of the cpu vendor hooks driver as of
msm-5.15 commit <908a517b050d> ("Merge "sched/walt: remove
duplicate definitions of rt_task_arrival_time"").

Change-Id: Ia878a0e8ac111bd6247382539a159f16f641de0a
Signed-off-by: Huang Yiwei <quic_hyiwei@quicinc.com>
2022-04-20 18:20:14 +08:00