summaryrefslogtreecommitdiffstats
path: root/drivers/staging/media/atomisp/pci/atomisp2/css2400/sh_css_metrics.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/staging/media/atomisp/pci/atomisp2/css2400/sh_css_metrics.c')
-rw-r--r--drivers/staging/media/atomisp/pci/atomisp2/css2400/sh_css_metrics.c176
1 files changed, 0 insertions, 176 deletions
diff --git a/drivers/staging/media/atomisp/pci/atomisp2/css2400/sh_css_metrics.c b/drivers/staging/media/atomisp/pci/atomisp2/css2400/sh_css_metrics.c
deleted file mode 100644
index 48e5542..0000000
--- a/drivers/staging/media/atomisp/pci/atomisp2/css2400/sh_css_metrics.c
+++ /dev/null
@@ -1,176 +0,0 @@
-/*
- * Support for Intel Camera Imaging ISP subsystem.
- * Copyright (c) 2015, Intel Corporation.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- */
-
-#include "assert_support.h"
-#include "sh_css_metrics.h"
-
-#include "sp.h"
-#include "isp.h"
-
-#include "sh_css_internal.h"
-
-#define MULTIPLE_PCS 0
-#define SUSPEND 0
-#define NOF_PCS 1
-#define RESUME_MASK 0x8
-#define STOP_MASK 0x0
-
-static bool pc_histogram_enabled;
-static struct sh_css_pc_histogram *isp_histogram;
-static struct sh_css_pc_histogram *sp_histogram;
-
-struct sh_css_metrics sh_css_metrics;
-
-void
-sh_css_metrics_start_frame(void)
-{
- sh_css_metrics.frame_metrics.num_frames++;
-}
-
-static void
-clear_histogram(struct sh_css_pc_histogram *histogram)
-{
- unsigned i;
-
- assert(histogram != NULL);
-
- for (i = 0; i < histogram->length; i++) {
- histogram->run[i] = 0;
- histogram->stall[i] = 0;
- histogram->msink[i] = 0xFFFF;
- }
-}
-
-void
-sh_css_metrics_enable_pc_histogram(bool enable)
-{
- pc_histogram_enabled = enable;
-}
-
-static void
-make_histogram(struct sh_css_pc_histogram *histogram, unsigned length)
-{
- assert(histogram != NULL);
-
- if (histogram->length)
- return;
- if (histogram->run)
- return;
- histogram->run = sh_css_malloc(length * sizeof(*histogram->run));
- if (!histogram->run)
- return;
- histogram->stall = sh_css_malloc(length * sizeof(*histogram->stall));
- if (!histogram->stall)
- return;
- histogram->msink = sh_css_malloc(length * sizeof(*histogram->msink));
- if (!histogram->msink)
- return;
-
- histogram->length = length;
- clear_histogram(histogram);
-}
-
-static void
-insert_binary_metrics(struct sh_css_binary_metrics **l,
- struct sh_css_binary_metrics *metrics)
-{
- assert(l != NULL);
- assert(*l != NULL);
- assert(metrics != NULL);
-
- for (; *l; l = &(*l)->next)
- if (*l == metrics)
- return;
-
- *l = metrics;
- metrics->next = NULL;
-}
-
-void
-sh_css_metrics_start_binary(struct sh_css_binary_metrics *metrics)
-{
- assert(metrics != NULL);
-
- if (!pc_histogram_enabled)
- return;
-
- isp_histogram = &metrics->isp_histogram;
- sp_histogram = &metrics->sp_histogram;
- make_histogram(isp_histogram, ISP_PMEM_DEPTH);
- make_histogram(sp_histogram, SP_PMEM_DEPTH);
- insert_binary_metrics(&sh_css_metrics.binary_metrics, metrics);
-}
-
-void
-sh_css_metrics_sample_pcs(void)
-{
- bool stall;
- unsigned int pc;
- unsigned int msink;
-
-#if SUSPEND
- unsigned int sc = 0;
- unsigned int stopped_sc = 0;
- unsigned int resume_sc = 0;
-#endif
-
-
-#if MULTIPLE_PCS
- int i;
- unsigned int pc_tab[NOF_PCS];
-
- for (i = 0; i < NOF_PCS; i++)
- pc_tab[i] = 0;
-#endif
-
- if (!pc_histogram_enabled)
- return;
-
- if (isp_histogram) {
-#if SUSPEND
- /* STOP the ISP */
- isp_ctrl_store(ISP0_ID, ISP_SC_REG, STOP_MASK);
-#endif
- msink = isp_ctrl_load(ISP0_ID, ISP_CTRL_SINK_REG);
-#if MULTIPLE_PCS
- for (i = 0; i < NOF_PCS; i++)
- pc_tab[i] = isp_ctrl_load(ISP0_ID, ISP_PC_REG);
-#else
- pc = isp_ctrl_load(ISP0_ID, ISP_PC_REG);
-#endif
-
-#if SUSPEND
- /* RESUME the ISP */
- isp_ctrl_store(ISP0_ID, ISP_SC_REG, RESUME_MASK);
-#endif
- isp_histogram->msink[pc] &= msink;
- stall = (msink != 0x7FF);
-
- if (stall)
- isp_histogram->stall[pc]++;
- else
- isp_histogram->run[pc]++;
- }
-
- if (sp_histogram && 0) {
- msink = sp_ctrl_load(SP0_ID, SP_CTRL_SINK_REG);
- pc = sp_ctrl_load(SP0_ID, SP_PC_REG);
- sp_histogram->msink[pc] &= msink;
- stall = (msink != 0x7FF);
- if (stall)
- sp_histogram->stall[pc]++;
- else
- sp_histogram->run[pc]++;
- }
-}
OpenPOWER on IntegriCloud