aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/cx23885/cx23885.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/video/cx23885/cx23885.h')
-rw-r--r--drivers/media/video/cx23885/cx23885.h31
1 files changed, 27 insertions, 4 deletions
diff --git a/drivers/media/video/cx23885/cx23885.h b/drivers/media/video/cx23885/cx23885.h
index cc7a165561ff..fa744764dc8b 100644
--- a/drivers/media/video/cx23885/cx23885.h
+++ b/drivers/media/video/cx23885/cx23885.h
@@ -79,6 +79,8 @@
79#define CX23885_BOARD_MAGICPRO_PROHDTVE2 23 79#define CX23885_BOARD_MAGICPRO_PROHDTVE2 23
80#define CX23885_BOARD_HAUPPAUGE_HVR1850 24 80#define CX23885_BOARD_HAUPPAUGE_HVR1850 24
81#define CX23885_BOARD_COMPRO_VIDEOMATE_E800 25 81#define CX23885_BOARD_COMPRO_VIDEOMATE_E800 25
82#define CX23885_BOARD_HAUPPAUGE_HVR1290 26
83#define CX23885_BOARD_MYGICA_X8558PRO 27
82 84
83#define GPIO_0 0x00000001 85#define GPIO_0 0x00000001
84#define GPIO_1 0x00000002 86#define GPIO_1 0x00000002
@@ -157,6 +159,7 @@ enum cx23885_itype {
157 CX23885_VMUX_COMPOSITE3, 159 CX23885_VMUX_COMPOSITE3,
158 CX23885_VMUX_COMPOSITE4, 160 CX23885_VMUX_COMPOSITE4,
159 CX23885_VMUX_SVIDEO, 161 CX23885_VMUX_SVIDEO,
162 CX23885_VMUX_COMPONENT,
160 CX23885_VMUX_TELEVISION, 163 CX23885_VMUX_TELEVISION,
161 CX23885_VMUX_CABLE, 164 CX23885_VMUX_CABLE,
162 CX23885_VMUX_DVB, 165 CX23885_VMUX_DVB,
@@ -297,10 +300,6 @@ struct cx23885_tsport {
297 /* Allow a single tsport to have multiple frontends */ 300 /* Allow a single tsport to have multiple frontends */
298 u32 num_frontends; 301 u32 num_frontends;
299 void *port_priv; 302 void *port_priv;
300
301 /* FIXME: temporary hack */
302 int (*set_frontend_save) (struct dvb_frontend *,
303 struct dvb_frontend_parameters *);
304}; 303};
305 304
306struct cx23885_dev { 305struct cx23885_dev {
@@ -356,6 +355,16 @@ struct cx23885_dev {
356 unsigned int has_radio; 355 unsigned int has_radio;
357 struct v4l2_subdev *sd_cx25840; 356 struct v4l2_subdev *sd_cx25840;
358 357
358 /* Infrared */
359 struct v4l2_subdev *sd_ir;
360 struct work_struct ir_rx_work;
361 unsigned long ir_rx_notifications;
362 struct work_struct ir_tx_work;
363 unsigned long ir_tx_notifications;
364
365 struct card_ir *ir_input;
366 atomic_t ir_input_stopping;
367
359 /* V4l */ 368 /* V4l */
360 u32 freq; 369 u32 freq;
361 struct video_device *video_dev; 370 struct video_device *video_dev;
@@ -383,6 +392,13 @@ static inline struct cx23885_dev *to_cx23885(struct v4l2_device *v4l2_dev)
383#define call_all(dev, o, f, args...) \ 392#define call_all(dev, o, f, args...) \
384 v4l2_device_call_all(&dev->v4l2_dev, 0, o, f, ##args) 393 v4l2_device_call_all(&dev->v4l2_dev, 0, o, f, ##args)
385 394
395#define CX23885_HW_888_IR (1 << 0)
396
397#define call_hw(dev, grpid, o, f, args...) \
398 v4l2_device_call_all(&dev->v4l2_dev, grpid, o, f, ##args)
399
400extern struct v4l2_subdev *cx23885_find_hw(struct cx23885_dev *dev, u32 hw);
401
386extern struct list_head cx23885_devlist; 402extern struct list_head cx23885_devlist;
387 403
388#define SRAM_CH01 0 /* Video A */ 404#define SRAM_CH01 0 /* Video A */
@@ -455,6 +471,7 @@ extern void cx23885_wakeup(struct cx23885_tsport *port,
455 471
456extern void cx23885_gpio_set(struct cx23885_dev *dev, u32 mask); 472extern void cx23885_gpio_set(struct cx23885_dev *dev, u32 mask);
457extern void cx23885_gpio_clear(struct cx23885_dev *dev, u32 mask); 473extern void cx23885_gpio_clear(struct cx23885_dev *dev, u32 mask);
474extern u32 cx23885_gpio_get(struct cx23885_dev *dev, u32 mask);
458extern void cx23885_gpio_enable(struct cx23885_dev *dev, u32 mask, 475extern void cx23885_gpio_enable(struct cx23885_dev *dev, u32 mask,
459 int asoutput); 476 int asoutput);
460 477
@@ -471,6 +488,8 @@ extern int cx23885_tuner_callback(void *priv, int component,
471 int command, int arg); 488 int command, int arg);
472extern void cx23885_card_list(struct cx23885_dev *dev); 489extern void cx23885_card_list(struct cx23885_dev *dev);
473extern int cx23885_ir_init(struct cx23885_dev *dev); 490extern int cx23885_ir_init(struct cx23885_dev *dev);
491extern void cx23885_ir_pci_int_enable(struct cx23885_dev *dev);
492extern void cx23885_ir_fini(struct cx23885_dev *dev);
474extern void cx23885_gpio_setup(struct cx23885_dev *dev); 493extern void cx23885_gpio_setup(struct cx23885_dev *dev);
475extern void cx23885_card_setup(struct cx23885_dev *dev); 494extern void cx23885_card_setup(struct cx23885_dev *dev);
476extern void cx23885_card_setup_pre_i2c(struct cx23885_dev *dev); 495extern void cx23885_card_setup_pre_i2c(struct cx23885_dev *dev);
@@ -515,6 +534,10 @@ extern void cx23885_417_check_encoder(struct cx23885_dev *dev);
515extern void cx23885_mc417_init(struct cx23885_dev *dev); 534extern void cx23885_mc417_init(struct cx23885_dev *dev);
516extern int mc417_memory_read(struct cx23885_dev *dev, u32 address, u32 *value); 535extern int mc417_memory_read(struct cx23885_dev *dev, u32 address, u32 *value);
517extern int mc417_memory_write(struct cx23885_dev *dev, u32 address, u32 value); 536extern int mc417_memory_write(struct cx23885_dev *dev, u32 address, u32 value);
537extern int mc417_register_read(struct cx23885_dev *dev,
538 u16 address, u32 *value);
539extern int mc417_register_write(struct cx23885_dev *dev,
540 u16 address, u32 value);
518extern void mc417_gpio_set(struct cx23885_dev *dev, u32 mask); 541extern void mc417_gpio_set(struct cx23885_dev *dev, u32 mask);
519extern void mc417_gpio_clear(struct cx23885_dev *dev, u32 mask); 542extern void mc417_gpio_clear(struct cx23885_dev *dev, u32 mask);
520extern void mc417_gpio_enable(struct cx23885_dev *dev, u32 mask, int asoutput); 543extern void mc417_gpio_enable(struct cx23885_dev *dev, u32 mask, int asoutput);