Update vblank reference counts via the exposed sde_crtc_vblank
function, rather than attempting to zero it on the side during
CRTC disable operations. This allows the power voting to be
updated correctly based on the vblank reference count value.
CRs-Fixed: 2037677
Change-Id: I7026a1b239503a2b1d97ad7bb61fbc0a4a38d7ea
Signed-off-by: Clarence Ip <cip@codeaurora.org>
This patch provides a module parameter to control whether each
plane outputs the previously configured content or a black frame
during the resume operation. The default is set to output a
black frame.
CRs-Fixed: 2019307
Change-Id: I48c1a8edfa1e85252a070bda51228ef67dea041c
Signed-off-by: Clarence Ip <cip@codeaurora.org>
This change enables the appropriate callbacks to the color
processing component on suspend/resume transitions.
CRs-Fixed: 2019307
Change-Id: I7b8c9eb2b32da42e36d32e9d88e74e0c0c7b1ecb
Signed-off-by: Clarence Ip <cip@codeaurora.org>
Move the power resource request/release from the sde kms layer
into the CRTCs so that proper accounting for suspend/resume
operations may be done. A single power resource request is
made as long while the CRTC's vblank request ref count is not
zero and the driver is not in a suspended state.
CRs-Fixed: 2019307
Change-Id: I2d47567ec3dded72faed8bd5441d8d4653d5ef25
Signed-off-by: Clarence Ip <cip@codeaurora.org>
Explicitly disable connector DPMS and CRTC active states on
system suspend, and restore the previous state during a
system resume. This allows the underlying drivers to trigger
a DPMS callback for handling any panel related power disables
while still preserving the DRM atomic state.
CRs-Fixed: 2019307
Change-Id: Ib9933e4bc8b43c64def777b081d4315e5dbb7365
Signed-off-by: Clarence Ip <cip@codeaurora.org>
This patch adds a debugfs entry to the planes to force the driver
to ignore any custom scaler configuration from the user space.
CRs-Fixed: 2019305
Change-Id: I98596a1aaa0629ca1bfe81ab5c01a0d7854859e3
Signed-off-by: Clarence Ip <cip@codeaurora.org>
Plane state is set to NULL during color fill operations.
This patch adds checks to gracefully handle NULL plane
state during the scaler3 setup path.
CRs-Fixed: 2019301
Change-Id: I3ac5bd8f26e68afe559bf7c815da904392d3de13
Signed-off-by: Clarence Ip <cip@codeaurora.org>
Check is implemented in required function as part of
new implementation.
Change-Id: I346cd27cb254abe7d9706f01a9b463750614245e
Signed-off-by: Neeraj Soni <neersoni@codeaurora.org>
Vdev restart command triggers a vdev down and vdev stop in the
firmware. We do not need to send vdev down before sending vdev
restart to the firmware.
Skip vdev down command before we send the vdev restart command
for wcn3990 in the case of change in the channel context.
CRs-Fixed: 2079703
Change-Id: Idb611ec9ae8d40c7f7c3fe6efe853bf4c60d3123
Signed-off-by: Ashutosh Kumar <askuma@codeaurora.org>
KTM ignores software secure watchdog bite if it is a secure device
since this call support is not there in secure device. But API
scm_is_secure_device() returns false if it is secure device,
true otherwise. But KTM return value check is wrong and leads to
no secure watchdog bite call from KTM for all targets.
Fix return value check properly in KTM to resolve this issue.
Change-Id: I1612fee3f57f6c2d27c4329abc2c563b7b1d8102
Signed-off-by: Manaf Meethalavalappu Pallikunhi <manafm@codeaurora.org>
'commit 9021973bac ("coresight-remote-etm: Adds missing lock to avoid
race condition")' adds lock inside remote_etm_rcv_msg() which is not
needed as we are waiting inside it for a response of request made
remote_etm_enable => qmi_send_req_wait() which already holds lock
'drvdata->mutex'.
So, adding 'drvdata->mutex' inside remote_etm_rcv_msg() adds wait for
the lock and due to which not able to ack the response got which results
in timeout error qmi_send_req_wait().
This patch fixes the above mentioned issue by removing the lock added in
above mentioned commit.
Change-Id: Ie47607722ff170e012d598a2347b1c0ec6913cdf
Signed-off-by: Mukesh Ojha <mojha@codeaurora.org>
Adding remote debugger device configuration. The Remote Debugger driver
allows a debugger running on a host PC to communicate with a remote
stub running on peripheral subsystems.
Change-Id: I4aa40846efbf11739d81a9fbe22df811903d8eee
Acked-by: Chenna Kesava Raju <chennak@qti.qualcomm.com>
Signed-off-by: Tharun Kumar Merugu <mtharu@codeaurora.org>
Peer create fails if the same peer has not been
properly deleted earlier.
Peer delete response indicates the successful deletion
of a peer. Wait for peer delete resp after every peer
delete cmd.
CRs-Fixed: 2079668
Change-Id: I48d6787a42f79d3ce1225c885ca9fa159ef6df77
Signed-off-by: Rakesh Pillai <pillair@codeaurora.org>
For calculation of busy time and total time, KGSL relies on perf
counters and CPU clock. These can be a bit out of sync and may
give GPU busy greater than 100 percent. Updating time at the right
place will give more accurate total time and will avoid crossing
100% in GPU busy calculation.
Change-Id: I3cc702492325b9dc44ea2b705e4d9014d95abd33
Signed-off-by: Abhilash Kumar <krabhi@codeaurora.org>
In the scenario where the charging is terminated in the
JEITA soft condition, the HW is expected to restart
charging when battery temperature returns back to normal.
However, this does not work as expected and the charging
stays terminated. Fix this by disabling and re-enabling
charging CMD bit to restart charging.
CRs-Fixed: 2071261
Change-Id: I81d2a89c72ede840cc561b736ce1366c65da8c42
Signed-off-by: Anirudh Ghayal <aghayal@codeaurora.org>
Add board-id for UFS board which has a different board sub type.
Change-Id: Ic231784c46d4439944e403e26410515856fdc5fb
Signed-off-by: Lei wang <leiwan@codeaurora.org>
When calculating po->tp_hdrlen + po->tp_reserve the result can overflow.
Fix by checking that tp_reserve <= INT_MAX on assign.
Change-Id: If3b5fd73bd440de2a1050644b71ef7430f09810f
Signed-off-by: Andrey Konovalov <andreyknvl@google.com>
Acked-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Git-repo: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Git-commit: bcc5364bdcfe131e6379363f089e7b4108d35b70
Signed-off-by: Dennis Cagle <dcagle@codeaurora.org>
When calculating rb->frames_per_block * req->tp_block_nr the result
can overflow.
Add a check that tp_block_size * tp_block_nr <= UINT_MAX.
Since frames_per_block <= tp_block_size, the expression would
never overflow.
Change-Id: I183d9adb8b90010f408b5e1d0785aa06814f4348
Signed-off-by: Andrey Konovalov <andreyknvl@google.com>
Acked-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Git-repo: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Git-commit: 8f8d28e4d6d815a391285e121c3a53a0b6cb9e7b
Signed-off-by: Dennis Cagle <dcagle@codeaurora.org>
Not all targets support the DCI channel over MHI. Fix
error handling to only cleanup the failing device if
MHI registration fails.
Change-Id: I5ba23d69bc1fa3c08468d930f5f50151bfcd5bc0
Signed-off-by: Chris Lew <clew@codeaurora.org>
On an MHI down notification, the enabled state is set to 0 before
flushing the workqueue and buffers. This sanity check conflicts
with the down notification. Remove unneeded sanity check.
Change-Id: I6bedc353187bee907775347009e0d4157b0e35e2
Signed-off-by: Chris Lew <clew@codeaurora.org>
In order to support DT on DIAG, convert diag
bridge driver to platform driver.
Change-Id: I0ddecc06d9b4845d822799f3cff942789d1441c6
Signed-off-by: Sujeev Dias <sdias@codeaurora.org>
This can make sure MHI driver can safely free the memory which
is used by WLAN firmware since device is powered off.
Change-Id: If9d891eaf1ca7c28869448b3a0a42be713e16c2e
Signed-off-by: Yue Ma <yuem@codeaurora.org>
Mark as rw when adding as linear target to allow changes
to the underlying filesystem through adb disable verity
and adb remount.
(Cherry-picked from
https://partner-android-review.googlesource.com/#/c/613573/
79a3032bb62da65a5d724eb70c8bdc662945d475)
BUG: 28845874
Signed-off-by: Badhri Jagan Sridharan <Badhri@google.com>
Change-Id: If41e9cad8e0f054f4778c09a6e2f0cb8af6fddaf
Git-commit: 492a6047e7
Git-repo: https://android.googlesource.com/kernel/common/
Signed-off-by: Runmin Wang <runminw@codeaurora.org>
Add MultiMedia21 capture and routing support for ASM
loopback from AUX PCM TX to QUAT TDM RX.
CRs-fixed: 2069348
Signed-off-by: Derek Chen <chenche@codeaurora.org>
Change-Id: I632392d98092ff31fa9bdb13c02eef8c2a0a54a3
Update bootargs with configuration of lpm_levels.sleep_disabled.
CRs-Fixed: 2079671
Change-Id: Iced6d6fc8e571b342a77ce49b4fa54bf511d7dbc
Signed-off-by: John Zhao <yuankuiz@codeaurora.org>
Reserve MultiMedia16 for second instance of NOIRQ
CRs-Fixed: 2071838
Change-Id: I6a75d9a5e85585f65262ce486c992402ac58bf5f
Signed-off-by: Haynes Mathew George <hgeorge@codeaurora.org>
Currently, there is a possibility of NULL pointer dereference
while accessing diag master table. The patch adds proper check
for null pointer while iterating over the list.
CRs-Fixed: 2077525
Change-Id: I51075b7a7f3acce0cb27822ad1acd8a5894cdaa9
Signed-off-by: Hardik Arya <harya@codeaurora.org>
Peer delete response event is not parsed for the
params being sent by firmware.
Parse the tlv params and get the peer mac address
which was deleted.
CRs-Fixed: 2079551
Change-Id: I1f603d65784611d5f82babf2d9fa9dca5b1664b7
Signed-off-by: Rakesh Pillai <pillair@codeaurora.org>
The last_pet variable is set in suspend callback and during
pet_watchdog() and is printed when watchdog bark handler gets
called. This variable does not represent exact last pet time in
cases where non secure bark occurs before system could pet the
watchdog upon wakeup event from low power mode. Reset the
watchdog during msm_watchdog_resume() and update last_pet
variable so that watchdog bark messages will represent latest
info.
This commit also adds memory barrier after resetting watchdog in
msm_watchdog_suspend(). This will make sure watchdog writes are
complete before proceeding further.
Change-Id: I44492a947bc3664b7d14cfae9e877ebe0dc32836
Signed-off-by: Sarangdhar Joshi <spjoshi@codeaurora.org>
Signed-off-by: Mohammed Khajapasha <mkhaja@codeaurora.org>
If the request->length is zero, a ZLP should already be sent due to that
and another ZLP is not needed to terminate the transfer.
Fixes: 04c03d10e507 ("usb: dwc3: gadget: handle request->zero")
Signed-off-by: John Youn <johnyoun@synopsys.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
Change-Id: I747a9fd710d90986c7befd3d5ee5a1a5fceeaaed
Git-commit: d9261898a4b2c143c28568dc686a1becfc637a99
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Signed-off-by: Vijayavardhan Vennapusa <vvreddy@codeaurora.org>
So far, dwc3 has always missed request->zero
handling for every endpoint. Let's implement
that so we can handle cases where transfer must
be finished with a ZLP.
Note that dwc3 is a little special. Even though
we're dealing with a ZLP, we still need a buffer
of wMaxPacketSize bytes; to hide that detail from
every gadget driver, we have a preallocated buffer
of 1024 bytes (biggest bulk size) to use (and
share) among all endpoints.
Reported-by: Ravi B <ravibabu@ti.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
Change-Id: Ib4cb734bdb90ea142ced0d3b5299ee37ffce0352
Git-commit: 04c03d10e507052cfce6910ddf34091196e79e1c
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
[vvreddy@codeaurora.org: resolved merge conflicts]
Signed-off-by: Vijayavardhan Vennapusa <vvreddy@codeaurora.org>
When the Camera application exercises the V4L2 ioctl operations, CPP
driver would attempt to the copy user space buffer contents into the
internal kernel buffer. If an invalid length of the user space buffer
is passed onto the driver, it could trigger buffer overflow condition.
Thus, fix this by copying user space buffer contents into kernel space
buffer of the driver for further processing, only after checking for
proper length of user space buffer.
Change-Id: I0386d0f84a8d7015bfe6bbb1e9472fa8934df83a
CRs-Fixed: 2025367
Signed-off-by: Rahul Sharma <sharah@codeaurora.org>
stream_idx cannot take negative value and wrongly type casted to int.
Use uint32_t to fix this issue.
Change-Id: I7f306d3a24fc8f73aae91c0514b3747592466404
Signed-off-by: Srikanth Uyyala <suyyala@codeaurora.org>
Power collapse should be transparent to vidc layer, so
clock rate should be retained across suspend resume.
Add change to save clock rate during suspend, and restore
clock rate during resume.
Change-Id: I7e01ddcfc5b2f7d02f76512e1cbaf1a75bacdb03
Signed-off-by: Surajit Podder <spodder@codeaurora.org>
HDR playback needs metadata to be sent to the sink
while the playback is ongoing and needs a proper
teardown sequence when the playback has ended with respect
to the infoframe being sent to the sink.
This needs a state machine to synchronize start/stop of
the playback with sending the right metadata along with
resetting the infoframe HDMI registers.
Add support for this HDR playback control state machine.
Change-Id: I229183531f7ccb48579e74d02e0a1dea1cb945ff
Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
USB device is failing to initiate L1 remote wakeup for following
scenarios:-
1) When USB host initiates L1 between control transfers
(Setup and Status Phase).
2)In case of BULK only composition when USB host initiates L1 after
PING retries on OUT endpoint. Device fails to initiate L1 remote
wakeup when SW issues start transfer.
3) When bus is suspended and Start transfer is issued on IN TRB
Hence disable high speed link power management support by advertising
bcdUSB as 2.0 in high speed mode.
Change-Id: I83124d5e3821ba979be4772bc04e41f05dc7492c
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>