[media] media: radio: handle timeouts
authorNicholas Mc Guire <hofrat@osadl.org>
Thu, 5 Feb 2015 08:56:42 +0000 (05:56 -0300)
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>
Mon, 2 Mar 2015 19:50:42 +0000 (16:50 -0300)
Add handling for timeout case.

Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
drivers/media/radio/radio-wl1273.c

index 571c7f6de4392e1d80ce626a55ef1722e375560a..a93f681aa9d67c2f5dcb9bc6871f7239940960bd 100644 (file)
@@ -828,9 +828,12 @@ static int wl1273_fm_set_seek(struct wl1273_device *radio,
        if (r)
                goto out;
 
+       /* wait for the FR IRQ */
        wait_for_completion_timeout(&radio->busy, msecs_to_jiffies(1000));
-       if (!(radio->irq_received & WL1273_BL_EVENT))
+       if (!(radio->irq_received & WL1273_BL_EVENT)) {
+               r = -ETIMEDOUT;
                goto out;
+       }
 
        radio->irq_received &= ~WL1273_BL_EVENT;
 
@@ -856,7 +859,9 @@ static int wl1273_fm_set_seek(struct wl1273_device *radio,
        if (r)
                goto out;
 
-       wait_for_completion_timeout(&radio->busy, msecs_to_jiffies(1000));
+       /* wait for the FR IRQ */
+       if (!wait_for_completion_timeout(&radio->busy, msecs_to_jiffies(1000)))
+               r = -ETIMEDOUT;
 out:
        dev_dbg(radio->dev, "%s: Err: %d\n", __func__, r);
        return r;