Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Linux/drivers/media/dvb-frontends/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 2 kB image not shown  

Quelle  stb6100_proc.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
STB6100 Silicon Tuner wrapper
Copyright (C)2009 Igor M. Liplianin (liplianin@me.by)

*/


#include <linux/dvb/frontend.h>
#include <media/dvb_frontend.h>

static int stb6100_get_freq(struct dvb_frontend *fe, u32 *frequency)
{
 struct dvb_frontend_ops *frontend_ops = &fe->ops;
 struct dvb_tuner_ops *tuner_ops = &frontend_ops->tuner_ops;
 int err = 0;

 if (tuner_ops->get_frequency) {
  if (frontend_ops->i2c_gate_ctrl)
   frontend_ops->i2c_gate_ctrl(fe, 1);

  err = tuner_ops->get_frequency(fe, frequency);
  if (err < 0) {
   printk("%s: Invalid parameter\n", __func__);
   return err;
  }

  if (frontend_ops->i2c_gate_ctrl)
   frontend_ops->i2c_gate_ctrl(fe, 0);
 }

 return 0;
}

static int stb6100_set_freq(struct dvb_frontend *fe, u32 frequency)
{
 struct dvb_frontend_ops *frontend_ops = &fe->ops;
 struct dvb_tuner_ops *tuner_ops = &frontend_ops->tuner_ops;
 struct dtv_frontend_properties *c = &fe->dtv_property_cache;
 u32 bw = c->bandwidth_hz;
 int err = 0;

 c->frequency = frequency;
 c->bandwidth_hz = 0;  /* Don't adjust the bandwidth */

 if (tuner_ops->set_params) {
  if (frontend_ops->i2c_gate_ctrl)
   frontend_ops->i2c_gate_ctrl(fe, 1);

  err = tuner_ops->set_params(fe);
  c->bandwidth_hz = bw;
  if (err < 0) {
   printk("%s: Invalid parameter\n", __func__);
   return err;
  }

  if (frontend_ops->i2c_gate_ctrl)
   frontend_ops->i2c_gate_ctrl(fe, 0);

 }

 return 0;
}

static int stb6100_get_bandw(struct dvb_frontend *fe, u32 *bandwidth)
{
 struct dvb_frontend_ops *frontend_ops = &fe->ops;
 struct dvb_tuner_ops *tuner_ops = &frontend_ops->tuner_ops;
 int err = 0;

 if (tuner_ops->get_bandwidth) {
  if (frontend_ops->i2c_gate_ctrl)
   frontend_ops->i2c_gate_ctrl(fe, 1);

  err = tuner_ops->get_bandwidth(fe, bandwidth);
  if (err < 0) {
   printk(KERN_ERR "%s: Invalid parameter\n", __func__);
   return err;
  }

  if (frontend_ops->i2c_gate_ctrl)
   frontend_ops->i2c_gate_ctrl(fe, 0);
 }

 return 0;
}

static int stb6100_set_bandw(struct dvb_frontend *fe, u32 bandwidth)
{
 struct dvb_frontend_ops *frontend_ops = &fe->ops;
 struct dvb_tuner_ops *tuner_ops = &frontend_ops->tuner_ops;
 struct dtv_frontend_properties *c = &fe->dtv_property_cache;
 u32 freq = c->frequency;
 int err = 0;

 c->bandwidth_hz = bandwidth;
 c->frequency = 0;  /* Don't adjust the frequency */

 if (tuner_ops->set_params) {
  if (frontend_ops->i2c_gate_ctrl)
   frontend_ops->i2c_gate_ctrl(fe, 1);

  err = tuner_ops->set_params(fe);
  c->frequency = freq;
  if (err < 0) {
   printk(KERN_ERR "%s: Invalid parameter\n", __func__);
   return err;
  }

  if (frontend_ops->i2c_gate_ctrl)
   frontend_ops->i2c_gate_ctrl(fe, 0);

 }

 return 0;
}

Messung V0.5
C=99 H=94 G=96

¤ Dauer der Verarbeitung: 0.9 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.