Message ID | 1431925731-7499-1-git-send-email-crope@iki.fi (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
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@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 majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
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; }
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... Signed-off-by: Antti Palosaari <crope@iki.fi> --- drivers/media/dvb-frontends/m88ds3103.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)