summaryrefslogtreecommitdiff
path: root/drivers/gpu/msm (follow)
Commit message (Collapse)AuthorAge
...
| * Merge "msm: kgsl: skip if requested address doesn't fall in the svm range"Linux Build Service Account2020-09-01
| |\
| | * msm: kgsl: skip if requested address doesn't fall in the svm rangegkiranku2020-08-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | Merge "msm: kgsl: Remove VM_MAYWRITE flag to restrict mprotect"Linux Build Service Account2020-08-29
| |\ \
| | * | msm: kgsl: Remove VM_MAYWRITE flag to restrict mprotectIndira Biruduraju2020-08-24
| | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | Merge "msm: kgsl: Mark the scratch buffer as privileged"Linux Build Service Account2020-08-25
| |\ \ | | |/ | |/|
| | * msm: kgsl: Mark the scratch buffer as privilegedAkhil P Oommen2020-08-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | Merge "msm: kgsl: Correctly clean up dma buffer attachment in case of error"Linux Build Service Account2020-08-20
| |\ \
| | * | msm: kgsl: Correctly clean up dma buffer attachment in case of errorNeeraja P2020-08-19
| | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * / msm: kgsl: Fix possible use-after-free while adding context to active listRohan Sethi2020-07-30
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Merge tag 'LA.UM.8.4.r1-05900-8x98.0' of ↵Michael Bestas2020-08-23
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://source.codeaurora.org/quic/la/kernel/msm-4.4 into lineage-17.1-caf-msm8998 * tag 'LA.UM.8.4.r1-05900-8x98.0' of https://source.codeaurora.org/quic/la/kernel/msm-4.4: msm: kgsl: Mark the scratch buffer as privileged power: qcom: Add the QPNP QGAUGE (QG) headers msm: ipa: update msm_ipa.h with latest IPA versions constants nl80211: add NL80211_CMD_UPDATE_FT_IES to supported commands msm: mdss: hdmi: proper error logging ASoC: Fix warnings and errors with llvm sdm660_cdc: Reset cache_only mode for non SSR scenario include: Fix for compilation issue Makefile: Suppress few warnings with clang kbuild: Add -Werror=unknown-warning-option to CLANG_FLAGS kbuild: initialize CLANG_FLAGS correctly in the top Makefile kbuild: consolidate Clang compiler flags kbuild: add -no-integrated-as Clang option unconditionally power: qpnp-fg-gen3: Fix warning with llvm lkdtm: Fix warning with llvm AndroidKernel: Explicitly mark certain targets as phony dsp: q6asm: Change to increase asm sessions allowed dsp: q6adm: Channel map configuration for multi-channel defconfig: Create symbolic link for arm64 defconfigs scripts/build-all: remove pattern-based defconfig detection scripts/build-all: look for nested vendor/ defconfig directories scripts/build-all: remove all defconfig manipulation options scripts: build-all.py: update regex to compile all defconfigs scripts: build-all.py: append llvm to the config file scripts: Clean up the gcc-wrapper white list scripts: set clang as REAL_CC to support LLVM by default defconfig: auto: remove auto defconfigs vgacon: Fix a UAF in vgacon_invert_region soc: qcom: Reset string table index for each dump collection request msm: adsprpc: Fix array index underflow problem ath10k: remove unnecessary code drm/msm/dsi: use correct enum in dsi_get_cmd_fmt btrfs: Remove extra parentheses from condition in copy_items() do_last(): fetch directory ->i_mode and ->i_uid before it's too late Conflicts: fs/namei.c scripts/gcc-wrapper.py Change-Id: Icfb78abcc0f2cf980b5c0ceaf40f108038b1b527
| * | msm: kgsl: Mark the scratch buffer as privilegedAkhil P Oommen2020-08-12
| |/ | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | msm: kgsl: Increase priority of RT threadAlex Naidis2019-12-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | msm: kgsl: Stop slab shrinker when no more pages can be reclaimedSuren Baghdasaryan2019-12-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Revert "msm: kgsl: Do not memset pages to zero while adding to pool"Deepak Kumar2019-12-23
| | | | | | | | | | | | | | | | | | | | 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>
* | Revert "msm: kgsl: Disallow L2PC during wake up from SLUMBER"Kyle Piefer2019-12-23
|/ | | | | | | | | This reverts commit 5344e5c78f5820dfa34cfcea4572d8e347a018ce. The change negatively impacted performance. CRs-Fixed: 2120475 Change-Id: Ib6ff329a3501e77d990c2e9502ed35e041f730c8 Signed-off-by: Kyle Piefer <kpiefer@codeaurora.org>
* msm: kgsl: Check user generated timestamp before queuing drawobjsArchana Sriram2019-10-23
| | | | | | | | | | | | | | | | | | 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>
* msm: kgsl: Disable deprecated ioctlsHarshdeep Dhatt2019-09-20
| | | | | | | | 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>
* msm: kgsl: Make the "scratch" global buffer use a random GPU addressJordan Crouse2019-09-17
| | | | | | | | | 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>
* msm: kgsl: Use a bitmap allocator for global addressingJordan Crouse2019-09-17
| | | | | | | | | 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>
* msm: kgsl: Execute user profiling commands in an IBJordan Crouse2019-09-17
| | | | | | | | | | Execute user profiling in an indirect buffer. This ensures that addresses and values specified directly from the user don't end up in the ringbuffer. Change-Id: Ic0dedbadedcaab29ce5738a39c1ff6269261bae4 Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org> Signed-off-by: Harshitha Sai Neelati <hsaine@codeaurora.org>
* msm: kgsl: Verify the offset of the profiling bufferJordan Crouse2019-09-17
| | | | | | | | If a command is using a profiling buffer, make sure that the offset is within the bounds of the specified memory descriptor. Change-Id: Ic0dedbadc77e8eccd957136467bd0c56a1af2dab Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
* msm: kgsl: Fix race condition between drawobj and context destroyRajesh Kemisetti2019-07-26
| | | | | | | | | | | | | | | | | | | drawobj_destroy_sync() tries to cancel all pending sync events by taking local copy of pending list. In case of sync point timestamp event, it goes ahead and accesses context's events list assuming that event's context would be alive. But at the same time, if the other context, which is of interest for these sync point events, can be destroyed by cancelling all events in its group. This leads to use-after-free in drawobj_destroy_sync() path. Fix is to give the responsibility of putting the context's ref count to the thread which clears the pending mask. Change-Id: I8d08ef6ddb38ca917f75088071c04727bced11d2 Signed-off-by: Rajesh Kemisetti <rajeshk@codeaurora.org>
* Merge "msm: kgsl: Add missing check for snapshot IB dump"Linux Build Service Account2019-06-29
|\
| * msm: kgsl: Add missing check for snapshot IB dumpRajesh Kemisetti2019-06-28
| | | | | | | | | | | | | | | | | | | | | | | | | | During ringbuffer parsing, same IB can exist multiple times but size validation happens only for the first time. This leads to out of bound access if the subsequent sizes are greater than the allocated size. Add a check to make sure that requested size is within the allocated range. Change-Id: Ie5d3c02c1669de2e6188821399e985f0991aa57c Signed-off-by: Rajesh Kemisetti <rajeshk@codeaurora.org>
* | msm: kgsl: Change data type for GPU ib voteArchana Sriram2019-06-25
|/ | | | | | | | | | Change data type for gpu ib vote to unsigned long to suit the bw vote data type in devfreq governor functions. Change-Id: I6aeb201ee67d111ee527c17e051b5125968a9683 Signed-off-by: Archana Sriram <apsrir@codeaurora.org> Signed-off-by: Pranav Patel <pranavp@codeaurora.org>
* msm: kgsl: Fix race condition while making page as dirtyRajesh Kemisetti2019-05-08
| | | | | | | | | | | | | | set_page_dirty() is racy if the caller has no reference against page->mapping->host, and if the page is unlocked. This is because another CPU could truncate the page off the mapping and then free the mapping. Use set_page_dirty_lock() to avoid this race condition. Change-Id: I517fb9aee66560618c7676b311368f7a7498011f Signed-off-by: Rajesh Kemisetti <rajeshk@codeaurora.org> Signed-off-by: Archana Sriram <apsrir@codeaurora.org>
* msm: kgsl: Add common Boot KPI markerrahsha2019-04-11
| | | | | | | | Add a boot marker to indicate the time when gpu driver probe is completed and the device is ready. Change-Id: I71655d8f54c708ef675d9d1391c44347d845f97a Signed-off-by: rahsha <rahsha@codeaurora.org>
* msm: kgsl: Limit log frequency in case of context count maxed outRajesh Kemisetti2019-03-17
| | | | | | | | | | | | kgsl_context_init() prints error message continuously if a process tries to create more number of contexts that KGSL supports. This hogs CPU and might lead to watchdog timeout. Reduce this log frequency by using KGSL_DRV_ERR_RATELIMIT(). Change-Id: I7e3a5d3db41ab0c60d1b6b620cbcdef96d5c21a9 Signed-off-by: Rajesh Kemisetti <rajeshk@codeaurora.org>
* msm: kgsl: Correctly limit max number of contexts per processDeepak Kumar2019-03-06
| | | | | | | | | | Read and increment context count atomic variable under a lock to avoid race condition between read and increment. This is necessary to make sure no process goes beyond the specified context limit. Change-Id: I483e2ac169beaff49e19b8ef1b46541f6eb740b0 Signed-off-by: Deepak Kumar <dkumar@codeaurora.org>
* Merge android-4.4.168 (66a37fc) into msm-4.4Srinivasarao P2018-12-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * refs/heads/tmp-66a37fc Linux 4.4.168 selftests: Move networking/timestamping from Documentation rocker: fix rocker_tlv_put_* functions for KASAN staging: speakup: Replace strncpy with memcpy matroxfb: fix size of memcpy media: dvb-frontends: fix i2c access helpers for KASAN proc: do not access cmdline nor environ from file-backed areas proc: don't use FOLL_FORCE for reading cmdline and environment mm: replace access_remote_vm() write parameter with gup_flags mm: replace __access_remote_vm() write parameter with gup_flags mm: replace get_user_pages() write/force parameters with gup_flags mm: replace get_vaddr_frames() write/force parameters with gup_flags mm: replace get_user_pages_locked() write/force parameters with gup_flags mm: replace get_user_pages_unlocked() write/force parameters with gup_flags mm/nommu.c: Switch __get_user_pages_unlocked() to use __get_user_pages() mm: remove write/force parameters from __get_user_pages_unlocked() mm: remove write/force parameters from __get_user_pages_locked() sr: pass down correctly sized SCSI sense buffer swiotlb: clean up reporting hugetlbfs: fix bug in pgoff overflow checking hugetlbfs: check for pgoff value overflow hugetlbfs: fix offset overflow in hugetlbfs mmap mm/hugetlb.c: don't call region_abort if region_chg fails posix-timers: Sanitize overrun handling wil6210: missing length check in wmi_set_ie bpf: Prevent memory disambiguation attack bpf/verifier: Pass instruction index to check_mem_access() and check_xadd() bpf/verifier: Add spi variable to check_stack_write() bpf: support 8-byte metafield access KVM: SVM: Implement VIRT_SPEC_CTRL support for SSBD x86/speculation: Use synthetic bits for IBRS/IBPB/STIBP x86/bugs, KVM: Extend speculation control for VIRT_SPEC_CTRL KVM: SVM: Move spec control call after restore of GS x86/KVM/VMX: Expose SPEC_CTRL Bit(2) to the guest x86/bugs, KVM: Support the combination of guest and host IBRS x86/uaccess: Use __uaccess_begin_nospec() and uaccess_try_nospec x86/usercopy: Replace open coded stac/clac with __uaccess_{begin, end} x86: Introduce __uaccess_begin_nospec() and uaccess_try_nospec x86: fix SMAP in 32-bit environments x86: reorganize SMAP handling in user space accesses KVM/x86: Remove indirect MSR op calls from SPEC_CTRL KVM/SVM: Allow direct access to MSR_IA32_SPEC_CTRL KVM/VMX: Allow direct access to MSR_IA32_SPEC_CTRL KVM/VMX: Emulate MSR_IA32_ARCH_CAPABILITIES KVM/x86: Add IBPB support KVM: VMX: make MSR bitmaps per-VCPU KVM: VMX: introduce alloc_loaded_vmcs KVM: nVMX: Eliminate vmcs02 pool KVM: nVMX: mark vmcs12 pages dirty on L2 exit KVM: nVMX: fix msr bitmaps to prevent L2 from accessing L0 x2APIC ALSA: pcm: remove SNDRV_PCM_IOCTL1_INFO internal command pstore: Convert console write to use ->write_buf ocfs2: fix potential use after free debugobjects: avoid recursive calls with kmemleak hfsplus: do not free node before using hfs: do not free node before using ocfs2: fix deadlock caused by ocfs2_defrag_extent() fscache, cachefiles: remove redundant variable 'cache' fscache: fix race between enablement and dropping of object xen: xlate_mmu: add missing header to fix 'W=1' warning drm/ast: fixed reading monitor EDID not stable issue net: hisilicon: remove unexpected free_netdev ixgbe: recognize 1000BaseLX SFP modules as 1Gbps net: thunderx: fix NULL pointer dereference in nic_remove KVM: x86: fix empty-body warnings USB: omap_udc: fix USB gadget functionality on Palm Tungsten E USB: omap_udc: fix omap_udc_start() on 15xx machines USB: omap_udc: fix crashes on probe error and module removal USB: omap_udc: use devm_request_irq() bpf: fix check of allowed specifiers in bpf_trace_printk exportfs: do not read dentry after free ASoC: omap-dmic: Add pm_qos handling to avoid overruns with CPU_IDLE ASoC: omap-mcpdm: Add pm_qos handling to avoid under/overruns with CPU_IDLE Btrfs: send, fix infinite loop due to directory rename dependencies hwmon: (w83795) temp4_type has writable permission ASoC: dapm: Recalculate audio map forcely when card instantiated hwmon: (ina2xx) Fix current value calculation s390/cpum_cf: Reject request for sampling in event initialization sysv: return 'err' instead of 0 in __sysv_write_inode ARM: OMAP1: ams-delta: Fix possible use of uninitialized field ARM: OMAP2+: prm44xx: Fix section annotation on omap44xx_prm_enable_io_wakeup neighbour: Avoid writing before skb->head in neigh_hh_output() tun: forbid iface creation with rtnl ops tcp: fix NULL ref in tail loss probe rtnetlink: ndo_dflt_fdb_dump() only work for ARPHRD_ETHER devices net: Prevent invalid access to skb->prev in __qdisc_drop_all net: phy: don't allow __set_phy_supported to add unsupported modes net: 8139cp: fix a BUG triggered by changing mtu with network traffic ipv6: Check available headroom in ip6_xmit() even without options ANDROID: uid_sys_stats: Copy task_struct comm field to bigger buffer Conflicts: arch/x86/include/asm/uaccess_32.h sound/core/pcm_native.c Change-Id: I1d20594091279ae84c58669dd8ad5fa5e31989ab [fixed compilation issue in kgsl.c] Signed-off-by: Srinivasarao P <spathi@codeaurora.org>
* Merge "msm: kgsl: Log context type in case of GPU faults"Linux Build Service Account2018-11-20
|\
| * msm: kgsl: Log context type in case of GPU faultsRajesh Kemisetti2018-11-07
| | | | | | | | | | | | | | | | Log context type in case of GPU page faults or GPU faults. Also add Vulkan context type to distinguish it from GL. Change-Id: I7b93bf645b80abe82f2d6aa379296b2fffceb684 Signed-off-by: Rajesh Kemisetti <rajeshk@codeaurora.org>
* | Merge "msm: kgsl: Correct the state transitions in suspend function"Linux Build Service Account2018-11-09
|\ \
| * | msm: kgsl: Correct the state transitions in suspend functionArchana Sriram2018-11-01
| |/ | | | | | | | | | | | | | | GPU should not be forced to SUSPEND state when it is in INIT or NONE state as this transition is invalid. Change-Id: Ia3d0fd131348508fe34c57f271c1f991a98afa19 Signed-off-by: Archana Sriram <apsrir@codeaurora.org>
* / msm: kgsl: Don't halt dispatcher if device is not in SUSPEND stateDeepak Kumar2018-10-29
|/ | | | | | | | | | | | Add a check to make sure device actually transitioned to SUSPEND state before halting dispatcher in adreno_suspend_device function. kgsl_pwrctrl_change_state(device,KGSL_STATE_SUSPEND) in kgsl_suspend_device can return zero without actually changing state to SUSPEND if device state is NONE or INIT. Change-Id: I4a5a69007c71651ea2cf7fa7360c960c6856031e Signed-off-by: Deepak Kumar <dkumar@codeaurora.org> Signed-off-by: Archana Sriram <apsrir@codeaurora.org>
* msm: kgsl: Add a property to find if secure context is supportedSunil Khatri2018-10-08
| | | | | | | | | | | Add a property to determine if a target support secure context for use cases like CPZ. This property can be used by userspace application to create a secure context if its supported on the target. Change-Id: I1ccc824378fb8fbd2cfbc7b811c6c3fdcd17803e Signed-off-by: Sunil Khatri <sunilkh@codeaurora.org>
* msm: kgsl: Add a property to find alignment of secure buffersSunil Khatri2018-10-08
| | | | | | | | | | | Add a property to determine the hardware alignment constraint on secure buffers. XPUv2 and below have a minimum requirement of 1 MBytes alignment and hence driver should allocate memory with minimum alignment on size. Change-Id: Ie3ca5da489bc94ae57ddc6695e402463fd7a88c2 Signed-off-by: Sunil Khatri <sunilkh@codeaurora.org>
* msm: kgsl: Replace scm call api with its atomic versionAkhil P Oommen2018-09-03
| | | | | | | | | | | | scm_call2() API can block indefinitely if another client is using this API. This is due to a mutex in this API to serialize calls to the TZ. This blocks the GPU wake up which in turn can result in kgsl fence timeouts. Since CPZ register programing is handled at the hypervisor, we can safely avoid this serialization by using scm_call2_atomic() API which doesn't block. Change-Id: I48ba3e1a682e1027463a1c6b067e6cfcb4a0e8bc Signed-off-by: Akhil P Oommen <akhilpo@codeaurora.org>
* Merge "msm: kgsl: unload/reload zap shader"Linux Build Service Account2018-08-06
|\
| * msm: kgsl: unload/reload zap shaderThomas Yun2018-07-27
| | | | | | | | | | | | | | | | | | | | | | Unload zap shader during device hibernation and reload it during resume otherwise scm calls during post hibernation GPU initialization will fail as there is possibility that TZ driver is not aware of the hibernation. Change-Id: I1f62fb97cbc8e6c3e3536d4d5260a543ca15b685 Signed-off-by: Suprith Malligere Shankaregowda <supgow@codeaurora.org> Signed-off-by: Thomas Yun <wyun@codeaurora.org>
* | msm: kgsl: Fix the missing IBs from the snapshotSunil Khatri2018-07-31
|/ | | | | | | | | | | | We missed updating index for internal IBs like setstate or power-on fixup. The index value was never updated after that, so all the IBs after that index were never parsed, and are missing from the snapshot. Change-Id: I61db75f33630db322fe5ee1adce9f120987d32ee Signed-off-by: Sunil Khatri <sunilkh@codeaurora.org>
* msm: kgsl: Add hibernation supportSuprith Malligere Shankaregowda2018-07-02
| | | | | | | | | Invoke kgsl_suspend and kgsl_resume during hibernation of KGSL. Change-Id: I8e1a8ad8b9293d568950a9e71667d1088ff6fbba Signed-off-by: Suprith Malligere Shankaregowda <supgow@codeaurora.org> Signed-off-by: Thomas (Wonyoung) Yun <wyun@codeaurora.org>
* msm: kgsl: Don't dump GPMU registers on non GPMU devicesVenkateswara Rao Tadikonda2018-05-23
| | | | | | | | | | In Snapshot path, GPMU register offsets are being dumped on all A5xx devices. But some targets on A5xx does not have GPMU. So accessing GPMU registers would cause device fault. Allow the GPMU register access only on targets with GPMU. Change-Id: I2885dbdaf1cc95f960dcfacad52d6ded1dc9ac1d Signed-off-by: Venkateswara Rao Tadikonda <vtadik@codeaurora.org>
* msm: kgsl: Enhance reading lm_sequence in _execute_reg_sequence()Archana Sriram2018-04-09
| | | | | | | | | Modified conditional checks to read lm_sequence so as to avoid the possibility of pointer overflow. CRs-Fixed: 2212443 Change-Id: I72b30e35996c40f23fc81739e27724b1188f1c05 Signed-off-by: Archana Sriram <apsrir@codeaurora.org>
* Merge "msm: kgsl: Add support for A509 GPU"Linux Build Service Account2018-03-17
|\
| * msm: kgsl: Add support for A509 GPURajesh Kemisetti2018-03-13
| | | | | | | | | | | | | | | | Add new GPU ID and required initial settings to support Graphics functionality on SDM636. Change-Id: If8a801c20c7f60618797ccd440d2d739f6817708 Signed-off-by: Rajesh Kemisetti <rajeshk@codeaurora.org>
* | msm: kgsl: Fix XO shutdown issueSuprith Malligere Shankaregowda2018-03-14
|/ | | | | | | | This patch ensures device resumes successfully after XO shutdown without any KGSL error. Change-Id: I9eb8e281bc62793dc7521ba72aaeecf946860851 Signed-off-by: Suprith Malligere Shankaregowda <supgow@codeaurora.org>
* Merge "msm: kgsl: Limit the maximum number of contexts"Linux Build Service Account2018-03-05
|\
| * msm: kgsl: Limit the maximum number of contextsHarshdeep Dhatt2018-03-05
| | | | | | | | | | | | | | | | | | | | Enforce a limit of 200 contexts per process. This is done so that a process cannot use up all the available contexts and prevent other processes from starving. Change-Id: I6eda123128381a213315561cd42335e0944f1f55 Signed-off-by: Harshdeep Dhatt <hdhatt@codeaurora.org> Signed-off-by: Archana Obannagari <aobann@codeaurora.org>
| * msm: kgsl: Increase memstore sizeHarshdeep Dhatt2018-03-05
| | | | | | | | | | | | | | | | | | Increase the memstore size to 32k. Memstore has for long been limited to 200 contexts and now it will be 814. Change-Id: I1287669f0be38afe13ff8e386f5296e8f4e77627 Signed-off-by: Harshdeep Dhatt <hdhatt@codeaurora.org> Signed-off-by: Archana Obannagari <aobann@codeaurora.org>