summaryrefslogtreecommitdiffstats
path: root/drivers/staging/media/atomisp/pci/atomisp2/css2400/runtime/isp_param/src/isp_param.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/staging/media/atomisp/pci/atomisp2/css2400/runtime/isp_param/src/isp_param.c')
-rw-r--r--drivers/staging/media/atomisp/pci/atomisp2/css2400/runtime/isp_param/src/isp_param.c227
1 files changed, 0 insertions, 227 deletions
diff --git a/drivers/staging/media/atomisp/pci/atomisp2/css2400/runtime/isp_param/src/isp_param.c b/drivers/staging/media/atomisp/pci/atomisp2/css2400/runtime/isp_param/src/isp_param.c
deleted file mode 100644
index f793ce1..0000000
--- a/drivers/staging/media/atomisp/pci/atomisp2/css2400/runtime/isp_param/src/isp_param.c
+++ /dev/null
@@ -1,227 +0,0 @@
-#ifndef ISP2401
-/*
- * 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.
- */
-#else
-/*
-Support for Intel Camera Imaging ISP subsystem.
-Copyright (c) 2010 - 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.
-*/
-#endif
-
-#include "memory_access.h"
-#include "ia_css_pipeline.h"
-#include "ia_css_isp_param.h"
-
-/* Set functions for parameter memory descriptors */
-
-void
-ia_css_isp_param_set_mem_init(
- struct ia_css_isp_param_host_segments *mem_init,
- enum ia_css_param_class pclass,
- enum ia_css_isp_memories mem,
- char *address, size_t size)
-{
- mem_init->params[pclass][mem].address = address;
- mem_init->params[pclass][mem].size = (uint32_t)size;
-}
-
-void
-ia_css_isp_param_set_css_mem_init(
- struct ia_css_isp_param_css_segments *mem_init,
- enum ia_css_param_class pclass,
- enum ia_css_isp_memories mem,
- hrt_vaddress address, size_t size)
-{
- mem_init->params[pclass][mem].address = address;
- mem_init->params[pclass][mem].size = (uint32_t)size;
-}
-
-void
-ia_css_isp_param_set_isp_mem_init(
- struct ia_css_isp_param_isp_segments *mem_init,
- enum ia_css_param_class pclass,
- enum ia_css_isp_memories mem,
- uint32_t address, size_t size)
-{
- mem_init->params[pclass][mem].address = address;
- mem_init->params[pclass][mem].size = (uint32_t)size;
-}
-
-/* Get functions for parameter memory descriptors */
-const struct ia_css_host_data*
-ia_css_isp_param_get_mem_init(
- const struct ia_css_isp_param_host_segments *mem_init,
- enum ia_css_param_class pclass,
- enum ia_css_isp_memories mem)
-{
- return &mem_init->params[pclass][mem];
-}
-
-const struct ia_css_data*
-ia_css_isp_param_get_css_mem_init(
- const struct ia_css_isp_param_css_segments *mem_init,
- enum ia_css_param_class pclass,
- enum ia_css_isp_memories mem)
-{
- return &mem_init->params[pclass][mem];
-}
-
-const struct ia_css_isp_data*
-ia_css_isp_param_get_isp_mem_init(
- const struct ia_css_isp_param_isp_segments *mem_init,
- enum ia_css_param_class pclass,
- enum ia_css_isp_memories mem)
-{
- return &mem_init->params[pclass][mem];
-}
-
-void
-ia_css_init_memory_interface(
- struct ia_css_isp_param_css_segments *isp_mem_if,
- const struct ia_css_isp_param_host_segments *mem_params,
- const struct ia_css_isp_param_css_segments *css_params)
-{
- unsigned pclass, mem;
- for (pclass = 0; pclass < IA_CSS_NUM_PARAM_CLASSES; pclass++) {
- memset(isp_mem_if->params[pclass], 0, sizeof(isp_mem_if->params[pclass]));
- for (mem = 0; mem < IA_CSS_NUM_MEMORIES; mem++) {
- if (!mem_params->params[pclass][mem].address)
- continue;
- isp_mem_if->params[pclass][mem].size = mem_params->params[pclass][mem].size;
- if (pclass != IA_CSS_PARAM_CLASS_PARAM)
- isp_mem_if->params[pclass][mem].address = css_params->params[pclass][mem].address;
- }
- }
-}
-
-enum ia_css_err
-ia_css_isp_param_allocate_isp_parameters(
- struct ia_css_isp_param_host_segments *mem_params,
- struct ia_css_isp_param_css_segments *css_params,
- const struct ia_css_isp_param_isp_segments *mem_initializers)
-{
- enum ia_css_err err = IA_CSS_SUCCESS;
- unsigned mem, pclass;
-
- pclass = IA_CSS_PARAM_CLASS_PARAM;
- for (mem = 0; mem < IA_CSS_NUM_MEMORIES; mem++) {
- for (pclass = 0; pclass < IA_CSS_NUM_PARAM_CLASSES; pclass++) {
- uint32_t size = 0;
- if (mem_initializers)
- size = mem_initializers->params[pclass][mem].size;
- mem_params->params[pclass][mem].size = size;
- mem_params->params[pclass][mem].address = NULL;
- css_params->params[pclass][mem].size = size;
- css_params->params[pclass][mem].address = 0x0;
- if (size) {
- mem_params->params[pclass][mem].address = sh_css_calloc(1, size);
- if (!mem_params->params[pclass][mem].address) {
- err = IA_CSS_ERR_CANNOT_ALLOCATE_MEMORY;
- goto cleanup;
- }
- if (pclass != IA_CSS_PARAM_CLASS_PARAM) {
- css_params->params[pclass][mem].address = mmgr_malloc(size);
- if (!css_params->params[pclass][mem].address) {
- err = IA_CSS_ERR_CANNOT_ALLOCATE_MEMORY;
- goto cleanup;
- }
- }
- }
- }
- }
- return err;
-cleanup:
- ia_css_isp_param_destroy_isp_parameters(mem_params, css_params);
- return err;
-}
-
-void
-ia_css_isp_param_destroy_isp_parameters(
- struct ia_css_isp_param_host_segments *mem_params,
- struct ia_css_isp_param_css_segments *css_params)
-{
- unsigned mem, pclass;
-
- for (mem = 0; mem < IA_CSS_NUM_MEMORIES; mem++) {
- for (pclass = 0; pclass < IA_CSS_NUM_PARAM_CLASSES; pclass++) {
- if (mem_params->params[pclass][mem].address)
- sh_css_free(mem_params->params[pclass][mem].address);
- if (css_params->params[pclass][mem].address)
- hmm_free(css_params->params[pclass][mem].address);
- mem_params->params[pclass][mem].address = NULL;
- css_params->params[pclass][mem].address = 0x0;
- }
- }
-}
-
-void
-ia_css_isp_param_load_fw_params(
- const char *fw,
- union ia_css_all_memory_offsets *mem_offsets,
- const struct ia_css_isp_param_memory_offsets *memory_offsets,
- bool init)
-{
- unsigned pclass;
- for (pclass = 0; pclass < IA_CSS_NUM_PARAM_CLASSES; pclass++) {
- mem_offsets->array[pclass].ptr = NULL;
- if (init)
- mem_offsets->array[pclass].ptr = (void *)(fw + memory_offsets->offsets[pclass]);
- }
-}
-
-enum ia_css_err
-ia_css_isp_param_copy_isp_mem_if_to_ddr(
- struct ia_css_isp_param_css_segments *ddr,
- const struct ia_css_isp_param_host_segments *host,
- enum ia_css_param_class pclass)
-{
- unsigned mem;
-
- for (mem = 0; mem < N_IA_CSS_ISP_MEMORIES; mem++) {
- size_t size = host->params[pclass][mem].size;
- hrt_vaddress ddr_mem_ptr = ddr->params[pclass][mem].address;
- char *host_mem_ptr = host->params[pclass][mem].address;
- if (size != ddr->params[pclass][mem].size)
- return IA_CSS_ERR_INTERNAL_ERROR;
- if (!size)
- continue;
- mmgr_store(ddr_mem_ptr, host_mem_ptr, size);
- }
- return IA_CSS_SUCCESS;
-}
-
-void
-ia_css_isp_param_enable_pipeline(
- const struct ia_css_isp_param_host_segments *mem_params)
-{
- /* By protocol b0 of the mandatory uint32_t first field of the
- input parameter is a disable bit*/
- short dmem_offset = 0;
-
- if (mem_params->params[IA_CSS_PARAM_CLASS_PARAM][IA_CSS_ISP_DMEM0].size == 0)
- return;
-
- *(uint32_t *)&mem_params->params[IA_CSS_PARAM_CLASS_PARAM][IA_CSS_ISP_DMEM0].address[dmem_offset] = 0x0;
-}
-
-
OpenPOWER on IntegriCloud