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