diff --git a/drivers/media/video/tuner-xc2028.c b/drivers/media/video/tuner-xc2028.c index 94f367ab5718..cef170cc2ad8 100644 --- a/drivers/media/video/tuner-xc2028.c +++ b/drivers/media/video/tuner-xc2028.c @@ -891,6 +891,14 @@ static int xc2028_set_analog_freq(struct dvb_frontend *fe, tuner_dbg("%s called\n", __FUNCTION__); + if (p->mode == V4L2_TUNER_RADIO) { + type |= FM; + if (priv->ctrl.input1) + type |= INPUT1; + return generic_set_freq(fe, (625l * p->frequency) / 10, + T_ANALOG_TV, type, 0); + } + /* if std is not defined, choose one */ if (!p->std) p->std = V4L2_STD_MN; diff --git a/drivers/media/video/tuner-xc2028.h b/drivers/media/video/tuner-xc2028.h index a59d00fb2a36..02e116b54592 100644 --- a/drivers/media/video/tuner-xc2028.h +++ b/drivers/media/video/tuner-xc2028.h @@ -15,8 +15,9 @@ struct xc2028_ctrl { char *fname; int max_len; unsigned int scode_table; - unsigned int mts :1; - unsigned int d2633:1; + unsigned int mts :1; + unsigned int d2633 :1; + unsigned int input1:1; }; struct xc2028_config {