aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging/media/atomisp
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab+huawei@kernel.org>2020-04-30 13:56:47 +0200
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>2020-05-20 12:32:20 +0200
commit3c0538fbad9f1d07d588f631e380256d941e3d3a (patch)
tree6114c764deaa4ff6e6e49f27d43daf421e236499 /drivers/staging/media/atomisp
parentmedia: atomisp: cleanup contents of css_2401_system (diff)
downloadlinux-dev-3c0538fbad9f1d07d588f631e380256d941e3d3a.tar.xz
linux-dev-3c0538fbad9f1d07d588f631e380256d941e3d3a.zip
media: atomisp: get rid of most checks for ISP2401 version
There are lots of places inside this driver checking for ISP2400/ISP2401 verison. Get rid of most of those, while keep building for both. Most of stuff in this patch is trivial to solve. Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Diffstat (limited to 'drivers/staging/media/atomisp')
-rw-r--r--drivers/staging/media/atomisp/pci/atomisp_cmd.c2
-rw-r--r--drivers/staging/media/atomisp/pci/base/refcount/src/refcount.c9
-rw-r--r--drivers/staging/media/atomisp/pci/camera/pipe/src/pipe_binarydesc.c34
-rw-r--r--drivers/staging/media/atomisp/pci/camera/util/src/util.c2
-rw-r--r--drivers/staging/media/atomisp/pci/isp/kernels/dp/dp_1.0/ia_css_dp.host.c3
-rw-r--r--drivers/staging/media/atomisp/pci/isp/kernels/dvs/dvs_1.0/ia_css_dvs.host.c3
-rw-r--r--drivers/staging/media/atomisp/pci/isp/kernels/ipu2_io_ls/yuv444_io_ls/ia_css_yuv444_io.host.c2
-rw-r--r--drivers/staging/media/atomisp/pci/isp/kernels/sc/sc_1.0/ia_css_sc.host.c7
-rw-r--r--drivers/staging/media/atomisp/pci/isp/kernels/xnr/xnr_3.0/ia_css_xnr3.host.c23
-rw-r--r--drivers/staging/media/atomisp/pci/isp2400_system_global.h1
-rw-r--r--drivers/staging/media/atomisp/pci/isp2401_system_global.h1
-rw-r--r--drivers/staging/media/atomisp/pci/runtime/binary/src/binary.c11
-rw-r--r--drivers/staging/media/atomisp/pci/runtime/bufq/src/bufq.c32
-rw-r--r--drivers/staging/media/atomisp/pci/runtime/debug/src/ia_css_debug.c171
-rw-r--r--drivers/staging/media/atomisp/pci/runtime/event/src/event.c18
-rw-r--r--drivers/staging/media/atomisp/pci/runtime/frame/src/frame.c63
-rw-r--r--drivers/staging/media/atomisp/pci/runtime/ifmtr/src/ifmtr.c22
-rw-r--r--drivers/staging/media/atomisp/pci/runtime/inputfifo/src/inputfifo.c50
-rw-r--r--drivers/staging/media/atomisp/pci/runtime/isp_param/src/isp_param.c18
-rw-r--r--drivers/staging/media/atomisp/pci/runtime/isys/src/csi_rx_rmgr.c18
-rw-r--r--drivers/staging/media/atomisp/pci/runtime/isys/src/ibuf_ctrl_rmgr.c19
-rw-r--r--drivers/staging/media/atomisp/pci/runtime/isys/src/isys_dma_rmgr.c18
-rw-r--r--drivers/staging/media/atomisp/pci/runtime/isys/src/isys_init.c18
-rw-r--r--drivers/staging/media/atomisp/pci/runtime/isys/src/isys_stream2mmio_rmgr.c18
-rw-r--r--drivers/staging/media/atomisp/pci/runtime/isys/src/rx.c18
-rw-r--r--drivers/staging/media/atomisp/pci/runtime/isys/src/virtual_isys.c18
-rw-r--r--drivers/staging/media/atomisp/pci/runtime/pipeline/src/pipeline.c18
-rw-r--r--drivers/staging/media/atomisp/pci/runtime/queue/src/queue_access.c18
-rw-r--r--drivers/staging/media/atomisp/pci/runtime/rmgr/src/rmgr.c18
-rw-r--r--drivers/staging/media/atomisp/pci/runtime/spctrl/src/spctrl.c21
-rw-r--r--drivers/staging/media/atomisp/pci/runtime/timer/src/timer.c16
-rw-r--r--drivers/staging/media/atomisp/pci/sh_css.c2
-rw-r--r--drivers/staging/media/atomisp/pci/sh_css_firmware.c32
-rw-r--r--drivers/staging/media/atomisp/pci/sh_css_mipi.c113
-rw-r--r--drivers/staging/media/atomisp/pci/sh_css_params.c470
35 files changed, 392 insertions, 915 deletions
diff --git a/drivers/staging/media/atomisp/pci/atomisp_cmd.c b/drivers/staging/media/atomisp/pci/atomisp_cmd.c
index 98074609e7ec..5be690f876c1 100644
--- a/drivers/staging/media/atomisp/pci/atomisp_cmd.c
+++ b/drivers/staging/media/atomisp/pci/atomisp_cmd.c
@@ -4797,10 +4797,8 @@ static void __atomisp_update_stream_env(struct atomisp_sub_device *asd,
{
int i;
-#if defined(ISP2401_NEW_INPUT_SYSTEM)
/* assign virtual channel id return from sensor driver query */
asd->stream_env[stream_index].ch_id = stream_info->ch_id;
-#endif
asd->stream_env[stream_index].isys_configs = stream_info->isys_configs;
for (i = 0; i < stream_info->isys_configs; i++) {
asd->stream_env[stream_index].isys_info[i].input_format =
diff --git a/drivers/staging/media/atomisp/pci/base/refcount/src/refcount.c b/drivers/staging/media/atomisp/pci/base/refcount/src/refcount.c
index 97670fd9e078..e39cc2132953 100644
--- a/drivers/staging/media/atomisp/pci/base/refcount/src/refcount.c
+++ b/drivers/staging/media/atomisp/pci/base/refcount/src/refcount.c
@@ -196,9 +196,7 @@ bool ia_css_refcount_decrement(s32 id, hrt_vaddress ptr)
id, ptr, entry, entry->id, entry->count);
else
IA_CSS_ERROR("entry NULL\n");
-#ifdef ISP2401
assert(false);
-#endif
return false;
}
@@ -246,14 +244,13 @@ void ia_css_refcount_clear(s32 id, clear_func clear_func_ptr)
"ia_css_refcount_clear: using hmm_free: no clear_func\n");
hmm_free(entry->data);
}
-#ifndef ISP2401
-#else
- assert(entry->count == 0);
-#endif
if (entry->count != 0) {
IA_CSS_WARNING("Ref count for entry %x is not zero!", entry->id);
}
+
+ assert(entry->count == 0);
+
entry->data = mmgr_NULL;
entry->count = 0;
entry->id = 0;
diff --git a/drivers/staging/media/atomisp/pci/camera/pipe/src/pipe_binarydesc.c b/drivers/staging/media/atomisp/pci/camera/pipe/src/pipe_binarydesc.c
index e4f42cb75d5d..c6b07d65ce3e 100644
--- a/drivers/staging/media/atomisp/pci/camera/pipe/src/pipe_binarydesc.c
+++ b/drivers/staging/media/atomisp/pci/camera/pipe/src/pipe_binarydesc.c
@@ -57,10 +57,8 @@ static void pipe_binarydesc_get_offline(
descr->enable_dz = true;
descr->enable_xnr = false;
descr->enable_dpc = false;
-#ifdef ISP2401
descr->enable_luma_only = false;
descr->enable_tnr = false;
-#endif
descr->enable_capture_pp_bli = false;
descr->enable_fractional_ds = false;
descr->dvs_env.width = 0;
@@ -391,12 +389,10 @@ enum ia_css_err ia_css_pipe_get_video_binarydesc(
pipe->extra_config.enable_fractional_ds;
video_descr->enable_dpc =
pipe->config.enable_dpc;
-#ifdef ISP2401
video_descr->enable_luma_only =
pipe->config.enable_luma_only;
video_descr->enable_tnr =
pipe->config.enable_tnr;
-#endif
if (pipe->extra_config.enable_raw_binning) {
if (pipe->config.bayer_ds_out_res.width != 0 &&
@@ -603,27 +599,24 @@ void ia_css_pipe_get_primary_binarydesc(
prim_descr->isp_pipe_version = pipe->config.isp_pipe_version;
prim_descr->enable_fractional_ds =
pipe->extra_config.enable_fractional_ds;
-#ifdef ISP2401
prim_descr->enable_luma_only =
pipe->config.enable_luma_only;
-#endif
/* We have both striped and non-striped primary binaries,
* if continuous viewfinder is required, then we must select
* a striped one. Otherwise we prefer to use a non-striped
* since it has better performance. */
if (pipe_version == IA_CSS_PIPE_VERSION_2_6_1)
prim_descr->striped = false;
- else
-#ifndef ISP2401
+ else if (!atomisp_hw_is_isp2401) {
prim_descr->striped = prim_descr->continuous &&
(!pipe->stream->stop_copy_preview || !pipe->stream->disable_cont_vf);
-#else
+ } else {
prim_descr->striped = prim_descr->continuous && !pipe->stream->disable_cont_vf;
- if ((pipe->config.default_capture_config.enable_xnr != 0) &&
- (pipe->extra_config.enable_dvs_6axis == true))
- prim_descr->enable_xnr = true;
-#endif
+ if ((pipe->config.default_capture_config.enable_xnr != 0) &&
+ (pipe->extra_config.enable_dvs_6axis == true))
+ prim_descr->enable_xnr = true;
+ }
}
IA_CSS_LEAVE_PRIVATE("");
}
@@ -855,14 +848,15 @@ void ia_css_pipe_get_ldc_binarydesc(
assert(out_info);
IA_CSS_ENTER_PRIVATE("");
-#ifndef ISP2401
- *in_info = *out_info;
-#else
- if (pipe->out_yuv_ds_input_info.res.width)
- *in_info = pipe->out_yuv_ds_input_info;
- else
+ if (!atomisp_hw_is_isp2401) {
*in_info = *out_info;
-#endif
+ } else {
+ if (pipe->out_yuv_ds_input_info.res.width)
+ *in_info = pipe->out_yuv_ds_input_info;
+ else
+ *in_info = *out_info;
+ }
+
in_info->format = IA_CSS_FRAME_FORMAT_YUV420;
in_info->raw_bit_depth = 0;
ia_css_frame_info_set_width(in_info, in_info->res.width, 0);
diff --git a/drivers/staging/media/atomisp/pci/camera/util/src/util.c b/drivers/staging/media/atomisp/pci/camera/util/src/util.c
index f14776f09bbb..217fe9cb54ff 100644
--- a/drivers/staging/media/atomisp/pci/camera/util/src/util.c
+++ b/drivers/staging/media/atomisp/pci/camera/util/src/util.c
@@ -210,11 +210,9 @@ enum ia_css_err ia_css_util_check_input(
if (!stream_config)
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;
diff --git a/drivers/staging/media/atomisp/pci/isp/kernels/dp/dp_1.0/ia_css_dp.host.c b/drivers/staging/media/atomisp/pci/isp/kernels/dp/dp_1.0/ia_css_dp.host.c
index 461ff18ed011..9fb37447831c 100644
--- a/drivers/staging/media/atomisp/pci/isp/kernels/dp/dp_1.0/ia_css_dp.host.c
+++ b/drivers/staging/media/atomisp/pci/isp/kernels/dp/dp_1.0/ia_css_dp.host.c
@@ -19,7 +19,6 @@
#include "ia_css_dp.host.h"
-#ifdef ISP2401
/* We use a different set of DPC configuration parameters when
* DPC is used before OBC and NORM. Currently these parameters
* are used in usecases which selects both BDS and DPC.
@@ -32,7 +31,7 @@ const struct ia_css_dp_config default_dp_10bpp_config = {
32768,
32768
};
-#endif
+
const struct ia_css_dp_config default_dp_config = {
8192,
2048,
diff --git a/drivers/staging/media/atomisp/pci/isp/kernels/dvs/dvs_1.0/ia_css_dvs.host.c b/drivers/staging/media/atomisp/pci/isp/kernels/dvs/dvs_1.0/ia_css_dvs.host.c
index 2e438a4de3a6..d2c3e8edf626 100644
--- a/drivers/staging/media/atomisp/pci/isp/kernels/dvs/dvs_1.0/ia_css_dvs.host.c
+++ b/drivers/staging/media/atomisp/pci/isp/kernels/dvs/dvs_1.0/ia_css_dvs.host.c
@@ -66,9 +66,6 @@ convert_coords_to_ispparams(
unsigned int uv_flag)
{
unsigned int i, j;
-#ifndef ISP2401
- /* Coverity CID 298073 - initialize */
-#endif
gdc_warp_param_mem_t s = { 0 };
unsigned int x00, x01, x10, x11,
y00, y01, y10, y11;
diff --git a/drivers/staging/media/atomisp/pci/isp/kernels/ipu2_io_ls/yuv444_io_ls/ia_css_yuv444_io.host.c b/drivers/staging/media/atomisp/pci/isp/kernels/ipu2_io_ls/yuv444_io_ls/ia_css_yuv444_io.host.c
index 2fc0c222a579..ba490c5fc18e 100644
--- a/drivers/staging/media/atomisp/pci/isp/kernels/ipu2_io_ls/yuv444_io_ls/ia_css_yuv444_io.host.c
+++ b/drivers/staging/media/atomisp/pci/isp/kernels/ipu2_io_ls/yuv444_io_ls/ia_css_yuv444_io.host.c
@@ -1,4 +1,3 @@
-#ifdef ISP2401
/*
Support for Intel Camera Imaging ISP subsystem.
Copyright (c) 2010 - 2015, Intel Corporation.
@@ -92,4 +91,3 @@ ia_css_yuv444_io_config(
#endif
}
}
-#endif
diff --git a/drivers/staging/media/atomisp/pci/isp/kernels/sc/sc_1.0/ia_css_sc.host.c b/drivers/staging/media/atomisp/pci/isp/kernels/sc/sc_1.0/ia_css_sc.host.c
index cfec188681e2..000cbe600f97 100644
--- a/drivers/staging/media/atomisp/pci/isp/kernels/sc/sc_1.0/ia_css_sc.host.c
+++ b/drivers/staging/media/atomisp/pci/isp/kernels/sc/sc_1.0/ia_css_sc.host.c
@@ -16,12 +16,9 @@
#include "sh_css_defs.h"
#include "ia_css_debug.h"
#include "assert_support.h"
-#ifdef ISP2401
-#include "math_support.h" /* min() */
#define IA_CSS_INCLUDE_CONFIGURATIONS
#include "ia_css_isp_configs.h"
-#endif
#include "ia_css_sc.host.h"
@@ -46,7 +43,7 @@ ia_css_sc_dump(
"sc_gain_shift", sc->gain_shift);
}
-#ifdef ISP2401
+/* ISP2401 */
void
ia_css_sc_config(
struct sh_css_isp_sc_isp_config *to,
@@ -70,6 +67,7 @@ ia_css_sc_config(
to->internal_frame_origin_y_bqs_on_sctbl = internal_org_y_bqs;
}
+/* ISP2401 */
void
ia_css_sc_configure(
const struct ia_css_binary *binary,
@@ -84,7 +82,6 @@ ia_css_sc_configure(
ia_css_configure_sc(binary, &config);
}
-#endif
/* ------ deprecated(bz675) : from ------ */
/* It looks like @parameter{} (in *.pipe) is used to generate the process/get/set functions,
for parameters which should be used in the isp kernels.
diff --git a/drivers/staging/media/atomisp/pci/isp/kernels/xnr/xnr_3.0/ia_css_xnr3.host.c b/drivers/staging/media/atomisp/pci/isp/kernels/xnr/xnr_3.0/ia_css_xnr3.host.c
index e6c4e0fe34f0..4630cbd495f8 100644
--- a/drivers/staging/media/atomisp/pci/isp/kernels/xnr/xnr_3.0/ia_css_xnr3.host.c
+++ b/drivers/staging/media/atomisp/pci/isp/kernels/xnr/xnr_3.0/ia_css_xnr3.host.c
@@ -16,9 +16,7 @@
#include "math_support.h"
#include "sh_css_defs.h"
#include "ia_css_types.h"
-#ifdef ISP2401
#include "assert_support.h"
-#endif
#include "ia_css_xnr3.host.h"
/* Maximum value for alpha on ISP interface */
@@ -30,7 +28,6 @@
#define XNR_MIN_SIGMA (IA_CSS_XNR3_SIGMA_SCALE / 100)
/*
-#ifdef ISP2401
* division look-up table
* Refers to XNR3.0.5
*/
@@ -79,27 +76,12 @@ static int32_t
compute_alpha(int sigma)
{
s32 alpha;
-#if defined(XNR_ATE_ROUNDING_BUG)
- s32 alpha_unscaled;
-#else
int offset = sigma / 2;
-#endif
+
if (sigma < XNR_MIN_SIGMA) {
alpha = XNR_MAX_ALPHA;
} else {
-#if defined(XNR_ATE_ROUNDING_BUG)
- /* The scale factor for alpha must be the same as on the ISP,
- * For sigma, it must match the public interface. The code
- * below mimics the rounding and unintended loss of precision
- * of the ATE reference code. It computes an unscaled alpha,
- * rounds down, and then scales it to get the required fixed
- * point representation. It would have been more precise to
- * round after scaling. */
- alpha_unscaled = IA_CSS_XNR3_SIGMA_SCALE / sigma;
- alpha = alpha_unscaled * XNR_ALPHA_SCALE_FACTOR;
-#else
alpha = ((IA_CSS_XNR3_SIGMA_SCALE * XNR_ALPHA_SCALE_FACTOR) + offset) / sigma;
-#endif
if (alpha > XNR_MAX_ALPHA)
alpha = XNR_MAX_ALPHA;
@@ -200,7 +182,7 @@ ia_css_xnr3_encode(
to->blending.strength = blending;
}
-#ifdef ISP2401
+/* ISP2401 */
/* (void) = ia_css_xnr3_vmem_encode(*to, *from)
* -----------------------------------------------
* VMEM Encode Function to translate UV parameters from userspace into ISP space
@@ -256,7 +238,6 @@ ia_css_xnr3_vmem_encode(
}
}
-#endif
/* Dummy Function added as the tool expects it*/
void
ia_css_xnr3_debug_dtrace(
diff --git a/drivers/staging/media/atomisp/pci/isp2400_system_global.h b/drivers/staging/media/atomisp/pci/isp2400_system_global.h
index 21938de974b7..06fce25f2034 100644
--- a/drivers/staging/media/atomisp/pci/isp2400_system_global.h
+++ b/drivers/staging/media/atomisp/pci/isp2400_system_global.h
@@ -46,7 +46,6 @@
* N.B. the 3 input formatters are of 2 different classess
*/
-#define IS_ISP_2400_SYSTEM
/*
* Since this file is visible everywhere and the system definition
* macros are not, detect the separate definitions for {host, SP, ISP}
diff --git a/drivers/staging/media/atomisp/pci/isp2401_system_global.h b/drivers/staging/media/atomisp/pci/isp2401_system_global.h
index 9c948cc175be..213b6ee52208 100644
--- a/drivers/staging/media/atomisp/pci/isp2401_system_global.h
+++ b/drivers/staging/media/atomisp/pci/isp2401_system_global.h
@@ -52,7 +52,6 @@
#define USE_INPUT_SYSTEM_VERSION_2401
-#define IS_ISP_2400_SYSTEM
/*
* Since this file is visible everywhere and the system definition
* macros are not, detect the separate definitions for {host, SP, ISP}
diff --git a/drivers/staging/media/atomisp/pci/runtime/binary/src/binary.c b/drivers/staging/media/atomisp/pci/runtime/binary/src/binary.c
index f5103813caa0..2a23b7c6aeeb 100644
--- a/drivers/staging/media/atomisp/pci/runtime/binary/src/binary.c
+++ b/drivers/staging/media/atomisp/pci/runtime/binary/src/binary.c
@@ -27,13 +27,9 @@
#include "sh_css_legacy.h"
#include "vf/vf_1.0/ia_css_vf.host.h"
-#ifdef ISP2401
#include "sc/sc_1.0/ia_css_sc.host.h"
-#endif
#include "sdis/sdis_1.0/ia_css_sdis.host.h"
-#ifdef ISP2401
#include "fixedbds/fixedbds_1.0/ia_css_fixedbds_param.h" /* FRAC_ACC */
-#endif
#include "camera/pipe/interface/ia_css_pipe_binarydesc.h"
@@ -108,7 +104,7 @@ ia_css_binary_internal_res(const struct ia_css_frame_info *in_info,
binary_dvs_env.height);
}
-#ifndef ISP2401
+/* ISP2400 */
/* Computation results of the origin coordinate of bayer on the shading table. */
struct sh_css_shading_table_bayer_origin_compute_results {
u32 bayer_scale_hor_ratio_in; /* Horizontal ratio (in) of bayer scaling. */
@@ -117,7 +113,9 @@ struct sh_css_shading_table_bayer_origin_compute_results {
u32 bayer_scale_ver_ratio_out; /* Vertical ratio (out) of bayer scaling. */
u32 sc_bayer_origin_x_bqs_on_shading_table; /* X coordinate (in bqs) of bayer origin on shading table. */
u32 sc_bayer_origin_y_bqs_on_shading_table; /* Y coordinate (in bqs) of bayer origin on shading table. */
-#else
+};
+
+/* ISP2401 */
/* Requirements for the shading correction. */
struct sh_css_binary_sc_requirements {
/* Bayer scaling factor, for the scaling which is applied before shading correction. */
@@ -131,7 +129,6 @@ struct sh_css_binary_sc_requirements {
at shading correction. */
u32 sensor_data_origin_y_bqs_on_internal; /* Y origin (in bqs) of sensor data on internal frame
at shading correction. */
-#endif
};
/* Get the requirements for the shading correction. */
diff --git a/drivers/staging/media/atomisp/pci/runtime/bufq/src/bufq.c b/drivers/staging/media/atomisp/pci/runtime/bufq/src/bufq.c
index 87ce18f8267e..7e01df257150 100644
--- a/drivers/staging/media/atomisp/pci/runtime/bufq/src/bufq.c
+++ b/drivers/staging/media/atomisp/pci/runtime/bufq/src/bufq.c
@@ -33,8 +33,6 @@ static char prefix[BUFQ_DUMP_FILE_NAME_PREFIX_SIZE] = {0};
/* Global Queue objects used by CSS */
/*********************************************************/
-#ifndef ISP2401
-
struct sh_css_queues {
/* Host2SP buffer queue */
ia_css_queue_t host2sp_buffer_queue_handles
@@ -60,36 +58,6 @@ struct sh_css_queues {
ia_css_queue_t host2sp_tag_cmd_queue_handle;
};
-#else
-
-struct sh_css_queues {
- /* Host2SP buffer queue */
- ia_css_queue_t host2sp_buffer_queue_handles
- [SH_CSS_MAX_SP_THREADS][SH_CSS_MAX_NUM_QUEUES];
- /* SP2Host buffer queue */
- ia_css_queue_t sp2host_buffer_queue_handles
- [SH_CSS_MAX_NUM_QUEUES];
-
- /* Host2SP event queue */
- ia_css_queue_t host2sp_psys_event_queue_handle;
-
- /* SP2Host event queue */
- ia_css_queue_t sp2host_psys_event_queue_handle;
-
-#if !defined(HAS_NO_INPUT_SYSTEM)
- /* Host2SP ISYS event queue */
- ia_css_queue_t host2sp_isys_event_queue_handle;
-
- /* SP2Host ISYS event queue */
- ia_css_queue_t sp2host_isys_event_queue_handle;
-
- /* Tagger command queue */
- ia_css_queue_t host2sp_tag_cmd_queue_handle;
-#endif
-};
-
-#endif
-
/*******************************************************
*** Static variables
********************************************************/
diff --git a/drivers/staging/media/atomisp/pci/runtime/debug/src/ia_css_debug.c b/drivers/staging/media/atomisp/pci/runtime/debug/src/ia_css_debug.c
index da0df52896f3..3d7b0242cf53 100644
--- a/drivers/staging/media/atomisp/pci/runtime/debug/src/ia_css_debug.c
+++ b/drivers/staging/media/atomisp/pci/runtime/debug/src/ia_css_debug.c
@@ -39,9 +39,8 @@
#include "ia_css_isp_param.h"
#include "sh_css_params.h"
#include "ia_css_bufq.h"
-#ifdef ISP2401
+/* ISP2401 */
#include "ia_css_queue.h"
-#endif
#include "ia_css_isp_params.h"
@@ -3100,10 +3099,11 @@ ia_css_debug_dump_pipe_config(
ia_css_debug_dump_resolution(&config->capt_pp_in_res,
"capt_pp_in_res");
ia_css_debug_dump_resolution(&config->vf_pp_in_res, "vf_pp_in_res");
-#ifdef ISP2401
- ia_css_debug_dump_resolution(&config->output_system_in_res,
- "output_system_in_res");
-#endif
+
+ if (atomisp_hw_is_isp2401) {
+ ia_css_debug_dump_resolution(&config->output_system_in_res,
+ "output_system_in_res");
+ }
ia_css_debug_dump_resolution(&config->dvs_crop_out_res,
"dvs_crop_out_res");
for (i = 0; i < IA_CSS_PIPE_MAX_OUTPUT_STAGE; i++) {
@@ -3295,10 +3295,8 @@ static void debug_dump_one_trace(enum TRACE_CORE_ID proc_id)
int i, j, max_trace_points, point_num, limit = -1;
/* using a static buffer here as the driver has issues allocating memory */
static u32 trace_read_buf[TRACE_BUFF_SIZE] = {0};
-#ifdef ISP2401
static struct trace_header_t header;
u8 *header_arr;
-#endif
/* read the header and parse it */
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE, "~~~ Tracer ");
@@ -3329,27 +3327,27 @@ static void debug_dump_one_trace(enum TRACE_CORE_ID proc_id)
"\t\ttraces are not supported for this processor ID - exiting\n");
return;
}
-#ifndef ISP2401
- tmp = ia_css_device_load_uint32(start_addr);
- point_num = (tmp >> 16) & 0xFFFF;
-#endif
-#ifndef ISP2401
- ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE, " ver %d %d points\n", tmp & 0xFF,
- point_num);
- if ((tmp & 0xFF) != TRACER_VER) {
-#else
- /* Loading byte-by-byte as using the master routine had issues */
- header_arr = (uint8_t *)&header;
- for (i = 0; i < (int)sizeof(struct trace_header_t); i++)
- header_arr[i] = ia_css_device_load_uint8(start_addr + (i));
+ if (!atomisp_hw_is_isp2401) {
+ tmp = ia_css_device_load_uint32(start_addr);
+ point_num = (tmp >> 16) & 0xFFFF;
+
+ ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE, " ver %d %d points\n", tmp & 0xFF,
+ point_num);
+ } else {
+ /* Loading byte-by-byte as using the master routine had issues */
+ header_arr = (uint8_t *)&header;
+ for (i = 0; i < (int)sizeof(struct trace_header_t); i++)
+ header_arr[i] = ia_css_device_load_uint8(start_addr + (i));
- point_num = header.max_tracer_points;
+ point_num = header.max_tracer_points;
- ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE, " ver %d %d points\n", header.version,
- point_num);
- if ((header.version & 0xFF) != TRACER_VER) {
-#endif
+ ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE, " ver %d %d points\n", header.version,
+ point_num);
+
+ tmp = header.version;
+ }
+ if ((tmp & 0xFF) != TRACER_VER) {
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE, "\t\tUnknown version - exiting\n");
return;
}
@@ -3364,21 +3362,20 @@ static void debug_dump_one_trace(enum TRACE_CORE_ID proc_id)
if ((limit == (-1)) && (trace_read_buf[i] == 0))
limit = i;
}
-#ifdef ISP2401
- ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE, "Status:\n");
- for (i = 0; i < SH_CSS_MAX_SP_THREADS; i++)
- ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE,
- "\tT%d: %3d (%02x) %6d (%04x) %10d (%08x)\n", i,
- header.thr_status_byte[i], header.thr_status_byte[i],
- header.thr_status_word[i], header.thr_status_word[i],
- header.thr_status_dword[i], header.thr_status_dword[i]);
- ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE, "Scratch:\n");
- for (i = 0; i < MAX_SCRATCH_DATA; i++)
- ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE, "%10d (%08x) ",
- header.scratch_debug[i], header.scratch_debug[i]);
- ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE, "\n");
-
-#endif
+ if (atomisp_hw_is_isp2401) {
+ ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE, "Status:\n");
+ for (i = 0; i < SH_CSS_MAX_SP_THREADS; i++)
+ ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE,
+ "\tT%d: %3d (%02x) %6d (%04x) %10d (%08x)\n", i,
+ header.thr_status_byte[i], header.thr_status_byte[i],
+ header.thr_status_word[i], header.thr_status_word[i],
+ header.thr_status_dword[i], header.thr_status_dword[i]);
+ ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE, "Scratch:\n");
+ for (i = 0; i < MAX_SCRATCH_DATA; i++)
+ ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE, "%10d (%08x) ",
+ header.scratch_debug[i], header.scratch_debug[i]);
+ ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE, "\n");
+ }
/* two 0s in the beginning: empty buffer */
if ((trace_read_buf[0] == 0) && (trace_read_buf[1] == 0)) {
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE, "\t\tEmpty tracer - exiting\n");
@@ -3398,114 +3395,83 @@ static void debug_dump_one_trace(enum TRACE_CORE_ID proc_id)
for (i = 0; i < point_num; i++) {
j = (limit + i) % point_num;
if (trace_read_buf[j]) {
-#ifndef ISP2401
- TRACE_DUMP_FORMAT dump_format = FIELD_FORMAT_UNPACK(trace_read_buf[j]);
-#else
-
- tid_val = FIELD_TID_UNPACK(trace_read_buf[j]);
- dump_format = TRACE_DUMP_FORMAT_POINT;
-
- /*
- * When tid value is 111b, the data will be interpreted differently:
- * tid val is ignored, major field contains 2 bits (msb) for format type
- */
- if (tid_val == FIELD_TID_SEL_FORMAT_PAT) {
- dump_format = FIELD_FORMAT_UNPACK(trace_read_buf[j]);
+ if (!atomisp_hw_is_isp2401) {
+ TRACE_DUMP_FORMAT dump_format = FIELD_FORMAT_UNPACK(trace_read_buf[j]);
+ } else {
+ tid_val = FIELD_TID_UNPACK(trace_read_buf[j]);
+ dump_format = TRACE_DUMP_FORMAT_POINT;
+
+ /*
+ * When tid value is 111b, the data will be interpreted differently:
+ * tid val is ignored, major field contains 2 bits (msb) for format type
+ */
+ if (tid_val == FIELD_TID_SEL_FORMAT_PAT) {
+ dump_format = FIELD_FORMAT_UNPACK(trace_read_buf[j]);
+ }
}
-#endif
switch (dump_format) {
case TRACE_DUMP_FORMAT_POINT:
ia_css_debug_dtrace(
-#ifndef ISP2401
IA_CSS_DEBUG_TRACE, "\t\t%d %d:%d value - %d\n",
j, FIELD_MAJOR_UNPACK(trace_read_buf[j]),
-#else
- IA_CSS_DEBUG_TRACE, "\t\t%d T%d %d:%d value - %x (%d)\n",
- j,
- tid_val,
- FIELD_MAJOR_UNPACK(trace_read_buf[j]),
-#endif
FIELD_MINOR_UNPACK(trace_read_buf[j]),
-#ifdef ISP2401
- FIELD_VALUE_UNPACK(trace_read_buf[j]),
-#endif
FIELD_VALUE_UNPACK(trace_read_buf[j]));
break;
-#ifndef ISP2401
+ /* ISP2400 */
case TRACE_DUMP_FORMAT_VALUE24_HEX:
-#else
- case TRACE_DUMP_FORMAT_POINT_NO_TID:
-#endif
ia_css_debug_dtrace(
-#ifndef ISP2401
IA_CSS_DEBUG_TRACE, "\t\t%d, %d, 24bit value %x H\n",
-#else
- IA_CSS_DEBUG_TRACE, "\t\t%d %d:%d value - %x (%d)\n",
-#endif
j,
-#ifndef ISP2401
FIELD_MAJOR_UNPACK(trace_read_buf[j]),
FIELD_VALUE_24_UNPACK(trace_read_buf[j]));
-#else
+ break;
+ /* ISP2400 */
+ case TRACE_DUMP_FORMAT_VALUE24_DEC:
+ ia_css_debug_dtrace(
+ IA_CSS_DEBUG_TRACE, "\t\t%d, %d, 24bit value %d D\n",
+ j,
+ FIELD_MAJOR_UNPACK(trace_read_buf[j]),
+ FIELD_VALUE_24_UNPACK(trace_read_buf[j]));
+ break;
+ /* ISP2401 */
+ case TRACE_DUMP_FORMAT_POINT_NO_TID:
+ ia_css_debug_dtrace(
+ IA_CSS_DEBUG_TRACE, "\t\t%d %d:%d value - %x (%d)\n",
+ j,
FIELD_MAJOR_W_FMT_UNPACK(trace_read_buf[j]),
FIELD_MINOR_UNPACK(trace_read_buf[j]),
FIELD_VALUE_UNPACK(trace_read_buf[j]),
FIELD_VALUE_UNPACK(trace_read_buf[j]));
-#endif
break;
-#ifndef ISP2401
- case TRACE_DUMP_FORMAT_VALUE24_DEC:
-#else
+ /* ISP2401 */
case TRACE_DUMP_FORMAT_VALUE24:
-#endif
ia_css_debug_dtrace(
-#ifndef ISP2401
- IA_CSS_DEBUG_TRACE, "\t\t%d, %d, 24bit value %d D\n",
-#else
IA_CSS_DEBUG_TRACE, "\t\t%d, %d, 24bit value %x (%d)\n",
-#endif
j,
FIELD_MAJOR_UNPACK(trace_read_buf[j]),
-#ifdef ISP2401
FIELD_MAJOR_W_FMT_UNPACK(trace_read_buf[j]),
FIELD_VALUE_24_UNPACK(trace_read_buf[j]),
-#endif
FIELD_VALUE_24_UNPACK(trace_read_buf[j]));
break;
-#ifdef ISP2401
-
-#endif
case TRACE_DUMP_FORMAT_VALUE24_TIMING:
ia_css_debug_dtrace(
IA_CSS_DEBUG_TRACE, "\t\t%d, %d, timing %x\n",
j,
-#ifndef ISP2401
FIELD_MAJOR_UNPACK(trace_read_buf[j]),
-#else
- FIELD_MAJOR_W_FMT_UNPACK(trace_read_buf[j]),
-#endif
FIELD_VALUE_24_UNPACK(trace_read_buf[j]));
break;
case TRACE_DUMP_FORMAT_VALUE24_TIMING_DELTA:
ia_css_debug_dtrace(
IA_CSS_DEBUG_TRACE, "\t\t%d, %d, timing delta %x\n",
j,
-#ifndef ISP2401
FIELD_MAJOR_UNPACK(trace_read_buf[j]),
-#else
- FIELD_MAJOR_W_FMT_UNPACK(trace_read_buf[j]),
-#endif
FIELD_VALUE_24_UNPACK(trace_read_buf[j]));
break;
default:
ia_css_debug_dtrace(
IA_CSS_DEBUG_TRACE,
"no such trace dump format %d",
-#ifndef ISP2401
- FIELD_FORMAT_UNPACK(trace_read_buf[j]));
-#else
dump_format);
-#endif
break;
}
}
@@ -3557,7 +3523,7 @@ void ia_css_debug_tagger_state(void)
}
#endif /* defined(USE_INPUT_SYSTEM_VERSION_2) || defined(USE_INPUT_SYSTEM_VERSION_2401) */
-#ifdef ISP2401
+/* ISP2401 */
void ia_css_debug_pc_dump(sp_ID_t id, unsigned int num_of_dumps)
{
unsigned int pc;
@@ -3572,7 +3538,6 @@ void ia_css_debug_pc_dump(sp_ID_t id, unsigned int num_of_dumps)
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE, "SP%-1d PC: 0x%X\n", id, pc);
}
}
-#endif
#if defined(HRT_SCHED) || defined(SH_CSS_DEBUG_SPMEM_DUMP_SUPPORT)
#include "spmem_dump.c"
diff --git a/drivers/staging/media/atomisp/pci/runtime/event/src/event.c b/drivers/staging/media/atomisp/pci/runtime/event/src/event.c
index 74ad5f3d5d0e..c4578470ad8c 100644
--- a/drivers/staging/media/atomisp/pci/runtime/event/src/event.c
+++ b/drivers/staging/media/atomisp/pci/runtime/event/src/event.c
@@ -1,7 +1,6 @@
-#ifndef ISP2401
/*
* Support for Intel Camera Imaging ISP subsystem.
- * Copyright (c) 2015, Intel Corporation.
+ * 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,
@@ -12,21 +11,6 @@
* 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 "sh_css_sp.h"
diff --git a/drivers/staging/media/atomisp/pci/runtime/frame/src/frame.c b/drivers/staging/media/atomisp/pci/runtime/frame/src/frame.c
index ab4ca17f0574..fcd8b06034f2 100644
--- a/drivers/staging/media/atomisp/pci/runtime/frame/src/frame.c
+++ b/drivers/staging/media/atomisp/pci/runtime/frame/src/frame.c
@@ -1,4 +1,3 @@
-#ifndef ISP2401
/*
* Support for Intel Camera Imaging ISP subsystem.
* Copyright (c) 2015, Intel Corporation.
@@ -12,21 +11,6 @@
* 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 "ia_css_frame.h"
#include <math_support.h>
@@ -146,21 +130,12 @@ enum ia_css_err ia_css_frame_allocate(struct ia_css_frame **frame,
return IA_CSS_ERR_INVALID_ARGUMENTS;
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE,
-#ifndef ISP2401
- "ia_css_frame_allocate() enter: width=%d, height=%d, format=%d\n",
- width, height, format);
-#else
"ia_css_frame_allocate() enter: width=%d, height=%d, format=%d, padded_width=%d, raw_bit_depth=%d\n",
width, height, format, padded_width, raw_bit_depth);
-#endif
err = frame_allocate_with_data(frame, width, height, format,
padded_width, raw_bit_depth, false);
-#ifndef ISP2401
- ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE,
- "ia_css_frame_allocate() leave: frame=%p\n", *frame);
-#else
if ((*frame) && err == IA_CSS_SUCCESS)
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE,
"ia_css_frame_allocate() leave: frame=%p, data(DDR address)=0x%x\n", *frame,
@@ -169,7 +144,6 @@ enum ia_css_err ia_css_frame_allocate(struct ia_css_frame **frame,
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE,
"ia_css_frame_allocate() leave: frame=%p, data(DDR address)=0x%x\n",
(void *)-1, (unsigned int)-1);
-#endif
return err;
}
@@ -202,11 +176,7 @@ enum ia_css_err ia_css_frame_map(struct ia_css_frame **frame,
if (err != IA_CSS_SUCCESS) {
sh_css_free(me);
-#ifndef ISP2401
- return err;
-#else
me = NULL;
-#endif
}
*frame = me;
@@ -243,25 +213,17 @@ enum ia_css_err ia_css_frame_create_from_info(struct ia_css_frame **frame,
err = ia_css_frame_init_planes(me);
-#ifndef ISP2401
- if (err == IA_CSS_SUCCESS)
- *frame = me;
- else
-#else
if (err != IA_CSS_SUCCESS) {
-#endif
sh_css_free(me);
-#ifdef ISP2401
- me = NULL;
-}
+ me = NULL;
+ }
-*frame = me;
-#endif
+ *frame = me;
-ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE,
- "ia_css_frame_create_from_info() leave:\n");
+ ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE,
+ "ia_css_frame_create_from_info() leave:\n");
-return err;
+ return err;
}
enum ia_css_err ia_css_frame_set_data(struct ia_css_frame *frame,
@@ -306,13 +268,8 @@ enum ia_css_err ia_css_frame_allocate_contiguous(struct ia_css_frame **frame,
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE,
"ia_css_frame_allocate_contiguous() "
-#ifndef ISP2401
- "enter: width=%d, height=%d, format=%d\n",
- width, height, format);
-#else
"enter: width=%d, height=%d, format=%d, padded_width=%d, raw_bit_depth=%d\n",
width, height, format, padded_width, raw_bit_depth);
-#endif
err = frame_allocate_with_data(frame, width, height, format,
padded_width, raw_bit_depth, true);
@@ -581,11 +538,7 @@ enum ia_css_err ia_css_frame_allocate_with_buffer_size(
if (err != IA_CSS_SUCCESS) {
sh_css_free(me);
-#ifndef ISP2401
- return err;
-#else
me = NULL;
-#endif
}
*frame = me;
@@ -965,8 +918,7 @@ void ia_css_resolution_to_sp_resolution(
to->height = (uint16_t)from->height;
}
-#ifdef ISP2401
-
+/* ISP2401 */
enum ia_css_err
ia_css_frame_find_crop_resolution(const struct ia_css_resolution *in_res,
const struct ia_css_resolution *out_res,
@@ -1035,4 +987,3 @@ ia_css_frame_find_crop_resolution(const struct ia_css_resolution *in_res,
crop_res->height, out_res->width, out_res->height);
return IA_CSS_SUCCESS;
}
-#endif
diff --git a/drivers/staging/media/atomisp/pci/runtime/ifmtr/src/ifmtr.c b/drivers/staging/media/atomisp/pci/runtime/ifmtr/src/ifmtr.c
index cf55a01b2034..7a18eae8c638 100644
--- a/drivers/staging/media/atomisp/pci/runtime/ifmtr/src/ifmtr.c
+++ b/drivers/staging/media/atomisp/pci/runtime/ifmtr/src/ifmtr.c
@@ -1,7 +1,6 @@
-#ifndef ISP2401
/*
* Support for Intel Camera Imaging ISP subsystem.
- * Copyright (c) 2015, Intel Corporation.
+ * 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,
@@ -12,21 +11,6 @@
* 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 "system_global.h"
#include <linux/kernel.h>
@@ -492,10 +476,6 @@ static void ifmtr_set_if_blocking_mode(
assert(N_INPUT_FORMATTER_ID <= (ARRAY_SIZE(block)));
-#if !defined(IS_ISP_2400_SYSTEM)
-#error "ifmtr_set_if_blocking_mode: ISP_SYSTEM must be one of {IS_ISP_2400_SYSTEM}"
-#endif
-
block[INPUT_FORMATTER0_ID] = (bool)config_a->block_no_reqs;
if (config_b)
block[INPUT_FORMATTER1_ID] = (bool)config_b->block_no_reqs;
diff --git a/drivers/staging/media/atomisp/pci/runtime/inputfifo/src/inputfifo.c b/drivers/staging/media/atomisp/pci/runtime/inputfifo/src/inputfifo.c
index 57efa4055f5f..e5a339fb52f2 100644
--- a/drivers/staging/media/atomisp/pci/runtime/inputfifo/src/inputfifo.c
+++ b/drivers/staging/media/atomisp/pci/runtime/inputfifo/src/inputfifo.c
@@ -1,7 +1,6 @@
-#ifndef ISP2401
/*
* Support for Intel Camera Imaging ISP subsystem.
- * Copyright (c) 2015, Intel Corporation.
+ * 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,
@@ -12,21 +11,6 @@
* 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 "platform_support.h"
@@ -195,38 +179,6 @@ static void inputfifo_send_eof(void)
return;
}
-#ifdef __ON__
-static void inputfifo_send_ch_id(
- /* static inline void inputfifo_send_ch_id( */
- unsigned int ch_id)
-{
- hrt_data token;
-
- inputfifo_curr_ch_id = ch_id & _HIVE_ISP_CH_ID_MASK;
- /* we send an zero marker, this will wrap the ch_id and
- * fmt_type automatically.
- */
- token = inputfifo_wrap_marker(0);
- _sh_css_fifo_snd(token);
- return;
-}
-
-static void inputfifo_send_fmt_type(
- /* static inline void inputfifo_send_fmt_type( */
- unsigned int fmt_type)
-{
- hrt_data token;
-
- inputfifo_curr_fmt_type = fmt_type & _HIVE_ISP_FMT_TYPE_MASK;
- /* we send an zero marker, this will wrap the ch_id and
- * fmt_type automatically.
- */
- token = inputfifo_wrap_marker(0);
- _sh_css_fifo_snd(token);
- return;
-}
-#endif /* __ON__ */
-
static void inputfifo_send_ch_id_and_fmt_type(
/* static inline
void inputfifo_send_ch_id_and_fmt_type( */
diff --git a/drivers/staging/media/atomisp/pci/runtime/isp_param/src/isp_param.c b/drivers/staging/media/atomisp/pci/runtime/isp_param/src/isp_param.c
index cab82a9698b2..443e412d05ad 100644
--- a/drivers/staging/media/atomisp/pci/runtime/isp_param/src/isp_param.c
+++ b/drivers/staging/media/atomisp/pci/runtime/isp_param/src/isp_param.c
@@ -1,7 +1,6 @@
-#ifndef ISP2401
/*
* Support for Intel Camera Imaging ISP subsystem.
- * Copyright (c) 2015, Intel Corporation.
+ * 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,
@@ -12,21 +11,6 @@
* 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"
diff --git a/drivers/staging/media/atomisp/pci/runtime/isys/src/csi_rx_rmgr.c b/drivers/staging/media/atomisp/pci/runtime/isys/src/csi_rx_rmgr.c
index 06557c16071f..8f2ce2c057eb 100644
--- a/drivers/staging/media/atomisp/pci/runtime/isys/src/csi_rx_rmgr.c
+++ b/drivers/staging/media/atomisp/pci/runtime/isys/src/csi_rx_rmgr.c
@@ -1,7 +1,6 @@
-#ifndef ISP2401
/*
* Support for Intel Camera Imaging ISP subsystem.
- * Copyright (c) 2015, Intel Corporation.
+ * 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,
@@ -12,21 +11,6 @@
* 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 "system_global.h"
diff --git a/drivers/staging/media/atomisp/pci/runtime/isys/src/ibuf_ctrl_rmgr.c b/drivers/staging/media/atomisp/pci/runtime/isys/src/ibuf_ctrl_rmgr.c
index 72804774ea23..9055ed387673 100644
--- a/drivers/staging/media/atomisp/pci/runtime/isys/src/ibuf_ctrl_rmgr.c
+++ b/drivers/staging/media/atomisp/pci/runtime/isys/src/ibuf_ctrl_rmgr.c
@@ -1,4 +1,3 @@
-#ifndef ISP2401
/*
* Support for Intel Camera Imaging ISP subsystem.
* Copyright (c) 2015, Intel Corporation.
@@ -12,26 +11,9 @@
* 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 "system_global.h"
-#ifdef USE_INPUT_SYSTEM_VERSION_2401
-
#include "assert_support.h"
#include "platform_support.h"
#include "ia_css_isys.h"
@@ -137,4 +119,3 @@ void ia_css_isys_ibuf_rmgr_release(
}
}
}
-#endif
diff --git a/drivers/staging/media/atomisp/pci/runtime/isys/src/isys_dma_rmgr.c b/drivers/staging/media/atomisp/pci/runtime/isys/src/isys_dma_rmgr.c
index 8ce21091c81d..930fa7a0ff53 100644
--- a/drivers/staging/media/atomisp/pci/runtime/isys/src/isys_dma_rmgr.c
+++ b/drivers/staging/media/atomisp/pci/runtime/isys/src/isys_dma_rmgr.c
@@ -1,7 +1,6 @@
-#ifndef ISP2401
/*
* Support for Intel Camera Imaging ISP subsystem.
- * Copyright (c) 2015, Intel Corporation.
+ * 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,
@@ -12,21 +11,6 @@
* 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 "system_global.h"
diff --git a/drivers/staging/media/atomisp/pci/runtime/isys/src/isys_init.c b/drivers/staging/media/atomisp/pci/runtime/isys/src/isys_init.c
index 5e7565cdf871..b923233ec5b0 100644
--- a/drivers/staging/media/atomisp/pci/runtime/isys/src/isys_init.c
+++ b/drivers/staging/media/atomisp/pci/runtime/isys/src/isys_init.c
@@ -1,7 +1,6 @@
-#ifndef ISP2401
/*
* Support for Intel Camera Imaging ISP subsystem.
- * Copyright (c) 2015, Intel Corporation.
+ * 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,
@@ -12,21 +11,6 @@
* 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 "input_system.h"
diff --git a/drivers/staging/media/atomisp/pci/runtime/isys/src/isys_stream2mmio_rmgr.c b/drivers/staging/media/atomisp/pci/runtime/isys/src/isys_stream2mmio_rmgr.c
index 44b9bb84981c..53355a55d05d 100644
--- a/drivers/staging/media/atomisp/pci/runtime/isys/src/isys_stream2mmio_rmgr.c
+++ b/drivers/staging/media/atomisp/pci/runtime/isys/src/isys_stream2mmio_rmgr.c
@@ -1,7 +1,6 @@
-#ifndef ISP2401
/*
* Support for Intel Camera Imaging ISP subsystem.
- * Copyright (c) 2015, Intel Corporation.
+ * 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,
@@ -12,21 +11,6 @@
* 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 "system_global.h"
diff --git a/drivers/staging/media/atomisp/pci/runtime/isys/src/rx.c b/drivers/staging/media/atomisp/pci/runtime/isys/src/rx.c
index cf0a6866e25a..43665ddff8ea 100644
--- a/drivers/staging/media/atomisp/pci/runtime/isys/src/rx.c
+++ b/drivers/staging/media/atomisp/pci/runtime/isys/src/rx.c
@@ -1,7 +1,6 @@
-#ifndef ISP2401
/*
* Support for Intel Camera Imaging ISP subsystem.
- * Copyright (c) 2015, Intel Corporation.
+ * 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,
@@ -12,21 +11,6 @@
* 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
#define __INLINE_INPUT_SYSTEM__
#include "input_system.h"
diff --git a/drivers/staging/media/atomisp/pci/runtime/isys/src/virtual_isys.c b/drivers/staging/media/atomisp/pci/runtime/isys/src/virtual_isys.c
index ceef7d048232..9a795a21d3e6 100644
--- a/drivers/staging/media/atomisp/pci/runtime/isys/src/virtual_isys.c
+++ b/drivers/staging/media/atomisp/pci/runtime/isys/src/virtual_isys.c
@@ -1,4 +1,3 @@
-#ifndef ISP2401
/*
* Support for Intel Camera Imaging ISP subsystem.
* Copyright (c) 2015, Intel Corporation.
@@ -12,21 +11,6 @@
* 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 "system_global.h"
@@ -45,9 +29,7 @@ more details.
* Forwarded Declaration
*
*************************************************/
-#ifndef ISP2401
-#endif
static bool create_input_system_channel(
input_system_cfg_t *cfg,
bool metadata,
diff --git a/drivers/staging/media/atomisp/pci/runtime/pipeline/src/pipeline.c b/drivers/staging/media/atomisp/pci/runtime/pipeline/src/pipeline.c
index f6f364ee7898..8b9982de8deb 100644
--- a/drivers/staging/media/atomisp/pci/runtime/pipeline/src/pipeline.c
+++ b/drivers/staging/media/atomisp/pci/runtime/pipeline/src/pipeline.c
@@ -1,7 +1,6 @@
-#ifndef ISP2401
/*
* Support for Intel Camera Imaging ISP subsystem.
- * Copyright (c) 2015, Intel Corporation.
+ * 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,
@@ -12,21 +11,6 @@
* 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 "ia_css_debug.h"
#include "sw_event_global.h" /* encode_sw_event */
diff --git a/drivers/staging/media/atomisp/pci/runtime/queue/src/queue_access.c b/drivers/staging/media/atomisp/pci/runtime/queue/src/queue_access.c
index 3b2a06655e99..1e8d3eb82eab 100644
--- a/drivers/staging/media/atomisp/pci/runtime/queue/src/queue_access.c
+++ b/drivers/staging/media/atomisp/pci/runtime/queue/src/queue_access.c
@@ -1,7 +1,6 @@
-#ifndef ISP2401
/*
* Support for Intel Camera Imaging ISP subsystem.
- * Copyright (c) 2015, Intel Corporation.
+ * 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,
@@ -12,21 +11,6 @@
* 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 "type_support.h"
#include "queue_access.h"
diff --git a/drivers/staging/media/atomisp/pci/runtime/rmgr/src/rmgr.c b/drivers/staging/media/atomisp/pci/runtime/rmgr/src/rmgr.c
index 370ff3816dbe..23ae19ee65ca 100644
--- a/drivers/staging/media/atomisp/pci/runtime/rmgr/src/rmgr.c
+++ b/drivers/staging/media/atomisp/pci/runtime/rmgr/src/rmgr.c
@@ -1,7 +1,6 @@
-#ifndef ISP2401
/*
* Support for Intel Camera Imaging ISP subsystem.
- * Copyright (c) 2015, Intel Corporation.
+ * 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,
@@ -12,21 +11,6 @@
* 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 "ia_css_rmgr.h"
diff --git a/drivers/staging/media/atomisp/pci/runtime/spctrl/src/spctrl.c b/drivers/staging/media/atomisp/pci/runtime/spctrl/src/spctrl.c
index c4093945973c..ceaac8235b4b 100644
--- a/drivers/staging/media/atomisp/pci/runtime/spctrl/src/spctrl.c
+++ b/drivers/staging/media/atomisp/pci/runtime/spctrl/src/spctrl.c
@@ -1,7 +1,6 @@
-#ifndef ISP2401
/*
* Support for Intel Camera Imaging ISP subsystem.
- * Copyright (c) 2015, Intel Corporation.
+ * 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,
@@ -12,21 +11,6 @@
* 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 "ia_css_types.h"
#define __INLINE_SP__
@@ -115,7 +99,7 @@ enum ia_css_err ia_css_spctrl_load_fw(sp_ID_t sp_id,
return IA_CSS_SUCCESS;
}
-#ifdef ISP2401
+/* ISP2401 */
/* reload pre-loaded FW */
void sh_css_spctrl_reload_fw(sp_ID_t sp_id)
{
@@ -127,7 +111,6 @@ void sh_css_spctrl_reload_fw(sp_ID_t sp_id)
sp_ctrl_setbit(sp_id, SP_ICACHE_INV_REG, SP_ICACHE_INV_BIT);
spctrl_loaded[sp_id] = true;
}
-#endif
hrt_vaddress get_sp_code_addr(sp_ID_t sp_id)
{
diff --git a/drivers/staging/media/atomisp/pci/runtime/timer/src/timer.c b/drivers/staging/media/atomisp/pci/runtime/timer/src/timer.c
index fe1e53085cbe..57dddd74d668 100644
--- a/drivers/staging/media/atomisp/pci/runtime/timer/src/timer.c
+++ b/drivers/staging/media/atomisp/pci/runtime/timer/src/timer.c
@@ -1,4 +1,3 @@
-#ifndef ISP2401
/*
* Support for Intel Camera Imaging ISP subsystem.
* Copyright (c) 2015, Intel Corporation.
@@ -12,21 +11,6 @@
* 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 <type_support.h> /* for uint32_t */
#include "ia_css_timer.h" /*struct ia_css_clock_tick */
diff --git a/drivers/staging/media/atomisp/pci/sh_css.c b/drivers/staging/media/atomisp/pci/sh_css.c
index 46a5e6ed7d29..27cbc57846bb 100644
--- a/drivers/staging/media/atomisp/pci/sh_css.c
+++ b/drivers/staging/media/atomisp/pci/sh_css.c
@@ -580,13 +580,11 @@ sh_css_config_input_network(struct ia_css_stream *stream) {
vblank_cycles = vblank_lines * (width + hblank_cycles);
sh_css_sp_configure_sync_gen(width, height, hblank_cycles,
vblank_cycles);
-#if defined(IS_ISP_2400_SYSTEM)
if (pipe->stream->config.mode == IA_CSS_INPUT_MODE_TPG) {
/* TODO: move define to proper file in tools */
#define GP_ISEL_TPG_MODE 0x90058
ia_css_device_store_uint32(GP_ISEL_TPG_MODE, 0);
}
-#endif
}
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE,
"sh_css_config_input_network() leave:\n");
diff --git a/drivers/staging/media/atomisp/pci/sh_css_firmware.c b/drivers/staging/media/atomisp/pci/sh_css_firmware.c
index b0b8c2c4a227..fd2cefdec15d 100644
--- a/drivers/staging/media/atomisp/pci/sh_css_firmware.c
+++ b/drivers/staging/media/atomisp/pci/sh_css_firmware.c
@@ -52,12 +52,8 @@ static struct firmware_header *firmware_header;
/* The string STR is a place holder
* which will be replaced with the actual RELEASE_VERSION
* during package generation. Please do not modify */
-#ifndef ISP2401
-static const char *release_version = STR(
- irci_stable_candrpv_0415_20150521_0458);
-#else
-static const char *release_version = STR(irci_ecr - master_20150911_0724);
-#endif
+static const char *isp2400_release_version = STR(irci_stable_candrpv_0415_20150521_0458);
+static const char *isp2401_release_version = STR(irci_ecr - master_20150911_0724);
#define MAX_FW_REL_VER_NAME 300
static char FW_rel_ver_name[MAX_FW_REL_VER_NAME] = "---";
@@ -189,6 +185,13 @@ sh_css_check_firmware_version(const char *fw_data)
{
struct sh_css_fw_bi_file_h *file_header;
+ const char *release_version;
+
+ if (!atomisp_hw_is_isp2401)
+ release_version = isp2400_release_version;
+ else
+ release_version = isp2401_release_version;
+
firmware_header = (struct firmware_header *)fw_data;
file_header = &firmware_header->file_header;
@@ -207,21 +210,23 @@ sh_css_load_firmware(const char *fw_data,
struct ia_css_fw_info *binaries;
struct sh_css_fw_bi_file_h *file_header;
bool valid_firmware = false;
+ const char *release_version;
+
+ if (!atomisp_hw_is_isp2401)
+ release_version = isp2400_release_version;
+ else
+ release_version = isp2401_release_version;
firmware_header = (struct firmware_header *)fw_data;
file_header = &firmware_header->file_header;
binaries = &firmware_header->binary_header;
strncpy(FW_rel_ver_name, file_header->version, min(sizeof(FW_rel_ver_name), sizeof(file_header->version)) - 1);
valid_firmware = sh_css_check_firmware_version(fw_data);
- if (!valid_firmware)
- {
-#if !defined(HRT_RTL)
+ if (!valid_firmware) {
IA_CSS_ERROR("CSS code version (%s) and firmware version (%s) mismatch!",
file_header->version, release_version);
return IA_CSS_ERR_VERSION_MISMATCH;
-#endif
- } else
- {
+ } else {
IA_CSS_LOG("successfully load firmware version %s", release_version);
}
@@ -241,8 +246,7 @@ sh_css_load_firmware(const char *fw_data,
sizeof(*sh_css_blob_info), GFP_KERNEL);
if (!sh_css_blob_info)
return IA_CSS_ERR_CANNOT_ALLOCATE_MEMORY;
- } else
- {
+ } else {
sh_css_blob_info = NULL;
}
diff --git a/drivers/staging/media/atomisp/pci/sh_css_mipi.c b/drivers/staging/media/atomisp/pci/sh_css_mipi.c
index ef9360d72b04..35cbef5f9f71 100644
--- a/drivers/staging/media/atomisp/pci/sh_css_mipi.c
+++ b/drivers/staging/media/atomisp/pci/sh_css_mipi.c
@@ -45,8 +45,6 @@ ia_css_mipi_frame_specify(const unsigned int size_mem_words,
return err;
}
-#ifdef ISP2401
-#if defined(USE_INPUT_SYSTEM_VERSION_2) || defined(USE_INPUT_SYSTEM_VERSION_2401)
/*
* Check if a source port or TPG/PRBS ID is valid
*/
@@ -87,9 +85,7 @@ static bool ia_css_mipi_is_source_port_valid(struct ia_css_pipe *pipe,
return ret;
}
-#endif
-#endif
/* Assumptions:
* - A line is multiple of 4 bytes = 1 word.
* - Each frame has SOF and EOF (each 1 word).
@@ -317,10 +313,8 @@ calculate_mipi_buff_size(
enum ia_css_err err = IA_CSS_SUCCESS;
/**
-#ifndef ISP2401
* zhengjie.lu@intel.com
*
-#endif
* NOTE
* - In the struct "ia_css_stream_config", there
* are two members: "input_config" and "isys_config".
@@ -336,10 +330,8 @@ calculate_mipi_buff_size(
/* end of NOTE */
/**
-#ifndef ISP2401
* zhengjie.lu@intel.com
*
-#endif
* NOTE
* - The following code is derived from the
* existing code "ia_css_mipi_frame_calculate_size()".
@@ -396,16 +388,29 @@ calculate_mipi_buff_size(
return err;
}
+static bool buffers_needed(struct ia_css_pipe *pipe)
+{
+ if (!atomisp_hw_is_isp2401) {
+ if (pipe->stream->config.mode == IA_CSS_INPUT_MODE_BUFFERED_SENSOR)
+ return false;
+ else
+ return true;
+ }
+
+ if (pipe->stream->config.mode == IA_CSS_INPUT_MODE_BUFFERED_SENSOR ||
+ pipe->stream->config.mode == IA_CSS_INPUT_MODE_TPG ||
+ pipe->stream->config.mode == IA_CSS_INPUT_MODE_PRBS)
+ return false;
+
+ return true;
+}
+
enum ia_css_err
allocate_mipi_frames(struct ia_css_pipe *pipe,
struct ia_css_stream_info *info) {
#if defined(USE_INPUT_SYSTEM_VERSION_2) || defined(USE_INPUT_SYSTEM_VERSION_2401)
enum ia_css_err err = IA_CSS_ERR_INTERNAL_ERROR;
-#ifndef ISP2401
unsigned int port;
-#else
- unsigned int port = 0;
-#endif
struct ia_css_frame_info mipi_intermediate_info;
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE,
@@ -431,30 +436,22 @@ allocate_mipi_frames(struct ia_css_pipe *pipe,
}
#endif
-#ifndef ISP2401
- if (pipe->stream->config.mode != IA_CSS_INPUT_MODE_BUFFERED_SENSOR)
- {
-#else
- if (!(pipe->stream->config.mode == IA_CSS_INPUT_MODE_BUFFERED_SENSOR ||
- pipe->stream->config.mode == IA_CSS_INPUT_MODE_TPG ||
- pipe->stream->config.mode == IA_CSS_INPUT_MODE_PRBS))
- {
-#endif
+
+ if (!buffers_needed(pipe)) {
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE,
"allocate_mipi_frames(%p) exit: no buffers needed for pipe mode.\n",
pipe);
return IA_CSS_SUCCESS; /* AM TODO: Check */
}
-#ifndef ISP2401
- port = (unsigned int)pipe->stream->config.source.port.port;
+ if (!atomisp_hw_is_isp2401)
+ port = (unsigned int)pipe->stream->config.source.port.port;
+ else
+ err = ia_css_mipi_is_source_port_valid(pipe, &port);
+
assert(port < N_CSI_PORTS);
- if (port >= N_CSI_PORTS)
- {
-#else
- if (!ia_css_mipi_is_source_port_valid(pipe, &port))
- {
-#endif
+
+ if (port >= N_CSI_PORTS || err) {
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE,
"allocate_mipi_frames(%p) exit: error: port is not correct (port=%d).\n",
pipe, port);
@@ -573,11 +570,8 @@ enum ia_css_err
free_mipi_frames(struct ia_css_pipe *pipe) {
#if defined(USE_INPUT_SYSTEM_VERSION_2) || defined(USE_INPUT_SYSTEM_VERSION_2401)
enum ia_css_err err = IA_CSS_ERR_INTERNAL_ERROR;
-#ifndef ISP2401
unsigned int port;
-#else
- unsigned int port = 0;
-#endif
+
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE,
"free_mipi_frames(%p) enter:\n", pipe);
@@ -592,38 +586,27 @@ free_mipi_frames(struct ia_css_pipe *pipe) {
return IA_CSS_ERR_INVALID_ARGUMENTS;
}
-#ifndef ISP2401
- if (pipe->stream->config.mode != IA_CSS_INPUT_MODE_BUFFERED_SENSOR) {
-#else
- if (!(pipe->stream->config.mode == IA_CSS_INPUT_MODE_BUFFERED_SENSOR ||
- pipe->stream->config.mode == IA_CSS_INPUT_MODE_TPG ||
- pipe->stream->config.mode == IA_CSS_INPUT_MODE_PRBS)) {
-#endif
+ if (!buffers_needed(pipe)) {
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE,
"free_mipi_frames(%p) exit: error: wrong mode.\n",
pipe);
return err;
}
-#ifndef ISP2401
- port = (unsigned int)pipe->stream->config.source.port.port;
+ if (!atomisp_hw_is_isp2401)
+ port = (unsigned int)pipe->stream->config.source.port.port;
+ else
+ err = ia_css_mipi_is_source_port_valid(pipe, &port);
+
assert(port < N_CSI_PORTS);
- if (port >= N_CSI_PORTS) {
-#else
- if (!ia_css_mipi_is_source_port_valid(pipe, &port)) {
-#endif
+
+ if (port >= N_CSI_PORTS || err) {
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE,
-#ifndef ISP2401
"free_mipi_frames(%p, %d) exit: error: pipe port is not correct.\n",
-#else
- "free_mipi_frames(%p) exit: error: pipe port is not correct (port=%d).\n",
-#endif
pipe, port);
return err;
}
-#ifdef ISP2401
-#endif
if (ref_count_mipi_allocation[port] > 0) {
#if defined(USE_INPUT_SYSTEM_VERSION_2)
assert(ref_count_mipi_allocation[port] == 1);
@@ -720,32 +703,22 @@ send_mipi_frames(struct ia_css_pipe *pipe) {
/* multi stream video needs mipi buffers */
/* nothing to be done in other cases. */
-#ifndef ISP2401
- if (pipe->stream->config.mode != IA_CSS_INPUT_MODE_BUFFERED_SENSOR)
- {
-#else
- if (!(pipe->stream->config.mode == IA_CSS_INPUT_MODE_BUFFERED_SENSOR ||
- pipe->stream->config.mode == IA_CSS_INPUT_MODE_TPG ||
- pipe->stream->config.mode == IA_CSS_INPUT_MODE_PRBS))
- {
-#endif
+ if (!buffers_needed(pipe)) {
IA_CSS_LOG("nothing to be done for this mode");
return IA_CSS_SUCCESS;
/* TODO: AM: maybe this should be returning an error. */
}
-#ifndef ISP2401
- port = (unsigned int)pipe->stream->config.source.port.port;
+ if (!atomisp_hw_is_isp2401)
+ port = (unsigned int)pipe->stream->config.source.port.port;
+ else
+ err = ia_css_mipi_is_source_port_valid(pipe, &port);
+
assert(port < N_CSI_PORTS);
- if (port >= N_CSI_PORTS)
- {
- IA_CSS_ERROR("invalid port specified (%d)", port);
-#else
- if (!ia_css_mipi_is_source_port_valid(pipe, &port))
- {
+
+ if (port >= N_CSI_PORTS || err) {
IA_CSS_ERROR("send_mipi_frames(%p) exit: invalid port specified (port=%d).\n",
pipe, port);
-#endif
return err;
}
diff --git a/drivers/staging/media/atomisp/pci/sh_css_params.c b/drivers/staging/media/atomisp/pci/sh_css_params.c
index baa5259bcf91..2e719f7db89e 100644
--- a/drivers/staging/media/atomisp/pci/sh_css_params.c
+++ b/drivers/staging/media/atomisp/pci/sh_css_params.c
@@ -111,21 +111,15 @@
(sizeof(char) * (binary)->in_frame_info.res.height * \
(binary)->in_frame_info.padded_width)
-#ifndef ISP2401
-
-#define SCTBL_BYTES(binary) \
+#define ISP2400_SCTBL_BYTES(binary) \
(sizeof(unsigned short) * (binary)->sctbl_height * \
(binary)->sctbl_aligned_width_per_color * IA_CSS_SC_NUM_COLORS)
-#else
-
-#define SCTBL_BYTES(binary) \
+#define ISP2401_SCTBL_BYTES(binary) \
(sizeof(unsigned short) * max((binary)->sctbl_height, (binary)->sctbl_legacy_height) * \
/* height should be the larger height between new api and legacy api */ \
(binary)->sctbl_aligned_width_per_color * IA_CSS_SC_NUM_COLORS)
-#endif
-
#define MORPH_PLANE_BYTES(binary) \
(SH_CSS_MORPH_TABLE_ELEM_BYTES * (binary)->morph_tbl_aligned_width * \
(binary)->morph_tbl_height)
@@ -2166,20 +2160,21 @@ ia_css_set_param_exceptions(const struct ia_css_pipe *pipe,
params->dp_config.r = params->wb_config.r;
params->dp_config.b = params->wb_config.b;
params->dp_config.gb = params->wb_config.gb;
-#ifdef ISP2401
- assert(pipe);
- assert(pipe->mode < IA_CSS_PIPE_ID_NUM);
- if (pipe->mode < IA_CSS_PIPE_ID_NUM) {
- params->pipe_dp_config[pipe->mode].gr = params->wb_config.gr;
- params->pipe_dp_config[pipe->mode].r = params->wb_config.r;
- params->pipe_dp_config[pipe->mode].b = params->wb_config.b;
- params->pipe_dp_config[pipe->mode].gb = params->wb_config.gb;
+ if (atomisp_hw_is_isp2401) {
+ assert(pipe);
+ assert(pipe->mode < IA_CSS_PIPE_ID_NUM);
+
+ if (pipe->mode < IA_CSS_PIPE_ID_NUM) {
+ params->pipe_dp_config[pipe->mode].gr = params->wb_config.gr;
+ params->pipe_dp_config[pipe->mode].r = params->wb_config.r;
+ params->pipe_dp_config[pipe->mode].b = params->wb_config.b;
+ params->pipe_dp_config[pipe->mode].gb = params->wb_config.gb;
+ }
}
-#endif
}
-#ifdef ISP2401
+/* ISP2401 */
static void
sh_css_set_dp_config(const struct ia_css_pipe *pipe,
struct ia_css_isp_parameters *params,
@@ -2200,7 +2195,6 @@ sh_css_set_dp_config(const struct ia_css_pipe *pipe,
}
IA_CSS_LEAVE_PRIVATE("void");
}
-#endif
static void
sh_css_get_dp_config(const struct ia_css_pipe *pipe,
@@ -2630,15 +2624,16 @@ sh_css_init_isp_params_from_config(struct ia_css_pipe *pipe,
params->output_frame = config->output_frame;
params->isp_parameters_id = config->isp_config_id;
-#ifdef ISP2401
+
/* Currently we do not offer CSS interface to set different
* configurations for DPC, i.e. depending on DPC being enabled
* before (NORM+OBC) or after. The folllowing code to set the
* DPC configuration should be updated when this interface is made
* available */
- sh_css_set_dp_config(pipe, params, config->dp_config);
- ia_css_set_param_exceptions(pipe, params);
-#endif
+ if (atomisp_hw_is_isp2401) {
+ sh_css_set_dp_config(pipe, params, config->dp_config);
+ ia_css_set_param_exceptions(pipe, params);
+ }
if (IA_CSS_SUCCESS ==
sh_css_select_dp_10bpp_config(pipe, &is_dp_10bpp))
@@ -2656,9 +2651,9 @@ sh_css_init_isp_params_from_config(struct ia_css_pipe *pipe,
goto exit;
}
-#ifndef ISP2401
- ia_css_set_param_exceptions(pipe, params);
-#endif
+ if (!atomisp_hw_is_isp2401)
+ ia_css_set_param_exceptions(pipe, params);
+
exit:
IA_CSS_LEAVE_ERR_PRIVATE(err);
return err;
@@ -3072,31 +3067,31 @@ sh_css_init_isp_params_from_global(struct ia_css_stream *stream,
ia_css_set_tnr_config(params, &default_tnr_config);
ia_css_set_ob_config(params, &default_ob_config);
ia_css_set_dp_config(params, &default_dp_config);
-#ifndef ISP2401
- ia_css_set_param_exceptions(pipe_in, params);
-#else
- for (i = 0; i < stream->num_pipes; i++) {
- if (sh_css_select_dp_10bpp_config(stream->pipes[i],
- &is_dp_10bpp) == IA_CSS_SUCCESS) {
- /* set the return value as false if both DPC and
- * BDS is enabled by the user. But we do not return
- * the value immediately to enable internal firmware
- * feature testing. */
- if (is_dp_10bpp) {
- sh_css_set_dp_config(stream->pipes[i], params, &default_dp_10bpp_config);
+ if (!atomisp_hw_is_isp2401) {
+ ia_css_set_param_exceptions(pipe_in, params);
+ } else {
+ for (i = 0; i < stream->num_pipes; i++) {
+ if (sh_css_select_dp_10bpp_config(stream->pipes[i],
+ &is_dp_10bpp) == IA_CSS_SUCCESS) {
+ /* set the return value as false if both DPC and
+ * BDS is enabled by the user. But we do not return
+ * the value immediately to enable internal firmware
+ * feature testing. */
+ if (is_dp_10bpp) {
+ sh_css_set_dp_config(stream->pipes[i], params, &default_dp_10bpp_config);
+ } else {
+ sh_css_set_dp_config(stream->pipes[i], params, &default_dp_config);
+ }
} else {
- sh_css_set_dp_config(stream->pipes[i], params, &default_dp_config);
+ retval = false;
+ goto exit;
}
- } else {
- retval = false;
- goto exit;
- }
- ia_css_set_param_exceptions(stream->pipes[i], params);
+ ia_css_set_param_exceptions(stream->pipes[i], params);
+ }
}
-#endif
ia_css_set_de_config(params, &default_de_config);
ia_css_set_gc_config(params, &default_gc_config);
ia_css_set_anr_config(params, &default_anr_config);
@@ -3191,31 +3186,30 @@ sh_css_init_isp_params_from_global(struct ia_css_stream *stream,
* BDS is enabled by the user. But we do not return
* the value immediately to enable internal firmware
* feature testing. */
-#ifndef ISP2401
- retval = !is_dp_10bpp;
-#else
+
if (is_dp_10bpp) {
retval = false;
+ /* FIXME: should it ignore this error? */
}
} else {
retval = false;
goto exit;
}
- if (stream->pipes[i]->mode < IA_CSS_PIPE_ID_NUM) {
- sh_css_set_dp_config(stream->pipes[i], params,
- &stream_params->pipe_dp_config[stream->pipes[i]->mode]);
- ia_css_set_param_exceptions(stream->pipes[i], params);
-#endif
- } else {
- retval = false;
- goto exit;
+ if (atomisp_hw_is_isp2401) {
+ if (stream->pipes[i]->mode < IA_CSS_PIPE_ID_NUM) {
+ sh_css_set_dp_config(stream->pipes[i], params,
+ &stream_params->pipe_dp_config[stream->pipes[i]->mode]);
+ ia_css_set_param_exceptions(stream->pipes[i], params);
+ } else {
+ retval = false;
+ goto exit;
+ }
}
}
-#ifndef ISP2401
- ia_css_set_param_exceptions(pipe_in, params);
+ if (!atomisp_hw_is_isp2401)
+ ia_css_set_param_exceptions(pipe_in, params);
-#endif
params->fpn_config.data = stream_params->fpn_config.data;
params->config_changed[IA_CSS_FPN_ID] =
stream_params->config_changed[IA_CSS_FPN_ID];
@@ -3335,11 +3329,8 @@ enum ia_css_err ia_css_pipe_set_bci_scaler_lut(struct ia_css_pipe *pipe,
const void *lut)
{
enum ia_css_err err = IA_CSS_SUCCESS;
-#ifndef ISP2401
- bool store = true;
-#else
bool stream_started = false;
-#endif
+
IA_CSS_ENTER("pipe=%p lut=%p", pipe, lut);
if (!lut || !pipe) {
@@ -3355,11 +3346,7 @@ enum ia_css_err ia_css_pipe_set_bci_scaler_lut(struct ia_css_pipe *pipe,
if (pipe->stream && pipe->stream->started) {
ia_css_debug_dtrace(IA_CSS_DEBUG_ERROR,
"unable to set scaler lut since stream has started\n");
-#ifndef ISP2401
- store = false;
-#else
stream_started = true;
-#endif
err = IA_CSS_ERR_NOT_SUPPORTED;
}
@@ -3367,18 +3354,13 @@ enum ia_css_err ia_css_pipe_set_bci_scaler_lut(struct ia_css_pipe *pipe,
sh_css_params_free_gdc_lut(pipe->scaler_pp_lut);
pipe->scaler_pp_lut = mmgr_NULL;
-#ifndef ISP2401
- if (store) {
- pipe->scaler_pp_lut = mmgr_malloc(sizeof(zoom_table));
-#else
if (!stream_started) {
- pipe->scaler_pp_lut = sh_css_params_alloc_gdc_lut();
-#endif
+ if (!atomisp_hw_is_isp2401)
+ pipe->scaler_pp_lut = mmgr_malloc(sizeof(zoom_table));
+ else
+ pipe->scaler_pp_lut = sh_css_params_alloc_gdc_lut();
+
if (pipe->scaler_pp_lut == mmgr_NULL) {
-#ifndef ISP2401
- IA_CSS_LEAVE("lut(%u) err=%d", pipe->scaler_pp_lut, err);
- return IA_CSS_ERR_CANNOT_ALLOCATE_MEMORY;
-#else
ia_css_debug_dtrace(IA_CSS_DEBUG_ERROR,
"unable to allocate scaler_pp_lut\n");
err = IA_CSS_ERR_CANNOT_ALLOCATE_MEMORY;
@@ -3388,15 +3370,7 @@ enum ia_css_err ia_css_pipe_set_bci_scaler_lut(struct ia_css_pipe *pipe,
mmgr_store(pipe->scaler_pp_lut,
(int *)interleaved_lut_temp,
sizeof(zoom_table));
-#endif
}
-#ifndef ISP2401
-
- gdc_lut_convert_to_isp_format((const int(*)[HRT_GDC_N])lut,
- interleaved_lut_temp);
- mmgr_store(pipe->scaler_pp_lut, (int *)interleaved_lut_temp,
- sizeof(zoom_table));
-#endif
}
IA_CSS_LEAVE("lut(%u) err=%d", pipe->scaler_pp_lut, err);
@@ -3426,11 +3400,11 @@ enum ia_css_err sh_css_params_map_and_store_default_gdc_lut(void)
host_lut_store((void *)zoom_table);
-#ifndef ISP2401
- default_gdc_lut = mmgr_malloc(sizeof(zoom_table));
-#else
- default_gdc_lut = sh_css_params_alloc_gdc_lut();
-#endif
+ if (!atomisp_hw_is_isp2401)
+ default_gdc_lut = mmgr_malloc(sizeof(zoom_table));
+ else
+ default_gdc_lut = sh_css_params_alloc_gdc_lut();
+
if (default_gdc_lut == mmgr_NULL)
return IA_CSS_ERR_CANNOT_ALLOCATE_MEMORY;
@@ -4036,12 +4010,19 @@ sh_css_params_write_to_ddr_internal(
if (binary->info->sp.enable.sc)
{
- u32 enable_conv = params->
- shading_settings.enable_shading_table_conversion;
+ u32 enable_conv;
+ size_t bytes;
+
+ if (!atomisp_hw_is_isp2401)
+ bytes = ISP2400_SCTBL_BYTES(binary);
+ else
+ bytes = ISP2401_SCTBL_BYTES(binary);
+
+ enable_conv = params->shading_settings.enable_shading_table_conversion;
buff_realloced = reallocate_buffer(&ddr_map->sc_tbl,
&ddr_map_size->sc_tbl,
- (size_t)(SCTBL_BYTES(binary)),
+ bytes,
params->sc_table_changed,
&err);
if (err != IA_CSS_SUCCESS) {
@@ -4125,11 +4106,12 @@ sh_css_params_write_to_ddr_internal(
}
}
}
-#ifdef ISP2401
+
/* DPC configuration is made pipe specific to allow flexibility in positioning of the
* DPC kernel. The code below sets the pipe specific configuration to
* individual binaries. */
- if (params->pipe_dpc_config_changed[pipe_id] && binary->info->sp.enable.dpc)
+ if (atomisp_hw_is_isp2401 &&
+ params->pipe_dpc_config_changed[pipe_id] && binary->info->sp.enable.dpc)
{
unsigned int size =
stage->binary->info->mem_offsets.offsets.param->dmem.dp.size;
@@ -4141,15 +4123,13 @@ sh_css_params_write_to_ddr_internal(
ia_css_dp_encode((struct sh_css_isp_dp_params *)
&binary->mem_params.params[IA_CSS_PARAM_CLASS_PARAM][IA_CSS_ISP_DMEM].address[offset],
&params->pipe_dp_config[pipe_id], size);
-#endif
-#ifdef ISP2401
params->isp_params_changed = true;
params->isp_mem_params_changed[pipe_id][stage->stage_num][IA_CSS_ISP_DMEM] =
true;
}
}
-#endif
+
if (params->config_changed[IA_CSS_MACC_ID] && binary->info->sp.enable.macc)
{
unsigned int i, j, idx;
@@ -4231,172 +4211,162 @@ sh_css_params_write_to_ddr_internal(
/* Generate default DVS unity table on start up*/
if (!params->pipe_dvs_6axis_config[pipe_id]) {
-#ifndef ISP2401
- struct ia_css_resolution dvs_offset;
+ struct ia_css_resolution dvs_offset = {0};
- dvs_offset.width =
-#else
- struct ia_css_resolution dvs_offset = {0, 0};
+ if (!atomisp_hw_is_isp2401) {
+ dvs_offset.width = (PIX_SHIFT_FILTER_RUN_IN_X + binary->dvs_envelope.width) / 2;
+ } else {
+ if (binary->dvs_envelope.width || binary->dvs_envelope.height) {
+ dvs_offset.width = (PIX_SHIFT_FILTER_RUN_IN_X + binary->dvs_envelope.width) / 2;
+ }
+ }
+ dvs_offset.height = (PIX_SHIFT_FILTER_RUN_IN_Y + binary->dvs_envelope.height) / 2;
- if (binary->dvs_envelope.width || binary->dvs_envelope.height) {
- dvs_offset.width =
-#endif
- (PIX_SHIFT_FILTER_RUN_IN_X + binary->dvs_envelope.width) / 2;
-#ifndef ISP2401
- dvs_offset.height =
-#else
- dvs_offset.height =
-#endif
- (PIX_SHIFT_FILTER_RUN_IN_Y + binary->dvs_envelope.height) / 2;
-#ifdef ISP2401
- }
-#endif
+ params->pipe_dvs_6axis_config[pipe_id] =
+ generate_dvs_6axis_table(&binary->out_frame_info[0].res, &dvs_offset);
+ if (!params->pipe_dvs_6axis_config[pipe_id]) {
+ IA_CSS_LEAVE_ERR_PRIVATE(IA_CSS_ERR_CANNOT_ALLOCATE_MEMORY);
+ return IA_CSS_ERR_CANNOT_ALLOCATE_MEMORY;
+ }
+ params->pipe_dvs_6axis_config_changed[pipe_id] = true;
- params->pipe_dvs_6axis_config[pipe_id] =
- generate_dvs_6axis_table(&binary->out_frame_info[0].res, &dvs_offset);
- if (!params->pipe_dvs_6axis_config[pipe_id]) {
- IA_CSS_LEAVE_ERR_PRIVATE(IA_CSS_ERR_CANNOT_ALLOCATE_MEMORY);
- return IA_CSS_ERR_CANNOT_ALLOCATE_MEMORY;
+ store_dvs_6axis_config(params->pipe_dvs_6axis_config[pipe_id],
+ binary,
+ dvs_in_frame_info,
+ ddr_map->dvs_6axis_params_y);
+ params->isp_params_changed = true;
}
- params->pipe_dvs_6axis_config_changed[pipe_id] = true;
}
-
- store_dvs_6axis_config(params->pipe_dvs_6axis_config[pipe_id],
- binary,
- dvs_in_frame_info,
- ddr_map->dvs_6axis_params_y);
- params->isp_params_changed = true;
}
-}
-if (binary->info->sp.enable.ca_gdc)
-{
- unsigned int i;
- hrt_vaddress *virt_addr_tetra_x[
- IA_CSS_MORPH_TABLE_NUM_PLANES];
- size_t *virt_size_tetra_x[
- IA_CSS_MORPH_TABLE_NUM_PLANES];
- hrt_vaddress *virt_addr_tetra_y[
- IA_CSS_MORPH_TABLE_NUM_PLANES];
- size_t *virt_size_tetra_y[
- IA_CSS_MORPH_TABLE_NUM_PLANES];
-
- virt_addr_tetra_x[0] = &ddr_map->tetra_r_x;
- virt_addr_tetra_x[1] = &ddr_map->tetra_gr_x;
- virt_addr_tetra_x[2] = &ddr_map->tetra_gb_x;
- virt_addr_tetra_x[3] = &ddr_map->tetra_b_x;
- virt_addr_tetra_x[4] = &ddr_map->tetra_ratb_x;
- virt_addr_tetra_x[5] = &ddr_map->tetra_batr_x;
-
- virt_size_tetra_x[0] = &ddr_map_size->tetra_r_x;
- virt_size_tetra_x[1] = &ddr_map_size->tetra_gr_x;
- virt_size_tetra_x[2] = &ddr_map_size->tetra_gb_x;
- virt_size_tetra_x[3] = &ddr_map_size->tetra_b_x;
- virt_size_tetra_x[4] = &ddr_map_size->tetra_ratb_x;
- virt_size_tetra_x[5] = &ddr_map_size->tetra_batr_x;
-
- virt_addr_tetra_y[0] = &ddr_map->tetra_r_y;
- virt_addr_tetra_y[1] = &ddr_map->tetra_gr_y;
- virt_addr_tetra_y[2] = &ddr_map->tetra_gb_y;
- virt_addr_tetra_y[3] = &ddr_map->tetra_b_y;
- virt_addr_tetra_y[4] = &ddr_map->tetra_ratb_y;
- virt_addr_tetra_y[5] = &ddr_map->tetra_batr_y;
-
- virt_size_tetra_y[0] = &ddr_map_size->tetra_r_y;
- virt_size_tetra_y[1] = &ddr_map_size->tetra_gr_y;
- virt_size_tetra_y[2] = &ddr_map_size->tetra_gb_y;
- virt_size_tetra_y[3] = &ddr_map_size->tetra_b_y;
- virt_size_tetra_y[4] = &ddr_map_size->tetra_ratb_y;
- virt_size_tetra_y[5] = &ddr_map_size->tetra_batr_y;
-
- buff_realloced = false;
- for (i = 0; i < IA_CSS_MORPH_TABLE_NUM_PLANES; i++) {
- buff_realloced |=
- reallocate_buffer(virt_addr_tetra_x[i],
- virt_size_tetra_x[i],
- (size_t)
- (MORPH_PLANE_BYTES(binary)),
- params->morph_table_changed,
- &err);
- if (err != IA_CSS_SUCCESS) {
- IA_CSS_LEAVE_ERR_PRIVATE(err);
- return err;
- }
- buff_realloced |=
- reallocate_buffer(virt_addr_tetra_y[i],
- virt_size_tetra_y[i],
- (size_t)
- (MORPH_PLANE_BYTES(binary)),
- params->morph_table_changed,
- &err);
- if (err != IA_CSS_SUCCESS) {
- IA_CSS_LEAVE_ERR_PRIVATE(err);
- return err;
- }
- }
- if (params->morph_table_changed || buff_realloced) {
- const struct ia_css_morph_table *table = params->morph_table;
- struct ia_css_morph_table *id_table = NULL;
-
- if ((table) &&
- (table->width < binary->morph_tbl_width ||
- table->height < binary->morph_tbl_height)) {
- table = NULL;
- }
- if (!table) {
- err = sh_css_params_default_morph_table(&id_table,
- binary);
+ if (binary->info->sp.enable.ca_gdc)
+ {
+ unsigned int i;
+ hrt_vaddress *virt_addr_tetra_x[
+ IA_CSS_MORPH_TABLE_NUM_PLANES];
+ size_t *virt_size_tetra_x[
+ IA_CSS_MORPH_TABLE_NUM_PLANES];
+ hrt_vaddress *virt_addr_tetra_y[
+ IA_CSS_MORPH_TABLE_NUM_PLANES];
+ size_t *virt_size_tetra_y[
+ IA_CSS_MORPH_TABLE_NUM_PLANES];
+
+ virt_addr_tetra_x[0] = &ddr_map->tetra_r_x;
+ virt_addr_tetra_x[1] = &ddr_map->tetra_gr_x;
+ virt_addr_tetra_x[2] = &ddr_map->tetra_gb_x;
+ virt_addr_tetra_x[3] = &ddr_map->tetra_b_x;
+ virt_addr_tetra_x[4] = &ddr_map->tetra_ratb_x;
+ virt_addr_tetra_x[5] = &ddr_map->tetra_batr_x;
+
+ virt_size_tetra_x[0] = &ddr_map_size->tetra_r_x;
+ virt_size_tetra_x[1] = &ddr_map_size->tetra_gr_x;
+ virt_size_tetra_x[2] = &ddr_map_size->tetra_gb_x;
+ virt_size_tetra_x[3] = &ddr_map_size->tetra_b_x;
+ virt_size_tetra_x[4] = &ddr_map_size->tetra_ratb_x;
+ virt_size_tetra_x[5] = &ddr_map_size->tetra_batr_x;
+
+ virt_addr_tetra_y[0] = &ddr_map->tetra_r_y;
+ virt_addr_tetra_y[1] = &ddr_map->tetra_gr_y;
+ virt_addr_tetra_y[2] = &ddr_map->tetra_gb_y;
+ virt_addr_tetra_y[3] = &ddr_map->tetra_b_y;
+ virt_addr_tetra_y[4] = &ddr_map->tetra_ratb_y;
+ virt_addr_tetra_y[5] = &ddr_map->tetra_batr_y;
+
+ virt_size_tetra_y[0] = &ddr_map_size->tetra_r_y;
+ virt_size_tetra_y[1] = &ddr_map_size->tetra_gr_y;
+ virt_size_tetra_y[2] = &ddr_map_size->tetra_gb_y;
+ virt_size_tetra_y[3] = &ddr_map_size->tetra_b_y;
+ virt_size_tetra_y[4] = &ddr_map_size->tetra_ratb_y;
+ virt_size_tetra_y[5] = &ddr_map_size->tetra_batr_y;
+
+ buff_realloced = false;
+ for (i = 0; i < IA_CSS_MORPH_TABLE_NUM_PLANES; i++) {
+ buff_realloced |=
+ reallocate_buffer(virt_addr_tetra_x[i],
+ virt_size_tetra_x[i],
+ (size_t)
+ (MORPH_PLANE_BYTES(binary)),
+ params->morph_table_changed,
+ &err);
+ if (err != IA_CSS_SUCCESS) {
+ IA_CSS_LEAVE_ERR_PRIVATE(err);
+ return err;
+ }
+ buff_realloced |=
+ reallocate_buffer(virt_addr_tetra_y[i],
+ virt_size_tetra_y[i],
+ (size_t)
+ (MORPH_PLANE_BYTES(binary)),
+ params->morph_table_changed,
+ &err);
if (err != IA_CSS_SUCCESS) {
IA_CSS_LEAVE_ERR_PRIVATE(err);
return err;
}
- table = id_table;
}
+ if (params->morph_table_changed || buff_realloced) {
+ const struct ia_css_morph_table *table = params->morph_table;
+ struct ia_css_morph_table *id_table = NULL;
+
+ if ((table) &&
+ (table->width < binary->morph_tbl_width ||
+ table->height < binary->morph_tbl_height)) {
+ table = NULL;
+ }
+ if (!table) {
+ err = sh_css_params_default_morph_table(&id_table,
+ binary);
+ if (err != IA_CSS_SUCCESS) {
+ IA_CSS_LEAVE_ERR_PRIVATE(err);
+ return err;
+ }
+ table = id_table;
+ }
- for (i = 0; i < IA_CSS_MORPH_TABLE_NUM_PLANES; i++) {
- store_morph_plane(table->coordinates_x[i],
- table->width,
- table->height,
- *virt_addr_tetra_x[i],
- binary->morph_tbl_aligned_width);
- store_morph_plane(table->coordinates_y[i],
- table->width,
- table->height,
- *virt_addr_tetra_y[i],
- binary->morph_tbl_aligned_width);
+ for (i = 0; i < IA_CSS_MORPH_TABLE_NUM_PLANES; i++) {
+ store_morph_plane(table->coordinates_x[i],
+ table->width,
+ table->height,
+ *virt_addr_tetra_x[i],
+ binary->morph_tbl_aligned_width);
+ store_morph_plane(table->coordinates_y[i],
+ table->width,
+ table->height,
+ *virt_addr_tetra_y[i],
+ binary->morph_tbl_aligned_width);
+ }
+ if (id_table)
+ ia_css_morph_table_free(id_table);
}
- if (id_table)
- ia_css_morph_table_free(id_table);
}
-}
-/* After special cases like SC, FPN since they may change parameters */
-for (mem = 0; mem < N_IA_CSS_MEMORIES; mem++)
-{
- const struct ia_css_isp_data *isp_data =
- ia_css_isp_param_get_isp_mem_init(&binary->info->sp.mem_initializers,
- IA_CSS_PARAM_CLASS_PARAM, mem);
- size_t size = isp_data->size;
-
- if (!size) continue;
- buff_realloced = reallocate_buffer(&ddr_map->isp_mem_param[stage_num][mem],
- &ddr_map_size->isp_mem_param[stage_num][mem],
- size,
- params->isp_mem_params_changed[pipe_id][stage_num][mem],
- &err);
- if (err != IA_CSS_SUCCESS) {
- IA_CSS_LEAVE_ERR_PRIVATE(err);
- return err;
- }
- if (params->isp_mem_params_changed[pipe_id][stage_num][mem] || buff_realloced) {
- sh_css_update_isp_mem_params_to_ddr(binary,
- ddr_map->isp_mem_param[stage_num][mem],
- ddr_map_size->isp_mem_param[stage_num][mem], mem);
+ /* After special cases like SC, FPN since they may change parameters */
+ for (mem = 0; mem < N_IA_CSS_MEMORIES; mem++)
+ {
+ const struct ia_css_isp_data *isp_data =
+ ia_css_isp_param_get_isp_mem_init(&binary->info->sp.mem_initializers,
+ IA_CSS_PARAM_CLASS_PARAM, mem);
+ size_t size = isp_data->size;
+
+ if (!size) continue;
+ buff_realloced = reallocate_buffer(&ddr_map->isp_mem_param[stage_num][mem],
+ &ddr_map_size->isp_mem_param[stage_num][mem],
+ size,
+ params->isp_mem_params_changed[pipe_id][stage_num][mem],
+ &err);
+ if (err != IA_CSS_SUCCESS) {
+ IA_CSS_LEAVE_ERR_PRIVATE(err);
+ return err;
+ }
+ if (params->isp_mem_params_changed[pipe_id][stage_num][mem] || buff_realloced) {
+ sh_css_update_isp_mem_params_to_ddr(binary,
+ ddr_map->isp_mem_param[stage_num][mem],
+ ddr_map_size->isp_mem_param[stage_num][mem], mem);
+ }
}
-}
-IA_CSS_LEAVE_ERR_PRIVATE(IA_CSS_SUCCESS);
-return IA_CSS_SUCCESS;
+ IA_CSS_LEAVE_ERR_PRIVATE(IA_CSS_SUCCESS);
+ return IA_CSS_SUCCESS;
}
const struct ia_css_fpn_table *ia_css_get_fpn_table(struct ia_css_stream
@@ -4612,22 +4582,14 @@ free_ia_css_isp_parameter_set_info(
continue;
/* sanity check - ptr must be valid */
-#ifndef ISP2401
if (!ia_css_refcount_is_valid(addrs[i])) {
-#else
- if (ia_css_refcount_is_valid(addrs[i])) {
- ia_css_refcount_decrement(IA_CSS_REFCOUNT_PARAM_BUFFER, addrs[i]);
- } else {
-#endif
IA_CSS_ERROR("%s: IA_CSS_REFCOUNT_PARAM_BUFFER(0x%x) invalid arg", __func__,
ptr);
err = IA_CSS_ERR_INVALID_ARGUMENTS;
continue;
}
-#ifndef ISP2401
ia_css_refcount_decrement(IA_CSS_REFCOUNT_PARAM_BUFFER, addrs[i]);
-#endif
}
ia_css_refcount_decrement(IA_CSS_REFCOUNT_PARAM_SET_POOL, ptr);