The SMMU driver will vote for the resources it needs before performing
a particular operation, and will remove its votes after the operation
is complete.
When power resources are not currently enabled by other drivers,
the SMMU driver's requests to enable its devices' power resources
go through the slow paths where the hardware power resources
get turned on. So, in a scenario where the SMMU driver is constantly
performing work and having to toggle the state of the power resources,
the SMMU driver operations take more time.
On GKI, the upstream implementation of the IOMMU page table management
code is used, which doesn't have the optimizations we have downstream,
which improve the performance of the SMMU driver when unmapping memory.
The GPU can go into slumber if it is not active, and can relinquish its
votes for the power resources that the SMMU driver votes for when
unmapping memory. This requires the SMMU driver to take the slowpath
of enabling all of these power resources and then disabling them
on every call to unmap memory, which can incur a considerable amount
of delay.
This delay, along with the usage of the unoptimized IOMMU page table
management code in GKI results in slow unmap calls.
Thus, add support for the SMMU driver to never remove its power votes,
so that it doesn't have to spend time voting for power resources while
it is operating.
Change-Id: Id93aafef18f69e377391875e2a7b340b34b4b3e8
Signed-off-by: Isaac J. Manjarres <isaacm@codeaurora.org>
This reverts commit fc6d479bac4c756359388647d45f39f08d0c8534. The
functionality offered by this change was not implemented correctly,
so revert it in favor of a different way of addressing the issue
that was supposed to be fixed.
Change-Id: Id061372026dea2960758c4dad0a5e37c2604576e
Signed-off-by: Isaac J. Manjarres <isaacm@codeaurora.org>
This patch adds new IPC log file to dump IRQ registers to know
the interrupt status in dma mode. This will help in debugging
interrupt storm issues in dma mode.
Also increase the IPC log buffer size.
Change-Id: I33a32e8d237769808a9c7553c9c3e6d1024d9f50
Signed-off-by: Chandana Kishori Chiluveru <cchiluve@codeaurora.org>
Check for RX data in rx buffer for faulty transfer and add
delay of 2 msecs delay in order for dma rx transfer
to be actually completed.
Also dump required qup registers when the uart dma rx data is
seen as all zeros.
Change-Id: Ifaa0cb7d22b8419ffacfee7212b0a28ed8ebf2a1
Signed-off-by: Chandana Kishori Chiluveru <cchiluve@codeaurora.org>
Delete l2wb and l3 access pmu events when the governor
is stopped.
Change-Id: If443cb6b53e2ad43ebee04a1fc3274a31b05e5b9
Signed-off-by: Santosh Mardi <gsantosh@codeaurora.org>
Call perf_event_read_local() to update current counter value
in hw_perf_event structure before saving PMU snapshot to
shared memory.
Change-Id: Id5945cd6b6c9fab6f87917224b5b5f54dca5ef9c
Signed-off-by: Santosh Mardi <gsantosh@codeaurora.org>
Enable required drivers for CPUCP communication on
yupik target.
Change-Id: Ia47a867118e3eadf011228ef21c6a2c87ac7efa4
Signed-off-by: Santosh Mardi <gsantosh@codeaurora.org>
Fix to copy nickname to address provided by
nickname pointer and avoid overwriting
pointer value.
Change-Id: I8746d8249e807299ae3bec36f6ed9934d8c1628a
Signed-off-by: Paras Singh Jain <parassin@codeaurora.org>
Add initial support for plh scmi client driver which registers
into scmi framework for plh vendor protocol extension.
Also registers with plh interface driver msm_performance.
Change-Id: I448a714486ff4c7ea38cbeeec1ddb5e183b76e65
Signed-off-by: Gaurav Singh <sgaurav@codeaurora.org>
The perf lock hardening protocol is intended for the management
of perf lock hardening on RIMPS.
The commands in this protocol provide functionality to configure
plh details, plh tunables, configuring the log levels and
debugging support.
Change-Id: I9f5292ee3e32a038160e66d38ec15637a55458fd
Signed-off-by: Gaurav Singh <sgaurav@codeaurora.org>
Root_task_group is acessed outside CONFIG_SCHED_CGROUP
and it results in compilation error.so add macro check
here to avoid compile issue.
Change-Id: Ic3ce1962236f8114f8b03aca8ebd1c8fbd42a076
Signed-off-by: Biao Long <blong@codeaurora.org>
As per specs, while powering off/on the ufs device, RST_N signal and
REF_CLK signal should be between VSS(Ground) and VCCQ/VCCQ2.
Power down:
1. Assert RST_N low
2. Turn-off REF_CLK
3. Turn-off VCC
4. Turn-off VCCQ/VCCQ2.
power on:
1. Turn-on VCC
2. Turn-on VCCQ/VCCQ2
3. Turn-On REF_CLK
4. Deassert RST_N high.
Change-Id: I602e632d284a9d78431bf897558a4b8300ad3611
Signed-off-by: Ziqi Chen <ziqichen@codeaurora.org>
USB requests are being freed from 2 context from Linux QDSS driver:
1. usb_qdss_close()
2. explicitly calling usb_free_request() on receiving USB_QDSS_DISCONNECT
usb_qdss_close() is setting drvdata->usbch to NULL. Hence it ends up
passing usbch as NULL while calling usb_free_request() when handling
USB_QDSS_DISCONNECT. Fix this NULL pointer dereference issue by explicitly
checking USB channel against NULL with usb_qdss_free_req().
Change-Id: Ia55a30b09ab1f94db15947b984fd232a33da7788
Signed-off-by: Mayank Rana <mrana@codeaurora.org>
Add a new define for rmnet ioctl for setting MTU.
Change-Id: Ia3575605fc5066d0b98f1da252742e52ecbc3f11
Signed-off-by: Michael Adisumarta <madisuma@codeaurora.org>