media: cec-pin: only enable interrupts when monitoring the CEC pin
The CEC interrupt is only needed if userspace wants to monitor the CEC pin for an unconfigured CEC device. That gives it the most precise CEC pin debugging results. This avoids a corner case where the interrupt is enabled for a short period when the adapter is about to be configured. Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
This commit is contained in:
parent
bbe9cfc713
commit
2f4d3718cc
|
@ -982,7 +982,7 @@ static enum hrtimer_restart cec_pin_timer(struct hrtimer *timer)
|
|||
}
|
||||
if (pin->state != CEC_ST_IDLE || pin->ops->enable_irq == NULL ||
|
||||
pin->enable_irq_failed || adap->is_configuring ||
|
||||
adap->is_configured || adap->monitor_all_cnt)
|
||||
adap->is_configured || adap->monitor_all_cnt || !adap->monitor_pin_cnt)
|
||||
break;
|
||||
/* Switch to interrupt mode */
|
||||
atomic_set(&pin->work_irq_change, CEC_PIN_IRQ_ENABLE);
|
||||
|
@ -1317,7 +1317,7 @@ void cec_pin_changed(struct cec_adapter *adap, bool value)
|
|||
|
||||
cec_pin_update(pin, value, false);
|
||||
if (!value && (adap->is_configuring || adap->is_configured ||
|
||||
adap->monitor_all_cnt))
|
||||
adap->monitor_all_cnt || !adap->monitor_pin_cnt))
|
||||
atomic_set(&pin->work_irq_change, CEC_PIN_IRQ_DISABLE);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(cec_pin_changed);
|
||||
|
|
Loading…
Reference in New Issue