diff options
Diffstat (limited to 'drivers/staging/media/atomisp/pci/atomisp2/css2400/hive_isp_css_common/host/hive_isp_css_ddr_hrt_modified.h')
-rw-r--r-- | drivers/staging/media/atomisp/pci/atomisp2/css2400/hive_isp_css_common/host/hive_isp_css_ddr_hrt_modified.h | 148 |
1 files changed, 148 insertions, 0 deletions
diff --git a/drivers/staging/media/atomisp/pci/atomisp2/css2400/hive_isp_css_common/host/hive_isp_css_ddr_hrt_modified.h b/drivers/staging/media/atomisp/pci/atomisp2/css2400/hive_isp_css_common/host/hive_isp_css_ddr_hrt_modified.h new file mode 100644 index 0000000..39785aa --- /dev/null +++ b/drivers/staging/media/atomisp/pci/atomisp2/css2400/hive_isp_css_common/host/hive_isp_css_ddr_hrt_modified.h @@ -0,0 +1,148 @@ +/* + * 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. + */ + +#ifndef _hive_isp_css_ddr_hrt_modified_h_ +#define _hive_isp_css_ddr_hrt_modified_h_ + +#include <hmm_64/hmm.h> + +/* This function reads an image from DDR and stores it in the img_buf array + that has been allocated by the caller. + The specifics of how the pixels are stored into DDR by the DMA are taken + into account (bits padded to a width of 256, depending on the number of + elements per ddr word). + The DMA specific parameters give to this function (elems_per_xword and sign_extend) + should correspond to those given to the DMA engine. + The address is a virtual address which will be translated to a physical address before + data is loaded from or stored to that address. + + The return value is 0 in case of success and 1 in case of failure. + */ +unsigned int +hrt_isp_css_read_image_from_ddr( + unsigned short *img_buf, + unsigned int width, + unsigned int height, + unsigned int elems_per_xword, + unsigned int sign_extend, + hmm_ptr virt_addr); + +/* This function writes an image to DDR, keeping the same aspects into account as the read_image function + above. */ +unsigned int +hrt_isp_css_write_image_to_ddr( + const unsigned short *img_buf, + unsigned int width, + unsigned int height, + unsigned int elems_per_xword, + unsigned int sign_extend, + hmm_ptr virt_addr); + +/* return the size in bytes of an image (frame or plane). */ +unsigned int +hrt_isp_css_sizeof_image_in_ddr( + unsigned int width, + unsigned int height, + unsigned int bits_per_element); + +unsigned int +hrt_isp_css_stride_of_image_in_ddr( + unsigned int width, + unsigned int bits_per_element); + +hmm_ptr +hrt_isp_css_alloc_image_in_ddr( + unsigned int width, + unsigned int height, + unsigned int elems_per_xword); + +hmm_ptr +hrt_isp_css_calloc_image_in_ddr( + unsigned int width, + unsigned int height, + unsigned int elems_per_xword); + +#ifndef HIVE_ISP_NO_GDC +#include "gdc_v2_defs.h" + +hmm_ptr +hrt_isp_css_alloc_gdc_lut_in_ddr(void); + +void +hrt_isp_css_write_gdc_lut_to_ddr( + short values[4][HRT_GDC_N], + hmm_ptr virt_addr); +#endif + +#ifdef _HIVE_ISP_CSS_FPGA_SYSTEM +hmm_ptr +hrt_isp_css_alloc_image_for_display( + unsigned int width, + unsigned int height, + unsigned int elems_per_xword); + +hmm_ptr +hrt_isp_css_calloc_image_for_display( + unsigned int width, + unsigned int height, + unsigned int elems_per_xword); +#endif + +/* New set of functions, these do not require the elems_per_xword, but use bits_per_element instead, + this way the user does not need to know about the width of a DDR word. */ +unsigned int +hrt_isp_css_read_unsigned( + unsigned short *target, + unsigned int width, + unsigned int height, + unsigned int source_bits_per_element, + hmm_ptr source); + +unsigned int +hrt_isp_css_read_signed( + short *target, + unsigned int width, + unsigned int height, + unsigned int source_bits_per_element, + hmm_ptr source); + +unsigned int +hrt_isp_css_write_unsigned( + const unsigned short *source, + unsigned int width, + unsigned int height, + unsigned int target_bits_per_element, + hmm_ptr target); + +unsigned int +hrt_isp_css_write_signed( + const short *source, + unsigned int width, + unsigned int height, + unsigned int target_bits_per_element, + hmm_ptr target); + +hmm_ptr +hrt_isp_css_alloc( + unsigned int width, + unsigned int height, + unsigned int bits_per_element); + +hmm_ptr +hrt_isp_css_calloc( + unsigned int width, + unsigned int height, + unsigned int bits_per_element); + +#endif /* _hive_isp_css_ddr_hrt_modified_h_ */ |