From: Hans Verkuil hans.verkuil@cisco.com
Instead of doing:
if (state->cec_enabled_adap) adv7511_wr_and_or(sd, 0x95, 0xc0, enable ? 0x39 : 0x00);
do:
adv7511_wr_and_or(sd, 0x95, 0xc0, (state->cec_enabled_adap && enable) ? 0x39 : 0x00);
This ensures that the cec irq mask is always updated correctly according to both conditions.
Signed-off-by: Hans Verkuil hans.verkuil@cisco.com --- drivers/media/i2c/adv7511.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/media/i2c/adv7511.c b/drivers/media/i2c/adv7511.c index 002117b..ddcde2d 100644 --- a/drivers/media/i2c/adv7511.c +++ b/drivers/media/i2c/adv7511.c @@ -937,8 +937,8 @@ static void adv7511_set_isr(struct v4l2_subdev *sd, bool enable) else if (adv7511_have_hotplug(sd)) irqs |= MASK_ADV7511_EDID_RDY_INT;
- if (state->cec_enabled_adap) - adv7511_wr_and_or(sd, 0x95, 0xc0, enable ? 0x39 : 0x00); + adv7511_wr_and_or(sd, 0x95, 0xc0, + (state->cec_enabled_adap && enable) ? 0x39 : 0x00);
/* * This i2c write can fail (approx. 1 in 1000 writes). But it