Blame view

include/media/videobuf2-dvb.h 1.75 KB
701b57ee3   Hans Verkuil   [media] vb2: Add ...
1
2
3
4
5
6
7
8
  #ifndef _VIDEOBUF2_DVB_H_
  #define	_VIDEOBUF2_DVB_H_
  
  #include <dvbdev.h>
  #include <dmxdev.h>
  #include <dvb_demux.h>
  #include <dvb_net.h>
  #include <dvb_frontend.h>
3c5be988e   Junghak Sung   [media] media: vi...
9
10
  
  #include <media/videobuf2-v4l2.h>
2773b0e9b   Mauro Carvalho Chehab   [media] add media...
11
12
13
  
  /* We don't actually need to include media-device.h here */
  struct media_device;
3c5be988e   Junghak Sung   [media] media: vi...
14
15
16
17
18
  /*
   * TODO: This header file should be replaced with videobuf2-core.h
   * Currently, vb2_thread is not a stuff of videobuf2-core,
   * since vb2_thread has many dependencies on videobuf2-v4l2.
   */
701b57ee3   Hans Verkuil   [media] vb2: Add ...
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
  
  struct vb2_dvb {
  	/* filling that the job of the driver */
  	char			*name;
  	struct dvb_frontend	*frontend;
  	struct vb2_queue	dvbq;
  
  	/* video-buf-dvb state info */
  	struct mutex		lock;
  	int			nfeeds;
  
  	/* vb2_dvb_(un)register manages this */
  	struct dvb_demux	demux;
  	struct dmxdev		dmxdev;
  	struct dmx_frontend	fe_hw;
  	struct dmx_frontend	fe_mem;
  	struct dvb_net		net;
  };
  
  struct vb2_dvb_frontend {
  	struct list_head felist;
  	int id;
  	struct vb2_dvb dvb;
  };
  
  struct vb2_dvb_frontends {
  	struct list_head felist;
  	struct mutex lock;
  	struct dvb_adapter adapter;
  	int active_fe_id; /* Indicates which frontend in the felist is in use */
  	int gate; /* Frontend with gate control 0=!MFE,1=fe0,2=fe1 etc */
  };
  
  int vb2_dvb_register_bus(struct vb2_dvb_frontends *f,
  			 struct module *module,
  			 void *adapter_priv,
  			 struct device *device,
2773b0e9b   Mauro Carvalho Chehab   [media] add media...
56
  			 struct media_device *mdev,
701b57ee3   Hans Verkuil   [media] vb2: Add ...
57
58
59
60
61
62
63
64
65
66
67
68
  			 short *adapter_nr,
  			 int mfe_shared);
  
  void vb2_dvb_unregister_bus(struct vb2_dvb_frontends *f);
  
  struct vb2_dvb_frontend *vb2_dvb_alloc_frontend(struct vb2_dvb_frontends *f, int id);
  void vb2_dvb_dealloc_frontends(struct vb2_dvb_frontends *f);
  
  struct vb2_dvb_frontend *vb2_dvb_get_frontend(struct vb2_dvb_frontends *f, int id);
  int vb2_dvb_find_frontend(struct vb2_dvb_frontends *f, struct dvb_frontend *p);
  
  #endif			/* _VIDEOBUF2_DVB_H_ */