cap1106: fix initial enabled/disabled state

Change-Id: I4f11fbc18e1c7f4bc73d3622153af8df3fd636bd
Signed-off-by: Raphanus Lo <raphanus_lo@asus.com>
charger: smb345: hold wakelock when wireless charging

Bug: 9474292
Change-Id: I6d149bfbf5b2d7557f6aa2a28b1168e5fc7b4499
Signed-off-by: Hank_Lee <Hank_Lee@asus.com>
msm: kgsl: Add the buffer user address to the debugfs memory list

For each buffer in the debugfs memory list print the address it is
mapped to in the user process.  This is useful for matching up the
user side allocations with what the kernel thinks it has.

Change-Id: Ic0dedbadd07a8f704c0bf73b183aaeeddbbdd129
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Signed-off-by: Ling Wan <lingw@codeaurora.org>
msm: kgsl: Don't do intensive memory recovery when allocating big pages

We don't want to incur too much overhead when allocating big pages
so don't attempt to retry, perform reclaim, or run memory compaction
on high-order allocations.

Change-Id: Ic0dedbadb354c6faea34abec36aee268ac0f2c34
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Signed-off-by: Ling Wan <lingw@codeaurora.org>
msm: kgsl: Switch to using the dmabuf APIs

The dmabuf APIs are now fully supported upstream. Since Ion
is now a dmabuf exporter, there is no need to call those APIs
directly. Switch to calling the dmabuf APIs to generate
scattergather lists for mapping to be more compatible.

Change-Id: Ie393e74bba080cba8a10e60908af7932729e6da6
Signed-off-by: Laura Abbott <lauraa@codeaurora.org>
Signed-off-by: Ling Wan <lingw@codeaurora.org>
msm: kgsl: handle double free on timestamp

Make sure memory does not get freed twice if one of the
frees is free on timestamp.

Change-Id: Id03d69ae9b5cc598658794e65152a899b36fe314
Signed-off-by: Jeremy Gebben <jgebben@codeaurora.org>
Signed-off-by: Ling Wan <lingw@codeaurora.org>
msm: kgsl: Prevent race conditions when freeing memory

Multiple threads can call an ioctl to free a memory region.
Only one of these threads must be allowed to free memory and
the rest can return without freeing. Add a new pending flag
which is tested and set in a critical section guarded by
spinlock to prevent multiple ioctl threads from freeing the
same memory.

Also, a thread could be freeing a memory region that is
in use by another thread. Ensure that the detachment of the
memory from the process list and freeing of the memory always
happens in the same thread. This will prevent a situation where
the memory is being used by a thread which is detached from the
process list and is yet to be freed.

Seperate the selection of gpuaddr and mapping into pagetable. The
gpuaddr assignment needs to be done with process memory lock held
in a critical section but the mapping into pagetable can be done
separately without holding memory lock.

CRs-Fixed: 495144
Change-Id: Idf85fbd4bca29c18597f4b0e737c207f002ab266
Signed-off-by: Shubhraprakash Das <sadas@codeaurora.org>
Signed-off-by: Ling Wan <lingw@codeaurora.org>
msm: kgsl: Only reference the rb_node after taking spinlock

Derefernce the rb node after taking spinlock since the root
node can change and is supposed to be guarded by the spinlock

CRs-Fixed: 495129
Change-Id: I63de7755cf9d5fb548c082f43403000bcef5721b
Signed-off-by: Shubhraprakash Das <sadas@codeaurora.org>
Signed-off-by: Ling Wan <lingw@codeaurora.org>
msm: kgsl: Set alignment to 0 when low on mapped memory

If CPU map returns error due to low memory then we need to set
the alignment to 0 and instead of setting it to PAGE_OFFSET. This
is because we then simply search of a free memory gap at page
boundary and disrerard alignment requirement since memory is
low.

Change-Id: I828f5d0120d6d530e0e8857bcd96c9d5f266da10
Signed-off-by: Shubhraprakash Das <sadas@codeaurora.org>
Signed-off-by: Ling Wan <lingw@codeaurora.org>
msm: kgsl: Only initialize process structure once

If the debug root of the process structure is initialized
then it means that the remaining fields will also be
initialized. Check this field at the beginning of the
initialization routine and skip to end of the function. This
also by-passes the reinitialization of some fields because
of errorneous NULL pointer check of rb node. The rb node is
always initialized to NULL so checking if it is NULL to
determine whether the pointer is initialized or not is wrong.

CRs-Fixed: 498014
Change-Id: I73b2124c037187bc96942714dac62c0a72c26372
Signed-off-by: Shubhraprakash Das <sadas@codeaurora.org>
Signed-off-by: Ling Wan <lingw@codeaurora.org>
msm: kgsl: disable full cache flush if full_cache_threshold is 0

Make full_cache_threshold==0 mean never do a full cache flush,
since that is more useful than having it mean always do it.

Change-Id: I4ae46b6253f2d78a97f067b5f906637a3db1d5c8
Signed-off-by: Jeremy Gebben <jgebben@codeaurora.org>
Signed-off-by: Ling Wan <lingw@codeaurora.org>
msm: kgsl: pwrscale functions should be run while GPU is ACTIVE

Base the decision to call power scaling functions on the current
state, not the requested state.  The GPU may not transition to the
requested state; call through based on current GPU state instead.

Change-Id: I1524bc92c908dc50a60b5815f2221ae3feef59be
CRs-Fixed: 441847
Signed-off-by: Lucille Sylvester <lsylvest@codeaurora.org>
Signed-off-by: Ling Wan <lingw@codeaurora.org>
msm: kgsl: Bump up the GPU frequency for long batch processing

Compute workloads run without kernel interaction for long periods
of time.  If one is identified early, increase the frequency to
finish it as fast as possible, rather than waiting for the standard
algorithm to do so.

Change-Id: I213ccabfae5e1000cdc34bc1d92bdc3bad86383d
CRs-Fixed: 441847
Signed-off-by: Lucille Sylvester <lsylvest@codeaurora.org>
Signed-off-by: Ling Wan <lingw@codeaurora.org>
msm: kgsl: Restrict allocated memory alignment to a max of 2^31

The GPU memory allocation flags allow 8 bits of space to specify
a power of 2 aligment for the allocated memory block.  Cap the
actual alignment to 2^31 since any value more than that will have
unintended effects on a 32 bit system.

Change-Id: Ic0dedbadd42a9a886b8bfada0c7d415caaed65de
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Signed-off-by: Ling Wan <lingw@codeaurora.org>
msm: kgsl: Add the callback function to kgsl_fire_event trace points

Add a %pF to the kgsl_fire_event tracepoint to show which function is
being called when the event expired.  This will help debugging when
something goes bad in the callback which isn't always intuitive from
a stack trace.

Change-Id: Ic0dedbad41bdceefb29cec2730036620d2e4d8f3
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Signed-off-by: Ling Wan <lingw@codeaurora.org>
msm: kgsl: Fix the offset of FSYNR1

Define the offset of FSYNR1 IOMMU register correctly for IOMMU-v0.

Change-Id: Ibcbc863e1be02da3be22dd1a9cfe4a41e043d503
Signed-off-by: Shubhraprakash Das <sadas@codeaurora.org>
Signed-off-by: Ling Wan <lingw@codeaurora.org>
TouchScreen: update touch firmware to A038.

Fix/Improve issue:

1.[Issue 9692415] Touch screen on flo is broken for games
2.[Issue 9323363] [FLO/DEB] [Touch] Scrolling not smooth
3.[Issue 9471817] [FLO/DEB] [Touch] Hover touches

Change-Id: Ia1983e6e4758d457eaa7ba8779448939afa8a6bf
Signed-off-by: mars_kao <mars_kao@asus.com>
display: JDI: modify pwm frequency to 250Hz

Modify pwm frequecy to 250Hz to reduce backlight flicker

Change-Id: Id1501050c835076f9f23f7be3c097464d0277578
Signed-off-by: yetta_wu <yetta_wu@asus.com>
flo_defconfig: disable CONFIG_DEBUG_USER

Signed-off-by: Iliyan Malchev <malchev@google.com>
display: JDI: modify pwm frequency to 500Hz

Modify pwm frequecy to 500Hz for backlight flicker issue

Issue 9070936

Change-Id: I92a0da3c7c5cc7f6cc04172c0ece77b11d0d61e3
Signed-off-by: yetta_wu <yetta_wu@asus.com>