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) 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 _SH_CSS_METRICS_H_ 179d4fa1a1SMauro Carvalho Chehab #define _SH_CSS_METRICS_H_ 189d4fa1a1SMauro Carvalho Chehab 199d4fa1a1SMauro Carvalho Chehab #include <type_support.h> 209d4fa1a1SMauro Carvalho Chehab 219d4fa1a1SMauro Carvalho Chehab struct sh_css_pc_histogram { 229d4fa1a1SMauro Carvalho Chehab unsigned int length; 239d4fa1a1SMauro Carvalho Chehab unsigned int *run; 249d4fa1a1SMauro Carvalho Chehab unsigned int *stall; 259d4fa1a1SMauro Carvalho Chehab unsigned int *msink; 269d4fa1a1SMauro Carvalho Chehab }; 279d4fa1a1SMauro Carvalho Chehab 289d4fa1a1SMauro Carvalho Chehab struct sh_css_binary_metrics { 299d4fa1a1SMauro Carvalho Chehab unsigned int mode; 309d4fa1a1SMauro Carvalho Chehab unsigned int id; 319d4fa1a1SMauro Carvalho Chehab struct sh_css_pc_histogram isp_histogram; 329d4fa1a1SMauro Carvalho Chehab struct sh_css_pc_histogram sp_histogram; 339d4fa1a1SMauro Carvalho Chehab struct sh_css_binary_metrics *next; 349d4fa1a1SMauro Carvalho Chehab }; 359d4fa1a1SMauro Carvalho Chehab 369d4fa1a1SMauro Carvalho Chehab struct ia_css_frame_metrics { 379d4fa1a1SMauro Carvalho Chehab unsigned int num_frames; 389d4fa1a1SMauro Carvalho Chehab }; 399d4fa1a1SMauro Carvalho Chehab 409d4fa1a1SMauro Carvalho Chehab struct sh_css_metrics { 419d4fa1a1SMauro Carvalho Chehab struct sh_css_binary_metrics *binary_metrics; 429d4fa1a1SMauro Carvalho Chehab struct ia_css_frame_metrics frame_metrics; 439d4fa1a1SMauro Carvalho Chehab }; 449d4fa1a1SMauro Carvalho Chehab 459d4fa1a1SMauro Carvalho Chehab extern struct sh_css_metrics sh_css_metrics; 469d4fa1a1SMauro Carvalho Chehab 479d4fa1a1SMauro Carvalho Chehab /* includes ia_css_binary.h, which depends on sh_css_metrics.h */ 489d4fa1a1SMauro Carvalho Chehab #include "ia_css_types.h" 499d4fa1a1SMauro Carvalho Chehab 509d4fa1a1SMauro Carvalho Chehab /* Sample ISP and SP pc and add to histogram */ 519d4fa1a1SMauro Carvalho Chehab void sh_css_metrics_enable_pc_histogram(bool enable); 529d4fa1a1SMauro Carvalho Chehab void sh_css_metrics_start_frame(void); 539d4fa1a1SMauro Carvalho Chehab void sh_css_metrics_start_binary(struct sh_css_binary_metrics *metrics); 549d4fa1a1SMauro Carvalho Chehab void sh_css_metrics_sample_pcs(void); 559d4fa1a1SMauro Carvalho Chehab 569d4fa1a1SMauro Carvalho Chehab #endif /* _SH_CSS_METRICS_H_ */ 57