firesat: fix DVB-S2 device recognition
[linux-2.6/mini2440.git] / drivers / media / dvb / firesat / firesat.h
blobd1e2ce37063e1f1487a3284134a11b92b7097cc7
1 #ifndef __FIRESAT_H
2 #define __FIRESAT_H
4 #include "dvb_frontend.h"
5 #include "dmxdev.h"
6 #include "dvb_demux.h"
7 #include "dvb_net.h"
9 #include <linux/semaphore.h>
10 #include <linux/dvb/frontend.h>
11 #include <linux/dvb/dmx.h>
13 enum model_type {
14 FireSAT_DVB_S = 1,
15 FireSAT_DVB_C = 2,
16 FireSAT_DVB_T = 3,
17 FireSAT_DVB_S2 = 4
20 struct firesat {
21 struct dvb_demux dvb_demux;
22 char *model_name;
24 /* DVB bits */
25 struct dvb_adapter *adapter;
26 struct dmxdev dmxdev;
27 struct dvb_demux demux;
28 struct dmx_frontend frontend;
29 struct dvb_net dvbnet;
30 struct dvb_frontend_info *frontend_info;
31 struct dvb_frontend *fe;
33 struct dvb_device *cadev;
34 int has_ci;
36 struct semaphore avc_sem;
37 atomic_t avc_reply_received;
39 atomic_t reschedule_remotecontrol;
41 struct firesat_channel {
42 struct firesat *firesat;
43 struct dvb_demux_feed *dvbdmxfeed;
45 int active;
46 int id;
47 int pid;
48 int type; /* 1 - TS, 2 - Filter */
49 } channel[16];
50 struct semaphore demux_sem;
52 /* needed by avc_api */
53 void *respfrm;
54 int resp_length;
56 // nodeid_t nodeid;
57 struct hpsb_host *host;
58 u64 guid; /* GUID of this node */
59 u32 guid_vendor_id; /* Top 24bits of guid */
60 struct node_entry *nodeentry;
62 enum model_type type;
63 char subunit;
64 fe_sec_voltage_t voltage;
65 fe_sec_tone_mode_t tone;
67 int isochannel;
69 struct list_head list;
72 extern struct list_head firesat_list;
73 extern spinlock_t firesat_list_lock;
75 /* firesat_dvb.c */
76 extern int firesat_start_feed(struct dvb_demux_feed *dvbdmxfeed);
77 extern int firesat_stop_feed(struct dvb_demux_feed *dvbdmxfeed);
78 extern int firesat_dvbdev_init(struct firesat *firesat,
79 struct device *dev,
80 struct dvb_frontend *fe);
82 /* firesat_fe.c */
83 extern int firesat_frontend_attach(struct firesat *firesat, struct dvb_frontend *fe);
86 #endif