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 __IA_CSS_QUEUE_COMM_H 179d4fa1a1SMauro Carvalho Chehab #define __IA_CSS_QUEUE_COMM_H 189d4fa1a1SMauro Carvalho Chehab 199d4fa1a1SMauro Carvalho Chehab #include "type_support.h" 209d4fa1a1SMauro Carvalho Chehab #include "ia_css_circbuf.h" 219d4fa1a1SMauro Carvalho Chehab /***************************************************************************** 229d4fa1a1SMauro Carvalho Chehab * Queue Public Data Structures 239d4fa1a1SMauro Carvalho Chehab *****************************************************************************/ 249d4fa1a1SMauro Carvalho Chehab 259d4fa1a1SMauro Carvalho Chehab /* Queue location specifier */ 269d4fa1a1SMauro Carvalho Chehab /* Avoiding enums to save space */ 279d4fa1a1SMauro Carvalho Chehab #define IA_CSS_QUEUE_LOC_HOST 0 289d4fa1a1SMauro Carvalho Chehab #define IA_CSS_QUEUE_LOC_SP 1 299d4fa1a1SMauro Carvalho Chehab #define IA_CSS_QUEUE_LOC_ISP 2 309d4fa1a1SMauro Carvalho Chehab 319d4fa1a1SMauro Carvalho Chehab /* Queue type specifier */ 329d4fa1a1SMauro Carvalho Chehab /* Avoiding enums to save space */ 339d4fa1a1SMauro Carvalho Chehab #define IA_CSS_QUEUE_TYPE_LOCAL 0 349d4fa1a1SMauro Carvalho Chehab #define IA_CSS_QUEUE_TYPE_REMOTE 1 359d4fa1a1SMauro Carvalho Chehab 369d4fa1a1SMauro Carvalho Chehab /* for DDR Allocated queues, 379d4fa1a1SMauro Carvalho Chehab allocate minimum these many elements. 389d4fa1a1SMauro Carvalho Chehab DDR->SP' DMEM DMA transfer needs 32byte aligned address. 399d4fa1a1SMauro Carvalho Chehab Since each element size is 4 bytes, 8 elements need to be 409d4fa1a1SMauro Carvalho Chehab DMAed to access single element.*/ 419d4fa1a1SMauro Carvalho Chehab #define IA_CSS_MIN_ELEM_COUNT 8 429d4fa1a1SMauro Carvalho Chehab #define IA_CSS_DMA_XFER_MASK (IA_CSS_MIN_ELEM_COUNT - 1) 439d4fa1a1SMauro Carvalho Chehab 449d4fa1a1SMauro Carvalho Chehab /* Remote Queue object descriptor */ 459d4fa1a1SMauro Carvalho Chehab struct ia_css_queue_remote { 469d4fa1a1SMauro Carvalho Chehab u32 cb_desc_addr; /*Circbuf desc address for remote queues*/ 479d4fa1a1SMauro Carvalho Chehab u32 cb_elems_addr; /*Circbuf elements addr for remote queue*/ 489d4fa1a1SMauro Carvalho Chehab u8 location; /* Cell location for queue */ 499d4fa1a1SMauro Carvalho Chehab u8 proc_id; /* Processor id for queue access */ 509d4fa1a1SMauro Carvalho Chehab }; 519d4fa1a1SMauro Carvalho Chehab 529d4fa1a1SMauro Carvalho Chehab typedef struct ia_css_queue_remote ia_css_queue_remote_t; 539d4fa1a1SMauro Carvalho Chehab 549d4fa1a1SMauro Carvalho Chehab #endif /* __IA_CSS_QUEUE_COMM_H */ 55