• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * drivers/amlogic/amports/rmparser.h
3  *
4  * Copyright (C) 2015 Amlogic, Inc. All rights reserved.
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful, but WITHOUT
12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
14  * more details.
15  *
16  */
17 
18 #ifndef RMPARSER_H
19 #define RMPARSER_H
20 
21 #include "../../frame_provider/decoder/utils/vdec.h"
22 
23 extern void rm_set_vasid(u32 vid, u32 aid);
24 
25 extern ssize_t rmparser_write(struct file *file,
26 		struct stream_buf_s *vbuf,
27 		struct stream_buf_s *abuf,
28 		const char __user *buf, size_t count);
29 
30 s32 rmparser_init(struct vdec_s *vdec);
31 
32 extern void rmparser_release(void);
33 
34 extern void rm_audio_reset(void);
35 
36 extern void vreal_set_fatal_flag(int flag);
37 
38 #ifdef CONFIG_AM_DVB
39 extern int tsdemux_set_reset_flag(void);
40 #endif
41 
42 /* TODO: move to register headers */
43 #define ES_PACK_SIZE_BIT                8
44 #define ES_PACK_SIZE_WID                24
45 
46 #define ES_CTRL_WID                     8
47 #define ES_CTRL_BIT                     0
48 #define ES_TYPE_MASK                    (3 << 6)
49 #define ES_TYPE_VIDEO                   (0 << 6)
50 #define ES_TYPE_AUDIO                   (1 << 6)
51 #define ES_TYPE_SUBTITLE                (2 << 6)
52 
53 #define ES_WRITE                        (1<<5)
54 #define ES_PASSTHROUGH                  (1<<4)
55 #define ES_INSERT_BEFORE_ES_WRITE       (1<<3)
56 #define ES_DISCARD                      (1<<2)
57 #define ES_SEARCH                       (1<<1)
58 #define ES_PARSER_START                 (1<<0)
59 #define ES_PARSER_BUSY                  (1<<0)
60 
61 #define PARSER_INTSTAT_FETCH_CMD    (1<<7)
62 #define PARSER_INTSTAT_PARSE        (1<<4)
63 #define PARSER_INTSTAT_DISCARD      (1<<3)
64 #define PARSER_INTSTAT_INSZERO      (1<<2)
65 #define PARSER_INTSTAT_ACT_NOSSC    (1<<1)
66 #define PARSER_INTSTAT_SC_FOUND     (1<<0)
67 
68 #define FETCH_CIR_BUF               (1<<31)
69 #define FETCH_CHK_BUF_STOP          (1<<30)
70 #define FETCH_PASSTHROUGH           (1<<29)
71 #define FETCH_ENDIAN                27
72 #define FETCH_PASSTHROUGH_TYPE_MASK (0x3<<27)
73 #define FETCH_ENDIAN_MASK           (0x7<<27)
74 #define FETCH_BUF_SIZE_MASK         (0x7ffffff)
75 #define FETCH_CMD_PTR_MASK          3
76 #define FETCH_CMD_RD_PTR_BIT        5
77 #define FETCH_CMD_WR_PTR_BIT        3
78 #define FETCH_CMD_NUM_MASK          3
79 #define FETCH_CMD_NUM_BIT           0
80 
81 #define ES_COUNT_MASK                0xfff
82 #define ES_COUNT_BIT                 20
83 #define ES_REQ_PENDING               (1<<19)
84 #define ES_PASSTHROUGH_EN            (1<<18)
85 #define ES_PASSTHROUGH_TYPE_MASK     (3<<16)
86 #define ES_PASSTHROUGH_TYPE_VIDEO    (0<<16)
87 #define ES_PASSTHROUGH_TYPE_AUDIO    (1<<16)
88 #define ES_PASSTHROUGH_TYPE_SUBTITLE (2<<16)
89 #define ES_WR_ENDIAN_MASK            (0x7)
90 #define ES_SUB_WR_ENDIAN_BIT         9
91 #define ES_SUB_MAN_RD_PTR            (1<<8)
92 #define ES_AUD_WR_ENDIAN_BIT         5
93 #define ES_AUD_MAN_RD_PTR            (1<<4)
94 #define ES_VID_WR_ENDIAN_BIT         1
95 #define ES_VID_MAN_RD_PTR            (1<<0)
96 
97 #define PS_CFG_FETCH_DMA_URGENT         (1<<31)
98 #define PS_CFG_STREAM_DMA_URGENT        (1<<30)
99 #define PS_CFG_FORCE_PFIFO_REN          (1<<29)
100 #define PS_CFG_PFIFO_PEAK_EN            (1<<28)
101 #define PS_CFG_SRC_SEL_BIT              24
102 #define PS_CFG_SRC_SEL_MASK             (3<<PS_CFG_SRC_SEL_BIT)
103 #define PS_CFG_SRC_SEL_FETCH            (0<<PS_CFG_SRC_SEL_BIT)
104 #define PS_CFG_SRC_SEL_AUX1             (1<<PS_CFG_SRC_SEL_BIT)	/* from NDMA */
105 #define PS_CFG_SRC_SEL_AUX2             (2<<PS_CFG_SRC_SEL_BIT)
106 #define PS_CFG_SRC_SEL_AUX3             (3<<PS_CFG_SRC_SEL_BIT)
107 #define PS_CFG_PFIFO_EMPTY_CNT_BIT      16
108 #define PS_CFG_PFIFO_EMPTY_CNT_MASK     0xff
109 #define PS_CFG_MAX_ES_WR_CYCLE_BIT      12
110 #define PS_CFG_MAX_ES_WR_CYCLE_MASK     0xf
111 #define PS_CFG_STARTCODE_WID_MASK       (0x3<<10)
112 #define PS_CFG_STARTCODE_WID_8          (0x0<<10)
113 #define PS_CFG_STARTCODE_WID_16         (0x1<<10)
114 #define PS_CFG_STARTCODE_WID_24         (0x2<<10)
115 #define PS_CFG_STARTCODE_WID_32         (0x3<<10)
116 #define PS_CFG_PFIFO_ACCESS_WID_MASK    (0x3<<8)
117 #define PS_CFG_PFIFO_ACCESS_WID_8       (0x0<<8)
118 #define PS_CFG_PFIFO_ACCESS_WID_16      (0x1<<8)
119 #define PS_CFG_PFIFO_ACCESS_WID_24      (0x2<<8)
120 #define PS_CFG_PFIFO_ACCESS_WID_32      (0x3<<8)
121 #define PS_CFG_MAX_FETCH_CYCLE_BIT      0
122 #define PS_CFG_MAX_FETCH_CYCLE_MASK     0xff
123 
124 #define PARSER_INT_DISABLE_CNT_MASK 0xffff
125 #define PARSER_INT_DISABLE_CNT_BIT  16
126 #define PARSER_INT_HOST_EN_MASK     0xff
127 #define PARSER_INT_HOST_EN_BIT      8
128 #define PARSER_INT_AMRISC_EN_MASK   0xff
129 #define PARSER_INT_AMRISC_EN_BIT    0
130 #define PARSER_INT_ALL              0xff
131 
132 #define RESET_PARSER        (1<<8)
133 #define TS_HIU_ENABLE              5
134 #define USE_HI_BSF_INTERFACE       7
135 
136 #endif				/* RMPARSER_H */
137