Display and wfd synchronization during teardown
* Provide a binder interface call for wfd module
to inform display about the start/stop/pause/resume
of wfd session.
* This is needed for wfd-hdmi synchronization in
case of v4l2 wfd solution. If hdmi is plugged
in during v4l2 wfd session, display-hal waits in
uevent thread for wfd teardown notification from
wfd module, before going ahead with configuring
external display.
Change-Id: I9514cb5bc7ff81de0b5dd4cdf66d8286a64ba094
diff --git a/libgralloc/gr.h b/libgralloc/gr.h
index 1949f45..e97f080 100644
--- a/libgralloc/gr.h
+++ b/libgralloc/gr.h
@@ -67,6 +67,7 @@
class Locker {
pthread_mutex_t mutex;
+ pthread_cond_t cond;
public:
class Autolock {
Locker& locker;
@@ -74,10 +75,18 @@
inline Autolock(Locker& locker) : locker(locker) { locker.lock(); }
inline ~Autolock() { locker.unlock(); }
};
- inline Locker() { pthread_mutex_init(&mutex, 0); }
- inline ~Locker() { pthread_mutex_destroy(&mutex); }
+ inline Locker() {
+ pthread_mutex_init(&mutex, 0);
+ pthread_cond_init(&cond, 0);
+ }
+ inline ~Locker() {
+ pthread_mutex_destroy(&mutex);
+ pthread_cond_destroy(&cond);
+ }
inline void lock() { pthread_mutex_lock(&mutex); }
+ inline void wait() { pthread_cond_wait(&cond, &mutex); }
inline void unlock() { pthread_mutex_unlock(&mutex); }
+ inline void signal() { pthread_cond_signal(&cond); }
};