root/drivers/media/dvb-frontends/stb6100_cfg.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. stb6100_get_frequency
  2. stb6100_set_frequency
  3. stb6100_get_bandwidth
  4. stb6100_set_bandwidth

   1 /* SPDX-License-Identifier: GPL-2.0-or-later */
   2 /*
   3         STB6100 Silicon Tuner
   4         Copyright (C) Manu Abraham (abraham.manu@gmail.com)
   5 
   6         Copyright (C) ST Microelectronics
   7 
   8 */
   9 
  10 #include <linux/dvb/frontend.h>
  11 #include <media/dvb_frontend.h>
  12 
  13 static int stb6100_get_frequency(struct dvb_frontend *fe, u32 *frequency)
  14 {
  15         struct dvb_frontend_ops *frontend_ops = &fe->ops;
  16         struct dvb_tuner_ops    *tuner_ops = &frontend_ops->tuner_ops;
  17         int err = 0;
  18 
  19         if (tuner_ops->get_frequency) {
  20                 err = tuner_ops->get_frequency(fe, frequency);
  21                 if (err < 0) {
  22                         printk("%s: Invalid parameter\n", __func__);
  23                         return err;
  24                 }
  25         }
  26         return 0;
  27 }
  28 
  29 static int stb6100_set_frequency(struct dvb_frontend *fe, u32 frequency)
  30 {
  31         struct dvb_frontend_ops *frontend_ops = &fe->ops;
  32         struct dvb_tuner_ops    *tuner_ops = &frontend_ops->tuner_ops;
  33         struct dtv_frontend_properties *c = &fe->dtv_property_cache;
  34         u32 bw = c->bandwidth_hz;
  35         int err = 0;
  36 
  37         c->frequency = frequency;
  38         c->bandwidth_hz = 0;            /* Don't adjust the bandwidth */
  39 
  40         if (tuner_ops->set_params) {
  41                 err = tuner_ops->set_params(fe);
  42                 c->bandwidth_hz = bw;
  43                 if (err < 0) {
  44                         printk("%s: Invalid parameter\n", __func__);
  45                         return err;
  46                 }
  47         }
  48         return 0;
  49 }
  50 
  51 static int stb6100_get_bandwidth(struct dvb_frontend *fe, u32 *bandwidth)
  52 {
  53         struct dvb_frontend_ops *frontend_ops = &fe->ops;
  54         struct dvb_tuner_ops    *tuner_ops = &frontend_ops->tuner_ops;
  55         int err = 0;
  56 
  57         if (tuner_ops->get_bandwidth) {
  58                 err = tuner_ops->get_bandwidth(fe, bandwidth);
  59                 if (err < 0) {
  60                         printk("%s: Invalid parameter\n", __func__);
  61                         return err;
  62                 }
  63         }
  64         return 0;
  65 }
  66 
  67 static int stb6100_set_bandwidth(struct dvb_frontend *fe, u32 bandwidth)
  68 {
  69         struct dvb_frontend_ops *frontend_ops = &fe->ops;
  70         struct dvb_tuner_ops    *tuner_ops = &frontend_ops->tuner_ops;
  71         struct dtv_frontend_properties *c = &fe->dtv_property_cache;
  72         u32 freq = c->frequency;
  73         int err = 0;
  74 
  75         c->bandwidth_hz = bandwidth;
  76         c->frequency = 0;               /* Don't adjust the frequency */
  77 
  78         if (tuner_ops->set_params) {
  79                 err = tuner_ops->set_params(fe);
  80                 c->frequency = freq;
  81                 if (err < 0) {
  82                         printk("%s: Invalid parameter\n", __func__);
  83                         return err;
  84                 }
  85         }
  86         return 0;
  87 }

/* [<][>][^][v][top][bottom][index][help] */