History log of /hardware/qcom/display/libhwcomposer/hwc_vsync.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
c2f61ab1d7cc647126b30c4793d700299e90f192 11-May-2013 Naseer Ahmed <naseer@codeaurora.org> hwc: Simplify vsync code

Handle the wait properly in the kernel and remove unnecessary
thread signaling.

Change-Id: Iff05825a7a85d0353f3feb64e7f9a06cedab7869
/hardware/qcom/display/libhwcomposer/hwc_vsync.cpp
5441c47fc6d4e98cc5d951a53cc842b2b475e860 09-May-2013 Naseer Ahmed <naseer@codeaurora.org> hwc: Do not close fd when vsync read fails

Related-to-bug: 8804359
Change-Id: I7495c03910a57c2e2090fac6d7ba203de556a0b1
Signed-off-by: Iliyan Malchev <malchev@google.com>
/hardware/qcom/display/libhwcomposer/hwc_vsync.cpp
4df6fc1dcca26b78692c27d723c0d0de099ec103 08-May-2013 Naseer Ahmed <naseer@codeaurora.org> hwc: Disable fake vsync

Disable fall back to fake vsync even when the vsync timestamp is
invalid.

Related-to-bug: 8804359
Change-Id: Ia8fba19ce1bd0635985c6414bbcbd97b76054ebf
Signed-off-by: Iliyan Malchev <malchev@google.com>
/hardware/qcom/display/libhwcomposer/hwc_vsync.cpp
20cec8421c5211c2e5f2501f4eda5b834c4f766b 16-Mar-2013 Naseer Ahmed <naseer@codeaurora.org> hwc: Check vsync state before sending it up

The vsync enable ioctl is called in a separate thread in a
recent change
Hence it was now possible that vsync could be disabled but
SurfaceFlinger still received a vsync. With this check we make
sure that doesn't happen.

Change-Id: I459c0b98ab9ce972d86a361c5ecdfe0c1a2d0e74
/hardware/qcom/display/libhwcomposer/hwc_vsync.cpp
05207f5a7575e59e5f22bb9de46f3b6b6ce2cb8d 05-Mar-2013 Naseer Ahmed <naseer@codeaurora.org> hwc: Check for correct screen state before enabling vsync

Sometimes vsync would not be disabled before the display is
blanked.
This was due to the vsync disable ioctl being kicked off in a
thread different from the event control which surfaceflinger
called. So, while the calls from surfaceflinger are in order, the
order of execution wasn't always the same. Hence, making sure
ioctls are called in the same context to ensure order.

Also
- Make blanking/unblanking logs show the operation as a string.
- Add a debug property to dump vsync timestamps (needs framework
reboot)
- Remove a log which showed delay in reading vsync. This log was
unreliable when vsync is disabled and we're still reading from
the sysfs node.

Change-Id: Ibec04e9ffebd0ac6e1d32b7031e3668abd9390ff
CRs-fixed: 443113
/hardware/qcom/display/libhwcomposer/hwc_vsync.cpp
ee038351805af80e68e85eea245efec977bd30a3 13-Feb-2013 Naseer Ahmed <naseer@codeaurora.org> hwc: Log if vsync read takes more than 2 expected vsyncs

Change-Id: Id1daffa9d1d3521f42d121634bf5b00757f3609f
/hardware/qcom/display/libhwcomposer/hwc_vsync.cpp
a43fb8fce6d9be5577de1e0f49c99bd4fe2f6d44 10-Feb-2013 Duy Truong <dtruong@codeaurora.org> Update copyright to The Linux Foundation

Change-Id: I145b66896159ff9886ed73507f17b3165ba0266d
/hardware/qcom/display/libhwcomposer/hwc_vsync.cpp
8e1daf6b8559f557842a59c398dcad665fc3561a 19-Dec-2012 Naseer Ahmed <naseer@codeaurora.org> hwc: Retry vsync on EBUSY

The driver returns EBUSY if it is unable to complete the frame
within a timeout - this is a recoverable error

Change-Id: Ifde01c1d7515598a82d032c0ba869fa658b050a9
/hardware/qcom/display/libhwcomposer/hwc_vsync.cpp
6bacbb6cd32f78e2670ad1213fc7541f113be921 17-Nov-2012 Naseer Ahmed <naseer@codeaurora.org> hwc: Add support for faking vsync

Can be set for debugging, valgrind, board bringup etc.
Also - we fail reading the sysfs vsync, we fall back and fake it.

Bug: 7301591
Change-Id: I9509fd7aa8862d5af7d521e29fe32bef9654168c
Signed-off-by: Iliyan Malchev <malchev@google.com>
/hardware/qcom/display/libhwcomposer/hwc_vsync.cpp
08212c04d2128d8967208b823c7eb4b63720de79 17-Oct-2012 Naseer Ahmed <naseer@codeaurora.org> hwc: Open sysfs node when thread is initialized.

Earlier, the sysfs node was created in the driver for the
first time in dsi_video_on. This has now been moved to probe
so this node can be opened to the start of the thread.

Bug: 7305728
Change-Id: I01230e4fdc2bddd160ce0d84e153f1f8c179b8df
Signed-off-by: Iliyan Malchev <malchev@google.com>
/hardware/qcom/display/libhwcomposer/hwc_vsync.cpp
0f9c397181604f28d15c9273de42f97ae2b4c613 12-Oct-2012 Iliyan Malchev <malchev@google.com> hwc: add some logging

We are seeing errors where a device's hwcVsyncThread is not present for some
reason. The surface flinger has not crashed, so either the thread never got
created, or it exited withouth throwing an error. This patch adds some more
verbose on-error logging to the HWC as an attempt to verify the theory that the
thread does not get created, or fails in pthread_create. While we're at it, we
add the same logging at pthread_create() for hwcUeventThread, as well.

Also, replace the lseek()+read() with a pread() combo in the vsync thread.

Change-Id: I555d786a7d66ff4ef1dbfd95947a7d9341e56f11
related-to-bug: 7305728
Signed-off-by: Iliyan Malchev <malchev@google.com>
/hardware/qcom/display/libhwcomposer/hwc_vsync.cpp
4014777bab1f81db4157db7759d74478eefca22c 05-Oct-2012 Naseer Ahmed <naseer@codeaurora.org> hwc: don't open sysfs on every iteration

Also, read again if vsync read is interrupted

Bug: 7305728
Bug: 7274951
Change-Id: I563a4c4cacab8f124ac988ad98640b57a3d09813
Signed-off-by: Iliyan Malchev <malchev@google.com>
/hardware/qcom/display/libhwcomposer/hwc_vsync.cpp
ae823e773536ee9b6cf97c575463f1a9902370d9 05-Oct-2012 Saurabh Shah <saurshah@codeaurora.org> hwc: more error checks

-- numHwLayers==1 means that there is only the FB_TARGET which HWC shouldn't
draw. Also check for blank in set. Checking for this in prepare prevents us
from acquiring pipes.
-- add null check for private handle
-- print out vsync timestamp data on error

bug: 7274417
related-to-bug: 7288769
Change-Id: I8dae0d0748c5226fdc33ed8f5cc5259835dec2de
Signed-off-by: Iliyan Malchev <malchev@google.com>
/hardware/qcom/display/libhwcomposer/hwc_vsync.cpp
c7faa70f4a92f020f9d5df20a4ae4bb80be7a022 04-Oct-2012 Naseer Ahmed <naseer@codeaurora.org> hwc: move enable disable ioctls to vsync thread

This patch stabilized the vsync signal.

Bug: 7274951
Change-Id: Ieb6396c67d4dfb20cfde39a63a45ab6742d9ec5b
Signed-off-by: Iliyan Malchev <malchev@google.com>
/hardware/qcom/display/libhwcomposer/hwc_vsync.cpp
eac8965bf481a17c6bca291c0864d0eb3c0eac07 04-Oct-2012 Iliyan Malchev <malchev@google.com> hwc: fix some race conditions

Fix some race conditions between hwc_eventControl and the hwcVsyncThread.

Bug: 7274951
Change-Id: Ic71d65918303b4cef6a379ff5397702b2b578373
Signed-off-by: Iliyan Malchev <malchev@google.com>
/hardware/qcom/display/libhwcomposer/hwc_vsync.cpp
ff4f0254be575a264504687c407e0db2fd5573d7 01-Oct-2012 Naseer Ahmed <naseer@codeaurora.org> hwcomposer : Use sysfs to read vysnc information

* Read sysfs entries to get vsync timestamp from kernel.
* External display continues to use uevents for hotplug events
* A new thread, vsyncThread is created to read and send vsync
timestamps to HAL.
* Disable H/W VSYNC for MDP 5.x targets until kernel changes are
complete.
* Synchronization is needed to make sure read() is not called
by hwcVsyncThread when VSYNC is disabled.

Change-Id: Iab0a94a3cfce9142b8867859f2a7d9bcaecb0996
Acked-by: Neti Ravi Kumar <ravineti@codeaurora.org>
/hardware/qcom/display/libhwcomposer/hwc_vsync.cpp