]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - drivers/staging/cx25821/cx25821-video-upstream-ch2.h
V4L/DVB (12730): Add conexant cx25821 driver
[karo-tx-linux.git] / drivers / staging / cx25821 / cx25821-video-upstream-ch2.h
diff --git a/drivers/staging/cx25821/cx25821-video-upstream-ch2.h b/drivers/staging/cx25821/cx25821-video-upstream-ch2.h
new file mode 100644 (file)
index 0000000..71de874
--- /dev/null
@@ -0,0 +1,107 @@
+/*\r
+ *  Driver for the Conexant CX25821 PCIe bridge\r
+ *\r
+ *  Copyright (C) 2009 Conexant Systems Inc. \r
+ *  Authors  <hiep.huynh@conexant.com>, <shu.lin@conexant.com>\r
+ *\r
+ *  This program is free software; you can redistribute it and/or modify\r
+ *  it under the terms of the GNU General Public License as published by\r
+ *  the Free Software Foundation; either version 2 of the License, or\r
+ *  (at your option) any later version.\r
+ *\r
+ *  This program is distributed in the hope that it will be useful,\r
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+ *\r
+ *  GNU General Public License for more details.\r
+ *\r
+ *  You should have received a copy of the GNU General Public License\r
+ *  along with this program; if not, write to the Free Software\r
+ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\r
+ */\r
+\r
+#include <linux/mutex.h>\r
+#include <linux/workqueue.h>\r
+\r
+\r
+#define OPEN_FILE_1           0\r
+#define NUM_PROGS             8\r
+#define NUM_FRAMES            2\r
+#define ODD_FIELD             0\r
+#define EVEN_FIELD            1 \r
+#define TOP_OFFSET            0\r
+#define FIFO_DISABLE          0\r
+#define FIFO_ENABLE           1\r
+#define TEST_FRAMES           5\r
+#define END_OF_FILE           0\r
+#define IN_PROGRESS           1\r
+#define RESET_STATUS          -1\r
+#define NUM_NO_OPS            5\r
+\r
+\r
+\r
+// PAL and NTSC line sizes and number of lines.\r
+#define WIDTH_D1              720\r
+#define NTSC_LINES_PER_FRAME  480\r
+#define PAL_LINES_PER_FRAME   576\r
+#define PAL_LINE_SZ           1440\r
+#define Y422_LINE_SZ          1440\r
+#define Y411_LINE_SZ          1080\r
+#define NTSC_FIELD_HEIGHT     240\r
+#define NTSC_ODD_FLD_LINES    241\r
+#define PAL_FIELD_HEIGHT      288\r
+\r
+#define FRAME_SIZE_NTSC_Y422    (NTSC_LINES_PER_FRAME * Y422_LINE_SZ)\r
+#define FRAME_SIZE_NTSC_Y411    (NTSC_LINES_PER_FRAME * Y411_LINE_SZ)\r
+#define FRAME_SIZE_PAL_Y422     (PAL_LINES_PER_FRAME * Y422_LINE_SZ)\r
+#define FRAME_SIZE_PAL_Y411     (PAL_LINES_PER_FRAME * Y411_LINE_SZ)\r
+\r
+#define NTSC_DATA_BUF_SZ        (Y422_LINE_SZ * NTSC_LINES_PER_FRAME)\r
+#define PAL_DATA_BUF_SZ         (Y422_LINE_SZ * PAL_LINES_PER_FRAME)\r
+\r
+#define RISC_WRITECR_INSTRUCTION_SIZE   16\r
+#define RISC_SYNC_INSTRUCTION_SIZE      4\r
+#define JUMP_INSTRUCTION_SIZE           12\r
+#define MAXSIZE_NO_OPS                  36\r
+#define DWORD_SIZE                      4\r
+\r
+\r
+\r
+#define USE_RISC_NOOP_VIDEO   1\r
+\r
+#ifdef USE_RISC_NOOP_VIDEO\r
+#define PAL_US_VID_PROG_SIZE      ((PAL_FIELD_HEIGHT) * 3 * DWORD_SIZE + RISC_WRITECR_INSTRUCTION_SIZE +   \\r
+                                    RISC_SYNC_INSTRUCTION_SIZE + NUM_NO_OPS*DWORD_SIZE)\r
+                                    \r
+#define PAL_RISC_BUF_SIZE         (2 * PAL_US_VID_PROG_SIZE)\r
+\r
+#define PAL_VID_PROG_SIZE         ((PAL_FIELD_HEIGHT*2) * 3 * DWORD_SIZE + 2*RISC_SYNC_INSTRUCTION_SIZE + \\r
+                                    RISC_WRITECR_INSTRUCTION_SIZE + JUMP_INSTRUCTION_SIZE + 2*NUM_NO_OPS*DWORD_SIZE) \r
+\r
+#define ODD_FLD_PAL_PROG_SIZE     ((PAL_FIELD_HEIGHT) * 3 * DWORD_SIZE + RISC_SYNC_INSTRUCTION_SIZE + \\r
+                                    RISC_WRITECR_INSTRUCTION_SIZE + NUM_NO_OPS*DWORD_SIZE) \r
+\r
+#define NTSC_US_VID_PROG_SIZE     ((NTSC_ODD_FLD_LINES + 1) * 3 * DWORD_SIZE + RISC_WRITECR_INSTRUCTION_SIZE + \\r
+                                    JUMP_INSTRUCTION_SIZE + NUM_NO_OPS*DWORD_SIZE)   \r
+                                    \r
+#define NTSC_RISC_BUF_SIZE        (2 * (RISC_SYNC_INSTRUCTION_SIZE + NTSC_US_VID_PROG_SIZE))         \r
+\r
+#define FRAME1_VID_PROG_SIZE      ((NTSC_ODD_FLD_LINES + NTSC_FIELD_HEIGHT) * 3 * DWORD_SIZE + 2*RISC_SYNC_INSTRUCTION_SIZE + \\r
+                                    RISC_WRITECR_INSTRUCTION_SIZE + JUMP_INSTRUCTION_SIZE + 2*NUM_NO_OPS*DWORD_SIZE)   \r
+#define ODD_FLD_NTSC_PROG_SIZE    ((NTSC_ODD_FLD_LINES) * 3 * DWORD_SIZE + RISC_SYNC_INSTRUCTION_SIZE + \\r
+                                    RISC_WRITECR_INSTRUCTION_SIZE + NUM_NO_OPS*DWORD_SIZE)    \r
+#endif\r
+\r
+\r
+#ifndef USE_RISC_NOOP_VIDEO\r
+#define PAL_US_VID_PROG_SIZE      ((PAL_FIELD_HEIGHT + 1) * 3 * DWORD_SIZE + RISC_WRITECR_INSTRUCTION_SIZE )\r
+#define PAL_RISC_BUF_SIZE         ( 2 * (RISC_SYNC_INSTRUCTION_SIZE + PAL_US_VID_PROG_SIZE) )\r
+#define PAL_VID_PROG_SIZE         ((PAL_FIELD_HEIGHT*2) * 3 * DWORD_SIZE + 2*RISC_SYNC_INSTRUCTION_SIZE + \\r
+                                    RISC_WRITECR_INSTRUCTION_SIZE + JUMP_INSTRUCTION_SIZE ) \r
+#define ODD_FLD_PAL_PROG_SIZE     ((PAL_FIELD_HEIGHT) * 3 * DWORD_SIZE + RISC_SYNC_INSTRUCTION_SIZE + RISC_WRITECR_INSTRUCTION_SIZE )\r
+#define ODD_FLD_NTSC_PROG_SIZE    ((NTSC_ODD_FLD_LINES) * 3 * DWORD_SIZE + RISC_SYNC_INSTRUCTION_SIZE + RISC_WRITECR_INSTRUCTION_SIZE )\r
+#define NTSC_US_VID_PROG_SIZE     ((NTSC_ODD_FLD_LINES + 1) * 3 * DWORD_SIZE + RISC_WRITECR_INSTRUCTION_SIZE + JUMP_INSTRUCTION_SIZE)   \r
+#define NTSC_RISC_BUF_SIZE        (2 * (RISC_SYNC_INSTRUCTION_SIZE + NTSC_US_VID_PROG_SIZE) )     \r
+#define FRAME1_VID_PROG_SIZE      ((NTSC_ODD_FLD_LINES + NTSC_FIELD_HEIGHT) * 3 * DWORD_SIZE + 2*RISC_SYNC_INSTRUCTION_SIZE + \\r
+                                    RISC_WRITECR_INSTRUCTION_SIZE + JUMP_INSTRUCTION_SIZE )\r
+#endif\r