Commit Graph

1751 Commits

Author SHA1 Message Date
Sultan Alsawaf 8a4a457523 msm: kgsl: Increase worker thread priority
Currently, the kgsl worker thread is erroneosly ranked right below
Android's audio threads in terms of priority.

The kgsl worker thread is in the critical path for rendering frames to the
display, so increase its priority to match the priority of MDSS' kthread (mdss_fb0).

Signed-off-by: Sultan Alsawaf <sultanxda@gmail.com>
Change-Id: I5635d6c8135726b3d9955121515996065f1a8eb2
2020-07-11 12:27:04 +02:00
Tarun Karra 1a04a7e355 msm: kgsl: Prevent deadlock in cmdbatch timer
Dispatcher can acquire drawctxt->lock if context is pending
and the fence it is waiting on just got signalled.
Dispatcher acquires drawctxt->lock and tries to delete the
cmdbatch timer using delete_timer_sync(). Delete_timer_sync()
waits till timer and its pending handlers are deleted.
But if the timer expires at the same time, timer handler
could be waiting on drawctxt->lock leading to a
deadlock. To prevent this use spin_trylock_bh() instead of
spin_lock_bh(). spin_trylock_bh() does not wait for the lock
if it does not get it and allows the timer handler to finish.
This prevents the deadlock.

Change-Id: Ic2344fed5fccb581b58ec0b66b45ba68af9f1459
Signed-off-by: Tarun Karra <tkarra@codeaurora.org>
Signed-off-by: Santhosh Punugu <spunug@codeaurora.org>
2019-08-26 17:01:17 +02:00
Jordan Crouse 4e8f41559b msm: kgsl: Remove event worker
Scheduling issues were occurring with the GPU event worker after
b7be807 (msm: kgsl: Unbind the kgsl-event workqueue) was merged.
In certain conditions, it seems that the kgsl-event workqueue
was conflicting with the KGSL worker and slowing it down.

It turns out that everywhere we schedule the event worker
and the dispatcher worker at the same time.  Since the worker
is singlethread, the event worker and the dispatcher run
synchronously anyway, so it makes sense to run the event processor
from within the dispatcher and save the extra schedule.

Change-Id: Ic0dedbad67eb04d41afb6add4477f146dfff9784
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Signed-off-by: Joe Maples <joe@frap129.org>
2019-08-26 15:22:55 +02:00
Ajay Dudani 9b81e58157 msm: kgsl: Fix direct references to HZ
Make the various timeout values HZ agnostic by using the proper
macros and values instead.

Change-Id: I906b948657c8873518042c7465272c98c5391e59
Signed-off-by: Suman Tatiraju <sumant@codeaurora.org>
Signed-off-by: Ajay Dudani <adudani@codeaurora.org>
Signed-off-by: Joe Maples <joe@frap129.org>
2019-08-26 15:21:44 +02:00
Dorimanx 830c241e82 kernel: Convert a few critical drivers to use jiffies
Needed for easy switching to 300HZ kernel. some drivers need there 100HZ.

[CertifiedBlyndGuy]:
* Also convert a couple to a 1000HZ basis. 3.18 uses higher calculations
  in some cases that might prove beneficial

Signed-off-by: Joe Maples <joe@frap129.org>
2019-08-26 15:21:32 +02:00
Andrew Lehmer 935bb5c2ec Merge branch 'android-msm-bullhead-3.10-oc' into android-msm-bullhead-3.10
November 2017.1

Bug: 65558923
Change-Id: I8b095b6570f67f7c7b5f1b787a3c404f660f67fc
Signed-off-by: Andrew Lehmer <alehmer@google.com>
2017-09-12 10:04:11 -07:00
Andrew Lehmer 2a6401aeb4 Merge branch 'android-msm-bullhead-3.10-nyc-mr2' into android-msm-bullhead-3.10-oc
November 2017.1

Bug: 65558923
Change-Id: Ib1024a7c80940ab5b4601852fe2775e503d021e2
Signed-off-by: Andrew Lehmer <alehmer@google.com>
2017-09-12 10:03:29 -07:00
Sunil Khatri d78717de29 msm: kgsl: Protect the event->handle with spinlock
event->handle pointer can be used after free due to
the race condition between kgsl_sync_callback and
kgsl_sync_fence_async_cancel.

Protect the event->handle with a spinlock to
avoid concurrent access issues.

Bug: 62949902
Change-Id: I3719e401af9ece82ac68b72f2aef784c7fdc1104
Signed-off-by: Sunil Khatri <sunilkh@codeaurora.org>
2017-09-11 23:26:05 +00:00
Jonathan Wicks b6043582f8 msm: kgsl: Add a trace event for the GPU clock
If requested, trace the GPU time to ensure
a useful mapping regardless of the chosen
trace clock.

Bug: 62789671
Change-Id: I76a893975de9a278c8178f935991191354f29e2f
Signed-off-by: Jonathan Wicks <jwicks@codeaurora.org>
Signed-off-by: Jeff Boody <jboody@codeaurora.org>
2017-08-24 20:00:27 +00:00
Tim Murray dc40906c97 kgsl: convert some workqueues to use kthreads
adreno_dispatch_work and _kgsl_event_worker are both low-latency
low-runtime functions that are in the critical path of GPU
rendering. Moving them out of workqueues and into a dedicated FIFO
kthread avoids significant jitter.

bug 30342017
bug 62616267

Signed-off-by: Tim Murray <timmurray@google.com>
Change-Id: I5b071a738948b69c23810a8ea5957bdddc274912
2017-06-15 23:48:10 +00:00
Stuart Scott 5f0f48937a Merge android-msm-bullhead-3.10-nyc-mr2 into android-msm-bullhead-3.10
August 2017.2

Bug: 62369032
2017-06-09 10:12:20 -07:00
Sunil Khatri 73f1de475b msm: kgsl: Fix the race between context create and destroy
Hold the context lock before updating the context id in
param->drawctxt_id to avoid race condition between context
creation and context destroy.

Bug: 36491445
Change-Id: Ic26d3e5b68078c02d15c38080b1a262ea4b1f7fe
Signed-off-by: Sunil Khatri <sunilkh@codeaurora.org>
2017-06-07 19:35:20 +00:00
Andrew Chant 69ff3a22bb Merge July 2017 security patches
Merge 'android-msm-bullhead-3.10-nyc-mr2' into
'android-msm-bullhead-3.10'

July 2017.1

Bug: 38137577
Change-Id: Id2935b141bbaa52d6ec63648551ac5dec3e21487
2017-05-17 23:07:26 -07:00
Dennis Cagle bbbe795cc6 msm: kgsl: Fix kgsl memory allocation and free race condition
When allocating userspace memory keep reference to memory
allocation till it is completely initialized and info is send back
to userspace

Bug: 32938443
CRs-Fixed: 2029113
Change-Id: Id72c82bf98c094ecbd4722813c732a998dcbb188
Signed-off-by: Tarun Karra <tkarra@codeaurora.org>
Signed-off-by: Sunil Khatri <sunilkh@codeaurora.org>
Signed-off-by: Dennis Cagle <d-cagle@codeaurora.org>
2017-05-17 20:20:50 +00:00
Hareesh Gundu 6ddd277a82 msm: kgsl: Allow draw context to perform only replay on recovery
Robust context attempts to perform a rendering that takes too long
whether due to an infinite loop in a shader or even just a rendering
operation that takes too long on the given hardware. This type of
attempts can result into GPU faults. Robust context expect driver
to replay IB instead skip IB and if it fails on replay context has
to be invalidated.

KGSL_CONTEXT_INVALIDATE_ON_FAULT flag allows draw context to execute
only replay policy on GPU fault recovery instead of going to default
recovery policy. User space has to set this flag during the context
creation.

Bug: 34887800
Change-Id: If42dc5afc7d5ed1226b73ae5abfa2648d7acf2c3
Signed-off-by: Hareesh Gundu <hareeshg@codeaurora.org>
2017-04-21 16:30:08 +00:00
Patrick Tjin 6e3f0c03de Merge branch 'android-msm-bullhead-3.10-nyc-mr1' into android-msm-bullhead-3.10-nyc-mr2
March 2017.1

Bug: 34128678
2017-01-18 15:25:08 -08:00
Bulbul Dabi 14139f66e4 msm: kgsl: Reserve a context ID slot but don't populate immediately
When creating a context allocate an ID but don't populate the slot
with the context pointer until we are done setup up the rest of the
process. This avoids a race if somebody tries to free the same
identifier before the create operation is complete.

Bug: 31824853
Change-Id: Ic0dedbadca5b4cc4ce567afad48a33078b549439
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
2017-01-18 23:10:54 +00:00
Patrick Tjin dc554ffd84 Merge branch 'android-msm-bullhead-3.10-nyc-mr1' into android-msm-bullhead-3.10-nyc-mr2
Security January 2017.1
2016-11-16 23:16:25 -08:00
Jeremy Gebben 3d654faa99 msm: kgsl: fix sync file error handling
We need to call put_unused_fd() on failure, but only if
a file hasn't been stored into the fd yet. This function
wasn't called from kgsl_ioctl_syncsource_create_fence()
and was called incorrectly from kgsl_add_fence_event().
Reorder our sync_fence_install() calls to happen after
all possible failures so that error cleanup will be
correct.

Bug: 32125137
Change-Id: I57a75447d1a430de7e5a93d5cd103269fc0b1e15
Signed-off-by: Jeremy Gebben <jgebben@codeaurora.org>
2016-11-17 04:20:03 +00:00
Harshdeep Dhatt 5031372f46 msm: kgsl: Add accounting for memory mapped in userspace
For proper memory accounting, a key metric is to know how much
memory kgsl allocated for a process and how much of it the process
is actually using. This is done by keeping track of memory in our
vmfault routines. This information is provided via the process
mem file.

Bug: 30635019
Change-Id: I7e3371a708ea5fdade3840b2384b3bc4012ad004
Signed-off-by: Harshdeep Dhatt <hdhatt@codeaurora.org>
2016-11-15 02:56:08 +00:00
Biswajit Paul 215b86e4b5 msm: kgsl: Change %p to %pK in debug messages
The format specifier %p can leak kernel addresses
while not valuing the kptr_restrict system settings.
Use %pK instead of %p, which evaluates whether
kptr_restrict is set.

Bug: 30228438
CRs-Fixed: 1052818
Change-Id: I0778e43e0a03852ca2944377256a7b401586a747
Signed-off-by: Divya Ponnusamy <pdivya@codeaurora.org>
Signed-off-by: Biswajit Paul <biswajitpaul@codeaurora.org>
Signed-off-by: Yueyao (Nathan) Zhu <yueyao@google.com>
2016-10-28 20:02:09 -07:00
Biswajit Paul f9cc372deb msm: kgsl: Change %p to %pK in debug messages
The format specifier %p can leak kernel addresses
while not valuing the kptr_restrict system settings.
Use %pK instead of %p, which evaluates whether
kptr_restrict is set.

Bug: 30228438
CRs-Fixed: 1052818
Change-Id: I0778e43e0a03852ca2944377256a7b401586a747
Signed-off-by: Divya Ponnusamy <pdivya@codeaurora.org>
Signed-off-by: Biswajit Paul <biswajitpaul@codeaurora.org>
Signed-off-by: Yueyao (Nathan) Zhu <yueyao@google.com>
2016-09-19 18:47:01 +00:00
Sunil Khatri f5f0a2fe84 msm: kgsl: Defer adding the mem entry to a process
If we add the mem entry pointer in the process idr and rb tree
too early, other threads can do operations on the entry by
guessing the ID or GPU address before the object gets returned
by the creating operation.

Allocate an ID for the object but don't assign the pointer until
right before the creating function returns ensuring that another
operation can't access it until it is ready.

Bug: 28026365
Bug: 28377352
CRs-Fixed: 1002974
Change-Id: Ic0dedbadc0dd2125bd2a7bcc152972c0555e07f8
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Signed-off-by: Sunil Khatri <sunilkh@codeaurora.org>
Signed-off-by: Santhosh Punugu <spunug@codeaurora.org>
2016-06-14 18:36:22 +00:00
Divya Ponnusamy 9786157510 msm: kgsl: Avoid race condition in ioctl_syncsource_destroy
If the ioctl syncsource_destroy is accessed by parallel
threads, where the spinlock is acquired by threads after
getting syncsource, then the simultaneous processes try
to remove the already destroyed syncsource->refcount by
the first thread that acquires this spinlock. This leads
to race condition while removing syncsource->idr.

Avoid separate lock inside getting syncsource, instead
acquire spinlock before we get the syncsource in
destroy ioctl so that the threads access the spinlock
and operate on syncsource without use-after-free issue.

Bug: 28084795
Change-Id: I6add3800c40cd09f6e6e0cf2720e69059bd83cbc
Signed-off-by: Divya Ponnusamy <pdivya@codeaurora.org>
2016-05-23 17:14:34 +00:00
Tarun Karra 792f68f75f msm: kgsl: verify user memory permissions before mapping to GPU driver
For user memory of type KGSL_USER_MEM_TYPE_ADDR mapped to GPU driver
verify permissions and map GPU permissions same as CPU permissions.
If elevated permissions are requested return an error to prevent
privilege escalation. Without this check user could map readonly
memory into GPU driver as readwrite and gain elevated privilege.

Write permissions check is currently inverted causing readonly
user pages to be mapped as readwrite in GPU driver. Fix this
check to map readonly pages as readonly.

Bug: 28305757
CRs-Fixed: 988993
Change-Id: I0e097d7e4e4c414c0849e33bcc61a26fb94291ad
Signed-off-by: Tarun Karra <tkarra@codeaurora.org>
2016-04-28 12:14:49 -07:00
Rajesh Kemisetti c1a90813d2 msm: kgsl: Add missing checks for alloc size and sglen
In _kgsl_sharedmem_page_alloc():

- Make len of type size_t to be in line with size.
- Check for boundary limits of requested alloc size before honoring.
- Make sure sglen is greater than zero before marking it as end
of sg list.

Change-Id: I8b9e225e515a0f31593df6f4cad253236475d0ae
Signed-off-by: Rajesh Kemisetti <rajeshk@codeaurora.org>
2016-04-13 11:03:19 -07:00
Sunil Khatri e40f234b1f msm: kgsl: Cast perfcounter query count to an unsigned int
In adreno_perfcounter_query_group() make sure to cast the user passed
count to an unsigned int before comparing it to the group count.
Otherwise the user count could be interpeted as a signed int and
hilarity ensues.

Change-Id: Ic0dedbad825f5b3fd4434f9b9f6d4d308206c0d9
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Signed-off-by: Sunil Khatri <sunilkh@codeaurora.org>
2016-04-13 11:03:19 -07:00
Tim Murray 17227dfc6b kgsl: add page pool allocator
This adds a pool allocator to kgsl's sharedmem allocation path. The pool
supports both fixed-size pools and pools that grow over time. In the
latter case, the pool's size will be reduced by a shrinker.

This also adds some tracepoints to aid in kgsl memory allocation debugging.

bug 27273678

Change-Id: I2c34f1e9795db5988303224f427e8a399e541008
2016-03-10 11:09:47 -08:00
Ajay Dudani bb57c6eb80 msm: kgsl: Fix direct references to HZ
Make the various timeout values HZ agnostic by using the proper
macros and values instead.

Change-Id: I6b75b3f7795e6670220b1eec3df9a03b75b8c8f9
Signed-off-by: Suman Tatiraju <sumant@codeaurora.org>
Signed-off-by: Ajay Dudani <adudani@codeaurora.org>
2016-01-05 14:29:50 -08:00
Thierry Strudel f44ca4462f msm: kgsl: do not vmap/memset to zero-out pages
2x speedup on less than 2MiB buffers and no significant degradation on
bigger buffers:
Before this change: <= 2MiB: Median:   19427  Mean:  102492
With   this change: <= 2MiB: Median:    9375  Mean:   50199
Before this change: >  2MiB: Median: 2454610  Mean: 3317162
With   this change: >  2MiB: Median: 2533854  Mean: 3389268
Before this change: >  8MiB: Median: 7345834  Mean: 7459010
With   this change: >  8MiB: Median: 7520052  Mean: 7802532

Change-Id: I358328ba2bd543d77e4218f32b0695c2f6f6e6c9
Signed-off-by: Iliyan Malchev <malchev@google.com>
Signed-off-by: Thierry Strudel <tstrudel@google.com>
2015-10-05 18:19:17 +00:00
Thierry Strudel c362fab3a2 msm: kgsl: optimize sharedmem vmfault for 4KB chunks
In case only 4K pages are allocated, page in scatterlist can be found
without walking through it.

The generic vmfault handler is measured to take in average 2831ns when
using 4K chunks only, the optimized handler is lowering the average
execution time to 418ns.

Bug: 24345960
Change-Id: Ia656b5ad06ca65e8ef5c1b1d5cc867fd632a914a
Signed-off-by: Thierry Strudel <tstrudel@google.com>
2015-10-02 09:00:00 -07:00
Sunil Khatri 72e574db79 msm: kgsl: Do not submit detached context switching commands
Do not submit commands from a detached context to
avoid invalid page table programming.

CRs-Fixed: 847754
Change-Id: Ibc7e9bb35b5374296c36ae542981d616c2ab92f7
Signed-off-by: Sunil Khatri <sunilkh@codeaurora.org>
2015-09-03 16:05:49 -07:00
Jordan Crouse 378012fb2f msm: kgsl: Return -ENOENT if a context is detached during submit
There are several points during the submission pipeline where we can
bail if the context has been detached. Return -ENOENT in those cases
so the dispatcher can 1) not try to requeue the command or the
context and 2) not log an error (detached commands should be
silently discarded).

Conflicts:

        drivers/gpu/msm/adreno_dispatch.c
        drivers/gpu/msm/adreno_ringbuffer.c
        drivers/gpu/msm/kgsl.c

CRs-Fixed: 847754
Change-Id: Ic0dedbad5d67b24e8bd2804647133d03617ea8dc
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Signed-off-by: Sunil Khatri <sunilkh@codeaurora.org>
Signed-off-by: Harshdeep Dhatt <hdhatt@codeaurora.org>
2015-09-03 16:05:49 -07:00
Jordan Crouse d89efc6253 msm: kgsl: Replace CP_INTERRUPT with EVENT_WRITE interrupt
Ever since the beginning of time we have used CP_INTERRUPT to trigger
an interrupt when a command batch is completed.  Back in the dark
legacy days we used it because it was the only thing that would work
with the conditional interrupt. We kept it after the great dispatcher
enlightenment of 2013 because if it ain't broke, don't fix it.

And then it broke. Actually it didn't really break, but we've always
been lucky when using it because CP_INTERRUPT is triggered when the CP
reads the opcode so there isn't really any assurance that the
command was completed (to be technical - there isn't any assurance
that the retired timestamp was written but that is the only way
the CPU knows the command was completed).  We manage to get by
99.99% of the time because usually there is another command coming
right behind us and the dispatcher will always have reason to be
run. But in that .01% window there is a chance that we the timestamp
will not yet be written in the short time between processing an
interrupt and reading the memstore - the dispatcher thinks nothing
has retired and it leaves.

The good news is that we have a better way - since we don't need
conditional interrupts (yay!) we can use the interrupt selector
from the EVENT_WRITE command that writes the timestamp. This is
good news because that guy *does* wait for the timestamp before
firing the interrupt so no more chance of missing things.

CRs-Fixed: 883899
Change-Id: Ic0dedbadf612763e3e9af32419badf5034f25277
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Signed-off-by: Harshdeep Dhatt <hdhatt@codeaurora.org>
2015-09-03 16:05:49 -07:00
Prakash Kamliya 15e0f508a7 msm: kgsl: Avoid spin lock recursion in adreno_drawctxt_dump
A sync fence timeout may lead to call adreno_drawctxt_dump().
At the same time, cmdbatch timer expires and scheduled to run
on same CPU, which might result into calling adreno_drawctxt_dump()
for the same context. This result into deadlock for drawctx->lock.
Use spin_lock_bh to disable soft irq (timer) while we are dumping
the sync pt for fence timeout.

Change-Id: I25461358aaff4b5011002f57bfe6b3cadce72dac
CRs-Fixed: 876017
Signed-off-by: Prakash Kamliya <pkamliya@codeaurora.org>
2015-09-03 16:05:49 -07:00
Shubhraprakash Das 272a9fff1d msm: kgsl: Handle sg page greater than 1M
If a sg page is greater than 1MB then break it properly into
multiple chunks of 4K and 64K.

Change-Id: Ia50d3165c10d468c3e7bd5b7cbc79758fb545fcb
Signed-off-by: Shubhraprakash Das <sadas@codeaurora.org>
2015-09-03 16:05:49 -07:00
Shubhraprakash Das 5e1d38076a msm: kgsl: Decrement inflight commands on error.
If active count enable fails then the dispatch queue inflight
should be reduced along with the dispatcher inflight.

Change-Id: Id01d396cc3819b3bbc25b22cb70e72eeb5010a40
CRs-Fixed: 841989
Signed-off-by: Shubhraprakash Das <sadas@codeaurora.org>
2015-09-03 16:05:49 -07:00
Harshdeep Dhatt e5cfe675ac msm: kgsl: Don't call del_timer_sync() with spinlock
If timer handler is executing on another core and
del_timer_sync() is called then it waits for the timer
handler to finish executing. Calling this function while
holding a lock which the timer handler might also need can
lead to a deadlock.

CRs-Fixed: 883016
Change-Id: Ibb408d403f1252a184f331bb5798e85df097f6bc
Signed-off-by: Harshdeep Dhatt <hdhatt@codeaurora.org>
2015-08-31 23:09:36 -07:00
Harshdeep Dhatt d74e101339 msm: kgsl: Do not wake up at turbo
Coming out of slumber at turbo is not stable on some parts,
so set the pwrlevel to one level below the turbo.

CRs-Fixed: 867058
Change-Id: Ide1127c31e095dbefd4b76c8e7174942de9c1e2a
Signed-off-by: Harshdeep Dhatt <hdhatt@codeaurora.org>
2015-08-24 17:46:12 -07:00
Harshdeep Dhatt 813a73e72c msm: kgsl: Ratelimit memory related error messages
In a low memory state, mem error messages can get flooded
causing a watchdog bite. Ratelimit these messages to avoid
the same.

CRs-Fixed: 854148
Change-Id: I8acfeea38278a1f1aec4767f0037a883cc625090
Signed-off-by: Harshdeep Dhatt <hdhatt@codeaurora.org>
Signed-off-by: Ajay Dudani <adudani@codeaurora.org>
2015-07-24 20:06:04 -07:00
Shubhraprakash Das 90be591e38 msm: kgsl: Do not get active count on coresight start/stop
When coresight is started it is called from adreno_start
which should have the power and clocks enabled. Getting an active
count in coresight start path will cause the device mutex to be
released midway in adreno_start which can cause race conditions.
Similarly, there is no need to get active count when coresight is
being stopped.

Change-Id: I6a637bfcf02788e63f32acbcbb29e22df198efd0
Signed-off-by: Shubhraprakash Das <sadas@codeaurora.org>
2015-05-28 12:16:41 -07:00
Shubhraprakash Das 6186f3251e msm: kgsl: Ratelimit fence error messages
Ratelimit fence error messages which fail due to reasons
outside of kgsl driver.

Change-Id: Idefe9b88eac318d9816cfdcfdb7a861a8d5c0426
CRs-Fixed: 815262
Signed-off-by: Shubhraprakash Das <sadas@codeaurora.org>
2015-05-04 22:45:37 -07:00
Rajeev Kulkarni e5ed316665 msm: kgsl: Protect additional registers which cause XPU violation
Protect VBIF register address space which cause
XPU violation if accessed by GPU, for targets A420
A430 and A418. Previously we missed this address range
0xD000 - 0xE000.

Change-Id: Ia1609d366cdb18868693f8ee909fce07489ef45f
Signed-off-by: Rajeev Kulkarni <krajeev@codeaurora.org>
2015-05-04 22:45:36 -07:00
Shubhraprakash Das db46296e29 msm: kgsl: Fix fence debug message lock sequence
When fences timeout then debug information is printed to logs.
Fence timing out from sync driver calls a callback into kgsl
driver to print additional information about fence. Sync point
timers timing out in kgsl driver calls fence driver to print
fence information which again calls back into kgsl driver. Due
to this callback the spin lock taken in the sync timeout thread
can lead to deadlock or double spin unlock calls. Simplify the
code by making sure that when kgsl driver calls fence driver
to print fence information then the fence driver does not
callback again into kgsl driver.

CRs-Fixed: 816579
Change-Id: I5fea94fdb03d5d8e400d220c01a5faee498b3f54
Signed-off-by: Shubhraprakash Das <sadas@codeaurora.org>
2015-05-04 22:45:36 -07:00
Shubhraprakash Das 4b5994fb12 msm: kgsl: Snapshot fix for A4XX
Add protection registers to snapshot dump of A4XX targets.
For A430 derivatives dump the entire size of CP state debug registers.

Change-Id: I149f0feea602ab6658f9cb471287e78725a231ec
CRs-Fixed: 812551
Signed-off-by: Shubhraprakash Das <sadas@codeaurora.org>
2015-05-04 22:45:35 -07:00
Rama Vaddula d32cdb2b1c msm: kgsl: Fix double put for context in an error case
This change fixes a duplicate put for context in error case.

Change-Id: I3b76b742b164191933b92aa210b9a4664a379443
Signed-off-by: Rama Vaddula <rvaddula@codeaurora.org>
2015-05-04 22:45:29 -07:00
Suman Tatiraju cb379384d0 msm: kgsl: Disable POPP feature
POPP feature attempts to push the frequency down if it detects
a stable run at a particular frequency. However there are use cases
where the application workloads can force POPP to make incorrect
decisions. Disable the feature to ensure no performance regressions.

Change-Id: I22259f7082368c7dccb11386a20d4f001f0a9af6
Signed-off-by: Suman Tatiraju <sumant@codeaurora.org>
2015-05-04 22:45:18 -07:00
Suman Tatiraju 819cc2a68f msm: kgsl: Fix INIT to ACTIVE state transition
The state machine should transition from INIT to AWARE always and
not to ACTIVE under any condition. Also if the device fails to wake up,
put the device back to SLUMBER and retry.

Change-Id: I2f5feb45395d02ae8e94e2ead9939e4316324bca
Signed-off-by: Suman Tatiraju <sumant@codeaurora.org>
2015-05-04 22:44:55 -07:00
Linux Build Service Account 546724fc90 Merge "msm: kgsl: Disable CP speed up during bootup for A430 derivatives" 2015-03-22 23:14:39 -07:00
Rajeev Kulkarni 392b55fe62 msm: kgsl: Disable CP speed up during bootup for A430 derivatives
The CP speed up had to be disabled for the bootstrap sequence for
A430 due to failure during ME init. The same problem exists on
the GPUs derived from A430 and the same fix needs to be applied
to these as well.

CRs-Fixed: 808510
Change-Id: I094f869abbdc64c4b85837bce2f8c8ed1986ae6c
Signed-off-by: Rajeev Kulkarni <krajeev@codeaurora.org>
2015-03-21 21:11:29 -07:00