Commit Graph

17 Commits

Author SHA1 Message Date
Suman Tatiraju 066a253686 msm: kgsl: Add kernel API support for limits mitigation
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>
2014-11-25 10:36:23 -08:00
Yizheng Zhou bd6d7a48df msm: kgsl: Vote against deep low power modes when GPU wakes up from slumber
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>
2014-10-30 15:32:24 -07:00
Linux Build Service Account 05e10d17ed Merge "msm: kgsl: Enable GTCU & GTBU clocks" 2014-07-03 21:11:09 -07:00
Ananta Kishore K cc63c8e19b msm: kgsl: Enable GTCU & GTBU clocks
8939 hardware design mandates gcc_gfx_tcu_clk & gcc_gfx_tbu_clk clocks
voting.

Change-Id: I8f022e8f20c6e41a0e1dc83f705d671efc7cf24b
Signed-off-by: Ananta Kishore K <akollipa@codeaurora.org>
2014-06-23 21:12:56 +05:30
Lucille Sylvester 5313627824 msm: kgsl: Remove io_fraction as it is no longer used
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>
2014-06-05 10:55:59 -06:00
Tarun Karra 94031a3e8e msm: kgsl: Do not share IOMMU internal data stuctures
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>
2014-04-23 16:33:31 -07:00
Jordan Crouse 230ad13c2f msm: kgsl: Remove pm_qos_latency from legacy pdata struct
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>
2014-04-03 12:11:49 -06:00
Shrenuj Bansal f0d79f9373 msm: kgsl: Add the oxili_rbbmtimer_clk to the list of gpu clks
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>
2014-03-21 11:55:44 -07:00
Lucille Sylvester 421fb1fd16 msm: kgsl: Set BIMC vote limits by reading the bus table
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>
2014-02-18 15:40:45 -07:00
Prakash Kamliya 369cfe660e msm: kgsl: get pm_qos_latency from device tree
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>
2014-01-21 10:38:52 +05:30
Lucille Sylvester 0022c0faba msm: kgsl: Clean-up unneeded power code
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>
2013-12-16 17:03:18 -07:00
Jordan Crouse 73e8be8138 msm: kgsl: Mark local functions as static and remove unused code
Mark a bunch of functions and structures as static and remove unused
functions.

Change-Id: Ic0dedbadd5520f95293905cf23afec835c786ed7
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
2013-11-25 16:29:43 -07:00
Jordan Crouse 34bbc2e927 msm: kgsl: Remove Z180 driver
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>
2013-11-25 16:29:42 -07:00
Lucille Sylvester c3a73b6c69 msm: kgsl: bus modifier computation
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>
2013-11-24 22:20:59 -07:00
Shrenuj Bansal e0a82d1a37 msm: kgsl: Moving contents of mach/kgsl.h to linux/msm_kgsl.h
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>
2013-11-08 10:46:09 -07:00
Jordan Crouse 12a4eb58f3 msm: kgsl: Move the pdata structure from the public API header
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>
2013-09-04 15:01:32 -07:00
Jordan Crouse 21e75e0957 gpu: Add MSM KGSL gpu driver
Take in the entire GPU driver as of commit
75c34ca1b4e69e96921e4153dfa9d399e5b9d2e8 in msm-3.4

Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
2013-09-04 14:50:32 -07:00