From fc09d04ae6d64aa9b9be1f5fc286e499fa3ba54c Mon Sep 17 00:00:00 2001 From: Mauro Carvalho Chehab Date: Tue, 17 Jan 2012 13:54:01 -0200 Subject: [PATCH] dvb/dvb-file: Try again after a while, if -EAGAIN is returned Signed-off-by: Mauro Carvalho Chehab --- utils/dvb/dvb-file.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/utils/dvb/dvb-file.c b/utils/dvb/dvb-file.c index dabae8b..6bfdffd 100644 --- a/utils/dvb/dvb-file.c +++ b/utils/dvb/dvb-file.c @@ -20,6 +20,7 @@ #include #include #include +#include #include "dvb-file.h" #include "libscan.h" @@ -793,9 +794,14 @@ int store_dvb_channel(struct dvb_file **dvb_file, } /* Copy data from parms */ - if (get_detected) - dvb_fe_get_parms(parms); - + if (get_detected) { + int rc; + do { + rc = dvb_fe_get_parms(parms); + if (rc == EAGAIN) + usleep(100000); + } while (rc == EAGAIN); + } for (j = 0; j < parms->n_props; j++) { entry->props[j].cmd = parms->dvb_prop[j].cmd; entry->props[j].u.data = parms->dvb_prop[j].u.data; -- 2.7.4