• Hans Verkuil's avatar
    media: cec: improve CEC pin event handling · 6ec1cbf6
    Hans Verkuil authored
    It turns out that the struct cec_fh event buffer size of 64 events
    (64 for CEC_EVENT_PIN_CEC_LOW and 64 for _HIGH) is too small. It's
    about 160 ms worth of events and if the Raspberry Pi is busy, then it
    might take too long for the application to be scheduled so that it can
    drain the pending events. Increase these buffers to 800 events which
    is at least 2 seconds worth of events.
    
    There is also a FIFO in between the interrupt and the cec-pin thread.
    The thread passes the events on to the CEC core. It is important that
    should this FIFO fill up the cec core will be informed that events
    have been lost so this can be communicated to the user by setting
    CEC_EVENT_FL_DROPPED_EVENTS.
    
    It is very hard to debug CEC problems if events were lost without
    informing the user of that fact.
    
    If events were dropped due to the FIFO filling up, then the debugfs
    status file will let you know how many events were dropped.
    Signed-off-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
    Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
    6ec1cbf6
vivid-cec.c 7.79 KB