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 <crope@xxxxxx>
---
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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html