Some tpdm don't support cmb msr, add an option "qcom,cmb-msr-skip"
to indicate whether MSR is supported.
Change-Id: I8ae66e639fe68b236ad8a268b18acbda737a9d93
Signed-off-by: Yuanfang Zhang <zhangyuanfang@codeaurora.org>
Certain GPIOs are reserved for secure world and cannot be accessed by HLOS.
Supply "reserved_gpios" to msm_pinctrl to mark these pins as invalid.
Change-Id: Ic8f45181b2210a6295bba1bdec45d24e607bede9
Signed-off-by: Mukesh Ojha <mojha@codeaurora.org>
Userspace does not have access to MM_STAT configs, so remove redundant
config checks.
Change-Id: I0ec0807a1e62bd5932f01ed285f2175f27900e37
Signed-off-by: Prakash Gupta <guptap@codeaurora.org>
Update pinctrl configuration for Shima, to match the
latest released configuration.
Change-Id: I1537735755e1a0384a9c48dca6184a85b49b2237
Signed-off-by: Mukesh Ojha <mojha@codeaurora.org>
There is a possibility of client driver's dev_wake request
as part mhi_device_get() racing with M1 state transition
event processing. This can result in a scenario where client
finds MHI state as M0 after mhi_device_get() returns only to
be changed later as M1 event processing is still pending on
different CPU core.
It causes M0 -> M2 -> M0 state transition after mhi_device_get()
has already returned. This isn't expected by client and currently
treats that as fatal error. Also, as per MHI spec host must allow
M1 -> M2 transition for device and it shouldn't abort that.
However, clients can ignore that transition as device is expected
to immediately move from M2 to M0 without entering deep sleep
state. Hence, it must be safe to access their MMIO.
To simplify this logic, introduce mhi_device_get_sync_atomic()
function that can be used by clients to achieve the same and once
it returns success they don't need to have any explicit MHI state
checks.
Change-Id: I0b4a1ad723a0444ee2402bf171fc5ffc46afcdce
Signed-off-by: Manu Gautam <mgautam@codeaurora.org>
The sleep/wake state batch requests are saved in a linked list and
flushed along with other sleep/wake request when entering system low
power modes. Caches are flushed only if the state flag is marked dirty.
A race situation could cause the batch sleep/wake requests to not be
flushed. Here is how this could happen -
- Interconnect driver (ICC) invalidates the sleep/wake requests
- RSC driver clears the TCSes (BCM, VRM, ARC sleep votes cleared)
- ICC sends an active state response-required request
- RSC driver sends the AMC request
- RPMH waits on the response, calls wait_for_completion
- Scheduler schedules idle thread
- cpuidle enters cluster idle state
- RPMH flushes cache and marks cache clean
(no BCM votes in TCS)
- RSC driver receives IRQ response
- RPMH calls complete()
- ICC worker thread resumes execution
- ICC driver calls RPMH driver with updated sleep and wake votes
- RPMH caches the request, *cache is NOT marked dirty*
- Scheduler schedules idle thread
- cpuidle enters cluster idle state
- Cache is clean and nothing to flush
- CPU enters idle
=>ICC sleep/wake votes are not sent
Fix this by dirtying the cache state even when caching batch requests.
Change-Id: I7613e665d181f8abb27915d622442e7b981f9fcc
Signed-off-by: Lina Iyer <ilina@codeaurora.org>
Add check to restrict index underflow.This is to avoid
that it does not access invalid index.
Change-Id: Ib971033c5820ca4dab38ace3b106c7b1b42529e4
Acked-by: Gururaj Chalger <gchalger@qti.qualcomm.com>
Signed-off-by: Mohammed Nayeem Ur Rahman <mohara@codeaurora.org>
The secondary vm device tree will have a different format than the
primary vm. Try parsing the node as a secondary vm node if the
shared-buffer region does not exist.
Change-Id: I4dc65096a43a9f1d3b3baaa6fb87e6b08144830e
Signed-off-by: Chris Lew <clew@codeaurora.org>
The carved out or allocated memory may not be configured to be
accessible by both the owner and consumer vms. Add support to share
memory through hyp_assign_phy() and assign a label to the resultant
memparcel through hh_rm_mem_qcom_lookup_sgl().
This sharing sequence should only be done by the owner of the reserved
memory region. Currently we indicate this with the qcom,master tag in
device tree.
Change-Id: Iff9539f00dc3591b79352d87c1fd6fc91cbc0c6a
Signed-off-by: Chris Lew <clew@codeaurora.org>
Add support for the primary vm to read the vm peer name from device
tree. This information is needed to share memory to the peer vm.
Change-Id: Ied71d254975e08dcf6c1c51f49687aceced141a9
Signed-off-by: Chris Lew <clew@codeaurora.org>
Store the haven label so it can be used for other haven resources such
as attaching the label to memparcels that the qrtr haven driver
creates.
Change-Id: I78c8bea71666c35db393191131389867d39f7566
Signed-off-by: Chris Lew <clew@codeaurora.org>