Add the missing __func__ argument to the failed hypercall error print
in hh_dbl_send().
Change-Id: If40a13db695822fb363ea870389e42ba8dbb9015
Signed-off-by: Chris Lew <clew@codeaurora.org>
The threaded interrupt handler needs access to the cap_table_entry
structure and the clients passed in private data. All this information
is store in the cap_table_entry struct. Pass this in as irq private
data instead of the clients private pointer.
Change-Id: If2455704236f3531724d5c007210559391e5cfd8
Signed-off-by: Chris Lew <clew@codeaurora.org>
Use the IRQF_ONESHOT flag while requesting the threaded interrupt.
This flag keeps the virtual interrupt line masked until the threaded
handler has executed.
Change-Id: I041823f8b30e4326d3b28635c80918e4b501432a
Signed-off-by: Chris Lew <clew@codeaurora.org>
Add one vendor specific sysfs group to support additional sysfs nodes,
such as err_state and power_mode.
Change-Id: Ia69909fc3838a054221191259a015067dd962008
Signed-off-by: Can Guo <cang@codeaurora.org>
Since most of the CPUs aren't prone to meltdown,
force off the kpti feature. Enable on required
targets.
Change-Id: If78c70bcaeac2b157a901e5036190aaf9e5aabf6
Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org>
To reduce computation overhead in searching and matching un-used
or used CVP iommu mappings.
Change-Id: I57f2849c1fcd81d534bb55f24b51b66d3b321cb4
Signed-off-by: George Shen <sqiao@codeaurora.org>
KGSL must enable the apb clock before accessing QDSS register space.
Change-Id: I4fb20741c54ef665bf2652c13c4c87fd9b0b3329
Signed-off-by: Mohammed Mirza Mandayappurath Manzoor <mmandaya@codeaurora.org>
Currently we use a bitmask for the power control features (SPTP, ACD, LM,
etc). Move to individual booleans for each feature instead. Booleans
are less unweidly to use and require less if () statements.
Additionally if we properly use the Adreno feature flags when setting
and/or modifying the booleans we can get rid of the feature flag checks in
the rest of the code and use the control booleans as they are intended.
And finally, move some of the target specific control features to the
target specific code. This ensures that the target specific code can
control the feature and the other targets don't accidentally specify
the wrong state through sysfs. For example, if SPTP power collapse is
only available for a5xx then the sysfs file should only ever return
false for the other targets.
Change-Id: Ic0dedbad1828ae9163a1a1357828156cb3281914
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Clean up the GMU probe to use standard functions and proper reference to
make it more defer tolerant.
Change-Id: Ic0dedbad7c561e24c07053ea3b19ef62e34621cb
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Fix the RGMU probe to use standard helper functions and do proper
reference counting.
Change-Id: Ic0dedbadf5af14338de83cd9041674cc6f1ea304
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Currently, there is a custom hw_isidle function defined for a6xx but the
function pointer is removed in a6xx_start for non GMU/RGMU a6xx targets
which has the effect of falling back to the generic adreno_hw_isidle
function which confused at least two of us before we figured out what
was happening.
Instead of having a generic adreno_hw_isidle function except for a6xx, add
a hw_isidle function hook for all targets and do the GMU check in the
a6xx specific function. This also has the advantage of moving a a540
specific hack into the a5xx code and removes one of two usages of the
gpucore specific busy mask and the other is in soft fault detect.
Arguably we should get rid that too but for now we can just hardcode
the mask in there and remove the busy mask from the gpucore struct.
And finally it looks like adreno_isidle isn't used as a function hook,
so remove it from the device function tables and mark it static.
Change-Id: Ic0dedbad47fa5dee0e5d903a8f9dd9bf7230b759
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
a6xx added a new function hook and path for doing a GPU reset that fell
back to the default reset path for a610 but a610 purposely skipped
soft reset and the hard reset path is very similar to that used by
GMU/RGMU enabled devices except for one little bit.
Furthermore, if a610 skipped soft reset then there are no a6xx targets
that do soft reset so there is no reason to have an a6xx specific
soft reset path. And further to that, there isn't any reason to have
any a6xx specific functions (like oob) in the generic soft reset path.
Make the a6xx reset support all a6xx targets, remove unused infrastructure
from the rest of the generic code and cleanup the generic functions
to be a little bit easier to understand.
Change-Id: Ic0dedbadd3570fe148a464ff0dc647d91099ae09
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
This is a snapshot of the vibrator LDO driver as of msm-4.19
'commit c527cd5c987ac (Merge "mhi: cntrl: qcom: allow printing
large strings to IPC logs")' with the following modifications:
- Replace snprintf with scnprintf.
Change-Id: Id58fbcc33607c309366104fe72282c09c86a3227
Signed-off-by: Jishnu Prakash <jprakash@codeaurora.org>