Avoid corrupting the cb_list by setting timestamp before signal.
The fence driver changed in msm-5.4 by creating a union for the
fence cb_list, timestamp, and rcu. Therefore only one of these
fields can be used at a time. Fence driver will take care of
setting the timestamp during dma_fence_signal after it has
cached the cb_list. Also, use fence framework API to set fence
error instead of modifying the dma_fence struct directly.
Change-Id: I58dbaa495027cb575f4f0b03275ca4aa551ecacb
Signed-off-by: Steve Cohen <cohens@codeaurora.org>
Add sysfs node on crtc to trigger sde wake up early.
The command to trigger wake up early give in shell:
echo 1 > /sys/class/drm/sde-crtc-*/early_wakeup
Bug: 150196517
Test: trigger wake up and switch display power state
Test: testInflatingEmojiListViewFling
Test: testBrowseContentScroll
Change-Id: I96e6ad73e83e8a9e3e5e65e064c92f8e6a6d63f8
Signed-off-by: Midas Chien <midaschieh@google.com>
dsi_display_clk_ctrl is assigned as a callback function to struct
sde_connector_ops::clk_ctrl. This changes changes the function type to
match the pointer type to avoid Control-Flow Integrity (CFI) failures.
Bug: 148470764
Change-Id: Id67a6971a597b047524cf6eac6c48c057e8f9e9a
Signed-off-by: Sami Tolvanen <samitolvanen@google.com>
In an effort to reset the DP controller states on a disconnect, the
driver is issuing a SW reset to the controller. But SW reset on
the controller doesn't necessarily restore the controller to its
full reset state. It only resets part of the logic. So if for some
reason the MST streams were not disabled properly, ie. the slot
allocations were not reset properly in the controller, then a SW
reset would result in the DP controller raising state interrupts.
Since this SW reset is issued in the tail end of the disconnect
processing, the driver turns off all the clocks and also
removes the irq handler. This results in an interrupt storm at
the MDSS top level.
This change removes the SW reset on the disconnect path and
relies on the SW reset that already exists in the connect path
to restore controller state.
Change-Id: Ie7115e17d3c50c46c83c6f0e333da5cb534b8227
Signed-off-by: Rajkumar Subbiah <quic_rsubbia@quicinc.com>
Signed-off-by: Sandeep Gangadharaiah <quic_sandgang@quicinc.com>
The irq register and unregister calls in ppdone timeout
path can result in race condition which can lead to
scenarios where irqs will be enabled with no
callback registered. Add vblank mutex lock to avoid
such scenarios.
Change-Id: I02b07b773d6b9a28c3af431eb3d8314292769f12
Signed-off-by: Krishna Manikandan <mkrishn@codeaurora.org>
If there is unbalanced refcount for any interrupt, irq_stat_mask
does not get clear during suspend. On resume, enable irq is not
called leading to ctrl ISR permanently disabled. This is a defensive
check to recover from such scenario.
Change-Id: If78a1be5286f9b6e7ca5241cb5c980e60da00a48
Signed-off-by: daiss1 <daiss1@lenovo.com>
Reviewed-on: https://gerrit.mot.com/2088247
SLTApproved: Slta Waiver
SME-Granted: SME Approvals Granted
Tested-by: Jira Key
Reviewed-by: Guobin Zhang <zhanggb@motorola.com>
Submit-Approved: Jira Key
During Dynamic mode switch case, input_register_handler
is called even after it is registered leading to
list double add warnings and panic.
Change-Id: I312112deb08c998af516252f2117bc629eb13b37
Add a sysfs mechanism to track the idle state of display subsystem.
This allows user space to poll on the idle state node to detect when
display goes idle for longer than the time set.
Bug: 139655049
Bug: 126304228
Change-Id: I21e3c7b0830a9695db9f65526c111ce5153d1764
Signed-off-by: Adrian Salido <salidoa@google.com>
Signed-off-by: Robb Glasser <rglasser@google.com>
(cherry picked from commit 11a2193b434cb3130743fbff89a161062883132e)
Signed-off-by: Ken Huang <kenbshuang@google.com>
"LA.UM.9.12.r1-15100-SMxx50.QSSI13.0"
* tag 'LA.UM.9.12.r1-15100-SMxx50.QSSI13.0' of https://git.codelinaro.org/clo/la/platform/vendor/opensource/display-drivers:
disp: msm: dp: disable ASSR before link training
disp: msm: dsi: clear the panel esd_recovery_pending in power on commit
Change-Id: I3452dbc689d042edee94b74b7e85e320a996064d