aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging/media/atomisp/pci/atomisp2/css2400/camera/util/src/util.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/staging/media/atomisp/pci/atomisp2/css2400/camera/util/src/util.c')
-rw-r--r--drivers/staging/media/atomisp/pci/atomisp2/css2400/camera/util/src/util.c227
1 files changed, 0 insertions, 227 deletions
diff --git a/drivers/staging/media/atomisp/pci/atomisp2/css2400/camera/util/src/util.c b/drivers/staging/media/atomisp/pci/atomisp2/css2400/camera/util/src/util.c
deleted file mode 100644
index 91e586112332..000000000000
--- a/drivers/staging/media/atomisp/pci/atomisp2/css2400/camera/util/src/util.c
+++ /dev/null
@@ -1,227 +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 "ia_css_util.h"
-#include <ia_css_frame.h>
-#include <assert_support.h>
-#include <math_support.h>
-
-/* for ia_css_binary_max_vf_width() */
-#include "ia_css_binary.h"
-
-
-enum ia_css_err ia_css_convert_errno(
- int in_err)
-{
- enum ia_css_err out_err;
-
- switch (in_err) {
- case 0:
- out_err = IA_CSS_SUCCESS;
- break;
- case EINVAL:
- out_err = IA_CSS_ERR_INVALID_ARGUMENTS;
- break;
- case ENODATA:
- out_err = IA_CSS_ERR_QUEUE_IS_EMPTY;
- break;
- case ENOSYS:
- case ENOTSUP:
- out_err = IA_CSS_ERR_INTERNAL_ERROR;
- break;
- case ENOBUFS:
- out_err = IA_CSS_ERR_QUEUE_IS_FULL;
- break;
- default:
- out_err = IA_CSS_ERR_INTERNAL_ERROR;
- break;
- }
- return out_err;
-}
-
-/* MW: Table look-up ??? */
-unsigned int ia_css_util_input_format_bpp(
- enum atomisp_input_format format,
- bool two_ppc)
-{
- unsigned int rval = 0;
- switch (format) {
- case ATOMISP_INPUT_FORMAT_YUV420_8_LEGACY:
- case ATOMISP_INPUT_FORMAT_YUV420_8:
- case ATOMISP_INPUT_FORMAT_YUV422_8:
- case ATOMISP_INPUT_FORMAT_RGB_888:
- case ATOMISP_INPUT_FORMAT_RAW_8:
- case ATOMISP_INPUT_FORMAT_BINARY_8:
- case ATOMISP_INPUT_FORMAT_EMBEDDED:
- rval = 8;
- break;
- case ATOMISP_INPUT_FORMAT_YUV420_10:
- case ATOMISP_INPUT_FORMAT_YUV422_10:
- case ATOMISP_INPUT_FORMAT_RAW_10:
- rval = 10;
- break;
- case ATOMISP_INPUT_FORMAT_YUV420_16:
- case ATOMISP_INPUT_FORMAT_YUV422_16:
- rval = 16;
- break;
- case ATOMISP_INPUT_FORMAT_RGB_444:
- rval = 4;
- break;
- case ATOMISP_INPUT_FORMAT_RGB_555:
- rval = 5;
- break;
- case ATOMISP_INPUT_FORMAT_RGB_565:
- rval = 65;
- break;
- case ATOMISP_INPUT_FORMAT_RGB_666:
- case ATOMISP_INPUT_FORMAT_RAW_6:
- rval = 6;
- break;
- case ATOMISP_INPUT_FORMAT_RAW_7:
- rval = 7;
- break;
- case ATOMISP_INPUT_FORMAT_RAW_12:
- rval = 12;
- break;
- case ATOMISP_INPUT_FORMAT_RAW_14:
- if (two_ppc)
- rval = 14;
- else
- rval = 12;
- break;
- case ATOMISP_INPUT_FORMAT_RAW_16:
- if (two_ppc)
- rval = 16;
- else
- rval = 12;
- break;
- default:
- rval = 0;
- break;
-
- }
- return rval;
-}
-
-enum ia_css_err ia_css_util_check_vf_info(
- const struct ia_css_frame_info * const info)
-{
- enum ia_css_err err;
- unsigned int max_vf_width;
- assert(info != NULL);
- err = ia_css_frame_check_info(info);
- if (err != IA_CSS_SUCCESS)
- return err;
- max_vf_width = ia_css_binary_max_vf_width();
- if (max_vf_width != 0 && info->res.width > max_vf_width*2)
- return IA_CSS_ERR_INVALID_ARGUMENTS;
- return IA_CSS_SUCCESS;
-}
-
-enum ia_css_err ia_css_util_check_vf_out_info(
- const struct ia_css_frame_info * const out_info,
- const struct ia_css_frame_info * const vf_info)
-{
- enum ia_css_err err;
-
- assert(out_info != NULL);
- assert(vf_info != NULL);
-
- err = ia_css_frame_check_info(out_info);
- if (err != IA_CSS_SUCCESS)
- return err;
- err = ia_css_util_check_vf_info(vf_info);
- if (err != IA_CSS_SUCCESS)
- return err;
- return IA_CSS_SUCCESS;
-}
-
-enum ia_css_err ia_css_util_check_res(unsigned int width, unsigned int height)
-{
- /* height can be odd number for jpeg/embedded data from ISYS2401 */
- if (((width == 0) ||
- (height == 0) ||
- IS_ODD(width))) {
- return IA_CSS_ERR_INVALID_ARGUMENTS;
- }
- return IA_CSS_SUCCESS;
-}
-
-#ifdef ISP2401
-bool ia_css_util_res_leq(struct ia_css_resolution a, struct ia_css_resolution b)
-{
- return a.width <= b.width && a.height <= b.height;
-}
-
-bool ia_css_util_resolution_is_zero(const struct ia_css_resolution resolution)
-{
- return (resolution.width == 0) || (resolution.height == 0);
-}
-
-bool ia_css_util_resolution_is_even(const struct ia_css_resolution resolution)
-{
- return IS_EVEN(resolution.height) && IS_EVEN(resolution.width);
-}
-
-#endif
-bool ia_css_util_is_input_format_raw(enum atomisp_input_format format)
-{
- return ((format == ATOMISP_INPUT_FORMAT_RAW_6) ||
- (format == ATOMISP_INPUT_FORMAT_RAW_7) ||
- (format == ATOMISP_INPUT_FORMAT_RAW_8) ||
- (format == ATOMISP_INPUT_FORMAT_RAW_10) ||
- (format == ATOMISP_INPUT_FORMAT_RAW_12));
- /* raw_14 and raw_16 are not supported as input formats to the ISP.
- * They can only be copied to a frame in memory using the
- * copy binary.
- */
-}
-
-bool ia_css_util_is_input_format_yuv(enum atomisp_input_format format)
-{
- return format == ATOMISP_INPUT_FORMAT_YUV420_8_LEGACY ||
- format == ATOMISP_INPUT_FORMAT_YUV420_8 ||
- format == ATOMISP_INPUT_FORMAT_YUV420_10 ||
- format == ATOMISP_INPUT_FORMAT_YUV420_16 ||
- format == ATOMISP_INPUT_FORMAT_YUV422_8 ||
- format == ATOMISP_INPUT_FORMAT_YUV422_10 ||
- format == ATOMISP_INPUT_FORMAT_YUV422_16;
-}
-
-enum ia_css_err ia_css_util_check_input(
- const struct ia_css_stream_config * const stream_config,
- bool must_be_raw,
- bool must_be_yuv)
-{
- assert(stream_config != NULL);
-
- if (stream_config == NULL)
- return IA_CSS_ERR_INVALID_ARGUMENTS;
-
-#ifdef IS_ISP_2400_SYSTEM
- if (stream_config->input_config.effective_res.width == 0 ||
- stream_config->input_config.effective_res.height == 0)
- return IA_CSS_ERR_INVALID_ARGUMENTS;
-#endif
- if (must_be_raw &&
- !ia_css_util_is_input_format_raw(stream_config->input_config.format))
- return IA_CSS_ERR_INVALID_ARGUMENTS;
-
- if (must_be_yuv &&
- !ia_css_util_is_input_format_yuv(stream_config->input_config.format))
- return IA_CSS_ERR_INVALID_ARGUMENTS;
-
- return IA_CSS_SUCCESS;
-}
-