1f5fbb83fSMauro Carvalho Chehab /* SPDX-License-Identifier: GPL-2.0 */
29d4fa1a1SMauro Carvalho Chehab /*
39d4fa1a1SMauro Carvalho Chehab  * Support for Intel Camera Imaging ISP subsystem.
49d4fa1a1SMauro Carvalho Chehab  * Copyright (c) 2010-2015, Intel Corporation.
59d4fa1a1SMauro Carvalho Chehab  *
69d4fa1a1SMauro Carvalho Chehab  * This program is free software; you can redistribute it and/or modify it
79d4fa1a1SMauro Carvalho Chehab  * under the terms and conditions of the GNU General Public License,
89d4fa1a1SMauro Carvalho Chehab  * version 2, as published by the Free Software Foundation.
99d4fa1a1SMauro Carvalho Chehab  *
109d4fa1a1SMauro Carvalho Chehab  * This program is distributed in the hope it will be useful, but WITHOUT
119d4fa1a1SMauro Carvalho Chehab  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
129d4fa1a1SMauro Carvalho Chehab  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
139d4fa1a1SMauro Carvalho Chehab  * more details.
149d4fa1a1SMauro Carvalho Chehab  */
159d4fa1a1SMauro Carvalho Chehab 
169d4fa1a1SMauro Carvalho Chehab #ifndef __DMA_LOCAL_H_INCLUDED__
179d4fa1a1SMauro Carvalho Chehab #define __DMA_LOCAL_H_INCLUDED__
189d4fa1a1SMauro Carvalho Chehab 
199d4fa1a1SMauro Carvalho Chehab #include <type_support.h>
209d4fa1a1SMauro Carvalho Chehab #include "dma_global.h"
219d4fa1a1SMauro Carvalho Chehab 
229d4fa1a1SMauro Carvalho Chehab #include <defs.h>				/* HRTCAT() */
239d4fa1a1SMauro Carvalho Chehab #include <bits.h>				/* _hrt_get_bits() */
249d4fa1a1SMauro Carvalho Chehab #include <hive_isp_css_defs.h>		/* HIVE_DMA_NUM_CHANNELS */
259d4fa1a1SMauro Carvalho Chehab #include <dma_v2_defs.h>
269d4fa1a1SMauro Carvalho Chehab 
279d4fa1a1SMauro Carvalho Chehab #define _DMA_FSM_GROUP_CMD_IDX						_DMA_V2_FSM_GROUP_CMD_IDX
289d4fa1a1SMauro Carvalho Chehab #define _DMA_FSM_GROUP_ADDR_A_IDX					_DMA_V2_FSM_GROUP_ADDR_SRC_IDX
299d4fa1a1SMauro Carvalho Chehab #define _DMA_FSM_GROUP_ADDR_B_IDX					_DMA_V2_FSM_GROUP_ADDR_DEST_IDX
309d4fa1a1SMauro Carvalho Chehab 
319d4fa1a1SMauro Carvalho Chehab #define _DMA_FSM_GROUP_CMD_CTRL_IDX					_DMA_V2_FSM_GROUP_CMD_CTRL_IDX
329d4fa1a1SMauro Carvalho Chehab 
339d4fa1a1SMauro Carvalho Chehab #define _DMA_FSM_GROUP_FSM_CTRL_IDX					_DMA_V2_FSM_GROUP_FSM_CTRL_IDX
349d4fa1a1SMauro Carvalho Chehab #define _DMA_FSM_GROUP_FSM_CTRL_STATE_IDX			_DMA_V2_FSM_GROUP_FSM_CTRL_STATE_IDX
359d4fa1a1SMauro Carvalho Chehab #define _DMA_FSM_GROUP_FSM_CTRL_REQ_DEV_IDX			_DMA_V2_FSM_GROUP_FSM_CTRL_REQ_DEV_IDX
369d4fa1a1SMauro Carvalho Chehab #define _DMA_FSM_GROUP_FSM_CTRL_REQ_ADDR_IDX		_DMA_V2_FSM_GROUP_FSM_CTRL_REQ_ADDR_IDX
379d4fa1a1SMauro Carvalho Chehab #define _DMA_FSM_GROUP_FSM_CTRL_REQ_STRIDE_IDX		_DMA_V2_FSM_GROUP_FSM_CTRL_REQ_STRIDE_IDX
389d4fa1a1SMauro Carvalho Chehab #define _DMA_FSM_GROUP_FSM_CTRL_REQ_XB_IDX			_DMA_V2_FSM_GROUP_FSM_CTRL_REQ_XB_IDX
399d4fa1a1SMauro Carvalho Chehab #define _DMA_FSM_GROUP_FSM_CTRL_REQ_YB_IDX			_DMA_V2_FSM_GROUP_FSM_CTRL_REQ_YB_IDX
409d4fa1a1SMauro Carvalho Chehab #define _DMA_FSM_GROUP_FSM_CTRL_PACK_REQ_DEV_IDX	_DMA_V2_FSM_GROUP_FSM_CTRL_PACK_REQ_DEV_IDX
419d4fa1a1SMauro Carvalho Chehab #define _DMA_FSM_GROUP_FSM_CTRL_PACK_WR_DEV_IDX		_DMA_V2_FSM_GROUP_FSM_CTRL_PACK_WR_DEV_IDX
429d4fa1a1SMauro Carvalho Chehab #define _DMA_FSM_GROUP_FSM_CTRL_WR_ADDR_IDX			_DMA_V2_FSM_GROUP_FSM_CTRL_WR_ADDR_IDX
439d4fa1a1SMauro Carvalho Chehab #define _DMA_FSM_GROUP_FSM_CTRL_WR_STRIDE_IDX		_DMA_V2_FSM_GROUP_FSM_CTRL_WR_STRIDE_IDX
449d4fa1a1SMauro Carvalho Chehab #define _DMA_FSM_GROUP_FSM_CTRL_PACK_REQ_XB_IDX		_DMA_V2_FSM_GROUP_FSM_CTRL_PACK_REQ_XB_IDX
459d4fa1a1SMauro Carvalho Chehab #define _DMA_FSM_GROUP_FSM_CTRL_PACK_WR_YB_IDX		_DMA_V2_FSM_GROUP_FSM_CTRL_PACK_WR_YB_IDX
469d4fa1a1SMauro Carvalho Chehab #define _DMA_FSM_GROUP_FSM_CTRL_PACK_WR_XB_IDX		_DMA_V2_FSM_GROUP_FSM_CTRL_PACK_WR_XB_IDX
479d4fa1a1SMauro Carvalho Chehab #define _DMA_FSM_GROUP_FSM_CTRL_PACK_ELEM_REQ_IDX	_DMA_V2_FSM_GROUP_FSM_CTRL_PACK_ELEM_REQ_IDX
489d4fa1a1SMauro Carvalho Chehab #define _DMA_FSM_GROUP_FSM_CTRL_PACK_ELEM_WR_IDX	_DMA_V2_FSM_GROUP_FSM_CTRL_PACK_ELEM_WR_IDX
499d4fa1a1SMauro Carvalho Chehab #define _DMA_FSM_GROUP_FSM_CTRL_PACK_S_Z_IDX		_DMA_V2_FSM_GROUP_FSM_CTRL_PACK_S_Z_IDX
509d4fa1a1SMauro Carvalho Chehab 
519d4fa1a1SMauro Carvalho Chehab #define _DMA_FSM_GROUP_FSM_PACK_IDX					_DMA_V2_FSM_GROUP_FSM_PACK_IDX
529d4fa1a1SMauro Carvalho Chehab #define _DMA_FSM_GROUP_FSM_PACK_STATE_IDX			_DMA_V2_FSM_GROUP_FSM_PACK_STATE_IDX
539d4fa1a1SMauro Carvalho Chehab #define _DMA_FSM_GROUP_FSM_PACK_CNT_YB_IDX			_DMA_V2_FSM_GROUP_FSM_PACK_CNT_YB_IDX
549d4fa1a1SMauro Carvalho Chehab #define _DMA_FSM_GROUP_FSM_PACK_CNT_XB_REQ_IDX		_DMA_V2_FSM_GROUP_FSM_PACK_CNT_XB_REQ_IDX
559d4fa1a1SMauro Carvalho Chehab #define _DMA_FSM_GROUP_FSM_PACK_CNT_XB_WR_IDX		_DMA_V2_FSM_GROUP_FSM_PACK_CNT_XB_WR_IDX
569d4fa1a1SMauro Carvalho Chehab 
579d4fa1a1SMauro Carvalho Chehab #define _DMA_FSM_GROUP_FSM_REQ_IDX					_DMA_V2_FSM_GROUP_FSM_REQ_IDX
589d4fa1a1SMauro Carvalho Chehab #define _DMA_FSM_GROUP_FSM_REQ_STATE_IDX			_DMA_V2_FSM_GROUP_FSM_REQ_STATE_IDX
599d4fa1a1SMauro Carvalho Chehab #define _DMA_FSM_GROUP_FSM_REQ_CNT_YB_IDX			_DMA_V2_FSM_GROUP_FSM_REQ_CNT_YB_IDX
609d4fa1a1SMauro Carvalho Chehab #define _DMA_FSM_GROUP_FSM_REQ_CNT_XB_IDX			_DMA_V2_FSM_GROUP_FSM_REQ_CNT_XB_IDX
619d4fa1a1SMauro Carvalho Chehab 
629d4fa1a1SMauro Carvalho Chehab #define _DMA_FSM_GROUP_FSM_WR_IDX					_DMA_V2_FSM_GROUP_FSM_WR_IDX
639d4fa1a1SMauro Carvalho Chehab #define _DMA_FSM_GROUP_FSM_WR_STATE_IDX				_DMA_V2_FSM_GROUP_FSM_WR_STATE_IDX
649d4fa1a1SMauro Carvalho Chehab #define _DMA_FSM_GROUP_FSM_WR_CNT_YB_IDX			_DMA_V2_FSM_GROUP_FSM_WR_CNT_YB_IDX
659d4fa1a1SMauro Carvalho Chehab #define _DMA_FSM_GROUP_FSM_WR_CNT_XB_IDX			_DMA_V2_FSM_GROUP_FSM_WR_CNT_XB_IDX
669d4fa1a1SMauro Carvalho Chehab 
679d4fa1a1SMauro Carvalho Chehab #define _DMA_DEV_INTERF_MAX_BURST_IDX			_DMA_V2_DEV_INTERF_MAX_BURST_IDX
689d4fa1a1SMauro Carvalho Chehab 
699d4fa1a1SMauro Carvalho Chehab /*
709d4fa1a1SMauro Carvalho Chehab  * Macro's to compute the DMA parameter register indices
719d4fa1a1SMauro Carvalho Chehab  */
729d4fa1a1SMauro Carvalho Chehab #define DMA_SEL_COMP(comp)     (((comp)  & _hrt_ones(_DMA_V2_ADDR_SEL_COMP_BITS))            << _DMA_V2_ADDR_SEL_COMP_IDX)
739d4fa1a1SMauro Carvalho Chehab #define DMA_SEL_CH(ch)         (((ch)    & _hrt_ones(_DMA_V2_ADDR_SEL_CH_REG_BITS))          << _DMA_V2_ADDR_SEL_CH_REG_IDX)
749d4fa1a1SMauro Carvalho Chehab #define DMA_SEL_PARAM(param)   (((param) & _hrt_ones(_DMA_V2_ADDR_SEL_PARAM_BITS))           << _DMA_V2_ADDR_SEL_PARAM_IDX)
759d4fa1a1SMauro Carvalho Chehab /* CG = Connection Group */
769d4fa1a1SMauro Carvalho Chehab #define DMA_SEL_CG_INFO(info)  (((info)  & _hrt_ones(_DMA_V2_ADDR_SEL_GROUP_COMP_INFO_BITS)) << _DMA_V2_ADDR_SEL_GROUP_COMP_INFO_IDX)
779d4fa1a1SMauro Carvalho Chehab #define DMA_SEL_CG_COMP(comp)  (((comp)  & _hrt_ones(_DMA_V2_ADDR_SEL_GROUP_COMP_BITS))      << _DMA_V2_ADDR_SEL_GROUP_COMP_IDX)
789d4fa1a1SMauro Carvalho Chehab #define DMA_SEL_DEV_INFO(info) (((info)  & _hrt_ones(_DMA_V2_ADDR_SEL_DEV_INTERF_INFO_BITS)) << _DMA_V2_ADDR_SEL_DEV_INTERF_INFO_IDX)
799d4fa1a1SMauro Carvalho Chehab #define DMA_SEL_DEV_ID(dev)    (((dev)   & _hrt_ones(_DMA_V2_ADDR_SEL_DEV_INTERF_IDX_BITS))  << _DMA_V2_ADDR_SEL_DEV_INTERF_IDX_IDX)
809d4fa1a1SMauro Carvalho Chehab 
819d4fa1a1SMauro Carvalho Chehab #define DMA_COMMAND_FSM_REG_IDX					(DMA_SEL_COMP(_DMA_V2_SEL_FSM_CMD) >> 2)
829d4fa1a1SMauro Carvalho Chehab #define DMA_CHANNEL_PARAM_REG_IDX(ch, param)	((DMA_SEL_COMP(_DMA_V2_SEL_CH_REG) | DMA_SEL_CH(ch) | DMA_SEL_PARAM(param)) >> 2)
839d4fa1a1SMauro Carvalho Chehab #define DMA_CG_INFO_REG_IDX(info_id, comp_id)	((DMA_SEL_COMP(_DMA_V2_SEL_CONN_GROUP) | DMA_SEL_CG_INFO(info_id) | DMA_SEL_CG_COMP(comp_id)) >> 2)
849d4fa1a1SMauro Carvalho Chehab #define DMA_DEV_INFO_REG_IDX(info_id, dev_id)	((DMA_SEL_COMP(_DMA_V2_SEL_DEV_INTERF) | DMA_SEL_DEV_INFO(info_id) | DMA_SEL_DEV_ID(dev_id)) >> 2)
859d4fa1a1SMauro Carvalho Chehab #define DMA_RST_REG_IDX							(DMA_SEL_COMP(_DMA_V2_SEL_RESET) >> 2)
869d4fa1a1SMauro Carvalho Chehab 
879d4fa1a1SMauro Carvalho Chehab #define DMA_GET_CONNECTION(val)    _hrt_get_bits(val, _DMA_V2_CONNECTION_IDX,    _DMA_V2_CONNECTION_BITS)
889d4fa1a1SMauro Carvalho Chehab #define DMA_GET_EXTENSION(val)     _hrt_get_bits(val, _DMA_V2_EXTENSION_IDX,     _DMA_V2_EXTENSION_BITS)
899d4fa1a1SMauro Carvalho Chehab #define DMA_GET_ELEMENTS(val)      _hrt_get_bits(val, _DMA_V2_ELEMENTS_IDX,      _DMA_V2_ELEMENTS_BITS)
909d4fa1a1SMauro Carvalho Chehab #define DMA_GET_CROPPING(val)      _hrt_get_bits(val, _DMA_V2_LEFT_CROPPING_IDX, _DMA_V2_LEFT_CROPPING_BITS)
919d4fa1a1SMauro Carvalho Chehab 
929d4fa1a1SMauro Carvalho Chehab typedef enum {
939d4fa1a1SMauro Carvalho Chehab 	DMA_CTRL_STATE_IDLE,
949d4fa1a1SMauro Carvalho Chehab 	DMA_CTRL_STATE_REQ_RCV,
959d4fa1a1SMauro Carvalho Chehab 	DMA_CTRL_STATE_RCV,
969d4fa1a1SMauro Carvalho Chehab 	DMA_CTRL_STATE_RCV_REQ,
979d4fa1a1SMauro Carvalho Chehab 	DMA_CTRL_STATE_INIT,
989d4fa1a1SMauro Carvalho Chehab 	N_DMA_CTRL_STATES
999d4fa1a1SMauro Carvalho Chehab } dma_ctrl_states_t;
1009d4fa1a1SMauro Carvalho Chehab 
1019d4fa1a1SMauro Carvalho Chehab typedef enum {
1029d4fa1a1SMauro Carvalho Chehab 	DMA_COMMAND_READ,
1039d4fa1a1SMauro Carvalho Chehab 	DMA_COMMAND_WRITE,
1049d4fa1a1SMauro Carvalho Chehab 	DMA_COMMAND_SET_CHANNEL,
1059d4fa1a1SMauro Carvalho Chehab 	DMA_COMMAND_SET_PARAM,
1069d4fa1a1SMauro Carvalho Chehab 	DMA_COMMAND_READ_SPECIFIC,
1079d4fa1a1SMauro Carvalho Chehab 	DMA_COMMAND_WRITE_SPECIFIC,
1089d4fa1a1SMauro Carvalho Chehab 	DMA_COMMAND_INIT,
1099d4fa1a1SMauro Carvalho Chehab 	DMA_COMMAND_INIT_SPECIFIC,
1109d4fa1a1SMauro Carvalho Chehab 	DMA_COMMAND_RST,
1119d4fa1a1SMauro Carvalho Chehab 	N_DMA_COMMANDS
1129d4fa1a1SMauro Carvalho Chehab } dma_commands_t;
1139d4fa1a1SMauro Carvalho Chehab 
1149d4fa1a1SMauro Carvalho Chehab typedef enum {
1159d4fa1a1SMauro Carvalho Chehab 	DMA_RW_STATE_IDLE,
1169d4fa1a1SMauro Carvalho Chehab 	DMA_RW_STATE_REQ,
1179d4fa1a1SMauro Carvalho Chehab 	DMA_RW_STATE_NEXT_LINE,
1189d4fa1a1SMauro Carvalho Chehab 	DMA_RW_STATE_UNLOCK_CHANNEL,
1199d4fa1a1SMauro Carvalho Chehab 	N_DMA_RW_STATES
1209d4fa1a1SMauro Carvalho Chehab } dma_rw_states_t;
1219d4fa1a1SMauro Carvalho Chehab 
1229d4fa1a1SMauro Carvalho Chehab typedef enum {
1239d4fa1a1SMauro Carvalho Chehab 	DMA_FIFO_STATE_WILL_BE_FULL,
1249d4fa1a1SMauro Carvalho Chehab 	DMA_FIFO_STATE_FULL,
1259d4fa1a1SMauro Carvalho Chehab 	DMA_FIFO_STATE_EMPTY,
1269d4fa1a1SMauro Carvalho Chehab 	N_DMA_FIFO_STATES
1279d4fa1a1SMauro Carvalho Chehab } dma_fifo_states_t;
1289d4fa1a1SMauro Carvalho Chehab 
1299d4fa1a1SMauro Carvalho Chehab /* typedef struct dma_state_s			dma_state_t; */
1309d4fa1a1SMauro Carvalho Chehab typedef struct dma_channel_state_s	dma_channel_state_t;
1319d4fa1a1SMauro Carvalho Chehab typedef struct dma_port_state_s		dma_port_state_t;
1329d4fa1a1SMauro Carvalho Chehab 
1339d4fa1a1SMauro Carvalho Chehab struct dma_port_state_s {
1349d4fa1a1SMauro Carvalho Chehab 	bool                       req_cs;
1359d4fa1a1SMauro Carvalho Chehab 	bool                       req_we_n;
1369d4fa1a1SMauro Carvalho Chehab 	bool                       req_run;
1379d4fa1a1SMauro Carvalho Chehab 	bool                       req_ack;
1389d4fa1a1SMauro Carvalho Chehab 	bool                       send_cs;
1399d4fa1a1SMauro Carvalho Chehab 	bool                       send_we_n;
1409d4fa1a1SMauro Carvalho Chehab 	bool                       send_run;
1419d4fa1a1SMauro Carvalho Chehab 	bool                       send_ack;
1429d4fa1a1SMauro Carvalho Chehab 	dma_fifo_states_t          fifo_state;
1439d4fa1a1SMauro Carvalho Chehab 	int                        fifo_counter;
1449d4fa1a1SMauro Carvalho Chehab };
1459d4fa1a1SMauro Carvalho Chehab 
1469d4fa1a1SMauro Carvalho Chehab struct dma_channel_state_s {
1479d4fa1a1SMauro Carvalho Chehab 	int                        connection;
1489d4fa1a1SMauro Carvalho Chehab 	bool                       sign_extend;
1499d4fa1a1SMauro Carvalho Chehab 	int                        height;
1509d4fa1a1SMauro Carvalho Chehab 	int                        stride_a;
1519d4fa1a1SMauro Carvalho Chehab 	int                        elems_a;
1529d4fa1a1SMauro Carvalho Chehab 	int                        cropping_a;
1539d4fa1a1SMauro Carvalho Chehab 	int                        width_a;
1549d4fa1a1SMauro Carvalho Chehab 	int                        stride_b;
1559d4fa1a1SMauro Carvalho Chehab 	int                        elems_b;
1569d4fa1a1SMauro Carvalho Chehab 	int                        cropping_b;
1579d4fa1a1SMauro Carvalho Chehab 	int                        width_b;
1589d4fa1a1SMauro Carvalho Chehab };
1599d4fa1a1SMauro Carvalho Chehab 
1609d4fa1a1SMauro Carvalho Chehab struct dma_state_s {
1619d4fa1a1SMauro Carvalho Chehab 	bool                       fsm_command_idle;
1629d4fa1a1SMauro Carvalho Chehab 	bool                       fsm_command_run;
1639d4fa1a1SMauro Carvalho Chehab 	bool                       fsm_command_stalling;
1649d4fa1a1SMauro Carvalho Chehab 	bool                       fsm_command_error;
1659d4fa1a1SMauro Carvalho Chehab 	dma_commands_t             last_command;
1669d4fa1a1SMauro Carvalho Chehab 	int                        last_command_channel;
1679d4fa1a1SMauro Carvalho Chehab 	int                        last_command_param;
1689d4fa1a1SMauro Carvalho Chehab 	dma_commands_t             current_command;
1699d4fa1a1SMauro Carvalho Chehab 	int                        current_addr_a;
1709d4fa1a1SMauro Carvalho Chehab 	int                        current_addr_b;
1719d4fa1a1SMauro Carvalho Chehab 	bool                       fsm_ctrl_idle;
1729d4fa1a1SMauro Carvalho Chehab 	bool                       fsm_ctrl_run;
1739d4fa1a1SMauro Carvalho Chehab 	bool                       fsm_ctrl_stalling;
1749d4fa1a1SMauro Carvalho Chehab 	bool                       fsm_ctrl_error;
1759d4fa1a1SMauro Carvalho Chehab 	dma_ctrl_states_t          fsm_ctrl_state;
1769d4fa1a1SMauro Carvalho Chehab 	int                        fsm_ctrl_source_dev;
1779d4fa1a1SMauro Carvalho Chehab 	int                        fsm_ctrl_source_addr;
1789d4fa1a1SMauro Carvalho Chehab 	int                        fsm_ctrl_source_stride;
1799d4fa1a1SMauro Carvalho Chehab 	int                        fsm_ctrl_source_width;
1809d4fa1a1SMauro Carvalho Chehab 	int                        fsm_ctrl_source_height;
1819d4fa1a1SMauro Carvalho Chehab 	int                        fsm_ctrl_pack_source_dev;
1829d4fa1a1SMauro Carvalho Chehab 	int                        fsm_ctrl_pack_dest_dev;
1839d4fa1a1SMauro Carvalho Chehab 	int                        fsm_ctrl_dest_addr;
1849d4fa1a1SMauro Carvalho Chehab 	int                        fsm_ctrl_dest_stride;
1859d4fa1a1SMauro Carvalho Chehab 	int                        fsm_ctrl_pack_source_width;
1869d4fa1a1SMauro Carvalho Chehab 	int                        fsm_ctrl_pack_dest_height;
1879d4fa1a1SMauro Carvalho Chehab 	int                        fsm_ctrl_pack_dest_width;
1889d4fa1a1SMauro Carvalho Chehab 	int                        fsm_ctrl_pack_source_elems;
1899d4fa1a1SMauro Carvalho Chehab 	int                        fsm_ctrl_pack_dest_elems;
1909d4fa1a1SMauro Carvalho Chehab 	int                        fsm_ctrl_pack_extension;
1919d4fa1a1SMauro Carvalho Chehab 	int						   pack_idle;
1929d4fa1a1SMauro Carvalho Chehab 	int			       pack_run;
1939d4fa1a1SMauro Carvalho Chehab 	int				   pack_stalling;
1949d4fa1a1SMauro Carvalho Chehab 	int				   pack_error;
1959d4fa1a1SMauro Carvalho Chehab 	int                        pack_cnt_height;
1969d4fa1a1SMauro Carvalho Chehab 	int                        pack_src_cnt_width;
1979d4fa1a1SMauro Carvalho Chehab 	int                        pack_dest_cnt_width;
1989d4fa1a1SMauro Carvalho Chehab 	dma_rw_states_t            read_state;
1999d4fa1a1SMauro Carvalho Chehab 	int                        read_cnt_height;
2009d4fa1a1SMauro Carvalho Chehab 	int                        read_cnt_width;
2019d4fa1a1SMauro Carvalho Chehab 	dma_rw_states_t            write_state;
2029d4fa1a1SMauro Carvalho Chehab 	int                        write_height;
2039d4fa1a1SMauro Carvalho Chehab 	int                        write_width;
2049d4fa1a1SMauro Carvalho Chehab 	dma_port_state_t           port_states[HIVE_ISP_NUM_DMA_CONNS];
2059d4fa1a1SMauro Carvalho Chehab 	dma_channel_state_t        channel_states[HIVE_DMA_NUM_CHANNELS];
2069d4fa1a1SMauro Carvalho Chehab };
2079d4fa1a1SMauro Carvalho Chehab 
2089d4fa1a1SMauro Carvalho Chehab #endif /* __DMA_LOCAL_H_INCLUDED__ */
209