This change makes sure that the control value coming
with the s_ctrl ioctl is passed along to the back-end
along with the rest of the event. Also, the return value
is copied back into the v4l2_control structure for HAL's
usage.
Change-Id: I2e1df270bff0cd1ce67da4490dff57d9bce6dc16
Signed-off-by: Ankit Premrajka <ankitp@codeaurora.org>
There can be SoCs which have different amount of VFEs connected to
ISPIF, while the CSID version is kept the same. For such cases there is
a need to have additional information about the number of VFEs connected
to each ISPIF interface, and its capabilities.
As there is no way for the ISPIF to guess this information on its own,
this change introduces a new ISPIF ioctl cmd, called ISPIF_SET_VFE_INFO.
This command will store the information for the number of VFEs connected
and also VFEs capabilities.
The above information is used where number of VFEs information is
required. Such places are vfe clock request, ISPIF irq handling and
others.
Change-Id: I0177470b3965c8a83349c367716d9006c1f49630
Signed-off-by: Vladislav Hristov <vhrist@codeaurora.org>
For concurrent ISP operation, a single camera image is
split and feed into two ISP. Each ISP will process
the image independently and output to different location in
one single buffer. This change add support to synchronize
the buffer used in each ISP. When the first ISP dequeue
a buffer, the buffer will be store in a separate queue.
The second ISP will first check the intermediate queue
and then check the main queue for buffer. When ISP is done
processing the image, the buffer will be send out only
when both ISPs are done with the buffer.
Change-Id: I8c8616d5255748328cc9b26aff97e9a83c49d5b8
Signed-off-by: Kevin Chan <ktchan@codeaurora.org>
For V2 hardware, the power on values are correct.
Add check to only program settings for V1 hardware.
Change-Id: Idc3387cbdda6ee2580b2ec91c98a66b3fd77965a
Signed-off-by: Kevin Chan <ktchan@codeaurora.org>
ISPIF driver should request VFE clocks on a need bases. It is generally
not a good idea to request all the possible clocks at open time, and
free them at close. For this reason the ISPIF driver is modified to
request only the clock which are really needed at some moment for its
operation. This includes clock requests for VFE0 and VFE1 at init time
when the reset should happen, and release them immediately after that.
Also to ensure the normal working when there is a request for operation
with the ISPIF, the clocks are enabled and disabled immediately. The
reason for this is that VFE clocks are enabled by the VFE when there is
a need of VFE, and the ISPIF only requires the clocks when it is being
configured. In all other cases the VFE will take care of enabling them.
Change-Id: Ie72afa9448436c14447b2212ae54c6111038d516
Signed-off-by: Vladislav Hristov <vhrist@codeaurora.org>
git://codeaurora.org/external/wlan/prima.git
ca7c9f2 wlan: Release 3.2.2.6a
a711a63 wlan: enabling ARP offload in suspended state on association
41111e9 wlan: clear ChannelList everywhere it is freed
65b158f wlan: prevent kernel crash when fwpath param is retrieved
Signed-off-by: Iliyan Malchev <malchev@google.com>
A hardware known issue is observed that KYPD_PWR_N connected to
PMIC8921 is blocked by Asustek-owned low detective circuit while
battery voltage is under 3.4V.
This phenomenon makes KYPD_PWR_N always sensing with high no matter
power button is pressed or not.
Change power button handling from KYPD_PWN_N into AP_ONKEY connected
to GPIO#26 of APQ8064, and remove unnecessary keyboard and pwrkey
support from PMIC8921 driver.
Change-Id: I35a6b035b89cedbe7efcb80fad53d4921e5d6427
Signed-off-by: paris_yeh <paris_yeh@asus.com>
This reverts commit f27e4f0e730b99ca4dabed0b408d96dbf73a8fac.
With 01b1dee in system/core to set ADDR_COMPAT_LAYOUT, this is
not needed any longer.
Bug: 8470684
Signed-off-by: Ajay Dudani <adudani@codeaurora.org>
Acked-by: Laura Abbot <lauraa@codeaurora.org>
If EOS is signalled while an output buffer is in transaction,
mark EOS when that buffer is returned.
This is observed in case client sends an empty buffer with EOS.
Change-Id: Idc050c9a76157bcf8a80e254e550f956537f98f1
Signed-off-by: Praveen Chavan <pchavan@codeaurora.org>
In case of video hardware is encoding a frame and EOS buffer with
with zero data length arrived, set the EOS flag to the transaction
available in the transaction table which will be passed to the
client in frame done callback from the video hardware.
Signed-off-by: Praveen Chavan <pchavan@codeaurora.org>
when recieving PON, some eMMC tend to program spare block with
init data for next power cycle. If eMMC recieved PON frequently
but not actually powered off. blocks being programed became
really dirty and caused performance decline.
Sending cmd5 frequently could also be stress to NAND block for
some eMMC. Hence bypass cmd5 to extend eMMC life cycle.
Change-Id: I2cee3a048da8d4e814befd0192675d3f58cd3f90
Signed-off-by: hsuan-chih_chen <hsuan-chih_chen@asus.com>
Support only 2 streams from the VFE, which need only 4 VFE WM.
We divide the UB buffer(1024 * 128 bits) equally into 4 VFE WM and
stats WM.
Correct the offset of burst length in VFE register while writing to HW.
Burst length corresponds to the number of data bytes written at a time.
Change-Id: I82d1b88f499f4572bd58ca29c7cc1a74615554a7
Signed-off-by: Nagesh Subba Reddy <nageshsreddy@codeaurora.org>
Signed-off-by: Mansoor Aftab <maftab@codeaurora.org>
This commit does not actually change the configuration, it just
resolves some inconsistencies so that future changes to the
defconfig will merge more quickly.
Change-Id: I177ed4c5bcd9d4b0ada418032867b6f8cd2a06ea
Signed-off-by: paris_yeh <paris_yeh@asus.com>
set driving strength to 6mA per EE's request.
Change-Id: I26efec96c38fdac01fdc6ad3fa8857963a1d087b
Signed-off-by: hsuan-chih_chen <hsuan-chih_chen@asus.com>
git://codeaurora.org/external/wlan/prima.git
188d3a6 wlan: Release 3.2.2.6
313fb06 wlan: Channel blocking when mobile network is no service state.
4bf49b3 wlan: Release 3.2.3.95
0c6ad70 Debug prints for SAP/STA Concurrency
dba02ad wlan: RX Packet invalid length problem fix
f79e835 wlan: Release 3.2.3.94a
ee97c5c wlan: TDLS regression is fixed.
94f4a85 Replace the log with MTRACE
ac516a7 wlan: Abort hdd_netdev_notifier_call during ssr
964b957 wlan: Updating the Channel list based on 11d info from AP
3b710ac wlan: Invoke SSR on DXE error
fb32e28 Fix more bugs found during static code analysis
a497516 Limit the deferred message queue full logs to minimum
698932f Fix for the tdls discovery attempts one less than ini
397eeca wlan: Fix Memory Leak
dcb9664 wlan: Support for GTK rekey offload
7f62d11 wlan:Not able to connect in 11r mode with CCX enabled.
a7f9037 wlan: Change so that host driver accepts PMF IGTK
82252ab wlan: SAP set TX power bug fix
9bc0d84 wlan: drop the enterbmps req if no beacon received
f0b90d5 Remove the redundant new line in PE logs
75d6996 wlan: Release 3.2.3.93
d18e2f0 wlan: 3rd set of Runtime Config items
a27e195 wlan: make sure at least one PNO timer is configured
2974ac1 Fix for handling KEEP ALIVE TIMEOUT correctly
d0e9c64 Fix for the tdls mutiple peer instability issues
e672567 Fix the errors observed in static source code analysis
4b1dd38 wlan:Fix the errors observed in static WDA source code analysis.
dd71465 wlan:Fix the errors observed in static SME source code analysis.
d886f12 wlan:Fix the errors observed in static PE source code analysis.
efed8cd wlan: Possible memory leak in limProcessFTAggrQosReq
294f5c3 wlan: 11AC rate support
4507c97 wlan: feature check before enabling wiphy roaming capability flag
828367b wlan: Fix cases of dereference before NULL check in P2P code
fed8bf0 wlan: Fix dereference before NULL check in netdev notifier
bc3cc9e wlan: validate key length passed to sme_RoamSetKey()
a973f08 wlan: validate key length passed to wlan_hdd_cfg80211_add_key()
9010dc4 wlan: HDD: Removing mcastbcast filter check in the PMC callback
17c01ce wlan: Workaround replaced by actual fix
0755fec wlan: Add vender specific IEs in Probe Resp Frame
35a1b6a wlan: Static source analysis fixes
eb45e5a wlan: Release 3.2.3.92a
d8e90f5 Fix for the crash due to excessive log
c15f07e wlan: Fix double free issue
5e77284 wlan: Release 3.2.3.92
6d906a2 wlan: RSSI based TDLS tear down.
3a6b2d2 Fix the issues observed in static source code analysis
f47dbf9 wlan: Add PMF (802.11w) support for station mode
d8d0ae9 wlan: Reduce returned data bytes for get_sta_info
fd3e183 Validate the p2pIeOffset in beacon template.
9b47c8e wlan: Release 3.2.3.91
9cc47fa Fixed bugs found during static code analysis
fd4f9f4 wlan: defer signalling connect failure until complete
fde4d94 wlan: Add memory leak detection
f9ce006 wlan:Send ADD BA failure Response for failure case.
edd2216 wlan: CCX: Resolution of build error
d104127 wlan: fix issue of double registration to TL for a TDLS peer STA
72f3995 Fix for sme out of command buffer stuck in TDLS multipeer scenario
756d591 Fix for "scan enabled the dynamically disabled TDLS"
84a9cb6 Fix for the crash in TDLS timers.
360c107 wlan: 11R: Fix for Zero padding in ReassocRequest
f3657ad wlan: remove obsolete ANI_CHIPSET_VOLANS featurization
e606122 wlan:Release 3.2.3.90
fded5d3 Fix for memory leaks in pmcApi.c
3293084 wlan: Add build option for msm8226 target.
270f36b wlan: Release 3.2.3.89
0282ab7 Add debug logs to monitor SCC and MCC
facba1b Fix for the crash in wlan_hdd_tdls_update_peer_cb
521bf1d wlan: Watchdog bark issue fixes in WDA/WDI
340e471 wlan: Firmware failure status in WDA ReqCallback functions
34a3b74 wlan: False driver reload by transport fix
984de66 wlan: SETROAMSCANCHANNELS should take min of Number of Channels
ccefbc4 wlan: Add vender specific IEs in Beacon Frame
aa48c2c wlan: SAP: Fix for NULL dereference exception
36e9fce wlan: Extend Remain on channel timer for RX P2P Action frames
bbcbf81 wlan: Submitting api file changes
d13c127 wlan: SETROAMSCANPERIOD 0 to disable periodic scan
06401eb wlan: Remove memory free call which leads to double free
591bf11 wlan: Fixes for WDI, DXE, VOSS, TL & utils
afd6c53 wlan: Release 3.2.3.88a
19e0efa wlan: 11R: Fixes for correctly parsing the RICs in ReassocResponse
a9c0f25 wlan : Fast transition (11r)
bcccc6f wlan: Release 3.2.3.88
e758ad8 wlan: Data size setting bug in WDI
4a3f3b5 Remove redundant new line in PE logs
66c128a wlan: remove obsolete WLAN_HAL_VOLANS featurization
7b7df9a wlan: Add Multicast/Broadcast filters
f2585a6 wlan: Transport debugging crash fix
da0753c wlan: New feature, Set TX Power with SAP mode.
8575684 Fix the NULL pointer dereference in csr neighbor roaming.
0fc481e Reverting "Postpone scan request until TDLS torn down"
c6b4d0c wlan: Release 3.2.3.87
39df6fb Remove redundant new line in SME logs
e19c7a4 Postpone scan request until TDLS torn down
310da9e Fix for the VOS_ASSERT in add station time.
4cf5f0c Fix for the pmcState messed up during TDLS setup
b5a87ea wlan: Decouple insert NOA from suspend link
30e0c47 wlan: Release 3.2.3.86a
5ee35cd wlan: wda: remove obsolete "INTEGRATED_SOC" featurization
e0502dc wlan: Release 3.2.3.86
06fb3f5 wlan: Issue disconnect when AP Capabilities Change detected.
db1a74f wlan: protect ULA callback against adapter state changes
206ddf3 wlan: Correct reason code when teardown link happens.
ee746e1 Fix for the crash in wlan_hdd_tdls_check_bmps
f3b92c1 wlan: Release 3.2.3.85
6bd2614 Fix Null pointer exception from pRoamInfo
1ce955a wlan: Clear preauth failed list in CFG_CHAN_LIST_SCAN state
d01c69d Fix to enable/disable BMPS during peer discovery
7ee99b6 Change TDLS run-time enable/disable scheme
cd911d5 Fix for TDLS multiple peer instability
6734081 TDLS: Added some more logs for debugging
ce2dc4a wlan: Release 3.2.3.84
11183cb wlan: mac: remove obsolete "INTEGRATED_SOC" featurization
6a5371e wlan: mac: remove obsolete Product Type featurization
8aeef30 wlan: Aggregation getting disabled when TM level going from 0 to 4
51207f0 wlan: remove obsolete threading support
041ac2c wlan: remove obsolete HLOS support
4d4d6e3 wlan: If host detects data stall, issue FW BMU dump command
622317b Revert "wlan: Updating the scanlist based on the 11d info from AP"
688889f wlan: Increase TIM_IE_SIZE to accommodate 41 STA
a0429d0 wlan: Release 3.2.0.83
60f42b7 Remove redundant new line in SME logs
79b33bf wlan: Fixing memory leaks in roaming
4725f9e wlan: encrypt gtk 2/2 message during wpa authentication
4d3e2b7 TDLS: Fix for low throughput in 2.4GHz
da988d7 wlan: remove FEATURE_WLAN_UAPSD_FW_TRG_FRAMES featurization
c175dd5 wlan: remove obsolete VOSS_ENABLED featurization
1eae383 wlan: Kbuild: remove obsolete -D flags
a0cde53 wlan: Memory leak fix in WDA/WDI
7c725aa wlan: iwpriv getRoamRssi to query RSSI from roaming engine
0877f85 wlan: maxTxPower should fall between the range
d42691c wlan: Avoid invalid channel configuration for GO/SAP.
923c771 wlan: Release 3.2.0.82
3728a38 Fix the compilation issue
39f351b Pass TDLS Peer Capabilities for Rate Adaptation
612cb1e Fix for link not establishing in multiple peer scenario
9e33a16 Fix for the crash while sending TDLS mgmt frames
2c55a37 TDLS Support for the P2P interface
7c94a8e wlan: cs release 3.2.0.81
d8a8172 Release global SME lock before return due to error
68c00b1 wlan: Do not let APPS suspend if roaming is in progress
183864e wlan: Adding support for 41 STA index.
4ba112c wlan: beacon filtering enable
7267405 wlan: increase MAX_CFG_INI_ITEMS
b494ce6 wlan: cs release 3.2.0.80
b9537b2 wlan: hdd: remove obsolete "WLAN_FEATURE_P2P" featurization
187ee67 wlan: sap: remove obsolete "WLAN_FEATURE_P2P" featurization
22ccfb3 wlan: sys: remove obsolete "WLAN_FEATURE_P2P" featurization
7406e08 wlan: sme: remove obsolete "WLAN_FEATURE_P2P" featurization
57261f8 wlan: mac: remove obsolete "WLAN_FEATURE_P2P" featurization
e6dd764 wlan: wda: remove obsolete "WLAN_FEATURE_P2P" featurization
41fd5b0 wlan: wdi: remove obsolete "WLAN_FEATURE_P2P" featurization
c409e37 wlan: hdd: remove obsolete "CONFIG_CFG80211" featurization
c619a97 wlan: voss: remove obsolete "CONFIG_CFG80211" featurization
a1f5e95 wlan: Submit api/inc files in rel/2.0
061ca89 wlan: Add config param AP LINK MONITOR TIMEOUT
Signed-off-by: Iliyan Malchev <malchev@google.com>
Add support for reporting and calculating VHT MCSes.
Note that I'm not completely sure that the bitrate
calculations are correct, nor that they can't be
simplified.
Change-Id: Id4c132850a85ff59f0fc16396763ed717689bec0
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Git-commit: db9c64cf8d9d3fcbc34b09d037f266d1fc9f928c
Git-repo:
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Signed-off-by: Sameer Thalappil <sameert@codeaurora.org>
The driver needs to reset the stop_called field once START called.
Otherwise in START, STOP, START, STOP sequences the secondary STOP will
be treated as a duplicate STOP and ignored.
Signed-off-by: Deva Ramasubramanian <dramasub@codeaurora.org>
The driver already frees the memory in vcd_ddl.c at ddl_close(). No
need to prematurely free the memory here.
Signed-off-by: Deva Ramasubramanian <dramasub@codeaurora.org>
Disable download mode on crashes and keep system to continue
booting for better user experience. Download mode is useful for
collecting ramdump for furhter analysis during stability test.
To enable, type next line in the adb shell before stability test
echo 1 > /sys/module/restart/parameters/download_mode
Change-Id: I08c02dfd42cf28803b78385916f50ea3e42eb7ae
Signed-off-by: paris_yeh <paris_yeh@asus.com>
1.Fix the Sensitivity Problem That Suspend and Wake up When Charging.
2.Modification for Algorithm, and Digital Parameters for ER Module.
a.Improve "double fat finger (22 phi copper)" performance when charging.
Change-Id: I1f2f5697dd5587243dc77003672c9658213db4b0
Signed-off-by: mars_kao <mars_kao@asus.com>
Even if the event code specifies a dummy interupt it might still
get wrapped with the conditional check. Make sure that all forced
interrupts from the event code get fired.
Change-Id: Ic0dedbadc4599efcbca65ad93cc27943bad2ca79
Signed-off-by: Shubhraprakash Das <sadas@codeaurora.org>
Signed-off-by: Tarun Karra <tkarra@codeaurora.org>
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Signed-off-by: Sakshi Agrawal <sakshia@codeaurora.org>
Print more IOMMU registers when a IOMMU pagefault happens which
report whether the pagefault is a read or write fault.
Change-Id: I27acafa9dcfd0c7de9056151ed1baef7dd2346df
Signed-off-by: Shubhraprakash Das <sadas@codeaurora.org>
Signed-off-by: Sakshi Agrawal <sakshia@codeaurora.org>
Lock ringbuffer virtual address translation in TLB of IOMMU. This
is required to prevent a hardware table walk from happening when
GPU executes commands that program the IOMMU registers. If a hardware
table walk happens when GPU is programming IOMMU register then it
can cause a deadlock on the bus.
Change-Id: I99428be7879a5210ba816f5f96864f94714649d7
Signed-off-by: Shubhraprakash Das <sadas@codeaurora.org>
Signed-off-by: Sakshi Agrawal <sakshia@codeaurora.org>
Update all the required timestamps when submitting commands to the
GPU ringbuffer for execution. The global timestamp was not being
updated in all the required cases. Now the global timestamp and
per context timestamp are updated if following conditions are met:
1. A valid non global context is passed
2. The context passed supports per context timestamps
3. The command submission is not from kgsl
If 3 conditions above are not met then only the global timestamp is
updated.
Change-Id: Ib4fe6fbd2ac57fbc5306377f09072f9e4c09d442
Signed-off-by: Shubhraprakash Das <sadas@codeaurora.org>
Signed-off-by: Sakshi Agrawal <sakshia@codeaurora.org>
A kgsl user can free up an allocation of GPU memory with
kgsl_ioctl_sharedmem_free() function, but the GPU address
might still be in use resulting in a GPU page fault.
A bug of this kind is hard to find because the driver keeps
no trace of kgsl_ioctl_sharedmem_free calls.
This change implements a "memfree history" debug feture that
allows to see an information about a last couple of hundred
memory free calls in kernel/debug/kgsl/kgsl-3d0/memfree_history
file.
Change-Id: I12e0e3702db56d99d5de644739b364dea4cc37b1
Signed-off-by: Vladimir Razgulin <vrazguli@codeaurora.org>
Signed-off-by: Sakshi Agrawal <sakshia@codeaurora.org>
Add a type parameter to event callbacks to give tasks a way to
communicate error conditions to the callback. Current type values
are KGSL_EVENT_TIMESTAMP_RETIRED for normal timestamp expiry and
KGSL_EVENT_CANCELLED if the event is cancelled prematurely.
Change-Id: Ic0dedbad9907cd50642a604a3af562e01a4b4a3b
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Signed-off-by: Sakshi Agrawal <sakshia@codeaurora.org>
Store the timestamps inside the context rather than in a
list stored in the ringbuffer. This allows for easier
maintanability as well as keeping all context data
centralized.
Change-Id: I0467d07be6c8bb9f062a81a40629c0288be7e868
Signed-off-by: Carter Cooper <ccooper@codeaurora.org>
Signed-off-by: Sakshi Agrawal <sakshia@codeaurora.org>
Get rid of kgsl_find_context. Use instead kgsl_context_get that does
correct RCU read locking around the itr_find and increases the
reference count on the context before returning it. This eliminates
the chance that a context will be destroyed while somebody is still
using it. Of course increased use of kgsl_context_get is accompanied
by kgsl_context_put in all the right places.
Change-Id: Ic0dedbad73d497fd9b451aefad8e5b28d33b829d
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Signed-off-by: Sakshi Agrawal <sakshia@codeaurora.org>
Allow the user space to pass in a type field to indicate the
type of upper level library that owns the context. The type
field is added to all the appropriate ftrace output for easier
debugging.
Change-Id: Ic0dedbadd42fc5ccfffd89738affd4794a6ab85e
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Signed-off-by: Sakshi Agrawal <sakshia@codeaurora.org>
Normally kgsl_create_context() returns a pointer to a new context.
In case of errors it just returns NULL pointer, and that doesn't allow
to propagate the right error code back to the user via
kgsl_ioctl_drawctxt_create()
This fix modifies kgsl_create_context to use ERR_PTR macro for passing
error codes to its caller.
Change-Id: I447c1765828912b0994bcae67a73864e62eef9b6
Signed-off-by: Vladimir Razgulin <vrazguli@codeaurora.org>
Signed-off-by: Sakshi Agrawal <sakshia@codeaurora.org>
Before we started using tracepoints this log message was used for
debugging the critical loop. Now that we are smarter remove the
unneeded log message.
Change-Id: Ic0dedbad57d97294cf2cb3865cf25f698aaea778
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Signed-off-by: Sakshi Agrawal <sakshia@codeaurora.org>
Keep track of the number of times the GPU power rails have been
cycled and provide said number to the user in the device sysfs
directory.
Change-Id: Ic0dedbad4489524a98e52b9993131257068ae2ef
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Signed-off-by: Sakshi Agrawal <sakshia@codeaurora.org>
Make sure that the context is freed only after the event is deleted
from the list to avoid accessing invalid list pointers. This makes
sure that the context memory is not accessed after being freed.
Change-Id: I9196219f1472396c0063dbeaa5351f66e6e5648f
Signed-off-by: Lynus Vaz <lvaz@codeaurora.org>
Signed-off-by: Sakshi Agrawal <sakshia@codeaurora.org>
Add tracepoints for tracking the lifespan of GPU events.
Change-Id: Ic0dedbadf99b1efcb650608c6ac664d3c4ddafd5
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Signed-off-by: Sakshi Agrawal <sakshia@codeaurora.org>
It is interesting to know when and how we program the hardware so
add a tracepoint to monitor register writes. Register reads are
not traced since they are done much more frequently and are somewhat
less interesting from a debug perspective.
Change-Id: Ic0dedbad8ee85f154b9ba8731fe2c14603351243
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Signed-off-by: Sakshi Agrawal <sakshia@codeaurora.org>
In the GPU interrupt handler we attempt to clear the ts_cmp_enable
for the active context so that future interrupts are skipped until
someone needs one again. If for some reason the interrupt handler
is delayed then there is a possiblity that the "current" context in
the GPU isn't the one that fired the interrupt. In that case we
could be accidently clearing a ts_cmp_enable for a context that
needs it. Instead of clearing in the interrupt handler clear it
from the GPU so we can be sure we got the right context.
As a bonus pushing this logic to the GPU side lets us get rid of
some extra register reads/writes in the interrupt handlers.
Change-Id: Ic0dedbadbf350f7c4866092fa0686f9b42f3cd33
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Signed-off-by: Sakshi Agrawal <sakshia@codeaurora.org>
Sometimes the core will go idle before the interrupt can be handled on
the GPU. If that happens then we could go to a lower power state before
cleaning up the pending interrupt and various entities that might be
waiting for it. Consider the current interrupt status when checking
for idle.
CRS-fixed: 449813
Change-Id: Ic0dedbadfd2d40e4411cf3b05e1eb4c4eecf7841
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Signed-off-by: Sakshi Agrawal <sakshia@codeaurora.org>
Indirect buffers to be executed will not be (and cannot be) zero length.
Check and reject.
Change-Id: Ic0dedbadea429c4f7bd386c5e64603b51ea8af61
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Signed-off-by: Sakshi Agrawal <sakshia@codeaurora.org>
adreno_readtimestamp() would return a register value when asked to
get the KGSL_TIMESTAMP_CONSUMED value. With per-context timestamps
this no longer holds valid since the value in the register could
correspond to a different contexts timestamp. Return the start of
packet timestamp for the specified context now that the start of
timestamp values are correctly submitted.
CRs-fixed: 382888
Change-Id: Iad56d07eb4a2973a5906d989c96dd117ff902cea
Signed-off-by: Carter Cooper <ccooper@codeaurora.org>
Signed-off-by: Sakshi Agrawal <sakshia@codeaurora.org>
HW workaround to resolve MMU pagefault caused by memory
freeing early before GPU completes it.
This is race condition where timestamp is getting updated
and the event handler runs before the GPU actually got done
with the timestamp, hence freeing the buffer early while GPU
still not completed with it.
Change-Id: I6d338d7dca680f57f2c39ed5a14381b261bf8bce
Signed-off-by: Anshuman Dani <adani@codeaurora.org>
Signed-off-by: Sakshi Agrawal <sakshia@codeaurora.org>
Add an identifier to label internal commands being sent to the
ringbuffer. This will be used to further enable debugging
and hang recovery.
Change-Id: I4b3c10f0c3d290ae092182cbb450abe65e9dda80
Signed-off-by: Carter Cooper <ccooper@codeaurora.org>
Signed-off-by: Sakshi Agrawal <sakshia@codeaurora.org>
Knowing the retired timestamp on wake-up is useful to debug hangs that
are caused due to clock instability. When we request for clock ON, the
clock may/may-not be turned ON, but we go ahead assuming it is ON. This
can be caught by printing the timestamp on wake. The timestamp we print,
can be compared against the timestamp in postmortem dump (assuming a
hang happens).
If there is a difference, we can say that GPU has run for sometime after
wake. So, we needn't suspect clocks.
If there is no difference, we can say that GPU has hung immediately after
wake. So, we can positively suspect the clocks.
Change-Id: Iedf49977adbb0e61a9b71bbe23acc81f2a75162d
Signed-off-by: Ranjhith Kalisamy <ranjhith@codeaurora.org>
Signed-off-by: Sakshi Agrawal <sakshia@codeaurora.org>
The instruction store on A3XX GPU cores isn't really an instruction store
as on A2XX and it doesn't give us any debugging value. On top of all
that it can be unstable to read in some situations. Since it is of
questionable value and questionable stability pull it from the snapshot
for all A3XX cores and move the functionality to the A2XX specific code.
Change-Id: Ic0dedbada32d8b6b9b93768d148c2624faf3ef30
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Signed-off-by: Sakshi Agrawal <sakshia@codeaurora.org>
USB controller may access the dTD one more time after clearing the active
bit in token field. There is a possibility of software freeing it in this
window. When this happens, USB controller may access incorrect memory and
leads to system level issues.
dTDs are freed when requests are freed by function drivers during
disconnect or unbind. The above race condition will come into effect only
for zero length packets. dTDs are dynamically created for sending zero
length packets on IN endpoints. These dTDs are immediately freed after
active bit is cleared. Defer this to next dTD completion. It is safe to
assume that hardware will no longer access the previous dTD when the next
dTD is completed.
Don't allocate/free setup status phase and GET_STATUS data phase requests
dynamically. Use one request for both cases and allocate it during bind.
CRs-Fixed: 474557
Change-Id: I5d41c310e1bb35d93b5af7d90a24ce5aab24f5f9
Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
Signed-off-by: Ajay Dudani <adudani@codeaurora.org>
Signed-off-by: Iliyan Malchev <malchev@google.com>
On flo hardware revision C, micbias1 is not grounded with external
capacity, so it should set micbias1 capless setting as 1
(no external bypass capacity) to avoid noise.
Bug:8611206
Change-Id: I82644a9123d092490ccc0acf6cdfa68964ef9c22
Signed-off-by: sam_chen <sam_chen@asus.com>
1. CABC level 3 is the most power saving level
2. level 3 for all cases (UI and video)
buganizer number: 8514498
Change-Id: I78930ff326410ba922ec565234dde387c670967b
Signed-off-by: yetta_wu <yetta_wu@asus.com>