Add a kernel interface to limit GPU power level during
high-risk low voltage or high current conditions of the
battery.
kgsl_pwr_limits_add is called by every client to add a node
to the limits list. The client can then call other APIs such as
kgsl_pwr_limits_set_freq or kgsl_pwr_limits_set_default to set limits.
Once the client is done with limits it should delete the limits node
by calling kgsl_pwr_limits_del.
Limits can be set from both kernel APIs and sysfs nodes.
Make sure all votes are considered before setting the final limits.
Change-Id: I826e7265f67051aecb6f6e191e338930401a6f8b
Signed-off-by: Suman Tatiraju <sumant@codeaurora.org>
System should not enter global low power modes during GPU wakeup.
To avoid this problem, explicitly vote against these modes at the
beginning of wakeup, and restore the vote to the default value
after that.
Change-Id: I436fe5562e26de57ea6fd39fe15ecde0b909e4aa
Signed-off-by: Yizheng Zhou <yizhengz@codeaurora.org>
io_fraction was originally used as a way to influence the CPU
frequency governor. Due to governor updates and timing changes
no targets use io_fraction now and there is no plan to do so in
the future.
Change-Id: Ib2739393d83a197d18d4446e6afcb889196f479b
Signed-off-by: Lucille Sylvester <lsylvest@codeaurora.org>
Do not share IOMMU internal data stuctures with rest of the world,
iommu context id's are internal to gpu iommu driver restrict them
to internal header files.
Change-Id: I66717cac42b384acc63bfad54a63169df35ea3ff
Signed-off-by: Tarun Karra <tkarra@codeaurora.org>
Remove pm_qos_latency from the legacy pdata struct and read it
directly from the device tree in kgsl_pwrctrl_init().
Change-Id: Ic0dedbad9a53c1cb357e78cf5899c70a155066c5
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
The oxili_rbbmtimer_clk needs to be enabled to take advantage of
the RBBM_ALWAYSON_COUNTER. Add this clk to this list of gpu clks
being enabled.
Change-Id: I39ab1922dc02df96e4cf3c2472d4a24b6cc612d0
Signed-off-by: Shrenuj Bansal <shrenujb@codeaurora.org>
Currently a fixed number of BIMC votes are required per GPU
frequency. Read the enumerated votes directly from the bus
table and set min/max limits on the votes dynamically.
Change-Id: I7d8118f658e6a8225291b8353301413252f1f3f7
Signed-off-by: Lucille Sylvester <lsylvest@codeaurora.org>
pm_qos_latency parameter can be configured from
device tree as well. Will set to default value if
entry not found in target device tree.
Change-Id: I76271f4fdc26e191431e5dfe2a6de9e2b3ab426f
Signed-off-by: Prakash Kamliya <pkamliya@codeaurora.org>
No platforms with direct ebi1 connections exist, nor
is idling before changing the frequency needed.
Change-Id: I80911c81ef7303e229494ce6ba3df57ee25b24a5
Signed-off-by: Lucille Sylvester <lsylvest@codeaurora.org>
Mark a bunch of functions and structures as static and remove unused
functions.
Change-Id: Ic0dedbadd5520f95293905cf23afec835c786ed7
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Support for any target that had the Z180 2D core has been removed
from the kernel.
Change-Id: Ic0dedbad1aaa8bbb9062b31f4140c1a17269ff51
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Use the vbif performance counter which counts bus busy cycles
to determine the requested bus bandwidth vote at a given
GPU frequency.
Change-Id: I18915ef8a2be75a7ef5795a6030a1f2ddd09a967
CRs-fixed: 574420
Signed-off-by: Lucille Sylvester <lsylvest@codeaurora.org>
We already have another header - msm_kgsl.h in include/linux.
Removing the dependency in mach.
Change-Id: I03419ca805923bf41c1d0908382eb07c2d6bf66e
Signed-off-by: Shrenuj Bansal <shrenujb@codeaurora.org>
The pdata structure and associated structs have no business being
in msm_kgsl.h. Move them to include/mach/kgsl.h where they can
thrive in a non-userspace facing environment.
Change-Id: Ic0dedbadfe0d3d7d44f50c8a9a7f4cc59057d44b
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>