linux/drivers/staging/media/atomisp/pci/hive_isp_css_common/debug_global.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2/*
   3 * Support for Intel Camera Imaging ISP subsystem.
   4 * Copyright (c) 2015, Intel Corporation.
   5 *
   6 * This program is free software; you can redistribute it and/or modify it
   7 * under the terms and conditions of the GNU General Public License,
   8 * version 2, as published by the Free Software Foundation.
   9 *
  10 * This program is distributed in the hope it will be useful, but WITHOUT
  11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  12 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
  13 * more details.
  14 */
  15
  16#ifndef __DEBUG_GLOBAL_H_INCLUDED__
  17#define __DEBUG_GLOBAL_H_INCLUDED__
  18
  19#include <type_support.h>
  20
  21#define DEBUG_BUF_SIZE  1024
  22#define DEBUG_BUF_MASK  (DEBUG_BUF_SIZE - 1)
  23
  24#define DEBUG_DATA_ENABLE_ADDR          0x00
  25#define DEBUG_DATA_BUF_MODE_ADDR        0x04
  26#define DEBUG_DATA_HEAD_ADDR            0x08
  27#define DEBUG_DATA_TAIL_ADDR            0x0C
  28#define DEBUG_DATA_BUF_ADDR                     0x10
  29
  30#define DEBUG_DATA_ENABLE_DDR_ADDR              0x00
  31#define DEBUG_DATA_BUF_MODE_DDR_ADDR    HIVE_ISP_DDR_WORD_BYTES
  32#define DEBUG_DATA_HEAD_DDR_ADDR                (2 * HIVE_ISP_DDR_WORD_BYTES)
  33#define DEBUG_DATA_TAIL_DDR_ADDR                (3 * HIVE_ISP_DDR_WORD_BYTES)
  34#define DEBUG_DATA_BUF_DDR_ADDR                 (4 * HIVE_ISP_DDR_WORD_BYTES)
  35
  36#define DEBUG_BUFFER_ISP_DMEM_ADDR       0x0
  37
  38/*
  39 * Enable HAS_WATCHDOG_SP_THREAD_DEBUG for additional SP thread and
  40 * pipe information on watchdog output
  41 * #undef HAS_WATCHDOG_SP_THREAD_DEBUG
  42 * #define HAS_WATCHDOG_SP_THREAD_DEBUG
  43 */
  44
  45/*
  46 * The linear buffer mode will accept data until the first
  47 * overflow and then stop accepting new data
  48 * The circular buffer mode will accept if there is place
  49 * and discard the data if the buffer is full
  50 */
  51typedef enum {
  52        DEBUG_BUFFER_MODE_LINEAR = 0,
  53        DEBUG_BUFFER_MODE_CIRCULAR,
  54        N_DEBUG_BUFFER_MODE
  55} debug_buf_mode_t;
  56
  57struct debug_data_s {
  58        u32                     enable;
  59        u32                     bufmode;
  60        u32                     head;
  61        u32                     tail;
  62        u32                     buf[DEBUG_BUF_SIZE];
  63};
  64
  65/* thread.sp.c doesn't have a notion of HIVE_ISP_DDR_WORD_BYTES
  66   still one point of control is needed for debug purposes */
  67
  68#ifdef HIVE_ISP_DDR_WORD_BYTES
  69struct debug_data_ddr_s {
  70        u32                     enable;
  71        s8                              padding1[HIVE_ISP_DDR_WORD_BYTES - sizeof(uint32_t)];
  72        u32                     bufmode;
  73        s8                              padding2[HIVE_ISP_DDR_WORD_BYTES - sizeof(uint32_t)];
  74        u32                     head;
  75        s8                              padding3[HIVE_ISP_DDR_WORD_BYTES - sizeof(uint32_t)];
  76        u32                     tail;
  77        s8                              padding4[HIVE_ISP_DDR_WORD_BYTES - sizeof(uint32_t)];
  78        u32                     buf[DEBUG_BUF_SIZE];
  79};
  80#endif
  81
  82#endif /* __DEBUG_GLOBAL_H_INCLUDED__ */
  83