summaryrefslogtreecommitdiff
path: root/drivers/gpu/msm (unfollow)
Commit message (Collapse)Author
2024-10-17Merge remote-tracking branch 'msm8998/lineage-20' into lineage-20Raghuram Subramani
Change-Id: I126075a330f305c85f8fe1b8c9d408f368be95d1
2024-07-08msm: kgsl: Fix error handling during drawctxt switchRakesh Naidu Bhaviripudi
Currently, separate submissions are made for page table switch and context switch to the ring buffer. However, if the page table switch succeeds but the context switch fails, it can lead to use of wrong page table for drawctxt. To address this issue, rollback the pagetable to current pagetable. Also,correctly put the refcount of adreno context during error cleanup. Change-Id: I1bb4ee3ebb0ce6ea32f0b6799cfb7fa89c0d09c7 Signed-off-by: Rakesh Naidu Bhaviripudi <quic_rakeshb@quicinc.com>
2024-03-12msm: kgsl: Do not release dma and anon buffers if unmap failsLynus Vaz
If iommu unmap fails and leaves dma or anon buffers still mapped in the iommu, do not free them. Change-Id: Ice0e1a59c1ac0ee7a9d62d8899966b84fa63d5ca Signed-off-by: Lynus Vaz <quic_lvaz@quicinc.com>
2024-03-12msm: kgsl: Fix memory leak for anonymous buffersKamal Agrawal
Currently, clean up is not done properly for anonymous buffer (KGSL_MEM_ENTRY_USER). Fix it by freeing up resources allocated during memdesc_sg_virt. Change-Id: I75bff2e718b494c102a8075a5f27323e1823b212 Signed-off-by: Kamal Agrawal <kamaagra@codeaurora.org>
2023-12-22msm: kgsl: Do not free sharedmem if it cannot be unmappedKaushal Sanadhya
If sharedmem cannot be unmapped from the mmu, it can still be accessed by the GPU. Therefore it is not safe to free the backing memory. In the case that unmap fails, do not free it or return it to the system. Change-Id: Iad3e86d043f129a4d71cf862865d9033d4a315e3 Signed-off-by: Lynus Vaz <quic_lvaz@quicinc.com> Signed-off-by: Kaushal Sanadhya <quic_ksanadhy@quicinc.com>
2023-11-08msm: kgsl: Prevent wrap around during user address mappingMohammed Mirza Mandayappurath Manzoor
When setting svm region during the gpuobj import ioctl call for a usermem address, there is a possibility of a very large input size causing the region's 64-bit end address to wrap around. This can cause the region to incorrectly be considered valid, ultimately allowing a use after free scenario. To prevent this, detect the occurrence of a wrap and reject the import. Change-Id: I4a88f56c58b830d4342e47dc1d1f6290c78ab6b4 Signed-off-by: Mohammed Mirza Mandayappurath Manzoor <quic_mmandaya@quicinc.com>
2023-09-27msm: kgsl: Prevent wrap around during user address mappingMohammed Mirza Mandayappurath Manzoor
When setting svm region during the gpuobj import ioctl call for a usermem address, there is a possibility of a very large input size causing the region's 64-bit end address to wrap around. This can cause the region to incorrectly be considered valid, ultimately allowing a use after free scenario. To prevent this, detect the occurrence of a wrap and reject the import. Change-Id: I4a88f56c58b830d4342e47dc1d1f6290c78ab6b4 Signed-off-by: Mohammed Mirza Mandayappurath Manzoor <quic_mmandaya@quicinc.com>
2023-05-02msm: kgsl: Make sure that pool pages don't have any extra referencesKamal Agrawal
Before putting a page back in the pool be sure that it doesn't have any additional references that would be a signal that somebody else is looking at the page and that it would be a bad idea to keep it around and run the risk of accidentally handing it to a different process. Change-Id: Ic0dedbad0cf2ffb34b76ad23e393c5a911114b82 Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org> Signed-off-by: Kamal Agrawal <quic_kamaagra@quicinc.com>
2023-05-02msm: kgsl: Use dma_buf_get() to get dma_buf structurePuranam V G Tejaswi
Currently we don't ensure if vma->vm_file is associated with dma_buf. This can cause issues later when private_data from a non dma_buf file is used as dma_buf structure. Hence get the fd that is associated with vma->vm_file and use dma_buf_get() to get pointer to dma_buf structure. dma_buf_get() ensures that the file from the input fd is associated with dma_buf. Change-Id: Ib78aef8b16bedca5ca86d3a132278ff9f07dce73 Signed-off-by: Puranam V G Tejaswi <quic_pvgtejas@quicinc.com>
2023-02-28msm: kgsl: Make sure that pool pages don't have any extra referencesHarshitha Sai Neelati
Before putting a page back in the pool be sure that it doesn't have any additional references that would be a signal that somebody else is looking at the page and that it would be a bad idea to keep it around and run the risk of accidentally handing it to a different process. Change-Id: Ic0dedbad0cf2ffb34b76ad23e393c5a911114b82 Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org> Signed-off-by: Harshitha Sai Neelati <quic_hsaineel@quicinc.com>
2023-02-28msm: kgsl: Use dma_buf_get() to get dma_buf structurePankaj Gupta
Currently we don't ensure if vma->vm_file is associated with dma_buf. This can cause issues later when private_data from a non dma_buf file is used as dma_buf structure. Hence get the fd that is associated with vma->vm_file and use dma_buf_get() to get pointer to dma_buf structure. dma_buf_get() ensures that the file from the input fd is associated with dma_buf. Change-Id: Ib78aef8b16bedca5ca86d3a132278ff9f07dce73 Signed-off-by: Puranam V G Tejaswi <quic_pvgtejas@quicinc.com> Signed-off-by: Pankaj Gupta <quic_gpankaj@quicinc.com>
2022-07-27Revert "msm: kgsl: Mark the scratch buffer as privileged"LuK1337
* Requires new GPU firmware This reverts commit adec4f93e1705640e7b03d33394224ff5d835280. Change-Id: I747c00bff92f6e793f207839a7ad0a61b2656f96
2022-07-27Revert "msm: kgsl: Replace scm call api with its atomic version"Davide Garberi
* Makes the device randomly panic This reverts commit 2d48e40f87f822a1c98b0ed8e5ed8d1bb971cd8c. Signed-off-by: Davide Garberi <dade.garberi@gmail.com>
2022-05-12msm: kgsl: Remove 'fd' dependency to get dma_buf handleravnar
Get the dma_buf handle directly from 'vm_file' after doing necessary checks on the file. Change-Id: Id5eec16588d64e4e28483b32bb52d4d3d9b86b99 Signed-off-by: ravnar <quic_ravnar@quicinc.com> Signed-off-by: Sanjay Yadav <quic_sanjyada@quicinc.com>
2022-05-05msm: kgsl: Fix gpuaddr_in_range() to check upper boundAbhishek Barman
Currently gpuaddr_in_range() accepts only the gpuaddr & returns true if it lies in valid range. But this does not mean that the entire buffer is within range. Modify the function to accept size as a parameter and check that both starting & ending points of buffer lie within mmu range. Change-Id: I1d722295b9a27e746bfdb6d3bf409ffe722193cb Signed-off-by: Rohan Sethi <quic_rohsethi@quicinc.com> Signed-off-by: Abhishek Barman <quic_abarman@quicinc.com> Signed-off-by: Kamal Agrawal <quic_kamaagra@quicinc.com>
2022-03-09msm: kgsl: Add a sysfs node to control performance counter readsPankaj Gupta
Currently performance counters are global and can be read by anyone. Change the behaviour to disable reading global counters as default and add a sysfs node to enable/disable reads. Change-Id: Ic3785acd9bd7425c2a844ed103d7b870d9f80adf Signed-off-by: Mohammed Mirza Mandayappurath Manzoor <quic_mmandaya@quicinc.com> Signed-off-by: Harshitha Sai Neelati <quic_hsaineel@quicinc.com> Signed-off-by: Pankaj Gupta <quic_gpankaj@quicinc.com> Signed-off-by: Kamal Agrawal <quic_kamaagra@quicinc.com>
2022-02-01msm: kgsl: Perform cache flush on the pages obtained using get_user_pages()Puranam V G Tejaswi
Consider a scenario where user allocates anonymous memory but does not write to it. Here the physical pages are not yet allocated. Now when this memory is requested to be imported, a list of newly allocated zero pages is obtained using get_user_pages(). Currently cache flush is not done for these pages and hence GPU sees stale data. Fix this by performing cache flush on these pages. Change-Id: Id1e8aa20e8a9de112761732ed92f30c01088840b Signed-off-by: Puranam V G Tejaswi <quic_pvgtejas@quicinc.com> Signed-off-by: Sebanti Das <quic_sebadas@quicinc.com> Signed-off-by: Kamal Agrawal <quic_kamaagra@quicinc.com>
2021-09-29msm: kgsl: Fix out of bound write in adreno_profile_submit_timeKamal Agrawal
Make sure there is enough room in the memory descriptor to store the entire profiling buffer object. Change-Id: I1e1c73097bb2bba9645b0a3c66fdbbc71d8ba8fa Signed-off-by: Kamal Agrawal <kamaagra@codeaurora.org>
2021-09-29msm: kgsl: Fix out of bound write in adreno_profile_submit_timeKamal Agrawal
Make sure there is enough room in the memory descriptor to store the entire profiling buffer object. Change-Id: I1e1c73097bb2bba9645b0a3c66fdbbc71d8ba8fa Signed-off-by: Kamal Agrawal <kamaagra@codeaurora.org>
2021-03-23msm: kgsl: Deregister gpu address on memdesc_sg_virt failureNeeraja P
When memdesc_sg_virt returns error in kgsl_setup_anon_useraddr function, the gpu address registered in SVM region will not be deregistered. This change deregisters the gpu address on memdesc_sg_virt failure. Change-Id: Ic99167e283a0c6331bb9f5f0b608b6cdb3c918e4 Signed-off-by: Neeraja P <neerp@codeaurora.org>
2021-03-16msm: kgsl: Access map_count only if entry is successfully allocatedPankaj Gupta
In kgsl_mem_entry_create, access map_count only if entry is allocated successfully to avoid invalid access. Change-Id: I57bce1aec2da6a27b6d13dbee96ed86a45c9660c Signed-off-by: Deepak Kumar <dkumar@codeaurora.org> Signed-off-by: Pankaj Gupta <gpankaj@codeaurora.org>
2021-03-15msm: kgsl: Correct the refcount on current process PID.Archana Sriram
In kgsl_process_private_new() function there is inconsistency in the refcount of current process PID. Fix this to avoid overflowing of reference counter leading to use after free of this struct. Change-Id: I6291b9a05e139337e7f8471d0f9409fc839969a3 Signed-off-by: Archana Sriram <apsrir@codeaurora.org>
2021-03-15msm: kgsl: Compare pid pointer instead of TGID for a new processArchana Sriram
There is a possibility of sharing process_private between two unrelated processes due to PID wrapping. In kgsl_process_private_new(), instead of checking numeric TGID, compare the unique pid pointer of the current process with that of the existing processes in kgsl process list to allow sharing of process_private data judiciously. Also, in all required functions get TGID/PID of a process from its struct pid. Change-Id: I0e3d5d79275cdb3f3c304fb36322ad56b0d0b227 Signed-off-by: Archana Sriram <apsrir@codeaurora.org> Signed-off-by: Kamal Agrawal <kamaagra@codeaurora.org>
2021-03-15msm: kgsl: Protect the memdesc->gpuaddr in SVM use cases.Jordan Crouse
When SVM is being used there can only be one GPU address assigned to the memory descriptor. Don't allow the GPU address to be changed after it has been negotiated the first time by a process. Change-Id: Ic0dedbad2a1b3ccdc2c1598a6c501b2be288d64e Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org> Signed-off-by: Harshitha Sai Neelati <hsaine@codeaurora.org> Signed-off-by: Kamal Agrawal <kamaagra@codeaurora.org>
2021-03-15msm: kgsl: Stop using memdesc->usermem.Jordan Crouse
It shouldn't be illegal for memory descriptors to have multiple virtual memory mappings under certain circumstances. If that is the case tracking a single usermem address for each memdesc no longer makes much sense. Get rid of the memdesc->usermem member and use an atomic counter to track mappings instead. Change-Id: Ic0dedbad31bafcd1019ccc8e68657cb7e3c72727 Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org> Signed-off-by: Harshitha Sai Neelati <hsaine@codeaurora.org> Signed-off-by: Kamal Agrawal <kamaagra@codeaurora.org>
2021-03-08msm: kgsl: Disable all yield packets for secure contextsPuranam V G Tejaswi
Preemption of secure context is not supported in A5x. Currently we disable preemptive context switching during execution of commands from secure contexts by placing appropriate PREEMPT_ENABLE_GLOBAL/LOCAL packets in ringbuffer. These packets have no effect on the behavior of CONTEXT_SWITCH_YIELD packet. So a cooperative context switch (yield) can still be serviced. To avoid this, disable all yield packets in case of secure contexts. Change-Id: Icfd73795ca4dccfc04f7a5b4497a908b15794e5a Signed-off-by: Puranam V G Tejaswi <pvgtejas@codeaurora.org>
2021-02-22msm: kgsl: Change start variable type to int in kgsl_iommu_add_globalDeepak Kumar
Variable start should be of type int instead of u32. Correct this to ensure while loop can exit and WARN_ON statement is effective in case global VA space doesn't have enough space for current request. Change-Id: I0bc817abc9a16934b5c91fc31ba9c6dff3545c90 Signed-off-by: Deepak Kumar <dkumar@codeaurora.org> Signed-off-by: Pranav Patel <pranavp@codeaurora.org>
2021-01-12msm: kgsl: Deregister gpu address on memdesc_sg_virt failureNeeraja P
When memdesc_sg_virt returns error in kgsl_setup_anon_useraddr function, the gpu address registered in SVM region will not be deregistered. This change deregisters the gpu address on memdesc_sg_virt failure. Change-Id: Ic99167e283a0c6331bb9f5f0b608b6cdb3c918e4 Signed-off-by: Neeraja P <neerp@codeaurora.org>
2021-01-07msm: kgsl: Protect the memdesc->gpuaddr in SVM use casesJordan Crouse
When SVM is being used there can only be one GPU address assigned to the memory descriptor. Don't allow the GPU address to be changed after it has been negotiated the first time by a process. Change-Id: Ic0dedbad2a1b3ccdc2c1598a6c501b2be288d64e Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org> Signed-off-by: Harshitha Sai Neelati <hsaine@codeaurora.org> Signed-off-by: Kamal Agrawal <kamaagra@codeaurora.org>
2021-01-07msm: kgsl: Stop using memdesc->usermemJordan Crouse
It shouldn't be illegal for memory descriptors to have multiple virtual memory mappings under certain circumstances. If that is the case tracking a single usermem address for each memdesc no longer makes much sense. Get rid of the memdesc->usermem member and use an atomic counter to track mappings instead. Change-Id: Ic0dedbad31bafcd1019ccc8e68657cb7e3c72727 Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org> Signed-off-by: Harshitha Sai Neelati <hsaine@codeaurora.org> Signed-off-by: Kamal Agrawal <kamaagra@codeaurora.org>
2020-12-30msm: kgsl: Correct the refcount on current process PIDArchana Sriram
In kgsl_process_private_new() function there is inconsistency in the refcount of current process PID. Fix this to avoid overflowing of reference counter leading to use after free of this struct. Change-Id: I6291b9a05e139337e7f8471d0f9409fc839969a3 Signed-off-by: Archana Sriram <apsrir@codeaurora.org>
2020-11-10msm: kgsl: Compare pid pointer instead of TGID for a new processArchana Sriram
There is a possibility of sharing process_private between two unrelated processes due to PID wrapping. In kgsl_process_private_new(), instead of checking numeric TGID, compare the unique pid pointer of the current process with that of the existing processes in kgsl process list to allow sharing of process_private data judiciously. Also, in all required functions get TGID/PID of a process from its struct pid. Change-Id: I0e3d5d79275cdb3f3c304fb36322ad56b0d0b227 Signed-off-by: Archana Sriram <apsrir@codeaurora.org> Signed-off-by: Kamal Agrawal <kamaagra@codeaurora.org>
2020-10-20msm: kgsl: Don't wait for room in context queue when context is invalidatedHarshitha Sai Neelati
In a condition where there is no room in the drawcontext queue and the context is invalidated while sleeping in wait_event_interruptible_timeout, we are now polling for room after wake up. This would lead to infinite looping. Hence, do not wait for room in context queue if context is invalidated. Change-Id: I12c80e71630da2f3316838bee37f13cfa3b8e7d9 Signed-off-by: Harshitha Sai Neelati <hsaine@codeaurora.org>
2020-10-20msm: kgsl: Don't allow re-importing memory owned by KGSLKamal Agrawal
Don't allow IOCTL_KGSL_MAP_USER_MEM to import user memory that was already allocated and mapped by KGSL in the first place. Remapping memory never makes sense and it messes up reference counting in the pools. Change-Id: Ic0dedbade96ac6b30dcbbb794bf57a597f1bb351 Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org> Signed-off-by: Kamal Agrawal <kamaagra@codeaurora.org>
2020-08-26msm: kgsl: skip if requested address doesn't fall in the svm rangegkiranku
User should not be provided address out of SVM region. Return error for any such requests from user. Change-Id: If149044039b156f8192f405714f5c1a0571004e7 Signed-off-by: gkiranku <gkiranku@codeaurora.org> Signed-off-by: Sebanti Das <sebadas@codeaurora.org>
2020-08-24msm: kgsl: Mark the scratch buffer as privilegedAkhil P Oommen
Mark the scratch buffer as privileged so that it can only be accessed by GPU through the ringbuffer. To accomplish this, we need to: 1. Disable the shadow rptr feature. 2. Trigger RPTR update from GPU using a WHERE_AM_I packet. 3. Add support for the new ucode. Change-Id: I9b388f55f53b69028b9bbb2306cb43fd1297c52f Signed-off-by: Akhil P Oommen <akhilpo@codeaurora.org> Signed-off-by: Pranav Patel <pranavp@codeaurora.org>
2020-08-24msm: kgsl: Remove VM_MAYWRITE flag to restrict mprotectIndira Biruduraju
When VM_MAYWRITE flag is used during mmap(), mprotect() can be used later to change the protection of memstore to allow write. Make sure this does not happen by removing VM_MAYWRITE from the vm_flags of vma. Change-Id: I6f69f05858ea40611d512cfa796caabeaa88cdb5 Signed-off-by: Indira Biruduraju <ibirudur@codeaurora.org>
2020-08-19msm: kgsl: Correctly clean up dma buffer attachment in case of errorNeeraja P
In kgsl_ioctl_gpuobj_import(), user memory of type KGSL_USER_MEM_TYPE_ADDR can also lead to setting up a dma buffer. When attaching mem entry to process fails, dma buffer attachment is cleaned up only in case of KGSL_USER_MEM_TYPE_DMABUF. Similar situation can arise in case of kgsl_ioctl_map_user_mem(). Fix this by obtaining user memory type from the memdesc flags. Change-Id: I502bd0ae19241802e8f835f20391b2ce67999418 Signed-off-by: Puranam V G Tejaswi <pvgtejas@codeaurora.org> Signed-off-by: Neeraja P <neerp@codeaurora.org>
2020-08-12msm: kgsl: Mark the scratch buffer as privilegedAkhil P Oommen
Mark the scratch buffer as privileged so that it can only be accessed by GPU through the ringbuffer. To accomplish this, we need to: 1. Disable the shadow rptr feature. 2. Trigger RPTR update from GPU using a WHERE_AM_I packet. 3. Add support for the new ucode. Change-Id: I9b388f55f53b69028b9bbb2306cb43fd1297c52f Signed-off-by: Akhil P Oommen <akhilpo@codeaurora.org> Signed-off-by: Archana Sriram <apsrir@codeaurora.org>
2020-08-12msm: kgsl: Mark the scratch buffer as privilegedAkhil P Oommen
Mark the scratch buffer as privileged so that it can only be accessed by GPU through the ringbuffer. To accomplish this, we need to: 1. Disable the shadow rptr feature. 2. Trigger RPTR update from GPU using a WHERE_AM_I packet. 3. Add support for the new ucode. Change-Id: I9b388f55f53b69028b9bbb2306cb43fd1297c52f Signed-off-by: Akhil P Oommen <akhilpo@codeaurora.org> Signed-off-by: Archana Sriram <apsrir@codeaurora.org>
2020-08-04msm: kgsl: Mark the scratch buffer as privilegedAkhil P Oommen
Mark the scratch buffer as privileged so that it can only be accessed by GPU through the ringbuffer. To accomplish this, we need to: 1. Disable the shadow rptr feature. 2. Trigger RPTR update from GPU using a WHERE_AM_I packet. 3. Add support for the new ucode. Change-Id: I9b388f55f53b69028b9bbb2306cb43fd1297c52f Signed-off-by: Akhil P Oommen <akhilpo@codeaurora.org> Signed-off-by: Pranav Patel <pranavp@codeaurora.org>
2020-07-30msm: kgsl: Fix possible use-after-free while adding context to active listRohan Sethi
Consider a scenario where a context is valid when the check is made in adreno_dispatcher_queue_cmds(), but by the time we reach _track_context(), context has been detached. We would try to delete the entry from the active context list as part of detaching the context though the entry is not added yet. Now in _track_context() the context is actually added. When the context is finally destroyed, we would be left with invalid entry in the list. Next time when a context is added, an attempt would be made to use a freed entry. Fix this by moving the entry deletion part under drawctxt lock. Change-Id: Idab7cbf10987598b3e6395b2d50c20d1990d1f02 Signed-off-by: Puranam V G Tejaswi <pvgtejas@codeaurora.org> Signed-off-by: Rohan Sethi <rohsethi@codeaurora.org>
2019-12-23msm: kgsl: Increase priority of RT threadAlex Naidis
We need kgsl_worker_thread to preempt all userspace surfaceflinger threads to avoid a possible deadlock. This will prevent the SF threads from "stealing" cputime from kgsl_worker_thread. This is important, since kgsl_worker_thread executes work which blocks SF from proceeding. Change-Id: Ic4c9ca1f44ad8952ae2154a84ded7013244ca20d Signed-off-by: Alex Naidis <alex.naidis@linux.com>
2019-12-23msm: kgsl: Stop slab shrinker when no more pages can be reclaimedSuren Baghdasaryan
do_shrink_slab() scans each shrinker in batches of at most batch_size (128) pages at a time until total_scan pages are scanned or until shrinker returns SHRINK_STOP. Under heavy memory pressure total_scan can be large (in thousands) and kgsl_pool_shrink_scan_objects() ends up returning 0 after all pages that were reclaimable are reclaimed. This results in multiple calls to kgsl_pool_shrink_scan_objects() that do not reclaim any memory. To prevent this kgsl_pool_shrink_scan_objects() is modified to return SHRINK_STOP as soon as no more memory can be reclaimed. Bug: 69931996 Test: tested using alloc-stress with additional traces Change-Id: Ia48fc2c0d888c54ec9642c0b0962a70ca3cb4c5e Signed-off-by: Suren Baghdasaryan <surenb@google.com>
2019-12-23Revert "msm: kgsl: Do not memset pages to zero while adding to pool"Deepak Kumar
This reverts commit 90d6246fca5f288606551c5d02af920bfeb05b9b. To address the launch latency issue seen because of increase in memory allocation time. Change-Id: I147ca8607337541b7a29056b4bd1b46aa374c6e3 Signed-off-by: Deepak Kumar <dkumar@codeaurora.org>
2019-12-23Revert "msm: kgsl: Disallow L2PC during wake up from SLUMBER"Kyle Piefer
This reverts commit 5344e5c78f5820dfa34cfcea4572d8e347a018ce. The change negatively impacted performance. CRs-Fixed: 2120475 Change-Id: Ib6ff329a3501e77d990c2e9502ed35e041f730c8 Signed-off-by: Kyle Piefer <kpiefer@codeaurora.org>
2019-10-23msm: kgsl: Check user generated timestamp before queuing drawobjsArchana Sriram
In ioctls like kgsl_ioctl_submit_commands(), if both syncobj type and cmd/marker/sparseobj type are submitted, the syncobj is queued first followed by the other obj type. After syncobj is successfully queued, in case of failure in get_timestamp while queuing the other obj, both the command objs are destroyed. As sync obj is already queued, accessing this later would cause a crash. Compare the user generated timestamp with the drawctxt timestamp and return early in case of error. This avoids unnecessary queuing of drawobjs. Change-Id: I336c95c42ab1075d7653cba02772f92c918c884c Signed-off-by: Archana Sriram <apsrir@codeaurora.org> Signed-off-by: Harshitha Sai Neelati <hsaine@codeaurora.org>
2019-09-20msm: kgsl: Disable deprecated ioctlsHarshdeep Dhatt
Disabling sparse ioctls as they are deprecated. Change-Id: I5a4c78ec96fad4cda29a61d090e8bfb798123e3f Signed-off-by: Harshdeep Dhatt <hdhatt@codeaurora.org> Signed-off-by: Archana Sriram <apsrir@codeaurora.org>
2019-09-17msm: kgsl: Make the "scratch" global buffer use a random GPU addressJordan Crouse
Select a random global GPU address for the "scratch" buffer that is used by the ringbuffer for various tasks. Change-Id: Ic0dedbaddda71dbf9cb2adab3c6c33a24d6a604c Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org> Signed-off-by: Harshitha Sai Neelati <hsaine@codeaurora.org>
2019-09-17msm: kgsl: Use a bitmap allocator for global addressingJordan Crouse
To prepare to allow global buffers to allocate a semi-random GPU address move from a sequential allocator to a bitmap based one. Change-Id: Ic0dedbadba36c4c7b7839528103997724eac7d6d Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org> Signed-off-by: Harshitha Sai Neelati <hsaine@codeaurora.org>