media: pulse8-cec: schedule next ping after current ping finished
authorHans Verkuil <hverkuil-cisco@xs4all.nl>
Wed, 11 Dec 2019 16:22:30 +0000 (17:22 +0100)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Mon, 16 Dec 2019 11:05:09 +0000 (12:05 +0100)
Don't schedule the next ping before the current ping is
sent, schedule it after.

Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/media/usb/pulse8-cec/pulse8-cec.c

index d18d1f456576adf2cb84e9b24b2d324aca731acb..17fcaf7e558a48ac21eef935ef62959d02fd63c9 100644 (file)
@@ -790,7 +790,6 @@ static void pulse8_ping_eeprom_work_handler(struct work_struct *work)
                container_of(work, struct pulse8, ping_eeprom_work.work);
        u8 cmd;
 
-       schedule_delayed_work(&pulse8->ping_eeprom_work, PING_PERIOD);
        mutex_lock(&pulse8->lock);
        cmd = MSGCODE_PING;
        pulse8_send_and_wait(pulse8, &cmd, 1,
@@ -809,6 +808,7 @@ static void pulse8_ping_eeprom_work_handler(struct work_struct *work)
                        pulse8->config_pending = false;
        }
 unlock:
+       schedule_delayed_work(&pulse8->ping_eeprom_work, PING_PERIOD);
        mutex_unlock(&pulse8->lock);
 }