18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */ 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci TDA8261 8PSK/QPSK tuner driver 48c2ecf20Sopenharmony_ci Copyright (C) Manu Abraham (abraham.manu@gmail.com) 58c2ecf20Sopenharmony_ci 68c2ecf20Sopenharmony_ci*/ 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_cistatic int tda8261_get_frequency(struct dvb_frontend *fe, u32 *frequency) 98c2ecf20Sopenharmony_ci{ 108c2ecf20Sopenharmony_ci struct dvb_frontend_ops *frontend_ops = &fe->ops; 118c2ecf20Sopenharmony_ci struct dvb_tuner_ops *tuner_ops = &frontend_ops->tuner_ops; 128c2ecf20Sopenharmony_ci int err = 0; 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_ci if (tuner_ops->get_frequency) { 158c2ecf20Sopenharmony_ci err = tuner_ops->get_frequency(fe, frequency); 168c2ecf20Sopenharmony_ci if (err < 0) { 178c2ecf20Sopenharmony_ci pr_err("%s: Invalid parameter\n", __func__); 188c2ecf20Sopenharmony_ci return err; 198c2ecf20Sopenharmony_ci } 208c2ecf20Sopenharmony_ci pr_debug("%s: Frequency=%d\n", __func__, *frequency); 218c2ecf20Sopenharmony_ci } 228c2ecf20Sopenharmony_ci return 0; 238c2ecf20Sopenharmony_ci} 248c2ecf20Sopenharmony_ci 258c2ecf20Sopenharmony_cistatic int tda8261_set_frequency(struct dvb_frontend *fe, u32 frequency) 268c2ecf20Sopenharmony_ci{ 278c2ecf20Sopenharmony_ci struct dvb_frontend_ops *frontend_ops = &fe->ops; 288c2ecf20Sopenharmony_ci struct dvb_tuner_ops *tuner_ops = &frontend_ops->tuner_ops; 298c2ecf20Sopenharmony_ci struct dtv_frontend_properties *c = &fe->dtv_property_cache; 308c2ecf20Sopenharmony_ci int err = 0; 318c2ecf20Sopenharmony_ci 328c2ecf20Sopenharmony_ci if (tuner_ops->set_params) { 338c2ecf20Sopenharmony_ci err = tuner_ops->set_params(fe); 348c2ecf20Sopenharmony_ci if (err < 0) { 358c2ecf20Sopenharmony_ci pr_err("%s: Invalid parameter\n", __func__); 368c2ecf20Sopenharmony_ci return err; 378c2ecf20Sopenharmony_ci } 388c2ecf20Sopenharmony_ci } 398c2ecf20Sopenharmony_ci pr_debug("%s: Frequency=%d\n", __func__, c->frequency); 408c2ecf20Sopenharmony_ci return 0; 418c2ecf20Sopenharmony_ci} 428c2ecf20Sopenharmony_ci 438c2ecf20Sopenharmony_cistatic int tda8261_get_bandwidth(struct dvb_frontend *fe, u32 *bandwidth) 448c2ecf20Sopenharmony_ci{ 458c2ecf20Sopenharmony_ci /* FIXME! need to calculate Bandwidth */ 468c2ecf20Sopenharmony_ci *bandwidth = 40000000; 478c2ecf20Sopenharmony_ci 488c2ecf20Sopenharmony_ci return 0; 498c2ecf20Sopenharmony_ci} 50