1*74ba9207SThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-or-later */ 28be969b3SManu Abraham /* 38be969b3SManu Abraham TDA8261 8PSK/QPSK tuner driver 48be969b3SManu Abraham Copyright (C) Manu Abraham (abraham.manu@gmail.com) 58be969b3SManu Abraham 68be969b3SManu Abraham */ 78be969b3SManu Abraham 88be969b3SManu Abraham static int tda8261_get_frequency(struct dvb_frontend *fe, u32 *frequency) 98be969b3SManu Abraham { 1020721185SEmil Goode struct dvb_frontend_ops *frontend_ops = &fe->ops; 1120721185SEmil Goode struct dvb_tuner_ops *tuner_ops = &frontend_ops->tuner_ops; 128be969b3SManu Abraham int err = 0; 138be969b3SManu Abraham 14e417668dSMauro Carvalho Chehab if (tuner_ops->get_frequency) { 15e417668dSMauro Carvalho Chehab err = tuner_ops->get_frequency(fe, frequency); 168f73b481SEmil Goode if (err < 0) { 17e417668dSMauro Carvalho Chehab pr_err("%s: Invalid parameter\n", __func__); 188be969b3SManu Abraham return err; 198be969b3SManu Abraham } 20e417668dSMauro Carvalho Chehab pr_debug("%s: Frequency=%d\n", __func__, *frequency); 218be969b3SManu Abraham } 228be969b3SManu Abraham return 0; 238be969b3SManu Abraham } 248be969b3SManu Abraham 258be969b3SManu Abraham static int tda8261_set_frequency(struct dvb_frontend *fe, u32 frequency) 268be969b3SManu Abraham { 2720721185SEmil Goode struct dvb_frontend_ops *frontend_ops = &fe->ops; 2820721185SEmil Goode struct dvb_tuner_ops *tuner_ops = &frontend_ops->tuner_ops; 29e417668dSMauro Carvalho Chehab struct dtv_frontend_properties *c = &fe->dtv_property_cache; 308be969b3SManu Abraham int err = 0; 318be969b3SManu Abraham 32e417668dSMauro Carvalho Chehab if (tuner_ops->set_params) { 33e417668dSMauro Carvalho Chehab err = tuner_ops->set_params(fe); 348f73b481SEmil Goode if (err < 0) { 35e417668dSMauro Carvalho Chehab pr_err("%s: Invalid parameter\n", __func__); 368be969b3SManu Abraham return err; 378be969b3SManu Abraham } 388be969b3SManu Abraham } 39e417668dSMauro Carvalho Chehab pr_debug("%s: Frequency=%d\n", __func__, c->frequency); 408be969b3SManu Abraham return 0; 418be969b3SManu Abraham } 428be969b3SManu Abraham 438be969b3SManu Abraham static int tda8261_get_bandwidth(struct dvb_frontend *fe, u32 *bandwidth) 448be969b3SManu Abraham { 45e417668dSMauro Carvalho Chehab /* FIXME! need to calculate Bandwidth */ 46e417668dSMauro Carvalho Chehab *bandwidth = 40000000; 478be969b3SManu Abraham 488be969b3SManu Abraham return 0; 498be969b3SManu Abraham } 50