These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / drivers / media / platform / s5p-jpeg / jpeg-regs.h
index 050fc44..1870400 100644 (file)
 
 /* JPEG INT Register bit */
 #define EXYNOS4_INT_EN_MASK            (0x1f << 0)
+#define EXYNOS5433_INT_EN_MASK         (0x1ff << 0)
 #define EXYNOS4_PROT_ERR_INT_EN                (1 << 0)
 #define EXYNOS4_IMG_COMPLETION_INT_EN  (1 << 1)
 #define EXYNOS4_DEC_INVALID_FORMAT_EN  (1 << 2)
 #define EXYNOS4_MULTI_SCAN_ERROR_EN    (1 << 3)
 #define EXYNOS4_FRAME_ERR_EN           (1 << 4)
 #define EXYNOS4_INT_EN_ALL             (0x1f << 0)
+#define EXYNOS5433_INT_EN_ALL          (0x1b6 << 0)
 
 #define EXYNOS4_MOD_REG_PROC_ENC       (0 << 3)
 #define EXYNOS4_MOD_REG_PROC_DEC       (1 << 3)
 
 #define EXYNOS4_ENC_FMT_SHIFT                  24
 #define EXYNOS4_ENC_FMT_MASK                   (3 << EXYNOS4_ENC_FMT_SHIFT)
+#define EXYNOS5433_ENC_FMT_MASK                        (7 << EXYNOS4_ENC_FMT_SHIFT)
+
 #define EXYNOS4_ENC_FMT_GRAY                   (0 << EXYNOS4_ENC_FMT_SHIFT)
 #define EXYNOS4_ENC_FMT_YUV_444                        (1 << EXYNOS4_ENC_FMT_SHIFT)
 #define EXYNOS4_ENC_FMT_YUV_422                        (2 << EXYNOS4_ENC_FMT_SHIFT)
 
 #define EXYNOS4_SWAP_CHROMA_CRCB               (1 << 26)
 #define EXYNOS4_SWAP_CHROMA_CBCR               (0 << 26)
+#define EXYNOS5433_SWAP_CHROMA_CRCB            (1 << 27)
+#define EXYNOS5433_SWAP_CHROMA_CBCR            (0 << 27)
 
 /* JPEG HUFF count Register bit */
 #define EXYNOS4_HUFF_COUNT_MASK                        0xffff
 #define EXYNOS4_DECODED_IMG_FMT_MASK           0x3
 
 /* JPEG TBL SEL Register bit */
-#define EXYNOS4_Q_TBL_COMP1_0          (0 << 0)
-#define EXYNOS4_Q_TBL_COMP1_1          (1 << 0)
-#define EXYNOS4_Q_TBL_COMP1_2          (2 << 0)
-#define EXYNOS4_Q_TBL_COMP1_3          (3 << 0)
-
-#define EXYNOS4_Q_TBL_COMP2_0          (0 << 2)
-#define EXYNOS4_Q_TBL_COMP2_1          (1 << 2)
-#define EXYNOS4_Q_TBL_COMP2_2          (2 << 2)
-#define EXYNOS4_Q_TBL_COMP2_3          (3 << 2)
-
-#define EXYNOS4_Q_TBL_COMP3_0          (0 << 4)
-#define EXYNOS4_Q_TBL_COMP3_1          (1 << 4)
-#define EXYNOS4_Q_TBL_COMP3_2          (2 << 4)
-#define EXYNOS4_Q_TBL_COMP3_3          (3 << 4)
-
-#define EXYNOS4_HUFF_TBL_COMP1_AC_0_DC_0       (0 << 6)
-#define EXYNOS4_HUFF_TBL_COMP1_AC_0_DC_1       (1 << 6)
-#define EXYNOS4_HUFF_TBL_COMP1_AC_1_DC_0       (2 << 6)
-#define EXYNOS4_HUFF_TBL_COMP1_AC_1_DC_1       (3 << 6)
-
-#define EXYNOS4_HUFF_TBL_COMP2_AC_0_DC_0       (0 << 8)
-#define EXYNOS4_HUFF_TBL_COMP2_AC_0_DC_1       (1 << 8)
-#define EXYNOS4_HUFF_TBL_COMP2_AC_1_DC_0       (2 << 8)
-#define EXYNOS4_HUFF_TBL_COMP2_AC_1_DC_1       (3 << 8)
-
-#define EXYNOS4_HUFF_TBL_COMP3_AC_0_DC_0       (0 << 10)
-#define EXYNOS4_HUFF_TBL_COMP3_AC_0_DC_1       (1 << 10)
-#define EXYNOS4_HUFF_TBL_COMP3_AC_1_DC_0       (2 << 10)
-#define EXYNOS4_HUFF_TBL_COMP3_AC_1_DC_1       (3 << 10)
+#define EXYNOS4_Q_TBL_COMP(c, n)       ((n) << (((c) - 1) << 1))
+
+#define EXYNOS4_Q_TBL_COMP1_0          EXYNOS4_Q_TBL_COMP(1, 0)
+#define EXYNOS4_Q_TBL_COMP1_1          EXYNOS4_Q_TBL_COMP(1, 1)
+#define EXYNOS4_Q_TBL_COMP1_2          EXYNOS4_Q_TBL_COMP(1, 2)
+#define EXYNOS4_Q_TBL_COMP1_3          EXYNOS4_Q_TBL_COMP(1, 3)
+
+#define EXYNOS4_Q_TBL_COMP2_0          EXYNOS4_Q_TBL_COMP(2, 0)
+#define EXYNOS4_Q_TBL_COMP2_1          EXYNOS4_Q_TBL_COMP(2, 1)
+#define EXYNOS4_Q_TBL_COMP2_2          EXYNOS4_Q_TBL_COMP(2, 2)
+#define EXYNOS4_Q_TBL_COMP2_3          EXYNOS4_Q_TBL_COMP(2, 3)
+
+#define EXYNOS4_Q_TBL_COMP3_0          EXYNOS4_Q_TBL_COMP(3, 0)
+#define EXYNOS4_Q_TBL_COMP3_1          EXYNOS4_Q_TBL_COMP(3, 1)
+#define EXYNOS4_Q_TBL_COMP3_2          EXYNOS4_Q_TBL_COMP(3, 2)
+#define EXYNOS4_Q_TBL_COMP3_3          EXYNOS4_Q_TBL_COMP(3, 3)
+
+#define EXYNOS4_HUFF_TBL_COMP(c, n)    ((n) << ((((c) - 1) << 1) + 6))
+
+#define EXYNOS4_HUFF_TBL_COMP1_AC_0_DC_0       \
+       EXYNOS4_HUFF_TBL_COMP(1, 0)
+#define EXYNOS4_HUFF_TBL_COMP1_AC_0_DC_1       \
+       EXYNOS4_HUFF_TBL_COMP(1, 1)
+#define EXYNOS4_HUFF_TBL_COMP1_AC_1_DC_0       \
+       EXYNOS4_HUFF_TBL_COMP(1, 2)
+#define EXYNOS4_HUFF_TBL_COMP1_AC_1_DC_1       \
+       EXYNOS4_HUFF_TBL_COMP(1, 3)
+
+#define EXYNOS4_HUFF_TBL_COMP2_AC_0_DC_0       \
+       EXYNOS4_HUFF_TBL_COMP(2, 0)
+#define EXYNOS4_HUFF_TBL_COMP2_AC_0_DC_1       \
+       EXYNOS4_HUFF_TBL_COMP(2, 1)
+#define EXYNOS4_HUFF_TBL_COMP2_AC_1_DC_0       \
+       EXYNOS4_HUFF_TBL_COMP(2, 2)
+#define EXYNOS4_HUFF_TBL_COMP2_AC_1_DC_1       \
+       EXYNOS4_HUFF_TBL_COMP(2, 3)
+
+#define EXYNOS4_HUFF_TBL_COMP3_AC_0_DC_0       \
+       EXYNOS4_HUFF_TBL_COMP(3, 0)
+#define EXYNOS4_HUFF_TBL_COMP3_AC_0_DC_1       \
+       EXYNOS4_HUFF_TBL_COMP(3, 1)
+#define EXYNOS4_HUFF_TBL_COMP3_AC_1_DC_0       \
+       EXYNOS4_HUFF_TBL_COMP(3, 2)
+#define EXYNOS4_HUFF_TBL_COMP3_AC_1_DC_1       \
+       EXYNOS4_HUFF_TBL_COMP(3, 3)
+
+#define EXYNOS4_NF_SHIFT                       16
+#define EXYNOS4_NF_MASK                                0xff
+#define EXYNOS4_NF(x)                          \
+       (((x) << EXYNOS4_NF_SHIFT) & EXYNOS4_NF_MASK)
 
 /* JPEG quantizer table register */
 #define EXYNOS4_QTBL_CONTENT(n)        (0x100 + (n) * 0x40)