Message ID | 1441012425-25050-1-git-send-email-tvboxspy@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Why not just remove the line? info->caps |= FE_CAN_INVERSION_AUTO; The capabilities call interacting with the oneshot setting is rather weird and maybe unexpected. -- 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
On 31/08/15 18:03, Johann Klammer wrote: > > Why not just remove the line? > info->caps |= FE_CAN_INVERSION_AUTO; > > The capabilities call interacting with the oneshot setting is rather weird and maybe unexpected. > > No, because in normal mode it can do auto inversion. -- 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
Hi Malcolm, >> The capabilities call interacting with the oneshot setting is rather weird >> and maybe unexpected. >> >> > > No, because in normal mode it can do auto inversion. This isn't my area of expertise, but I suspect this is going to cause some pretty confusing behavior. Generally speaking device capabilities are queried right after the frontend is opened, and the frontend capabilities typically don't ever change. In this case, an application would have to know to check the capabilities a second time after calling FE_SET_FRONTEND_TUNE_MODE in order to determine whether auto inversion *really* is available. If the goal was for the software-emulated auto inversion to be transparent to userland, perhaps it makes more sense for the oneshot mode to toggle the inversion if needed. The oneshot mode would continue to disable zigzag and the stats monitoring. I realize that this is a bit messy since it won't really be "oneshot", but I don't know what else can be done without breaking the ABI. Devin
Hi Devin On 31/08/15 19:07, Devin Heitmueller wrote: > Hi Malcolm, > >>> The capabilities call interacting with the oneshot setting is rather weird >>> and maybe unexpected. >>> >>> >> >> No, because in normal mode it can do auto inversion. ... > > If the goal was for the software-emulated auto inversion to be > transparent to userland, perhaps it makes more sense for the oneshot > mode to toggle the inversion if needed. The oneshot mode would > continue to disable zigzag and the stats monitoring. I realize that > this is a bit messy since it won't really be "oneshot", but I don't > know what else can be done without breaking the ABI. > I did think flagging INVERSION_AUTO to INVERSION_OFF on frontends not supporting inversion in oneshot mode. But it's still messy, as INVERSION_AUTO is need for emulation to work. Regards Malcolm -- 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-core/dvb_frontend.c b/drivers/media/dvb-core/dvb_frontend.c index c38ef1a..e2a3833 100644 --- a/drivers/media/dvb-core/dvb_frontend.c +++ b/drivers/media/dvb-core/dvb_frontend.c @@ -2313,9 +2313,9 @@ static int dvb_frontend_ioctl_legacy(struct file *file, dev_dbg(fe->dvb->device, "%s: current delivery system on cache: %d, V3 type: %d\n", __func__, c->delivery_system, fe->ops.info.type); - /* Force the CAN_INVERSION_AUTO bit on. If the frontend doesn't - * do it, it is done for it. */ - info->caps |= FE_CAN_INVERSION_AUTO; + /* Set CAN_INVERSION_AUTO bit on in other than oneshot mode */ + if (!(fepriv->tune_mode_flags & FE_TUNE_MODE_ONESHOT)) + info->caps |= FE_CAN_INVERSION_AUTO; err = 0; break; }
When in FE_TUNE_MODE_ONESHOT the frontend must report the actual capabilities so user can take appropriate action. With frontends that can't do auto inversion this is done by dvb-core automatically so CAN_INVERSION_AUTO is valid. However, when in FE_TUNE_MODE_ONESHOT this is not true. So only set FE_CAN_INVERSION_AUTO in modes other than FE_TUNE_MODE_ONESHOT Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com> Cc: <stable@vger.kernel.org> --- drivers/media/dvb-core/dvb_frontend.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)