Instead, directly call a6xx_hfi_send_generic_req. Also,
get rid of a6xx_hfi_send_get_value() as it is not used.
Change-Id: Idee3af33ff0e5e03a9f974c535f8bc1c7579d492
Signed-off-by: Harshdeep Dhatt <hdhatt@codeaurora.org>
User mode specifies a profiling buffer as part of the ib list.
This ib is passed on to the GMU as part of the HFI packet to issue
commands. The GMU will in turn create a special user profiling IB
to have the GPU write the command start and retire ticks into the
user specified buffer. The submit to HFI time is recorded in the
user specified buffer by kgsl.
Change-Id: I800b4a23876f6f0707fb7a942e97d70a2d712aeb
Signed-off-by: Sushmita Susheelendra <ssusheel@codeaurora.org>
Signed-off-by: Harshdeep Dhatt <hdhatt@codeaurora.org>
Enable kernel command profiling by sending the HFI feature
flag to GMU. Add support for the sync event which maps GPU/GMU
ticks to ftrace time. Record the GPU ticks when command is
submitted to the HFI dispatch queue. The ticks corresponding to
submission to the ringbuffer, start, retire on GPU/GMU will be
conveyed to kgsl by GMU through the HFI retire packet.
Modify the trace events to log this information appropriately.
Change-Id: Ib6b5a7858848d8d409925015aad719322de8c12d
Signed-off-by: Sushmita Susheelendra <ssusheel@codeaurora.org>
Signed-off-by: Harshdeep Dhatt <hdhatt@codeaurora.org>
This daemon is a bottom half handler for asynchronous packets
originating from GMU for example TS_RETIRE, CONTEXT_BAD and
F2H_MSG_GMU_CNTR_REGISTER. The way it works is -the interrupt
handler snoops all the packets coming from GMU, processes the
acks inline but copies the aforementioned packets to a queue
and wakes up the daemon to process those.
Change-Id: Ib2c9d470a9c4c64bc44409015201adaff398edd8
Signed-off-by: Harshdeep Dhatt <hdhatt@codeaurora.org>
Based on context priority, assign a dispatch queue to a context
at context registration time. The dispatch queue id is decided
in a round robin fashion.
Change-Id: I8f9265aa99c22d941397fc204b0a6d8a2b25ec92
Signed-off-by: Harshdeep Dhatt <hdhatt@codeaurora.org>
With hardware scheduling, we only need to enable a subset
of interrupts as the rest of them are completely owned by
GMU.
Change-Id: I32afc4420299688b9a4322804ce972c79f1a7a22
Signed-off-by: Harshdeep Dhatt <hdhatt@codeaurora.org>
We need a dispatcher which can keep track of inflight submissions
so that in case of a fault, the remaining submissions can be re-
submitted after reset. Also, we need a dispatcher to hold queued
submissions until the input fences are signaled.
Change-Id: I59f5cf0fed6d443cf8a55fd0f40e3f16600d9a6f
Signed-off-by: Harshdeep Dhatt <hdhatt@codeaurora.org>
This is a special sequence because we don't want to wait for
the ack back while holding the device mutex. This means, we
have to define a new sequence of unlocking the device mutex
before we begin our wait for ack.
Change-Id: I3ea27bdccd66cdaafd8cff6cc1366848c1a4bea6
Signed-off-by: Harshdeep Dhatt <hdhatt@codeaurora.org>
It is possible that there may be multiple host to firmware
messages waiting to be ACKed. So add support for putting them
in a list and traversing the list when an ack is received.
The primary use case for this feature is the context unregister
hfi of which there can be many, and they may get ACKed out of order.
Change-Id: I56087dab0814daf7e8ba720db0105e4762614b5e
Signed-off-by: Harshdeep Dhatt <hdhatt@codeaurora.org>
Add support for registering a context and sending
submissions to a single dispatch queue.
Change-Id: Ica16d8f54d5fa9bd0e416976224f24f7fca0884b
Signed-off-by: Harshdeep Dhatt <hdhatt@codeaurora.org>
This adds the initial bits of handling acks asynchronously.
It is assumed that there is only one outstanding ack since we
wait for ack while holding the device mutex.
GMU handles acks inline until start_msg hfi and beyond that,
each hfi will be acked asynchronously.
Change-Id: I15e930d22f1154db377599a0c0409640821fb868
Signed-off-by: Harshdeep Dhatt <hdhatt@codeaurora.org>
This change adds support to send CP INIT and switch to
unsecure mode packets via raw packets to GMU.
Change-Id: I2915b217c9c6c7d6dc624b4349d137df9a7a2c80
Signed-off-by: Harshdeep Dhatt <hdhatt@codeaurora.org>
Allocate gpu globals based on memalloc hfi requests. Map
them in gmu as well.
Change-Id: I43ecfedf5be92e39fd079a00f8311fe6aca7191b
Signed-off-by: Harshdeep Dhatt <hdhatt@codeaurora.org>
This adds the skeleton for the hwsched driver to be
used for dispatching submissions using hwscheduling.
Change-Id: I963fe6b16deb58edab78ab0e9c66fae0d9294b9a
Signed-off-by: Harshdeep Dhatt <hdhatt@codeaurora.org>
When VIN/2 – VOUT < the threshold with debounce time,
WIN_UV protection kicks in. Update this threshold to
10mV.
Change-Id: I015528b9fb1e4db86c4e1af186aa0f6a912967f2
Signed-off-by: Ashish Chavan <ashichav@codeaurora.org>
Update the master and slave ID constants for Holi interconnect
providers which consumers can use to set bandwidth constraints
and find paths in the NoC (Network-On-Chip) topology.
Change-Id: Ibba6b5ca47a56c041f1314eb516e62d3b9291573
Signed-off-by: Odelu Kukatla <okukatla@codeaurora.org>
Add support for multiple clients in qoslat by maintaining a
list of devices and aggregating across them during updates.
Change-Id: I3e9970b324938eecdd85f3970ba3acc2c5880fdf
Signed-off-by: Amir Vajid <avajid@codeaurora.org>
Currently, since remote process kill is a kernel RPC call, a zero
pid is sent in its message. Send the actual HLOS pid for the
process kill message so that the remote subsystem can identify
which process to kill without needing to map the arguments.
Change-Id: I14c13194baa231a892ed9e8ee269a8cdb1710211
Acked-by: Thyagarajan Venkatanarayanan <venkatan@qti.qualcomm.com>
Signed-off-by: Himateja Reddy <hmreddy@codeaurora.org>
Attempt to enable split pagetables on the global and LPAC domains.
If successful we no longer need to map globals in all pagetables and we
don't need to manually return to the default pagetable when coming out
of slumber since all the globals will now live in the always on TTBR1
region.
Change-Id: Ic0dedbaddd7d05299d7e85d7b0bbc96b46dad10e
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Signed-off-by: Harshdeep Dhatt <hdhatt@codeaurora.org>
The user maps the memstore using the GPU address of the shadow memory.
Unfortunately, mmap() only uses a unsigned long which means that 32 bit
applications can handle when TTBR1 is enabled and the memstore is in
very high memory.
Instead of passing the real GPU address pass a dummy 32 bit value and use
that to identify the memstore instead.
Change-Id: Ic0dedbaddd6efda305953b20cfaa4a597020bff9
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
This patch adds the logic to get the RIMPS address with passing
domain name and stores the rimps address to lpm_cpu structure so
that it can access from the last core of corresponding cluster
domain going to rail-pc to program the RIMPS timer value.
Change-Id: I90418d280440e3f26615583454116c01cec04126
Signed-off-by: Raghavendra Kakarla <rkakarla@codeaurora.org>
Introduce support to initialize QoS settings for BIMC
masters.
Change-Id: Ia225afedb08cb3b09094bc8f4ebd6d12ad9c6a33
Signed-off-by: Odelu Kukatla <okukatla@codeaurora.org>
syscon_regmap_lookup_by_phandle prepares the 0th clk handle provided in
the device node. The debug clock controller prepares/enables/disables the
required clock, thus it is safe to detach the clock to remove the
undesired clock prepare votes.
Change-Id: Ibacac8161ba8244c170a87f172c3ad9029625ed7
Signed-off-by: Taniya Das <tdas@codeaurora.org>
Enable CONFIG_QCOM_QFPROM_SYSFS on Lahaina/Shima, so that feature
config nodes etc. can be accessed from userspace and at the same
time disabled CONFIG_NVMEM_SYSFS to avoid exposing full QFPROM region
to user-space.
Change-Id: I43dd4f6f368d07d0a5047c3732065efe4200b3b3
Signed-off-by: Mukesh Ojha <mojha@codeaurora.org>