Set CEC_EVENT_FL_STATE_EDID_PRESENT if needed when posting the state change event.
Signed-off-by: Hans Verkuil <[email protected]> --- drivers/media/cec/core/cec-adap.c | 2 ++ drivers/media/cec/core/cec-api.c | 10 ++++++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/drivers/media/cec/core/cec-adap.c b/drivers/media/cec/core/cec-adap.c index 1a7b79916e47..52a56cabedcf 100644 --- a/drivers/media/cec/core/cec-adap.c +++ b/drivers/media/cec/core/cec-adap.c @@ -323,6 +323,8 @@ static void cec_post_state_event(struct cec_adapter *adap) ev.state_change.log_addr_mask = adap->log_addrs.log_addr_mask; ev.state_change.have_conn_info = adap->conn_info.type != CEC_CONNECTOR_TYPE_NO_CONNECTOR; + if (adap->log_addrs.flags & CEC_LOG_ADDRS_FL_EDID_PRESENT) + ev.flags |= CEC_EVENT_FL_STATE_EDID_PRESENT; cec_queue_event(adap, &ev); } diff --git a/drivers/media/cec/core/cec-api.c b/drivers/media/cec/core/cec-api.c index 1ba080d5a123..77778ff737a6 100644 --- a/drivers/media/cec/core/cec-api.c +++ b/drivers/media/cec/core/cec-api.c @@ -560,10 +560,7 @@ static int cec_open(struct inode *inode, struct file *filp) * Initial events that are automatically sent when the cec device is * opened. */ - struct cec_event ev = { - .event = CEC_EVENT_STATE_CHANGE, - .flags = CEC_EVENT_FL_INITIAL_STATE, - }; + struct cec_event ev = {}; unsigned int i; int err; @@ -589,12 +586,17 @@ static int cec_open(struct inode *inode, struct file *filp) filp->private_data = fh; /* Queue up initial state events */ + ev.event = CEC_EVENT_STATE_CHANGE; ev.state_change.phys_addr = adap->phys_addr; ev.state_change.log_addr_mask = adap->log_addrs.log_addr_mask; ev.state_change.have_conn_info = adap->conn_info.type != CEC_CONNECTOR_TYPE_NO_CONNECTOR; + ev.flags = CEC_EVENT_FL_INITIAL_STATE; + if (adap->log_addrs.flags & CEC_LOG_ADDRS_FL_EDID_PRESENT) + ev.flags |= CEC_EVENT_FL_STATE_EDID_PRESENT; cec_queue_event_fh(fh, &ev, 0); #ifdef CONFIG_CEC_PIN + ev.flags = CEC_EVENT_FL_INITIAL_STATE; if (adap->pin && adap->pin->ops->read_hpd && !adap->devnode.unregistered) { err = adap->pin->ops->read_hpd(adap); -- 2.53.0
