diff options
author | Mauro Carvalho Chehab <mchehab@redhat.com> | 2011-12-20 15:31:54 -0300 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2011-12-31 09:09:43 -0200 |
commit | bc9cd2736b34619b58961d506210fe0e6dfaa27d (patch) | |
tree | 07e1b310b27e35f4927b5e5df2914ef8fa65e4d5 /drivers/media/dvb/dvb-core | |
parent | eeacf1477b4460e2dbc37c9164bb46a65ab8f084 (diff) |
[media] Rename set_frontend fops to set_frontend_legacy
Passing DVBv3 parameters to set_frontend is not fun, as the
core doesn't have any way to know if the driver is using the
v3 or v5 parameters. So, rename the callback and add a new
one to allow distinguish between a mixed v3/v5 paramenter call
from a pure v5 call.
After having all frontends to use the new way, the legacy
call can be removed.
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/dvb/dvb-core')
-rw-r--r-- | drivers/media/dvb/dvb-core/dvb_frontend.c | 8 | ||||
-rw-r--r-- | drivers/media/dvb/dvb-core/dvb_frontend.h | 3 |
2 files changed, 8 insertions, 3 deletions
diff --git a/drivers/media/dvb/dvb-core/dvb_frontend.c b/drivers/media/dvb/dvb-core/dvb_frontend.c index 001804744d4..930868fc113 100644 --- a/drivers/media/dvb/dvb-core/dvb_frontend.c +++ b/drivers/media/dvb/dvb-core/dvb_frontend.c @@ -352,7 +352,9 @@ static int dvb_frontend_swzigzag_autotune(struct dvb_frontend *fe, int check_wra if (autoinversion) fepriv->parameters_in.inversion = fepriv->inversion; if (fe->ops.set_frontend) - fe_set_err = fe->ops.set_frontend(fe, &fepriv->parameters_in); + fe_set_err = fe->ops.set_frontend(fe); + else if (fe->ops.set_frontend_legacy) + fe_set_err = fe->ops.set_frontend_legacy(fe, &fepriv->parameters_in); fepriv->parameters_out = fepriv->parameters_in; if (fe_set_err < 0) { fepriv->state = FESTATE_ERROR; @@ -383,7 +385,9 @@ static void dvb_frontend_swzigzag(struct dvb_frontend *fe) if (fepriv->tune_mode_flags & FE_TUNE_MODE_ONESHOT) { if (fepriv->state & FESTATE_RETUNE) { if (fe->ops.set_frontend) - retval = fe->ops.set_frontend(fe, + retval = fe->ops.set_frontend(fe); + else if (fe->ops.set_frontend_legacy) + retval = fe->ops.set_frontend_legacy(fe, &fepriv->parameters_in); fepriv->parameters_out = fepriv->parameters_in; if (retval < 0) diff --git a/drivers/media/dvb/dvb-core/dvb_frontend.h b/drivers/media/dvb/dvb-core/dvb_frontend.h index 95f2134a162..1810bab1fb8 100644 --- a/drivers/media/dvb/dvb-core/dvb_frontend.h +++ b/drivers/media/dvb/dvb-core/dvb_frontend.h @@ -280,7 +280,8 @@ struct dvb_frontend_ops { enum dvbfe_algo (*get_frontend_algo)(struct dvb_frontend *fe); /* these two are only used for the swzigzag code */ - int (*set_frontend)(struct dvb_frontend* fe, struct dvb_frontend_parameters* params); + int (*set_frontend_legacy)(struct dvb_frontend *fe, struct dvb_frontend_parameters* params); + int (*set_frontend)(struct dvb_frontend *fe); int (*get_tune_settings)(struct dvb_frontend* fe, struct dvb_frontend_tune_settings* settings); int (*get_frontend)(struct dvb_frontend* fe, struct dvb_frontend_parameters* params); |