Hi Antti,

On 18/05/15 06:08, Antti Palosaari wrote:
Do not return error from get_frontend() when status is queried, but
device is not ready. dvbv5-zap has habit to call that IOCTL before
device is tuned and it also refuses to use DVBv5 statistic after
that...

In the driver I'm working on I noticed that in dvb5-zap too. I also saw a timing issue if holding fe_status in the priv struct - fe_status will remain at FE_HAS_LOCK until read_status() spins around again and this can cause get_frontend to proceed when it probably shouldn't. The end result is this early call to get_frontend() overwrites the property cache before zap has sent it through to set_frontend() and tuning then fails.

Do we need to be fixing these issues at a driver level?


Jemma.



Signed-off-by: Antti Palosaari <cr...@iki.fi>
---
  drivers/media/dvb-frontends/m88ds3103.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/media/dvb-frontends/m88ds3103.c 
b/drivers/media/dvb-frontends/m88ds3103.c
index d3d928e..03dceb5 100644
--- a/drivers/media/dvb-frontends/m88ds3103.c
+++ b/drivers/media/dvb-frontends/m88ds3103.c
@@ -742,7 +742,7 @@ static int m88ds3103_get_frontend(struct dvb_frontend *fe)
        dev_dbg(&priv->i2c->dev, "%s:\n", __func__);
if (!priv->warm || !(priv->fe_status & FE_HAS_LOCK)) {
-               ret = -EAGAIN;
+               ret = 0;
                goto err;
        }

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to