Proper handling of Flash state machine in case of
query cap V1 getting selected.
CRs-Fixed: 3416292
Change-Id: Ib727c26ac9b6c723b64f4c6dfdb6ea359716d8d4
Signed-off-by: Abhilash Mahapatra <quic_abhmah@quicinc.com>
Currently, hdcp wait loops uses the wait_event() macro which sets the
status of the thread to WAIT_UNINTERRUPTIBLE and contributes to system
load. The macro wait_event_idle() polls for a changing condition in the
same way but instead sets the thread status to WAIT_IDLE which does not
contribute to system load. This prevents hdcp threads from appearing as
hung threads in system load summaries while still properly polling for
status changes.
Change-Id: Ie6991881d912ba6fca6bb0fd9558633b1fb83492
Signed-off-by: Andrew Bartfeld <quic_abartfel@quicinc.com>
Move frame data stats collection/notification during frame-done and
retire fence sysfs notification to event thread. This will free up
some interrupt time.
Change-Id: I2648ac4287ce8712e9a059edd408a59753aa6d32
Signed-off-by: Veera Sundaram Sankaran <quic_veeras@quicinc.com>
Signed-off-by: V S Ganga VaraPrasad (VARA) Adabala <quic_vadabala@quicinc.com>
Before pm_suspend is called when there is a vsync enable event
from sf and disabling is not done pm_suspend will fail.
Following are the commit states when a pm_suspend is called:
1. Normal Active Commit - When an active commit is going on
and pm_suspend is called then forcefully do a disable
commit. This will make sure in encoder virt_disable
wait for vsync disable is exited only after vsync is
disabled.
2. Suspend Commit - When suspend commit is going on
the wait for vblank disable in encoder virt_disable will
make sure the pending vsync event from sf is already
triggered.
3. Doze mode - When in doze mode in pm_suspend we will
forcefully do a commit to change to doze suspend.
In this case, we will make sure that the commit is
completed and rc_idle is kicked in. There is a chance
disabling of vblank irq is not done in this case.
4. Doze Suspend mode- This is same as Doze Mode where
vblank irq may not be disabled.
To resolve the issue in Case3 and 4 wait for a vblank irq is added
which will queue the vblank disable work to event_thread and make
sure the queued work is completed by doing a kthread_flush.
Change-Id: I8f9969c3865f7396d6e87819d65c7b16be73ad39
Signed-off-by: Mahadevan <quic_mahap@quicinc.com>
In some corner cases there is pending vsync timestamp event to
sf when encoder is getting disabled. This is keeping vblank irq
to be enabled after sde_encoder_virt_reset leading to NULL ptr
access. In these cases, wait for vsync event to be completed which
disables the irq.
Change-Id: If0a6be1fc282906fb1b9c0fd18ede1d31d2549b3
Signed-off-by: Raviteja Tamatam <quic_travitej@quicinc.com>
- The code is based on reverse engineering of msm_drm.ko from v14.0.25.0.
- This resolves an issue with marble devices with 36_0d_0b panels occasionally flickering after the screen goes off.
Signed-off-by: Pzqqt <821026875@qq.com>
- The code is based on reverse engineering of msm_drm.ko from v14.0.23.0.
- This fixes an issue with marble devices with 36_02_0a panels flickering when switching the refresh rate from 120 to 60.
Change-Id: I9ca5f2046eb5c5a19f17862bc6bae1af7873134e
Signed-off-by: Pzqqt <821026875@qq.com>
Update function definition to be same as prototype to
avoid compile error
Change-Id: I92be0d96ce1e95e858cca6e5cad8de0564a60e5b
Signed-off-by: Deepa Guthyappa Madivalara <quic_dmadival@quicinc.com>
../techpack/dataipa/drivers/platform/msm/ipa/ipa_v3/rmnet_ipa.c:510:41: warning: implicit conversion from enumeration type 'enum ipa_ip_type_enum_v01' to different enumeration type 'enum ipa_ip_type' [-Wenum-conversion]
q6_ul_flt_rule_ptr->ip = flt_spec_ptr->ip_type;
~ ~~~~~~~~~~~~~~^~~~~~~
../techpack/dataipa/drivers/platform/msm/ipa/ipa_v3/rmnet_ipa.c:511:45: warning: implicit conversion from enumeration type 'enum ipa_filter_action_enum_v01' to different enumeration type 'enum ipa_flt_action' [-Wenum-conversion]
q6_ul_flt_rule_ptr->action = flt_spec_ptr->filter_action;
~ ~~~~~~~~~~~~~~^~~~~~~~~~~~~
Change-Id: I0eb68d707151cd103676a30659ab81bf6fced131
Instead of reading the tasklet_active state, preparing and then
setting tasklet_active to the intended value directly change the
value if necessary to avoid others reading the old value while
one is already preparing the start.
Change-Id: I8456512a7646b9f657aa23c111b80d90de4341c6