summaryrefslogtreecommitdiff
path: root/drivers/media/radio/radio-wl1273.c
diff options
context:
space:
mode:
authorNicholas Mc Guire <hofrat@osadl.org>2015-02-05 11:56:42 +0300
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>2015-03-02 22:50:42 +0300
commitc973f76e7e931593825280861b9ede522b67f9af (patch)
tree5ddebf5aa46b478bdbe99548563673a03e3ffe7d /drivers/media/radio/radio-wl1273.c
parentdaa939db21108c951765ce1089d423fd90f8a447 (diff)
downloadlinux-c973f76e7e931593825280861b9ede522b67f9af.tar.xz
[media] media: radio: handle timeouts
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>
Diffstat (limited to 'drivers/media/radio/radio-wl1273.c')
-rw-r--r--drivers/media/radio/radio-wl1273.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/media/radio/radio-wl1273.c b/drivers/media/radio/radio-wl1273.c
index 571c7f6de439..a93f681aa9d6 100644
--- a/drivers/media/radio/radio-wl1273.c
+++ b/drivers/media/radio/radio-wl1273.c
@@ -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;