]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - drivers/media/video/cx88/cx88.h
Merge branch 'master' into csb1725
[mv-sheeva.git] / drivers / media / video / cx88 / cx88.h
index 33d161a1172544f38988f1aab0f7c02d173344c5..c9981e77416a6f8292721b53333bd9cbba1da35c 100644 (file)
@@ -31,9 +31,8 @@
 #include <media/videobuf-dma-sg.h>
 #include <media/v4l2-chip-ident.h>
 #include <media/cx2341x.h>
-#if defined(CONFIG_VIDEO_CX88_DVB) || defined(CONFIG_VIDEO_CX88_DVB_MODULE)
 #include <media/videobuf-dvb.h>
-#endif
+#include <media/ir-kbd-i2c.h>
 
 #include "btcx-risc.h"
 #include "cx88-reg.h"
@@ -108,7 +107,7 @@ static unsigned int inline norm_maxh(v4l2_std_id norm)
 /* static data                                                 */
 
 struct cx8800_fmt {
-       char  *name;
+       const char  *name;
        u32   fourcc;          /* v4l2 format id */
        int   depth;
        int   flags;
@@ -138,7 +137,7 @@ struct cx88_ctrl {
 /* more */
 
 struct sram_channel {
-       char *name;
+       const char *name;
        u32  cmds_start;
        u32  ctrl_start;
        u32  cdt;
@@ -149,7 +148,7 @@ struct sram_channel {
        u32  cnt1_reg;
        u32  cnt2_reg;
 };
-extern struct sram_channel cx88_sram_channels[];
+extern const struct sram_channel const cx88_sram_channels[];
 
 /* ----------------------------------------------------------- */
 /* card configuration                                          */
@@ -240,6 +239,7 @@ extern struct sram_channel cx88_sram_channels[];
 #define CX88_BOARD_WINFAST_DTV2000H_J      82
 #define CX88_BOARD_PROF_7301               83
 #define CX88_BOARD_SAMSUNG_SMT_7020        84
+#define CX88_BOARD_TWINHAN_VP1027_DVBS     85
 
 enum cx88_itype {
        CX88_VMUX_COMPOSITE1 = 1,
@@ -262,7 +262,7 @@ struct cx88_input {
 };
 
 struct cx88_board {
-       char                    *name;
+       const char              *name;
        unsigned int            tuner_type;
        unsigned int            radio_type;
        unsigned char           tuner_addr;
@@ -281,6 +281,20 @@ struct cx88_subid {
        u32     card;
 };
 
+enum cx88_tvaudio {
+       WW_NONE = 1,
+       WW_BTSC,
+       WW_BG,
+       WW_DK,
+       WW_I,
+       WW_L,
+       WW_EIAJ,
+       WW_I2SPT,
+       WW_FM,
+       WW_I2SADC,
+       WW_M
+};
+
 #define INPUT(nr) (core->board.input[nr])
 
 /* ----------------------------------------------------------- */
@@ -300,7 +314,7 @@ struct cx88_buffer {
        /* cx88 specific */
        unsigned int           bpl;
        struct btcx_riscmem    risc;
-       struct cx8800_fmt      *fmt;
+       const struct cx8800_fmt *fmt;
        u32                    count;
 };
 
@@ -352,7 +366,7 @@ struct cx88_core {
        /* state info */
        struct task_struct         *kthread;
        v4l2_std_id                tvnorm;
-       u32                        tvaudio;
+       enum cx88_tvaudio          tvaudio;
        u32                        audiomode_manual;
        u32                        audiomode_current;
        u32                        input;
@@ -363,6 +377,9 @@ struct cx88_core {
        /* IR remote control state */
        struct cx88_IR             *ir;
 
+       /* I2C remote data */
+       struct IR_i2c_init_data    init_data;
+
        struct mutex               lock;
        /* various v4l controls */
        u32                        freq;
@@ -410,7 +427,7 @@ struct cx8800_fh {
        unsigned int               nclips;
 
        /* video capture */
-       struct cx8800_fmt          *fmt;
+       const struct cx8800_fmt    *fmt;
        unsigned int               width,height;
        struct videobuf_queue      vidq;
 
@@ -565,7 +582,7 @@ struct cx8802_dev {
 /* ----------------------------------------------------------- */
 /* cx88-core.c                                                 */
 
-extern void cx88_print_irqbits(char *name, char *tag, char **strings,
+extern void cx88_print_irqbits(const char *name, const char *tag, const char *strings[],
                               int len, u32 bits, u32 mask);
 
 extern int cx88_core_irq(struct cx88_core *core, u32 status);
@@ -592,10 +609,10 @@ cx88_free_buffer(struct videobuf_queue *q, struct cx88_buffer *buf);
 extern void cx88_risc_disasm(struct cx88_core *core,
                             struct btcx_riscmem *risc);
 extern int cx88_sram_channel_setup(struct cx88_core *core,
-                                  struct sram_channel *ch,
+                                  const struct sram_channel *ch,
                                   unsigned int bpl, u32 risc);
 extern void cx88_sram_channel_dump(struct cx88_core *core,
-                                  struct sram_channel *ch);
+                                  const struct sram_channel *ch);
 
 extern int cx88_set_scale(struct cx88_core *core, unsigned int width,
                          unsigned int height, enum v4l2_field field);
@@ -603,8 +620,8 @@ extern int cx88_set_tvnorm(struct cx88_core *core, v4l2_std_id norm);
 
 extern struct video_device *cx88_vdev_init(struct cx88_core *core,
                                           struct pci_dev *pci,
-                                          struct video_device *template,
-                                          char *type);
+                                          const struct video_device *template_,
+                                          const char *type);
 extern struct cx88_core* cx88_core_get(struct pci_dev *pci);
 extern void cx88_core_put(struct cx88_core *core,
                          struct pci_dev *pci);
@@ -630,13 +647,12 @@ int cx8800_restart_vbi_queue(struct cx8800_dev    *dev,
                             struct cx88_dmaqueue *q);
 void cx8800_vbi_timeout(unsigned long data);
 
-extern struct videobuf_queue_ops cx8800_vbi_qops;
+extern const struct videobuf_queue_ops cx8800_vbi_qops;
 
 /* ----------------------------------------------------------- */
 /* cx88-i2c.c                                                  */
 
 extern int cx88_i2c_init(struct cx88_core *core, struct pci_dev *pci);
-extern void cx88_i2c_init_ir(struct cx88_core *core);
 
 
 /* ----------------------------------------------------------- */
@@ -651,18 +667,6 @@ extern void cx88_setup_xc3028(struct cx88_core *core, struct xc2028_ctrl *ctl);
 /* ----------------------------------------------------------- */
 /* cx88-tvaudio.c                                              */
 
-#define WW_NONE                 1
-#define WW_BTSC                 2
-#define WW_BG           3
-#define WW_DK           4
-#define WW_I            5
-#define WW_L            6
-#define WW_EIAJ                 7
-#define WW_I2SPT        8
-#define WW_FM           9
-#define WW_I2SADC       10
-#define WW_M            11
-
 void cx88_set_tvaudio(struct cx88_core *core);
 void cx88_newstation(struct cx88_core *core);
 void cx88_get_stereo(struct cx88_core *core, struct v4l2_tuner *t);
@@ -686,6 +690,7 @@ int cx88_ir_fini(struct cx88_core *core);
 void cx88_ir_irq(struct cx88_core *core);
 int cx88_ir_start(struct cx88_core *core);
 void cx88_ir_stop(struct cx88_core *core);
+extern void cx88_i2c_init_ir(struct cx88_core *core);
 
 /* ----------------------------------------------------------- */
 /* cx88-mpeg.c                                                 */
@@ -705,10 +710,3 @@ int cx88_set_freq (struct cx88_core  *core,struct v4l2_frequency *f);
 int cx88_get_control(struct cx88_core *core, struct v4l2_control *ctl);
 int cx88_set_control(struct cx88_core *core, struct v4l2_control *ctl);
 int cx88_video_mux(struct cx88_core *core, unsigned int input);
-
-/*
- * Local variables:
- * c-basic-offset: 8
- * End:
- * kate: eol "unix"; indent-width 3; remove-trailing-space on; replace-trailing-space-save on; tab-width 8; replace-tabs off; space-indent off; mixed-indent off
- */