Fedora kernel-2.6.17-1.2142_FC4 patched with stable patch-2.6.17.4-vs2.0.2-rc26.diff
[linux-2.6.git] / drivers / media / dvb / ttpci / av7110_hw.h
index 826ea87..4e173c6 100644 (file)
@@ -18,7 +18,7 @@ enum av7110_bootstate
 {
        BOOTSTATE_BUFFER_EMPTY  = 0,
        BOOTSTATE_BUFFER_FULL   = 1,
-       BOOTSTATE_BOOT_COMPLETE = 2
+       BOOTSTATE_AV7110_BOOT_COMPLETE  = 2
 };
 
 enum av7110_type_rec_play_format
@@ -39,29 +39,6 @@ enum av7110_osd_palette_type
        Pal8Bit =  256     /* 256 colors for 16 bit palette */
 };
 
-enum av7110_window_display_type {
-       BITMAP1,           /* 1 bit bitmap */
-       BITMAP2,           /* 2 bit bitmap */
-       BITMAP4,           /* 4 bit bitmap */
-       BITMAP8,           /* 8 bit bitmap */
-       BITMAP1HR,         /* 1 Bit bitmap half resolution */
-       BITMAP2HR,         /* 2 bit bitmap half resolution */
-       BITMAP4HR,         /* 4 bit bitmap half resolution */
-       BITMAP8HR,         /* 8 bit bitmap half resolution */
-       YCRCB422,          /* 4:2:2 YCRCB Graphic Display */
-       YCRCB444,          /* 4:4:4 YCRCB Graphic Display */
-       YCRCB444HR,        /* 4:4:4 YCRCB graphic half resolution */
-       VIDEOTSIZE,        /* True Size Normal MPEG Video Display */
-       VIDEOHSIZE,        /* MPEG Video Display Half Resolution */
-       VIDEOQSIZE,        /* MPEG Video Display Quarter Resolution */
-       VIDEODSIZE,        /* MPEG Video Display Double Resolution */
-       VIDEOTHSIZE,       /* True Size MPEG Video Display Half Resolution */
-       VIDEOTQSIZE,       /* True Size MPEG Video Display Quarter Resolution*/
-       VIDEOTDSIZE,       /* True Size MPEG Video Display Double Resolution */
-       VIDEONSIZE,        /* Full Size MPEG Video Display */
-       CURSOR             /* Cursor */
-};
-
 /* switch defines */
 #define SB_GPIO 3
 #define SB_OFF SAA7146_GPIO_OUTLO  /* SlowBlank off (TV-Mode) */
@@ -88,6 +65,9 @@ enum av7110_video_output_mode
 #define HPQOver                0x0008
 #define OSDQFull       0x0010          /* OSD Queue Full */
 #define OSDQOver       0x0020
+#define GPMQBusy       0x0040          /* Queue not empty, FW >= 261d */
+#define HPQBusy                0x0080
+#define OSDQBusy       0x0100
 
 /* hw section filter flags */
 #define        SECTION_EIT             0x01
@@ -163,7 +143,8 @@ enum av7110_audio_command {
        MainSwitch,
        ADSwitch,
        SendDiSEqC,
-       SetRegister
+       SetRegister,
+       SpdifSwitch
 };
 
 enum av7110_request_command {
@@ -186,7 +167,8 @@ enum av7110_encoder_command {
        LoadVidCode,
        SetMonitorType,
        SetPanScanType,
-       SetFreezeMode
+       SetFreezeMode,
+       SetWSSConfig
 };
 
 enum av7110_rec_play_state {
@@ -313,11 +295,11 @@ enum av7110_command_type {
 #define        DPRAM_BASE 0x4000
 
 /* boot protocol area */
-#define BOOT_STATE     (DPRAM_BASE + 0x3F8)
-#define BOOT_SIZE      (DPRAM_BASE + 0x3FA)
-#define BOOT_BASE      (DPRAM_BASE + 0x3FC)
-#define BOOT_BLOCK     (DPRAM_BASE + 0x400)
-#define BOOT_MAX_SIZE  0xc00
+#define AV7110_BOOT_STATE      (DPRAM_BASE + 0x3F8)
+#define AV7110_BOOT_SIZE       (DPRAM_BASE + 0x3FA)
+#define AV7110_BOOT_BASE       (DPRAM_BASE + 0x3FC)
+#define AV7110_BOOT_BLOCK      (DPRAM_BASE + 0x400)
+#define AV7110_BOOT_MAX_SIZE   0xc00
 
 /* firmware command protocol area */
 #define IRQ_STATE      (DPRAM_BASE + 0x0F4)
@@ -384,19 +366,16 @@ enum av7110_command_type {
 
 
 
-extern void av7110_reset_arm(struct av7110 *av7110);
 extern int av7110_bootarm(struct av7110 *av7110);
 extern int av7110_firmversion(struct av7110 *av7110);
 #define FW_CI_LL_SUPPORT(arm_app) ((arm_app) & 0x80000000)
+#define FW_4M_SDRAM(arm_app)      ((arm_app) & 0x40000000)
 #define FW_VERSION(arm_app)      ((arm_app) & 0x0000FFFF)
 
+extern int av7110_wait_msgstate(struct av7110 *av7110, u16 flags);
 extern int av7110_fw_cmd(struct av7110 *av7110, int type, int com, int num, ...);
-extern int __av7110_send_fw_cmd(struct av7110 *av7110, u16* buf, int length);
-extern int av7110_send_fw_cmd(struct av7110 *av7110, u16* buf, int length);
-extern int av7110_send_ci_cmd(struct av7110 *av7110, u8 subcom, u8 *buf, u8 len);
 extern int av7110_fw_request(struct av7110 *av7110, u16 *request_buf,
                             int request_buf_len, u16 *reply_buf, int reply_buf_len);
-extern int av7110_fw_query(struct av7110 *av7110, u16 tag, u16* Buff, s16 length);
 
 
 /* DEBI (saa7146 data extension bus interface) access */
@@ -481,27 +460,27 @@ static inline int SendDAC(struct av7110 *av7110, u8 addr, u8 data)
        return av7110_fw_cmd(av7110, COMTYPE_AUDIODAC, AudioDAC, 2, addr, data);
 }
 
-static inline void av7710_set_video_mode(struct av7110 *av7110, int mode)
+static inline int av7710_set_video_mode(struct av7110 *av7110, int mode)
 {
-       av7110_fw_cmd(av7110, COMTYPE_ENCODER, SetVidMode, 1, mode);
+       return av7110_fw_cmd(av7110, COMTYPE_ENCODER, SetVidMode, 1, mode);
 }
 
-static int inline vidcom(struct av7110 *av7110, u32 com, u32 arg)
+static inline int vidcom(struct av7110 *av7110, u32 com, u32 arg)
 {
        return av7110_fw_cmd(av7110, COMTYPE_MISC, AV7110_FW_VIDEO_COMMAND, 4,
                             (com>>16), (com&0xffff),
                             (arg>>16), (arg&0xffff));
 }
 
-static int inline audcom(struct av7110 *av7110, u32 com)
+static inline int audcom(struct av7110 *av7110, u32 com)
 {
-       return av7110_fw_cmd(av7110, COMTYPE_MISC, AV7110_FW_AUDIO_COMMAND, 4,
+       return av7110_fw_cmd(av7110, COMTYPE_MISC, AV7110_FW_AUDIO_COMMAND, 2,
                             (com>>16), (com&0xffff));
 }
 
-static inline void Set22K(struct av7110 *av7110, int state)
+static inline int Set22K(struct av7110 *av7110, int state)
 {
-       av7110_fw_cmd(av7110, COMTYPE_AUDIODAC, (state ? ON22K : OFF22K), 0);
+       return av7110_fw_cmd(av7110, COMTYPE_AUDIODAC, (state ? ON22K : OFF22K), 0);
 }
 
 
@@ -510,6 +489,7 @@ extern int av7110_diseqc_send(struct av7110 *av7110, int len, u8 *msg, unsigned
 
 #ifdef CONFIG_DVB_AV7110_OSD
 extern int av7110_osd_cmd(struct av7110 *av7110, osd_cmd_t *dc);
+extern int av7110_osd_capability(struct av7110 *av7110, osd_cap_t *cap);
 #endif /* CONFIG_DVB_AV7110_OSD */