Делал как тут
http://viaccessfree.biz/forum/showthread.php?s=758a3a73636924b3d8df7657740ef192&p=714322.............................................
CC [M] /home/user/s2-liplianin-v35/v4l/saa7164-cmd.o
CC [M] /home/user/s2-liplianin-v35/v4l/saa7164-api.o
CC [M] /home/user/s2-liplianin-v35/v4l/saa7164-buffer.o
CC [M] /home/user/s2-liplianin-v35/v4l/saa7164-encoder.o
CC [M] /home/user/s2-liplianin-v35/v4l/saa7164-vbi.o
CC [M] /home/user/s2-liplianin-v35/v4l/saa716x_pci.o
/home/user/s2-liplianin-v35/v4l/saa716x_pci.c:20:20: warning: 'saa716x_msi_handler' defined but not used [-Wunused-function]
CC [M] /home/user/s2-liplianin-v35/v4l/saa716x_i2c.o
CC [M] /home/user/s2-liplianin-v35/v4l/saa716x_cgu.o
CC [M] /home/user/s2-liplianin-v35/v4l/saa716x_msi.o
CC [M] /home/user/s2-liplianin-v35/v4l/saa716x_dma.o
CC [M] /home/user/s2-liplianin-v35/v4l/saa716x_vip.o
CC [M] /home/user/s2-liplianin-v35/v4l/saa716x_aip.o
CC [M] /home/user/s2-liplianin-v35/v4l/saa716x_phi.o
CC [M] /home/user/s2-liplianin-v35/v4l/saa716x_boot.o
CC [M] /home/user/s2-liplianin-v35/v4l/saa716x_fgpi.o
CC [M] /home/user/s2-liplianin-v35/v4l/saa716x_adap.o
CC [M] /home/user/s2-liplianin-v35/v4l/saa716x_gpio.o
CC [M] /home/user/s2-liplianin-v35/v4l/saa716x_greg.o
CC [M] /home/user/s2-liplianin-v35/v4l/saa716x_rom.o
/home/user/s2-liplianin-v35/v4l/saa716x_rom.c: In function 'saa716x_eeprom_data':
/home/user/s2-liplianin-v35/v4l/saa716x_rom.c:1070:1: warning: the frame size of 1120 bytes is larger than 1024 bytes [-Wframe-larger-than=]
CC [M] /home/user/s2-liplianin-v35/v4l/saa716x_spi.o
CC [M] /home/user/s2-liplianin-v35/v4l/saa716x_ff_main.o
In file included from /home/user/s2-liplianin-v35/v4l/saa716x_ff_main.c:47:0:
/home/user/s2-liplianin-v35/v4l/saa716x_ff_cmd.h:6:7: error: unknown type name 'osd_raw_cmd_t'
/home/user/s2-liplianin-v35/v4l/saa716x_ff_cmd.h:8:11: error: unknown type name 'osd_raw_cmd_t'
/home/user/s2-liplianin-v35/v4l/saa716x_ff_cmd.h:10:8: error: unknown type name 'osd_raw_data_t'
/home/user/s2-liplianin-v35/v4l/saa716x_ff_main.c: In function 'dvb_osd_ioctl':
/home/user/s2-liplianin-v35/v4l/saa716x_ff_main.c:335:13: error: 'OSD_RAW_CMD' undeclared (first use in this function)
/home/user/s2-liplianin-v35/v4l/saa716x_ff_main.c:335:13: note: each undeclared identifier is reported only once for each function it appears in
/home/user/s2-liplianin-v35/v4l/saa716x_ff_main.c:336:3: error: unknown type name 'osd_raw_cmd_t'
/home/user/s2-liplianin-v35/v4l/saa716x_ff_main.c:344:49: error: request for member 'cmd_data' in something not a structure or union
/home/user/s2-liplianin-v35/v4l/saa716x_ff_main.c:348:4: error: implicit declaration of function 'sti7109_raw_osd_cmd' [-Werror=implicit-function-declaration]
/home/user/s2-liplianin-v35/v4l/saa716x_ff_main.c:350:4: error: implicit declaration of function 'sti7109_raw_cmd' [-Werror=implicit-function-declaration]
/home/user/s2-liplianin-v35/v4l/saa716x_ff_main.c:358:18: error: 'OSD_RAW_DATA' undeclared (first use in this function)
/home/user/s2-liplianin-v35/v4l/saa716x_ff_main.c:359:3: error: unknown type name 'osd_raw_data_t'
/home/user/s2-liplianin-v35/v4l/saa716x_ff_main.c:366:3: error: implicit declaration of function 'sti7109_raw_data' [-Werror=implicit-function-declaration]
cc1: some warnings being treated as errors
make[3]: *** [/home/user/s2-liplianin-v35/v4l/saa716x_ff_main.o] Ошибка 1
make[2]: *** [_module_/home/user/s2-liplianin-v35/v4l] Error 2
make[2]: Leaving directory `/usr/src/linux-headers-3.2.0-36-generic'
make[1]: *** [default] Ошибка 2
make[1]: Выход из каталога `/home/user/s2-liplianin-v35/v4l'
make: *** [all] Ошибка 2
помогите!
поддержка отправила файл omocom.c
с содержанием
/*
* omicom.c
*
* Copyright 2010 acid454 <acid454@dmitrepn>
*
* 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.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301, USA.
*/
#include <linux/kernel.h> /* We're doing kernel work */
#include <linux/module.h> /* Specifically, a module */
#include "budget.h"
#include "stv0299.h"
#include "ves1x93.h"
#include "ves1820.h"
#include "l64781.h"
#include "tda8083.h"
#include "s5h1420.h"
#include "tda10086.h"
#include "tda826x.h"
#include "lnbp21.h"
#include "lnbh24.h"
#include "bsru6.h"
#include "bsbe1.h"
#include "tdhd1.h"
#include "stv6110x.h"
#include "stv090x.h"
#include "isl6423.h"
/*
static int demod_adr;
static int ts1;
static int ts2 = STV090x_TSMODE_SERIAL_CONTINUOUS;
static int adc1;
static int adc2;
module_param(demod_adr, int, 0x68); //104 = 0x68
module_param(ts1, int, STV090x_TSMODE_DVBCI);
//module_param(ts2, int, STV090x_TSMODE_SERIAL_CONTINUOUS);
module_param(adc1, int, STV090x_ADC_2Vpp);
module_param(adc2, int, STV090x_ADC_2Vpp);*/
DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr);
static struct stv090x_config omicom_stv090x_config = {
.device = STV0903,
.demod_mode = STV090x_SINGLE,
.clk_mode = STV090x_CLK_EXT,
.xtal = 27000000,
.address = 0x68,
.ts1_mode = STV090x_TSMODE_DVBCI,
.ts2_mode = STV090x_TSMODE_SERIAL_CONTINUOUS,
.repeater_level = STV090x_RPTLEVEL_16,
.tuner_init = NULL,
.tuner_set_mode = NULL,
.tuner_set_frequency = NULL,
.tuner_get_frequency = NULL,
.tuner_set_bandwidth = NULL,
.tuner_get_bandwidth = NULL,
.tuner_set_bbgain = NULL,
.tuner_get_bbgain = NULL,
.tuner_set_refclk = NULL,
.tuner_get_status = NULL,
};
static struct stv6110x_config omicom_stv6110x_config = {
.addr = 0x60,
.refclk = 27000000,
.clk_div = 2,
};
static void frontend_init(struct budget *budget)
{
(void)alps_bsbe1_config; /* avoid warning */
switch(budget->dev->pci->subsystem_device) {
case 0x1020: { /* TT S2-1600n */
struct stv6110x_devctl *ctl;
printk("%s: TT S2-1600n - starting setup\n", __func__);
saa7146_setgpio(budget->dev, 2, SAA7146_GPIO_OUTLO);
msleep(50);
saa7146_setgpio(budget->dev, 2, SAA7146_GPIO_OUTHI);
msleep(250);
/*
omicom_stv090x_config.address = demod_adr;
omicom_stv090x_config.ts1_mode = ts1;
omicom_stv090x_config.ts2_mode = ts2;
omicom_stv090x_config.adc1_range = adc1;
omicom_stv090x_config.adc2_range = adc2;*/
budget->dvb_frontend = dvb_attach(stv090x_attach,
&omicom_stv090x_config,
&budget->i2c_adap,
STV090x_DEMODULATOR_0);
if (budget->dvb_frontend) {
printk("%s: TT S2-1600n - frontend OK\n", __func__);
ctl = dvb_attach(stv6110x_attach,
budget->dvb_frontend,
&omicom_stv6110x_config,
&budget->i2c_adap);
if (ctl == NULL)
printk("%s: __No stv6110x found!\n", __func__);
else {
printk("%s: stv6110x found, initializing...\n", __func__);
omicom_stv090x_config.tuner_init = ctl->tuner_init;
//omicom_stv090x_config.tuner_sleep = ctl->tuner_sleep;//???
omicom_stv090x_config.tuner_set_mode = ctl->tuner_set_mode;
omicom_stv090x_config.tuner_set_frequency = ctl->tuner_set_frequency;
omicom_stv090x_config.tuner_get_frequency = ctl->tuner_get_frequency;
omicom_stv090x_config.tuner_set_bandwidth = ctl->tuner_set_bandwidth;
omicom_stv090x_config.tuner_get_bandwidth = ctl->tuner_get_bandwidth;
omicom_stv090x_config.tuner_set_bbgain = ctl->tuner_set_bbgain;
omicom_stv090x_config.tuner_get_bbgain = ctl->tuner_get_bbgain;
omicom_stv090x_config.tuner_set_refclk = ctl->tuner_set_refclk;
omicom_stv090x_config.tuner_get_status = ctl->tuner_get_status;
}
/* call the init function once to initialize
tuner's clock output divider and demod's
master clock */
if (budget->dvb_frontend->ops.init)
budget->dvb_frontend->ops.init(budget->dvb_frontend);
//dvb_attach(lnbh24_attach,budget->dvb_frontend,&budget->i2c_adap,0,0,0x08);
if (dvb_attach(lnbh24_attach,budget->dvb_frontend,&budget->i2c_adap,0x00,0x00,0x0A) == NULL)
printk("%s: __No lnbh24 found!\n", __func__);
printk("%s: TT S2-1600n - setup complete\n", __func__);
} else {
printk("%s: __No stv090x found!\n", __func__);
//dvb_frontend_detach(budget->dvb_frontend); /* It is NULL here */
budget->dvb_frontend = NULL;
}
}
break;
}
if (budget->dvb_frontend == NULL) {
printk("budget: A frontend driver was not found for device [%04x:%04x] subsystem [%04x:%04x]\n",
budget->dev->pci->vendor,
budget->dev->pci->device,
budget->dev->pci->subsystem_vendor,
budget->dev->pci->subsystem_device);
} else {
if (dvb_register_frontend(&budget->dvb_adapter, budget->dvb_frontend))
goto error_out;
}
return;
error_out:
printk("budget: Frontend registration failed!\n");
dvb_frontend_detach(budget->dvb_frontend);
budget->dvb_frontend = NULL;
return;
}
static int omicom_attach (struct saa7146_dev* dev, struct saa7146_pci_extension_data *info)
{
struct budget *budget = NULL;
int err;
budget = kmalloc(sizeof(struct budget), GFP_KERNEL);
if( NULL == budget ) {
return -ENOMEM;
}
dprintk(2, "dev:%p, info:%p, budget:%p\n", dev, info, budget);
dev->ext_priv = budget;
err = ttpci_budget_init(budget, dev, info, THIS_MODULE, adapter_nr);
if (err) {
printk("==> failed\n");
kfree (budget);
return err;
}
budget->dvb_adapter.priv = budget;
frontend_init(budget);
ttpci_budget_init_hooks(budget);
return 0;
}
static int omicom_detach (struct saa7146_dev* dev)
{
struct budget *budget = (struct budget*) dev->ext_priv;
int err;
if (budget->dvb_frontend) {
dvb_unregister_frontend(budget->dvb_frontend);
dvb_frontend_detach(budget->dvb_frontend);
}
err = ttpci_budget_deinit (budget);
kfree (budget);
dev->ext_priv = NULL;
return err;
}
static struct saa7146_extension omicom_extension;
static struct budget_info OmicomS2_info = {
.name = "Omicom S2 PCI",
.type = 0
};
static struct saa7146_pci_extension_data OmicomS2 = {
.ext_priv = &OmicomS2_info,
.ext = &omicom_extension
};
static struct pci_device_id pci_tbl[] = {
MAKE_EXTENSION_PCI(OmicomS2, 0x14c4, 0x1020),
{
.vendor = 0,
}
};
extern void ttpci_budget_irq10_handler(struct saa7146_dev *dev, u32 * isr);
static struct saa7146_extension omicom_extension = {
.name = "OmicomS2 dvb",
.flags = SAA7146_USE_I2C_IRQ,
.module = THIS_MODULE,
.pci_tbl = pci_tbl,
.attach = omicom_attach,
.detach = omicom_detach,
.irq_mask = MASK_10,
.irq_func = ttpci_budget_irq10_handler,
};
//static struct saa7146_extension budget_extension;
//#define MAKE_BUDGET_INFO(x_var,x_name,x_type)
//MAKE_BUDGET_INFO(OmicomS2, "Omicom S2 PCI", BUDGET_TT); //BUDGET_TT = 0
static int __init omicom_init(void)
{
return saa7146_register_extension(&omicom_extension);
}
static void __exit omicom_exit(void)
{
saa7146_unregister_extension(&omicom_extension);
}
module_init(omicom_init);
module_exit(omicom_exit);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("acid454, pk");
MODULE_DESCRIPTION("driver for the SAA7146 based so-called "
"budget PCI DVB cards by Siemens, Technotrend, Hauppauge");
....................
Драйвера для Omicom DVB-S2 карты на чипсете 0903.
Тут только исходный код, при установке необходима компиляция с используемым ядром.
дальше я снова завис.......