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 __FIFO_MONITOR_LOCAL_H_INCLUDED__ 179d4fa1a1SMauro Carvalho Chehab #define __FIFO_MONITOR_LOCAL_H_INCLUDED__ 189d4fa1a1SMauro Carvalho Chehab 199d4fa1a1SMauro Carvalho Chehab #include <type_support.h> 209d4fa1a1SMauro Carvalho Chehab #include "fifo_monitor_global.h" 219d4fa1a1SMauro Carvalho Chehab 229d4fa1a1SMauro Carvalho Chehab #include "hive_isp_css_defs.h" /* ISP_STR_MON_PORT_SND_SP, ... */ 239d4fa1a1SMauro Carvalho Chehab 249d4fa1a1SMauro Carvalho Chehab #define _hive_str_mon_valid_offset 0 259d4fa1a1SMauro Carvalho Chehab #define _hive_str_mon_accept_offset 1 269d4fa1a1SMauro Carvalho Chehab 279d4fa1a1SMauro Carvalho Chehab #define FIFO_CHANNEL_SP_VALID_MASK 0x55555555 289d4fa1a1SMauro Carvalho Chehab #define FIFO_CHANNEL_SP_VALID_B_MASK 0x00000055 299d4fa1a1SMauro Carvalho Chehab #define FIFO_CHANNEL_ISP_VALID_MASK 0x15555555 309d4fa1a1SMauro Carvalho Chehab #define FIFO_CHANNEL_MOD_VALID_MASK 0x55555555 319d4fa1a1SMauro Carvalho Chehab 329d4fa1a1SMauro Carvalho Chehab typedef enum fifo_switch { 339d4fa1a1SMauro Carvalho Chehab FIFO_SWITCH_IF, 349d4fa1a1SMauro Carvalho Chehab FIFO_SWITCH_GDC0, 359d4fa1a1SMauro Carvalho Chehab FIFO_SWITCH_GDC1, 369d4fa1a1SMauro Carvalho Chehab N_FIFO_SWITCH 379d4fa1a1SMauro Carvalho Chehab } fifo_switch_t; 389d4fa1a1SMauro Carvalho Chehab 399d4fa1a1SMauro Carvalho Chehab typedef enum fifo_channel { 409d4fa1a1SMauro Carvalho Chehab FIFO_CHANNEL_ISP0_TO_SP0, 419d4fa1a1SMauro Carvalho Chehab FIFO_CHANNEL_SP0_TO_ISP0, 429d4fa1a1SMauro Carvalho Chehab FIFO_CHANNEL_ISP0_TO_IF0, 439d4fa1a1SMauro Carvalho Chehab FIFO_CHANNEL_IF0_TO_ISP0, 449d4fa1a1SMauro Carvalho Chehab FIFO_CHANNEL_ISP0_TO_IF1, 459d4fa1a1SMauro Carvalho Chehab FIFO_CHANNEL_IF1_TO_ISP0, 469d4fa1a1SMauro Carvalho Chehab FIFO_CHANNEL_ISP0_TO_DMA0, 479d4fa1a1SMauro Carvalho Chehab FIFO_CHANNEL_DMA0_TO_ISP0, 489d4fa1a1SMauro Carvalho Chehab FIFO_CHANNEL_ISP0_TO_GDC0, 499d4fa1a1SMauro Carvalho Chehab FIFO_CHANNEL_GDC0_TO_ISP0, 509d4fa1a1SMauro Carvalho Chehab FIFO_CHANNEL_ISP0_TO_GDC1, 519d4fa1a1SMauro Carvalho Chehab FIFO_CHANNEL_GDC1_TO_ISP0, 529d4fa1a1SMauro Carvalho Chehab FIFO_CHANNEL_ISP0_TO_HOST0, 539d4fa1a1SMauro Carvalho Chehab FIFO_CHANNEL_HOST0_TO_ISP0, 549d4fa1a1SMauro Carvalho Chehab FIFO_CHANNEL_SP0_TO_IF0, 559d4fa1a1SMauro Carvalho Chehab FIFO_CHANNEL_IF0_TO_SP0, 569d4fa1a1SMauro Carvalho Chehab FIFO_CHANNEL_SP0_TO_IF1, 579d4fa1a1SMauro Carvalho Chehab FIFO_CHANNEL_IF1_TO_SP0, 589d4fa1a1SMauro Carvalho Chehab FIFO_CHANNEL_SP0_TO_IF2, 599d4fa1a1SMauro Carvalho Chehab FIFO_CHANNEL_IF2_TO_SP0, 609d4fa1a1SMauro Carvalho Chehab FIFO_CHANNEL_SP0_TO_DMA0, 619d4fa1a1SMauro Carvalho Chehab FIFO_CHANNEL_DMA0_TO_SP0, 629d4fa1a1SMauro Carvalho Chehab FIFO_CHANNEL_SP0_TO_GDC0, 639d4fa1a1SMauro Carvalho Chehab FIFO_CHANNEL_GDC0_TO_SP0, 649d4fa1a1SMauro Carvalho Chehab FIFO_CHANNEL_SP0_TO_GDC1, 659d4fa1a1SMauro Carvalho Chehab FIFO_CHANNEL_GDC1_TO_SP0, 669d4fa1a1SMauro Carvalho Chehab FIFO_CHANNEL_SP0_TO_HOST0, 679d4fa1a1SMauro Carvalho Chehab FIFO_CHANNEL_HOST0_TO_SP0, 689d4fa1a1SMauro Carvalho Chehab FIFO_CHANNEL_SP0_TO_STREAM2MEM0, 699d4fa1a1SMauro Carvalho Chehab FIFO_CHANNEL_STREAM2MEM0_TO_SP0, 709d4fa1a1SMauro Carvalho Chehab FIFO_CHANNEL_SP0_TO_INPUT_SYSTEM0, 719d4fa1a1SMauro Carvalho Chehab FIFO_CHANNEL_INPUT_SYSTEM0_TO_SP0, 729d4fa1a1SMauro Carvalho Chehab /* 739d4fa1a1SMauro Carvalho Chehab * No clue what this is 749d4fa1a1SMauro Carvalho Chehab * 759d4fa1a1SMauro Carvalho Chehab FIFO_CHANNEL_SP0_TO_IRQ0, 769d4fa1a1SMauro Carvalho Chehab FIFO_CHANNEL_IRQ0_TO_SP0, 779d4fa1a1SMauro Carvalho Chehab */ 789d4fa1a1SMauro Carvalho Chehab N_FIFO_CHANNEL 799d4fa1a1SMauro Carvalho Chehab } fifo_channel_t; 809d4fa1a1SMauro Carvalho Chehab 819d4fa1a1SMauro Carvalho Chehab struct fifo_channel_state_s { 829d4fa1a1SMauro Carvalho Chehab bool src_valid; 839d4fa1a1SMauro Carvalho Chehab bool fifo_accept; 849d4fa1a1SMauro Carvalho Chehab bool fifo_valid; 859d4fa1a1SMauro Carvalho Chehab bool sink_accept; 869d4fa1a1SMauro Carvalho Chehab }; 879d4fa1a1SMauro Carvalho Chehab 889d4fa1a1SMauro Carvalho Chehab /* The switch is tri-state */ 899d4fa1a1SMauro Carvalho Chehab struct fifo_switch_state_s { 909d4fa1a1SMauro Carvalho Chehab bool is_none; 919d4fa1a1SMauro Carvalho Chehab bool is_isp; 929d4fa1a1SMauro Carvalho Chehab bool is_sp; 939d4fa1a1SMauro Carvalho Chehab }; 949d4fa1a1SMauro Carvalho Chehab 959d4fa1a1SMauro Carvalho Chehab struct fifo_monitor_state_s { 969d4fa1a1SMauro Carvalho Chehab struct fifo_channel_state_s fifo_channels[N_FIFO_CHANNEL]; 979d4fa1a1SMauro Carvalho Chehab struct fifo_switch_state_s fifo_switches[N_FIFO_SWITCH]; 989d4fa1a1SMauro Carvalho Chehab }; 999d4fa1a1SMauro Carvalho Chehab 1009d4fa1a1SMauro Carvalho Chehab #endif /* __FIFO_MONITOR_LOCAL_H_INCLUDED__ */ 101