media: cec: rework the cec event handling
Event handling was always fairly simplistic since there were only two events. With the addition of pin events this needed to be redesigned. The state_change and lost_msgs events are now core events with the guarantee that the last state is always available. The new pin events are a queue of events (up to 64 for each event) and the oldest event will be dropped if the application cannot keep up. Lost events are marked with a new event flag. Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Reviewed-by: Maxime Ripard <maxime.ripard@free-electrons.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
This commit is contained in:

committed by
Mauro Carvalho Chehab

parent
6303d97873
commit
6b2bbb0874
@@ -412,6 +412,7 @@ struct cec_log_addrs {
|
||||
#define CEC_EVENT_PIN_HIGH 4
|
||||
|
||||
#define CEC_EVENT_FL_INITIAL_STATE (1 << 0)
|
||||
#define CEC_EVENT_FL_DROPPED_EVENTS (1 << 1)
|
||||
|
||||
/**
|
||||
* struct cec_event_state_change - used when the CEC adapter changes state.
|
||||
@@ -424,7 +425,7 @@ struct cec_event_state_change {
|
||||
};
|
||||
|
||||
/**
|
||||
* struct cec_event_lost_msgs - tells you how many messages were lost due.
|
||||
* struct cec_event_lost_msgs - tells you how many messages were lost.
|
||||
* @lost_msgs: how many messages were lost.
|
||||
*/
|
||||
struct cec_event_lost_msgs {
|
||||
|
Reference in New Issue
Block a user