cregit-Linux how code gets into the kernel

Release 4.11 drivers/media/dvb-frontends/dvb_dummy_fe.c

/*
 *  Driver for Dummy Frontend
 *
 *  Written by Emard <emard@softhome.net>
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *
 *  GNU General Public License for more details.
 */

#include <linux/module.h>
#include <linux/init.h>
#include <linux/string.h>
#include <linux/slab.h>

#include "dvb_frontend.h"
#include "dvb_dummy_fe.h"



struct dvb_dummy_fe_state {
	
struct dvb_frontend frontend;
};



static int dvb_dummy_fe_read_status(struct dvb_frontend *fe, enum fe_status *status) { *status = FE_HAS_SIGNAL | FE_HAS_CARRIER | FE_HAS_VITERBI | FE_HAS_SYNC | FE_HAS_LOCK; return 0; }

Contributors

PersonTokensPropCommitsCommitProp
Alan Cox2371.88%125.00%
Michael Hunold721.88%250.00%
Mauro Carvalho Chehab26.25%125.00%
Total32100.00%4100.00%


static int dvb_dummy_fe_read_ber(struct dvb_frontend* fe, u32* ber) { *ber = 0; return 0; }

Contributors

PersonTokensPropCommitsCommitProp
Michael Hunold1460.87%150.00%
Alan Cox939.13%150.00%
Total23100.00%2100.00%


static int dvb_dummy_fe_read_signal_strength(struct dvb_frontend* fe, u16* strength) { *strength = 0; return 0; }

Contributors

PersonTokensPropCommitsCommitProp
Michael Hunold1878.26%150.00%
Alan Cox521.74%150.00%
Total23100.00%2100.00%


static int dvb_dummy_fe_read_snr(struct dvb_frontend* fe, u16* snr) { *snr = 0; return 0; }

Contributors

PersonTokensPropCommitsCommitProp
Michael Hunold1878.26%150.00%
Alan Cox521.74%150.00%
Total23100.00%2100.00%


static int dvb_dummy_fe_read_ucblocks(struct dvb_frontend* fe, u32* ucblocks) { *ucblocks = 0; return 0; }

Contributors

PersonTokensPropCommitsCommitProp
Michael Hunold1565.22%150.00%
Alan Cox834.78%150.00%
Total23100.00%2100.00%

/* * Should only be implemented if it actually reads something from the hardware. * Also, it should check for the locks, in order to avoid report wrong data * to userspace. */
static int dvb_dummy_fe_get_frontend(struct dvb_frontend *fe, struct dtv_frontend_properties *p) { return 0; }

Contributors

PersonTokensPropCommitsCommitProp
Michael Hunold1157.89%133.33%
Mauro Carvalho Chehab526.32%133.33%
Alan Cox315.79%133.33%
Total19100.00%3100.00%


static int dvb_dummy_fe_set_frontend(struct dvb_frontend *fe) { if (fe->ops.tuner_ops.set_params) { fe->ops.tuner_ops.set_params(fe); if (fe->ops.i2c_gate_ctrl) fe->ops.i2c_gate_ctrl(fe, 0); } return 0; }

Contributors

PersonTokensPropCommitsCommitProp
Andrew de Quincey3664.29%125.00%
Michael Hunold1221.43%125.00%
Patrick Boettcher610.71%125.00%
Alan Cox23.57%125.00%
Total56100.00%4100.00%


static int dvb_dummy_fe_sleep(struct dvb_frontend* fe) { return 0; }

Contributors

PersonTokensPropCommitsCommitProp
Michael Hunold14100.00%1100.00%
Total14100.00%1100.00%


static int dvb_dummy_fe_init(struct dvb_frontend* fe) { return 0; }

Contributors

PersonTokensPropCommitsCommitProp
Michael Hunold1178.57%150.00%
Alan Cox321.43%150.00%
Total14100.00%2100.00%


static int dvb_dummy_fe_set_tone(struct dvb_frontend *fe, enum fe_sec_tone_mode tone) { return 0; }

Contributors

PersonTokensPropCommitsCommitProp
Michael Hunold1372.22%133.33%
Alan Cox316.67%133.33%
Mauro Carvalho Chehab211.11%133.33%
Total18100.00%3100.00%


static int dvb_dummy_fe_set_voltage(struct dvb_frontend *fe, enum fe_sec_voltage voltage) { return 0; }

Contributors

PersonTokensPropCommitsCommitProp
Michael Hunold1266.67%133.33%
Alan Cox422.22%133.33%
Mauro Carvalho Chehab211.11%133.33%
Total18100.00%3100.00%


static void dvb_dummy_fe_release(struct dvb_frontend* fe) { struct dvb_dummy_fe_state* state = fe->demodulator_priv; kfree(state); }

Contributors

PersonTokensPropCommitsCommitProp
Michael Hunold25100.00%1100.00%
Total25100.00%1100.00%

static const struct dvb_frontend_ops dvb_dummy_fe_ofdm_ops;
struct dvb_frontend* dvb_dummy_fe_ofdm_attach(void) { struct dvb_dummy_fe_state* state = NULL; /* allocate memory for the internal state */ state = kzalloc(sizeof(struct dvb_dummy_fe_state), GFP_KERNEL); if (!state) return NULL; /* create dvb_frontend */ memcpy(&state->frontend.ops, &dvb_dummy_fe_ofdm_ops, sizeof(struct dvb_frontend_ops)); state->frontend.demodulator_priv = state; return &state->frontend; }

Contributors

PersonTokensPropCommitsCommitProp
Michael Hunold6286.11%342.86%
Peter Senna Tschudin45.56%114.29%
Patrick Boettcher34.17%114.29%
Alan Cox22.78%114.29%
Matthias Schwarzott11.39%114.29%
Total72100.00%7100.00%

static const struct dvb_frontend_ops dvb_dummy_fe_qpsk_ops;
struct dvb_frontend *dvb_dummy_fe_qpsk_attach(void) { struct dvb_dummy_fe_state* state = NULL; /* allocate memory for the internal state */ state = kzalloc(sizeof(struct dvb_dummy_fe_state), GFP_KERNEL); if (!state) return NULL; /* create dvb_frontend */ memcpy(&state->frontend.ops, &dvb_dummy_fe_qpsk_ops, sizeof(struct dvb_frontend_ops)); state->frontend.demodulator_priv = state; return &state->frontend; }

Contributors

PersonTokensPropCommitsCommitProp
Michael Hunold5981.94%228.57%
Peter Senna Tschudin45.56%114.29%
Patrick Boettcher34.17%114.29%
Hans Verkuil34.17%114.29%
Alan Cox22.78%114.29%
Matthias Schwarzott11.39%114.29%
Total72100.00%7100.00%

static const struct dvb_frontend_ops dvb_dummy_fe_qam_ops;
struct dvb_frontend *dvb_dummy_fe_qam_attach(void) { struct dvb_dummy_fe_state* state = NULL; /* allocate memory for the internal state */ state = kzalloc(sizeof(struct dvb_dummy_fe_state), GFP_KERNEL); if (!state) return NULL; /* create dvb_frontend */ memcpy(&state->frontend.ops, &dvb_dummy_fe_qam_ops, sizeof(struct dvb_frontend_ops)); state->frontend.demodulator_priv = state; return &state->frontend; }

Contributors

PersonTokensPropCommitsCommitProp
Michael Hunold6184.72%233.33%
Peter Senna Tschudin45.56%116.67%
Hans Verkuil34.17%116.67%
Patrick Boettcher34.17%116.67%
Matthias Schwarzott11.39%116.67%
Total72100.00%6100.00%

static const struct dvb_frontend_ops dvb_dummy_fe_ofdm_ops = { .delsys = { SYS_DVBT }, .info = { .name = "Dummy DVB-T", .frequency_min = 0, .frequency_max = 863250000, .frequency_stepsize = 62500, .caps = FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | FE_CAN_FEC_4_5 | FE_CAN_FEC_5_6 | FE_CAN_FEC_6_7 | FE_CAN_FEC_7_8 | FE_CAN_FEC_8_9 | FE_CAN_FEC_AUTO | FE_CAN_QAM_16 | FE_CAN_QAM_64 | FE_CAN_QAM_AUTO | FE_CAN_TRANSMISSION_MODE_AUTO | FE_CAN_GUARD_INTERVAL_AUTO | FE_CAN_HIERARCHY_AUTO, }, .release = dvb_dummy_fe_release, .init = dvb_dummy_fe_init, .sleep = dvb_dummy_fe_sleep, .set_frontend = dvb_dummy_fe_set_frontend, .get_frontend = dvb_dummy_fe_get_frontend, .read_status = dvb_dummy_fe_read_status, .read_ber = dvb_dummy_fe_read_ber, .read_signal_strength = dvb_dummy_fe_read_signal_strength, .read_snr = dvb_dummy_fe_read_snr, .read_ucblocks = dvb_dummy_fe_read_ucblocks, }; static const struct dvb_frontend_ops dvb_dummy_fe_qam_ops = { .delsys = { SYS_DVBC_ANNEX_A }, .info = { .name = "Dummy DVB-C", .frequency_stepsize = 62500, .frequency_min = 51000000, .frequency_max = 858000000, .symbol_rate_min = (57840000/2)/64, /* SACLK/64 == (XIN/2)/64 */ .symbol_rate_max = (57840000/2)/4, /* SACLK/4 */ .caps = FE_CAN_QAM_16 | FE_CAN_QAM_32 | FE_CAN_QAM_64 | FE_CAN_QAM_128 | FE_CAN_QAM_256 | FE_CAN_FEC_AUTO | FE_CAN_INVERSION_AUTO }, .release = dvb_dummy_fe_release, .init = dvb_dummy_fe_init, .sleep = dvb_dummy_fe_sleep, .set_frontend = dvb_dummy_fe_set_frontend, .get_frontend = dvb_dummy_fe_get_frontend, .read_status = dvb_dummy_fe_read_status, .read_ber = dvb_dummy_fe_read_ber, .read_signal_strength = dvb_dummy_fe_read_signal_strength, .read_snr = dvb_dummy_fe_read_snr, .read_ucblocks = dvb_dummy_fe_read_ucblocks, }; static const struct dvb_frontend_ops dvb_dummy_fe_qpsk_ops = { .delsys = { SYS_DVBS }, .info = { .name = "Dummy DVB-S", .frequency_min = 950000, .frequency_max = 2150000, .frequency_stepsize = 250, /* kHz for QPSK frontends */ .frequency_tolerance = 29500, .symbol_rate_min = 1000000, .symbol_rate_max = 45000000, .caps = FE_CAN_INVERSION_AUTO | FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO | FE_CAN_QPSK }, .release = dvb_dummy_fe_release, .init = dvb_dummy_fe_init, .sleep = dvb_dummy_fe_sleep, .set_frontend = dvb_dummy_fe_set_frontend, .get_frontend = dvb_dummy_fe_get_frontend, .read_status = dvb_dummy_fe_read_status, .read_ber = dvb_dummy_fe_read_ber, .read_signal_strength = dvb_dummy_fe_read_signal_strength, .read_snr = dvb_dummy_fe_read_snr, .read_ucblocks = dvb_dummy_fe_read_ucblocks, .set_voltage = dvb_dummy_fe_set_voltage, .set_tone = dvb_dummy_fe_set_tone, }; MODULE_DESCRIPTION("DVB DUMMY Frontend"); MODULE_AUTHOR("Emard"); MODULE_LICENSE("GPL"); EXPORT_SYMBOL(dvb_dummy_fe_ofdm_attach); EXPORT_SYMBOL(dvb_dummy_fe_qam_attach); EXPORT_SYMBOL(dvb_dummy_fe_qpsk_attach);

Overall Contributors

PersonTokensPropCommitsCommitProp
Michael Hunold74476.70%423.53%
Alan Cox10210.52%15.88%
Mauro Carvalho Chehab394.02%317.65%
Andrew de Quincey363.71%15.88%
Patrick Boettcher151.55%211.76%
Peter Senna Tschudin121.24%15.88%
Tim Schmielau60.62%15.88%
Max Kellermann60.62%15.88%
Hans Verkuil60.62%15.88%
Matthias Schwarzott30.31%15.88%
Sakari Ailus10.10%15.88%
Total970100.00%17100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.