Commit c27479d7 authored by Deepak R Varma's avatar Deepak R Varma Committed by Mauro Carvalho Chehab

media: atomisp: pci: reposition braces as per coding style

Misplaced braces makes it difficult to follow the code easily. This also
goes against the code style guidelines. This resolved following checkpatch
complaints:

ERROR: open brace '{' following function definitions go on the next line
ERROR: that open brace { should be on the previous line

Link: https://lore.kernel.org/linux-media/YIwk3KbVGRPJwKa4@dU2104

[mchehab: dropped a hunk with a merge conflict]
Cc: linux-media@vger.kernel.org, devel@driverdev.osuosl.org, linux-kernel@vger.kernel.org, drv@mailo.com # X-LSpam-Score: -7.3 (-------)
Signed-off-by: default avatarDeepak R Varma <drv@mailo.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
parent 278cc35d
...@@ -91,7 +91,8 @@ ia_css_mipi_frame_calculate_size(const unsigned int width, ...@@ -91,7 +91,8 @@ ia_css_mipi_frame_calculate_size(const unsigned int width,
const enum atomisp_input_format format, const enum atomisp_input_format format,
const bool hasSOLandEOL, const bool hasSOLandEOL,
const unsigned int embedded_data_size_words, const unsigned int embedded_data_size_words,
unsigned int *size_mem_words) { unsigned int *size_mem_words)
{
int err = 0; int err = 0;
unsigned int bits_per_pixel = 0; unsigned int bits_per_pixel = 0;
...@@ -118,8 +119,7 @@ ia_css_mipi_frame_calculate_size(const unsigned int width, ...@@ -118,8 +119,7 @@ ia_css_mipi_frame_calculate_size(const unsigned int width,
IA_CSS_ENTER("padded_width=%d, height=%d, format=%d, hasSOLandEOL=%d, embedded_data_size_words=%d\n", IA_CSS_ENTER("padded_width=%d, height=%d, format=%d, hasSOLandEOL=%d, embedded_data_size_words=%d\n",
width_padded, height, format, hasSOLandEOL, embedded_data_size_words); width_padded, height, format, hasSOLandEOL, embedded_data_size_words);
switch (format) switch (format) {
{
case ATOMISP_INPUT_FORMAT_RAW_6: /* 4p, 3B, 24bits */ case ATOMISP_INPUT_FORMAT_RAW_6: /* 4p, 3B, 24bits */
bits_per_pixel = 6; bits_per_pixel = 6;
break; break;
...@@ -178,12 +178,10 @@ ia_css_mipi_frame_calculate_size(const unsigned int width, ...@@ -178,12 +178,10 @@ ia_css_mipi_frame_calculate_size(const unsigned int width,
/* Even lines for YUV420 formats are double in bits_per_pixel. */ /* Even lines for YUV420 formats are double in bits_per_pixel. */
if (format == ATOMISP_INPUT_FORMAT_YUV420_8 if (format == ATOMISP_INPUT_FORMAT_YUV420_8
|| format == ATOMISP_INPUT_FORMAT_YUV420_10 || format == ATOMISP_INPUT_FORMAT_YUV420_10
|| format == ATOMISP_INPUT_FORMAT_YUV420_16) || format == ATOMISP_INPUT_FORMAT_YUV420_16) {
{
even_line_bytes = (width_padded * 2 * bits_per_pixel + 7) >> even_line_bytes = (width_padded * 2 * bits_per_pixel + 7) >>
3; /* ceil ( bits per line / 8) */ 3; /* ceil ( bits per line / 8) */
} else } else {
{
even_line_bytes = odd_line_bytes; even_line_bytes = odd_line_bytes;
} }
...@@ -236,7 +234,8 @@ ia_css_mipi_frame_calculate_size(const unsigned int width, ...@@ -236,7 +234,8 @@ ia_css_mipi_frame_calculate_size(const unsigned int width,
#if !defined(ISP2401) #if !defined(ISP2401)
int int
ia_css_mipi_frame_enable_check_on_size(const enum mipi_port_id port, ia_css_mipi_frame_enable_check_on_size(const enum mipi_port_id port,
const unsigned int size_mem_words) { const unsigned int size_mem_words)
{
u32 idx; u32 idx;
int err = -EBUSY; int err = -EBUSY;
...@@ -246,11 +245,9 @@ ia_css_mipi_frame_enable_check_on_size(const enum mipi_port_id port, ...@@ -246,11 +245,9 @@ ia_css_mipi_frame_enable_check_on_size(const enum mipi_port_id port,
for (idx = 0; idx < IA_CSS_MIPI_SIZE_CHECK_MAX_NOF_ENTRIES_PER_PORT && for (idx = 0; idx < IA_CSS_MIPI_SIZE_CHECK_MAX_NOF_ENTRIES_PER_PORT &&
my_css.mipi_sizes_for_check[port][idx] != 0; my_css.mipi_sizes_for_check[port][idx] != 0;
idx++) /* do nothing */ idx++) { /* do nothing */
{
} }
if (idx < IA_CSS_MIPI_SIZE_CHECK_MAX_NOF_ENTRIES_PER_PORT) if (idx < IA_CSS_MIPI_SIZE_CHECK_MAX_NOF_ENTRIES_PER_PORT) {
{
my_css.mipi_sizes_for_check[port][idx] = size_mem_words; my_css.mipi_sizes_for_check[port][idx] = size_mem_words;
err = 0; err = 0;
} }
...@@ -271,7 +268,8 @@ mipi_init(void) ...@@ -271,7 +268,8 @@ mipi_init(void)
int int
calculate_mipi_buff_size( calculate_mipi_buff_size(
struct ia_css_stream_config *stream_cfg, struct ia_css_stream_config *stream_cfg,
unsigned int *size_mem_words) { unsigned int *size_mem_words)
{
#if !defined(ISP2401) #if !defined(ISP2401)
int err = -EINVAL; int err = -EINVAL;
(void)stream_cfg; (void)stream_cfg;
...@@ -346,12 +344,10 @@ calculate_mipi_buff_size( ...@@ -346,12 +344,10 @@ calculate_mipi_buff_size(
/* Even lines for YUV420 formats are double in bits_per_pixel. */ /* Even lines for YUV420 formats are double in bits_per_pixel. */
if (format == ATOMISP_INPUT_FORMAT_YUV420_8 if (format == ATOMISP_INPUT_FORMAT_YUV420_8
|| format == ATOMISP_INPUT_FORMAT_YUV420_10) || format == ATOMISP_INPUT_FORMAT_YUV420_10) {
{
even_line_bytes = (width_padded * 2 * bits_per_pixel + 7) >> even_line_bytes = (width_padded * 2 * bits_per_pixel + 7) >>
3; /* ceil ( bits per line / 8) */ 3; /* ceil ( bits per line / 8) */
} else } else {
{
even_line_bytes = odd_line_bytes; even_line_bytes = odd_line_bytes;
} }
...@@ -393,7 +389,8 @@ static bool buffers_needed(struct ia_css_pipe *pipe) ...@@ -393,7 +389,8 @@ static bool buffers_needed(struct ia_css_pipe *pipe)
int int
allocate_mipi_frames(struct ia_css_pipe *pipe, allocate_mipi_frames(struct ia_css_pipe *pipe,
struct ia_css_stream_info *info) { struct ia_css_stream_info *info)
{
int err = -EINVAL; int err = -EINVAL;
unsigned int port; unsigned int port;
...@@ -402,8 +399,7 @@ allocate_mipi_frames(struct ia_css_pipe *pipe, ...@@ -402,8 +399,7 @@ allocate_mipi_frames(struct ia_css_pipe *pipe,
assert(pipe); assert(pipe);
assert(pipe->stream); assert(pipe->stream);
if ((!pipe) || (!pipe->stream)) if ((!pipe) || (!pipe->stream)) {
{
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE,
"allocate_mipi_frames(%p) exit: pipe or stream is null.\n", "allocate_mipi_frames(%p) exit: pipe or stream is null.\n",
pipe); pipe);
...@@ -411,8 +407,7 @@ allocate_mipi_frames(struct ia_css_pipe *pipe, ...@@ -411,8 +407,7 @@ allocate_mipi_frames(struct ia_css_pipe *pipe,
} }
#ifdef ISP2401 #ifdef ISP2401
if (pipe->stream->config.online) if (pipe->stream->config.online) {
{
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE,
"allocate_mipi_frames(%p) exit: no buffers needed for 2401 pipe mode.\n", "allocate_mipi_frames(%p) exit: no buffers needed for 2401 pipe mode.\n",
pipe); pipe);
...@@ -449,8 +444,7 @@ allocate_mipi_frames(struct ia_css_pipe *pipe, ...@@ -449,8 +444,7 @@ allocate_mipi_frames(struct ia_css_pipe *pipe,
#endif #endif
#if !defined(ISP2401) #if !defined(ISP2401)
if (ref_count_mipi_allocation[port] != 0) if (ref_count_mipi_allocation[port] != 0) {
{
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE,
"allocate_mipi_frames(%p) exit: already allocated for this port (port=%d).\n", "allocate_mipi_frames(%p) exit: already allocated for this port (port=%d).\n",
pipe, port); pipe, port);
...@@ -462,8 +456,7 @@ allocate_mipi_frames(struct ia_css_pipe *pipe, ...@@ -462,8 +456,7 @@ allocate_mipi_frames(struct ia_css_pipe *pipe,
* TODO AM: Once that is changed (removed) this code should be removed as well. * TODO AM: Once that is changed (removed) this code should be removed as well.
* In that case only 2400 related code should remain. * In that case only 2400 related code should remain.
*/ */
if (ref_count_mipi_allocation[port] != 0) if (ref_count_mipi_allocation[port] != 0) {
{
ref_count_mipi_allocation[port]++; ref_count_mipi_allocation[port]++;
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE,
"allocate_mipi_frames(%p) leave: nothing to do, already allocated for this port (port=%d).\n", "allocate_mipi_frames(%p) leave: nothing to do, already allocated for this port (port=%d).\n",
...@@ -481,8 +474,7 @@ allocate_mipi_frames(struct ia_css_pipe *pipe, ...@@ -481,8 +474,7 @@ allocate_mipi_frames(struct ia_css_pipe *pipe,
{ /* limit the scope of i,j */ { /* limit the scope of i,j */
unsigned int i, j; unsigned int i, j;
for (i = 0; i < my_css.num_mipi_frames[port]; i++) for (i = 0; i < my_css.num_mipi_frames[port]; i++) {
{
/* free previous frame */ /* free previous frame */
if (my_css.mipi_frames[port][i]) { if (my_css.mipi_frames[port][i]) {
ia_css_frame_free(my_css.mipi_frames[port][i]); ia_css_frame_free(my_css.mipi_frames[port][i]);
...@@ -535,7 +527,8 @@ allocate_mipi_frames(struct ia_css_pipe *pipe, ...@@ -535,7 +527,8 @@ allocate_mipi_frames(struct ia_css_pipe *pipe,
} }
int int
free_mipi_frames(struct ia_css_pipe *pipe) { free_mipi_frames(struct ia_css_pipe *pipe)
{
int err = -EINVAL; int err = -EINVAL;
unsigned int port; unsigned int port;
...@@ -543,8 +536,7 @@ free_mipi_frames(struct ia_css_pipe *pipe) { ...@@ -543,8 +536,7 @@ free_mipi_frames(struct ia_css_pipe *pipe) {
"free_mipi_frames(%p) enter:\n", pipe); "free_mipi_frames(%p) enter:\n", pipe);
/* assert(pipe != NULL); TEMP: TODO: Should be assert only. */ /* assert(pipe != NULL); TEMP: TODO: Should be assert only. */
if (pipe) if (pipe) {
{
assert(pipe->stream); assert(pipe->stream);
if ((!pipe) || (!pipe->stream)) { if ((!pipe) || (!pipe->stream)) {
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE,
...@@ -620,8 +612,7 @@ free_mipi_frames(struct ia_css_pipe *pipe) { ...@@ -620,8 +612,7 @@ free_mipi_frames(struct ia_css_pipe *pipe) {
} }
#endif #endif
} }
} else /* pipe ==NULL */ } else { /* pipe ==NULL */
{
/* AM TEMP: free-ing all mipi buffers just like a legacy code. */ /* AM TEMP: free-ing all mipi buffers just like a legacy code. */
for (port = CSI_PORT0_ID; port < N_CSI_PORTS; port++) { for (port = CSI_PORT0_ID; port < N_CSI_PORTS; port++) {
unsigned int i; unsigned int i;
...@@ -645,7 +636,8 @@ free_mipi_frames(struct ia_css_pipe *pipe) { ...@@ -645,7 +636,8 @@ free_mipi_frames(struct ia_css_pipe *pipe) {
} }
int int
send_mipi_frames(struct ia_css_pipe *pipe) { send_mipi_frames(struct ia_css_pipe *pipe)
{
int err = -EINVAL; int err = -EINVAL;
unsigned int i; unsigned int i;
#ifndef ISP2401 #ifndef ISP2401
...@@ -658,8 +650,7 @@ send_mipi_frames(struct ia_css_pipe *pipe) { ...@@ -658,8 +650,7 @@ send_mipi_frames(struct ia_css_pipe *pipe) {
assert(pipe); assert(pipe);
assert(pipe->stream); assert(pipe->stream);
if (!pipe || !pipe->stream) if (!pipe || !pipe->stream) {
{
IA_CSS_ERROR("pipe or stream is null"); IA_CSS_ERROR("pipe or stream is null");
return -EINVAL; return -EINVAL;
} }
...@@ -686,8 +677,7 @@ send_mipi_frames(struct ia_css_pipe *pipe) { ...@@ -686,8 +677,7 @@ send_mipi_frames(struct ia_css_pipe *pipe) {
} }
/* Hand-over the SP-internal mipi buffers */ /* Hand-over the SP-internal mipi buffers */
for (i = 0; i < my_css.num_mipi_frames[port]; i++) for (i = 0; i < my_css.num_mipi_frames[port]; i++) {
{
/* Need to include the ofset for port. */ /* Need to include the ofset for port. */
sh_css_update_host2sp_mipi_frame(port * NUM_MIPI_FRAMES_PER_STREAM + i, sh_css_update_host2sp_mipi_frame(port * NUM_MIPI_FRAMES_PER_STREAM + i,
my_css.mipi_frames[port][i]); my_css.mipi_frames[port][i]);
...@@ -700,8 +690,7 @@ send_mipi_frames(struct ia_css_pipe *pipe) { ...@@ -700,8 +690,7 @@ send_mipi_frames(struct ia_css_pipe *pipe) {
* Send an event to inform the SP * Send an event to inform the SP
* that all MIPI frames are passed. * that all MIPI frames are passed.
**********************************/ **********************************/
if (!sh_css_sp_is_running()) if (!sh_css_sp_is_running()) {
{
/* SP is not running. The queues are not valid */ /* SP is not running. The queues are not valid */
IA_CSS_ERROR("sp is not running"); IA_CSS_ERROR("sp is not running");
return err; return err;
......
...@@ -813,15 +813,15 @@ convert_allocate_fpntbl(struct ia_css_isp_parameters *params) ...@@ -813,15 +813,15 @@ convert_allocate_fpntbl(struct ia_css_isp_parameters *params)
} }
static int static int
store_fpntbl(struct ia_css_isp_parameters *params, ia_css_ptr ptr) { store_fpntbl(struct ia_css_isp_parameters *params, ia_css_ptr ptr)
{
struct ia_css_host_data *isp_data; struct ia_css_host_data *isp_data;
assert(params); assert(params);
assert(ptr != mmgr_NULL); assert(ptr != mmgr_NULL);
isp_data = convert_allocate_fpntbl(params); isp_data = convert_allocate_fpntbl(params);
if (!isp_data) if (!isp_data) {
{
IA_CSS_LEAVE_ERR_PRIVATE(-ENOMEM); IA_CSS_LEAVE_ERR_PRIVATE(-ENOMEM);
return -ENOMEM; return -ENOMEM;
} }
...@@ -894,7 +894,8 @@ ia_css_process_kernel(struct ia_css_stream *stream, ...@@ -894,7 +894,8 @@ ia_css_process_kernel(struct ia_css_stream *stream,
static int static int
sh_css_select_dp_10bpp_config(const struct ia_css_pipe *pipe, sh_css_select_dp_10bpp_config(const struct ia_css_pipe *pipe,
bool *is_dp_10bpp) { bool *is_dp_10bpp)
{
int err = 0; int err = 0;
/* Currently we check if 10bpp DPC configuration is required based /* Currently we check if 10bpp DPC configuration is required based
* on the use case,i.e. if BDS and DPC is both enabled. The more cleaner * on the use case,i.e. if BDS and DPC is both enabled. The more cleaner
...@@ -903,12 +904,10 @@ sh_css_select_dp_10bpp_config(const struct ia_css_pipe *pipe, ...@@ -903,12 +904,10 @@ sh_css_select_dp_10bpp_config(const struct ia_css_pipe *pipe,
* implementation. (This is because the configuration is set before a * implementation. (This is because the configuration is set before a
* binary is selected, and the binary info is not available) * binary is selected, and the binary info is not available)
*/ */
if ((!pipe) || (!is_dp_10bpp)) if ((!pipe) || (!is_dp_10bpp)) {
{
IA_CSS_LEAVE_ERR_PRIVATE(-EINVAL); IA_CSS_LEAVE_ERR_PRIVATE(-EINVAL);
err = -EINVAL; err = -EINVAL;
} else } else {
{
*is_dp_10bpp = false; *is_dp_10bpp = false;
/* check if DPC is enabled from the host */ /* check if DPC is enabled from the host */
...@@ -936,7 +935,8 @@ sh_css_select_dp_10bpp_config(const struct ia_css_pipe *pipe, ...@@ -936,7 +935,8 @@ sh_css_select_dp_10bpp_config(const struct ia_css_pipe *pipe,
int int
sh_css_set_black_frame(struct ia_css_stream *stream, sh_css_set_black_frame(struct ia_css_stream *stream,
const struct ia_css_frame *raw_black_frame) { const struct ia_css_frame *raw_black_frame)
{
struct ia_css_isp_parameters *params; struct ia_css_isp_parameters *params;
/* this function desperately needs to be moved to the ISP or SP such /* this function desperately needs to be moved to the ISP or SP such
* that it can use the DMA. * that it can use the DMA.
...@@ -957,13 +957,11 @@ sh_css_set_black_frame(struct ia_css_stream *stream, ...@@ -957,13 +957,11 @@ sh_css_set_black_frame(struct ia_css_stream *stream,
IA_CSS_ENTER_PRIVATE("black_frame=%p", raw_black_frame); IA_CSS_ENTER_PRIVATE("black_frame=%p", raw_black_frame);
if (params->fpn_config.data && if (params->fpn_config.data &&
(params->fpn_config.width != width || params->fpn_config.height != height)) (params->fpn_config.width != width || params->fpn_config.height != height)) {
{
kvfree(params->fpn_config.data); kvfree(params->fpn_config.data);
params->fpn_config.data = NULL; params->fpn_config.data = NULL;
} }
if (!params->fpn_config.data) if (!params->fpn_config.data) {
{
params->fpn_config.data = kvmalloc(height * width * params->fpn_config.data = kvmalloc(height * width *
sizeof(short), GFP_KERNEL); sizeof(short), GFP_KERNEL);
if (!params->fpn_config.data) { if (!params->fpn_config.data) {
...@@ -977,8 +975,7 @@ sh_css_set_black_frame(struct ia_css_stream *stream, ...@@ -977,8 +975,7 @@ sh_css_set_black_frame(struct ia_css_stream *stream,
} }
/* store raw to fpntbl */ /* store raw to fpntbl */
for (y = 0; y < height; y++) for (y = 0; y < height; y++) {
{
for (x = 0; x < width; x += (ISP_VEC_NELEMS * 2)) { for (x = 0; x < width; x += (ISP_VEC_NELEMS * 2)) {
int ofs = y * width + x; int ofs = y * width + x;
...@@ -1181,7 +1178,8 @@ sh_css_enable_pipeline(const struct ia_css_binary *binary) ...@@ -1181,7 +1178,8 @@ sh_css_enable_pipeline(const struct ia_css_binary *binary)
static int static int
ia_css_process_zoom_and_motion( ia_css_process_zoom_and_motion(
struct ia_css_isp_parameters *params, struct ia_css_isp_parameters *params,
const struct ia_css_pipeline_stage *first_stage) { const struct ia_css_pipeline_stage *first_stage)
{
/* first_stage can be NULL */ /* first_stage can be NULL */
const struct ia_css_pipeline_stage *stage; const struct ia_css_pipeline_stage *stage;
int err = 0; int err = 0;
...@@ -1195,8 +1193,7 @@ ia_css_process_zoom_and_motion( ...@@ -1195,8 +1193,7 @@ ia_css_process_zoom_and_motion(
IA_CSS_ENTER_PRIVATE(""); IA_CSS_ENTER_PRIVATE("");
/* Go through all stages to udate uds and cropping */ /* Go through all stages to udate uds and cropping */
for (stage = first_stage; stage; stage = stage->next) for (stage = first_stage; stage; stage = stage->next) {
{
struct ia_css_binary *binary; struct ia_css_binary *binary;
/* note: the var below is made static as it is quite large; /* note: the var below is made static as it is quite large;
if it is not static it ends up on the stack which could if it is not static it ends up on the stack which could
...@@ -1581,7 +1578,8 @@ ia_css_isp_3a_statistics_map_allocate( ...@@ -1581,7 +1578,8 @@ ia_css_isp_3a_statistics_map_allocate(
int int
ia_css_get_3a_statistics(struct ia_css_3a_statistics *host_stats, ia_css_get_3a_statistics(struct ia_css_3a_statistics *host_stats,
const struct ia_css_isp_3a_statistics *isp_stats) { const struct ia_css_isp_3a_statistics *isp_stats)
{
struct ia_css_isp_3a_statistics_map *map; struct ia_css_isp_3a_statistics_map *map;
int ret = 0; int ret = 0;
...@@ -1591,13 +1589,11 @@ ia_css_get_3a_statistics(struct ia_css_3a_statistics *host_stats, ...@@ -1591,13 +1589,11 @@ ia_css_get_3a_statistics(struct ia_css_3a_statistics *host_stats,
assert(isp_stats); assert(isp_stats);
map = ia_css_isp_3a_statistics_map_allocate(isp_stats, NULL); map = ia_css_isp_3a_statistics_map_allocate(isp_stats, NULL);
if (map) if (map) {
{
hmm_load(isp_stats->data_ptr, map->data_ptr, isp_stats->size); hmm_load(isp_stats->data_ptr, map->data_ptr, isp_stats->size);
ia_css_translate_3a_statistics(host_stats, map); ia_css_translate_3a_statistics(host_stats, map);
ia_css_isp_3a_statistics_map_free(map); ia_css_isp_3a_statistics_map_free(map);
} else } else {
{
IA_CSS_ERROR("out of memory"); IA_CSS_ERROR("out of memory");
ret = -ENOMEM; ret = -ENOMEM;
} }
...@@ -1894,7 +1890,8 @@ sh_css_pipe_isp_config_get(struct ia_css_pipe *pipe) ...@@ -1894,7 +1890,8 @@ sh_css_pipe_isp_config_get(struct ia_css_pipe *pipe)
int int
ia_css_stream_set_isp_config( ia_css_stream_set_isp_config(
struct ia_css_stream *stream, struct ia_css_stream *stream,
const struct ia_css_isp_config *config) { const struct ia_css_isp_config *config)
{
return ia_css_stream_set_isp_config_on_pipe(stream, config, NULL); return ia_css_stream_set_isp_config_on_pipe(stream, config, NULL);
} }
...@@ -1902,7 +1899,8 @@ int ...@@ -1902,7 +1899,8 @@ int
ia_css_stream_set_isp_config_on_pipe( ia_css_stream_set_isp_config_on_pipe(
struct ia_css_stream *stream, struct ia_css_stream *stream,
const struct ia_css_isp_config *config, const struct ia_css_isp_config *config,
struct ia_css_pipe *pipe) { struct ia_css_pipe *pipe)
{
int err = 0; int err = 0;
if ((!stream) || (!config)) if ((!stream) || (!config))
...@@ -1923,7 +1921,8 @@ ia_css_stream_set_isp_config_on_pipe( ...@@ -1923,7 +1921,8 @@ ia_css_stream_set_isp_config_on_pipe(
int int
ia_css_pipe_set_isp_config(struct ia_css_pipe *pipe, ia_css_pipe_set_isp_config(struct ia_css_pipe *pipe,
struct ia_css_isp_config *config) { struct ia_css_isp_config *config)
{
struct ia_css_pipe *pipe_in = pipe; struct ia_css_pipe *pipe_in = pipe;
int err = 0; int err = 0;
...@@ -1948,7 +1947,8 @@ static int ...@@ -1948,7 +1947,8 @@ static int
sh_css_set_global_isp_config_on_pipe( sh_css_set_global_isp_config_on_pipe(
struct ia_css_pipe *curr_pipe, struct ia_css_pipe *curr_pipe,
const struct ia_css_isp_config *config, const struct ia_css_isp_config *config,
struct ia_css_pipe *pipe) { struct ia_css_pipe *pipe)
{
int err = 0; int err = 0;
int err1 = 0; int err1 = 0;
int err2 = 0; int err2 = 0;
...@@ -1977,7 +1977,8 @@ static int ...@@ -1977,7 +1977,8 @@ static int
sh_css_set_per_frame_isp_config_on_pipe( sh_css_set_per_frame_isp_config_on_pipe(
struct ia_css_stream *stream, struct ia_css_stream *stream,
const struct ia_css_isp_config *config, const struct ia_css_isp_config *config,
struct ia_css_pipe *pipe) { struct ia_css_pipe *pipe)
{
unsigned int i; unsigned int i;
bool per_frame_config_created = false; bool per_frame_config_created = false;
int err = 0; int err = 0;
...@@ -1991,8 +1992,7 @@ sh_css_set_per_frame_isp_config_on_pipe( ...@@ -1991,8 +1992,7 @@ sh_css_set_per_frame_isp_config_on_pipe(
IA_CSS_ENTER_PRIVATE("stream=%p, config=%p, pipe=%p", stream, config, pipe); IA_CSS_ENTER_PRIVATE("stream=%p, config=%p, pipe=%p", stream, config, pipe);
if (!pipe) if (!pipe) {
{
err = -EINVAL; err = -EINVAL;
goto exit; goto exit;
} }
...@@ -2000,8 +2000,7 @@ sh_css_set_per_frame_isp_config_on_pipe( ...@@ -2000,8 +2000,7 @@ sh_css_set_per_frame_isp_config_on_pipe(
/* create per-frame ISP params object with default values /* create per-frame ISP params object with default values
* from stream->isp_params_configs if one doesn't already exist * from stream->isp_params_configs if one doesn't already exist
*/ */
if (!stream->per_frame_isp_params_configs) if (!stream->per_frame_isp_params_configs) {
{
err = sh_css_create_isp_params(stream, err = sh_css_create_isp_params(stream,
&stream->per_frame_isp_params_configs); &stream->per_frame_isp_params_configs);
if (err) if (err)
...@@ -2012,15 +2011,13 @@ sh_css_set_per_frame_isp_config_on_pipe( ...@@ -2012,15 +2011,13 @@ sh_css_set_per_frame_isp_config_on_pipe(
params = stream->per_frame_isp_params_configs; params = stream->per_frame_isp_params_configs;
/* update new ISP params object with the new config */ /* update new ISP params object with the new config */
if (!sh_css_init_isp_params_from_global(stream, params, false, pipe)) if (!sh_css_init_isp_params_from_global(stream, params, false, pipe)) {
{
err1 = -EINVAL; err1 = -EINVAL;
} }
err2 = sh_css_init_isp_params_from_config(stream->pipes[0], params, config, pipe); err2 = sh_css_init_isp_params_from_config(stream->pipes[0], params, config, pipe);
if (per_frame_config_created) if (per_frame_config_created) {
{
ddr_ptrs = &params->ddr_ptrs; ddr_ptrs = &params->ddr_ptrs;
ddr_ptrs_size = &params->ddr_ptrs_size; ddr_ptrs_size = &params->ddr_ptrs_size;
/* create per pipe reference to general ddr_ptrs */ /* create per pipe reference to general ddr_ptrs */
...@@ -2051,7 +2048,8 @@ static int ...@@ -2051,7 +2048,8 @@ static int
sh_css_init_isp_params_from_config(struct ia_css_pipe *pipe, sh_css_init_isp_params_from_config(struct ia_css_pipe *pipe,
struct ia_css_isp_parameters *params, struct ia_css_isp_parameters *params,
const struct ia_css_isp_config *config, const struct ia_css_isp_config *config,
struct ia_css_pipe *pipe_in) { struct ia_css_pipe *pipe_in)
{
int err = 0; int err = 0;
bool is_dp_10bpp = true; bool is_dp_10bpp = true;
...@@ -2096,8 +2094,7 @@ sh_css_init_isp_params_from_config(struct ia_css_pipe *pipe, ...@@ -2096,8 +2094,7 @@ sh_css_init_isp_params_from_config(struct ia_css_pipe *pipe,
} }
if (0 == if (0 ==
sh_css_select_dp_10bpp_config(pipe, &is_dp_10bpp)) sh_css_select_dp_10bpp_config(pipe, &is_dp_10bpp)) {
{
/* return an error when both DPC and BDS is enabled by the /* return an error when both DPC and BDS is enabled by the
* user. */ * user. */
/* we do not exit from this point immediately to allow internal /* we do not exit from this point immediately to allow internal
...@@ -2105,8 +2102,7 @@ sh_css_init_isp_params_from_config(struct ia_css_pipe *pipe, ...@@ -2105,8 +2102,7 @@ sh_css_init_isp_params_from_config(struct ia_css_pipe *pipe,
if (is_dp_10bpp) { if (is_dp_10bpp) {
err = -EINVAL; err = -EINVAL;
} }
} else } else {
{
err = -EINVAL; err = -EINVAL;
goto exit; goto exit;
} }
...@@ -2359,7 +2355,8 @@ static unsigned int g_param_buffer_dequeue_count; ...@@ -2359,7 +2355,8 @@ static unsigned int g_param_buffer_dequeue_count;
static unsigned int g_param_buffer_enqueue_count; static unsigned int g_param_buffer_enqueue_count;
int int
ia_css_stream_isp_parameters_init(struct ia_css_stream *stream) { ia_css_stream_isp_parameters_init(struct ia_css_stream *stream)
{
int err = 0; int err = 0;
unsigned int i; unsigned int i;
struct sh_css_ddr_address_map *ddr_ptrs; struct sh_css_ddr_address_map *ddr_ptrs;
...@@ -2369,8 +2366,7 @@ ia_css_stream_isp_parameters_init(struct ia_css_stream *stream) { ...@@ -2369,8 +2366,7 @@ ia_css_stream_isp_parameters_init(struct ia_css_stream *stream) {
assert(stream); assert(stream);
IA_CSS_ENTER_PRIVATE("void"); IA_CSS_ENTER_PRIVATE("void");
if (!stream) if (!stream) {
{
IA_CSS_LEAVE_ERR_PRIVATE(-EINVAL); IA_CSS_LEAVE_ERR_PRIVATE(-EINVAL);
return -EINVAL; return -EINVAL;
} }
...@@ -2385,8 +2381,7 @@ ia_css_stream_isp_parameters_init(struct ia_css_stream *stream) { ...@@ -2385,8 +2381,7 @@ ia_css_stream_isp_parameters_init(struct ia_css_stream *stream) {
goto ERR; goto ERR;
params = stream->isp_params_configs; params = stream->isp_params_configs;
if (!sh_css_init_isp_params_from_global(stream, params, true, NULL)) if (!sh_css_init_isp_params_from_global(stream, params, true, NULL)) {
{
/* we do not return the error immediately to enable internal /* we do not return the error immediately to enable internal
* firmware feature testing */ * firmware feature testing */
err = -EINVAL; err = -EINVAL;
...@@ -2396,8 +2391,7 @@ ia_css_stream_isp_parameters_init(struct ia_css_stream *stream) { ...@@ -2396,8 +2391,7 @@ ia_css_stream_isp_parameters_init(struct ia_css_stream *stream) {
ddr_ptrs_size = &params->ddr_ptrs_size; ddr_ptrs_size = &params->ddr_ptrs_size;
/* create per pipe reference to general ddr_ptrs */ /* create per pipe reference to general ddr_ptrs */
for (i = 0; i < IA_CSS_PIPE_ID_NUM; i++) for (i = 0; i < IA_CSS_PIPE_ID_NUM; i++) {
{
ref_sh_css_ddr_address_map(ddr_ptrs, &params->pipe_ddr_ptrs[i]); ref_sh_css_ddr_address_map(ddr_ptrs, &params->pipe_ddr_ptrs[i]);
params->pipe_ddr_ptrs_size[i] = *ddr_ptrs_size; params->pipe_ddr_ptrs_size[i] = *ddr_ptrs_size;
} }
...@@ -2431,7 +2425,8 @@ ia_css_set_sdis2_config( ...@@ -2431,7 +2425,8 @@ ia_css_set_sdis2_config(
static int static int
sh_css_create_isp_params(struct ia_css_stream *stream, sh_css_create_isp_params(struct ia_css_stream *stream,
struct ia_css_isp_parameters **isp_params_out) { struct ia_css_isp_parameters **isp_params_out)
{
bool succ = true; bool succ = true;
unsigned int i; unsigned int i;
struct sh_css_ddr_address_map *ddr_ptrs; struct sh_css_ddr_address_map *ddr_ptrs;
...@@ -2441,23 +2436,20 @@ sh_css_create_isp_params(struct ia_css_stream *stream, ...@@ -2441,23 +2436,20 @@ sh_css_create_isp_params(struct ia_css_stream *stream,
struct ia_css_isp_parameters *params = struct ia_css_isp_parameters *params =
kvmalloc(sizeof(struct ia_css_isp_parameters), GFP_KERNEL); kvmalloc(sizeof(struct ia_css_isp_parameters), GFP_KERNEL);
if (!params) if (!params) {
{
*isp_params_out = NULL; *isp_params_out = NULL;
err = -ENOMEM; err = -ENOMEM;
IA_CSS_ERROR("%s:%d error: cannot allocate memory", __FILE__, __LINE__); IA_CSS_ERROR("%s:%d error: cannot allocate memory", __FILE__, __LINE__);
IA_CSS_LEAVE_ERR_PRIVATE(err); IA_CSS_LEAVE_ERR_PRIVATE(err);
return err; return err;
} else } else {
{
memset(params, 0, sizeof(struct ia_css_isp_parameters)); memset(params, 0, sizeof(struct ia_css_isp_parameters));
} }
ddr_ptrs = &params->ddr_ptrs; ddr_ptrs = &params->ddr_ptrs;
ddr_ptrs_size = &params->ddr_ptrs_size; ddr_ptrs_size = &params->ddr_ptrs_size;
for (i = 0; i < IA_CSS_PIPE_ID_NUM; i++) for (i = 0; i < IA_CSS_PIPE_ID_NUM; i++) {
{
memset(&params->pipe_ddr_ptrs[i], 0, memset(&params->pipe_ddr_ptrs[i], 0,
sizeof(params->pipe_ddr_ptrs[i])); sizeof(params->pipe_ddr_ptrs[i]));
memset(&params->pipe_ddr_ptrs_size[i], 0, memset(&params->pipe_ddr_ptrs_size[i], 0,
...@@ -2714,7 +2706,8 @@ sh_css_init_isp_params_from_global(struct ia_css_stream *stream, ...@@ -2714,7 +2706,8 @@ sh_css_init_isp_params_from_global(struct ia_css_stream *stream,
} }
int int
sh_css_params_init(void) { sh_css_params_init(void)
{
int i, p; int i, p;
IA_CSS_ENTER_PRIVATE("void"); IA_CSS_ENTER_PRIVATE("void");
...@@ -2723,8 +2716,7 @@ sh_css_params_init(void) { ...@@ -2723,8 +2716,7 @@ sh_css_params_init(void) {
g_param_buffer_dequeue_count = 0; g_param_buffer_dequeue_count = 0;
g_param_buffer_enqueue_count = 0; g_param_buffer_enqueue_count = 0;
for (p = 0; p < IA_CSS_PIPE_ID_NUM; p++) for (p = 0; p < IA_CSS_PIPE_ID_NUM; p++) {
{
for (i = 0; i < SH_CSS_MAX_STAGES; i++) { for (i = 0; i < SH_CSS_MAX_STAGES; i++) {
xmem_sp_stage_ptrs[p][i] = xmem_sp_stage_ptrs[p][i] =
ia_css_refcount_increment(-1, ia_css_refcount_increment(-1,
...@@ -2762,8 +2754,7 @@ sh_css_params_init(void) { ...@@ -2762,8 +2754,7 @@ sh_css_params_init(void) {
ATOMISP_MAP_FLAG_CLEARED)); ATOMISP_MAP_FLAG_CLEARED));
if ((sp_ddr_ptrs == mmgr_NULL) || if ((sp_ddr_ptrs == mmgr_NULL) ||
(xmem_sp_group_ptrs == mmgr_NULL)) (xmem_sp_group_ptrs == mmgr_NULL)) {
{
ia_css_uninit(); ia_css_uninit();
IA_CSS_LEAVE_ERR_PRIVATE(-ENOMEM); IA_CSS_LEAVE_ERR_PRIVATE(-ENOMEM);
return -ENOMEM; return -ENOMEM;
...@@ -3094,14 +3085,14 @@ store_morph_plane( ...@@ -3094,14 +3085,14 @@ store_morph_plane(
unsigned int width, unsigned int width,
unsigned int height, unsigned int height,
ia_css_ptr dest, ia_css_ptr dest,
unsigned int aligned_width) { unsigned int aligned_width)
{
struct ia_css_host_data *isp_data; struct ia_css_host_data *isp_data;
assert(dest != mmgr_NULL); assert(dest != mmgr_NULL);
isp_data = convert_allocate_morph_plane(data, width, height, aligned_width); isp_data = convert_allocate_morph_plane(data, width, height, aligned_width);
if (!isp_data) if (!isp_data) {
{
IA_CSS_LEAVE_ERR_PRIVATE(-ENOMEM); IA_CSS_LEAVE_ERR_PRIVATE(-ENOMEM);
return -ENOMEM; return -ENOMEM;
} }
...@@ -3221,7 +3212,8 @@ int ...@@ -3221,7 +3212,8 @@ int
sh_css_param_update_isp_params(struct ia_css_pipe *curr_pipe, sh_css_param_update_isp_params(struct ia_css_pipe *curr_pipe,
struct ia_css_isp_parameters *params, struct ia_css_isp_parameters *params,
bool commit, bool commit,
struct ia_css_pipe *pipe_in) { struct ia_css_pipe *pipe_in)
{
int err = 0; int err = 0;
ia_css_ptr cpy; ia_css_ptr cpy;
int i; int i;
...@@ -3238,15 +3230,13 @@ sh_css_param_update_isp_params(struct ia_css_pipe *curr_pipe, ...@@ -3238,15 +3230,13 @@ sh_css_param_update_isp_params(struct ia_css_pipe *curr_pipe,
raw_bit_depth = ia_css_stream_input_format_bits_per_pixel(curr_pipe->stream); raw_bit_depth = ia_css_stream_input_format_bits_per_pixel(curr_pipe->stream);
/* now make the map available to the sp */ /* now make the map available to the sp */
if (!commit) if (!commit) {
{
IA_CSS_LEAVE_ERR_PRIVATE(err); IA_CSS_LEAVE_ERR_PRIVATE(err);
return err; return err;
} }
/* enqueue a copies of the mem_map to /* enqueue a copies of the mem_map to
the designated pipelines */ the designated pipelines */
for (i = 0; i < curr_pipe->stream->num_pipes; i++) for (i = 0; i < curr_pipe->stream->num_pipes; i++) {
{
struct ia_css_pipe *pipe; struct ia_css_pipe *pipe;
struct sh_css_ddr_address_map *cur_map; struct sh_css_ddr_address_map *cur_map;
struct sh_css_ddr_address_map_size *cur_map_size; struct sh_css_ddr_address_map_size *cur_map_size;
...@@ -3430,7 +3420,8 @@ sh_css_params_write_to_ddr_internal( ...@@ -3430,7 +3420,8 @@ sh_css_params_write_to_ddr_internal(
struct ia_css_isp_parameters *params, struct ia_css_isp_parameters *params,
const struct ia_css_pipeline_stage *stage, const struct ia_css_pipeline_stage *stage,
struct sh_css_ddr_address_map *ddr_map, struct sh_css_ddr_address_map *ddr_map,
struct sh_css_ddr_address_map_size *ddr_map_size) { struct sh_css_ddr_address_map_size *ddr_map_size)
{
int err; int err;
const struct ia_css_binary *binary; const struct ia_css_binary *binary;
...@@ -3452,8 +3443,7 @@ sh_css_params_write_to_ddr_internal( ...@@ -3452,8 +3443,7 @@ sh_css_params_write_to_ddr_internal(
stage_num = stage->stage_num; stage_num = stage->stage_num;
if (binary->info->sp.enable.fpnr) if (binary->info->sp.enable.fpnr) {
{
buff_realloced = reallocate_buffer(&ddr_map->fpn_tbl, buff_realloced = reallocate_buffer(&ddr_map->fpn_tbl,
&ddr_map_size->fpn_tbl, &ddr_map_size->fpn_tbl,
(size_t)(FPNTBL_BYTES(binary)), (size_t)(FPNTBL_BYTES(binary)),
...@@ -3474,8 +3464,7 @@ sh_css_params_write_to_ddr_internal( ...@@ -3474,8 +3464,7 @@ sh_css_params_write_to_ddr_internal(
} }
} }
if (binary->info->sp.enable.sc) if (binary->info->sp.enable.sc) {
{
u32 enable_conv; u32 enable_conv;
size_t bytes; size_t bytes;
...@@ -3577,8 +3566,7 @@ sh_css_params_write_to_ddr_internal( ...@@ -3577,8 +3566,7 @@ sh_css_params_write_to_ddr_internal(
* DPC kernel. The code below sets the pipe specific configuration to * DPC kernel. The code below sets the pipe specific configuration to
* individual binaries. */ * individual binaries. */
if (IS_ISP2401 && if (IS_ISP2401 &&
params->pipe_dpc_config_changed[pipe_id] && binary->info->sp.enable.dpc) params->pipe_dpc_config_changed[pipe_id] && binary->info->sp.enable.dpc) {
{
unsigned int size = unsigned int size =
stage->binary->info->mem_offsets.offsets.param->dmem.dp.size; stage->binary->info->mem_offsets.offsets.param->dmem.dp.size;
...@@ -3596,8 +3584,7 @@ sh_css_params_write_to_ddr_internal( ...@@ -3596,8 +3584,7 @@ sh_css_params_write_to_ddr_internal(
} }
} }
if (params->config_changed[IA_CSS_MACC_ID] && binary->info->sp.enable.macc) if (params->config_changed[IA_CSS_MACC_ID] && binary->info->sp.enable.macc) {
{
unsigned int i, j, idx; unsigned int i, j, idx;
unsigned int idx_map[] = { unsigned int idx_map[] = {
0, 1, 3, 2, 6, 7, 5, 4, 12, 13, 15, 14, 10, 11, 9, 8 0, 1, 3, 2, 6, 7, 5, 4, 12, 13, 15, 14, 10, 11, 9, 8
...@@ -3646,8 +3633,7 @@ sh_css_params_write_to_ddr_internal( ...@@ -3646,8 +3633,7 @@ sh_css_params_write_to_ddr_internal(
sizeof(converted_macc_table.data)); sizeof(converted_macc_table.data));
} }
if (binary->info->sp.enable.dvs_6axis) if (binary->info->sp.enable.dvs_6axis) {
{
/* because UV is packed into the Y plane, calc total /* because UV is packed into the Y plane, calc total
* YYU size = /2 gives size of UV-only, * YYU size = /2 gives size of UV-only,
* total YYU size = UV-only * 3. * total YYU size = UV-only * 3.
...@@ -3705,8 +3691,7 @@ sh_css_params_write_to_ddr_internal( ...@@ -3705,8 +3691,7 @@ sh_css_params_write_to_ddr_internal(
} }
} }
if (binary->info->sp.enable.ca_gdc) if (binary->info->sp.enable.ca_gdc) {
{
unsigned int i; unsigned int i;
ia_css_ptr *virt_addr_tetra_x[ ia_css_ptr *virt_addr_tetra_x[
...@@ -3811,8 +3796,7 @@ sh_css_params_write_to_ddr_internal( ...@@ -3811,8 +3796,7 @@ sh_css_params_write_to_ddr_internal(
} }
/* After special cases like SC, FPN since they may change parameters */ /* After special cases like SC, FPN since they may change parameters */
for (mem = 0; mem < N_IA_CSS_MEMORIES; mem++) for (mem = 0; mem < N_IA_CSS_MEMORIES; mem++) {
{
const struct ia_css_isp_data *isp_data = const struct ia_css_isp_data *isp_data =
ia_css_isp_param_get_isp_mem_init(&binary->info->sp.mem_initializers, ia_css_isp_param_get_isp_mem_init(&binary->info->sp.mem_initializers,
IA_CSS_PARAM_CLASS_PARAM, mem); IA_CSS_PARAM_CLASS_PARAM, mem);
...@@ -4025,7 +4009,8 @@ static int write_ia_css_isp_parameter_set_info_to_ddr( ...@@ -4025,7 +4009,8 @@ static int write_ia_css_isp_parameter_set_info_to_ddr(
static int static int
free_ia_css_isp_parameter_set_info( free_ia_css_isp_parameter_set_info(
ia_css_ptr ptr) { ia_css_ptr ptr)
{
int err = 0; int err = 0;
struct ia_css_isp_parameter_set_info isp_params_info; struct ia_css_isp_parameter_set_info isp_params_info;
unsigned int i; unsigned int i;
...@@ -4034,8 +4019,7 @@ free_ia_css_isp_parameter_set_info( ...@@ -4034,8 +4019,7 @@ free_ia_css_isp_parameter_set_info(
IA_CSS_ENTER_PRIVATE("ptr = %u", ptr); IA_CSS_ENTER_PRIVATE("ptr = %u", ptr);
/* sanity check - ptr must be valid */ /* sanity check - ptr must be valid */
if (!ia_css_refcount_is_valid(ptr)) if (!ia_css_refcount_is_valid(ptr)) {
{
IA_CSS_ERROR("%s: IA_CSS_REFCOUNT_PARAM_SET_POOL(0x%x) invalid arg", __func__, IA_CSS_ERROR("%s: IA_CSS_REFCOUNT_PARAM_SET_POOL(0x%x) invalid arg", __func__,
ptr); ptr);
err = -EINVAL; err = -EINVAL;
...@@ -4046,8 +4030,7 @@ free_ia_css_isp_parameter_set_info( ...@@ -4046,8 +4030,7 @@ free_ia_css_isp_parameter_set_info(
hmm_load(ptr, &isp_params_info.mem_map, sizeof(struct sh_css_ddr_address_map)); hmm_load(ptr, &isp_params_info.mem_map, sizeof(struct sh_css_ddr_address_map));
/* copy map using size info */ /* copy map using size info */
for (i = 0; i < (sizeof(struct sh_css_ddr_address_map_size) / for (i = 0; i < (sizeof(struct sh_css_ddr_address_map_size) /
sizeof(size_t)); i++) sizeof(size_t)); i++) {
{
if (addrs[i] == mmgr_NULL) if (addrs[i] == mmgr_NULL)
continue; continue;
...@@ -4254,7 +4237,8 @@ sh_css_update_uds_and_crop_info_based_on_zoom_region( ...@@ -4254,7 +4237,8 @@ sh_css_update_uds_and_crop_info_based_on_zoom_region(
struct sh_css_uds_info *uds, /* out */ struct sh_css_uds_info *uds, /* out */
struct sh_css_crop_pos *sp_out_crop_pos, /* out */ struct sh_css_crop_pos *sp_out_crop_pos, /* out */
struct ia_css_resolution pipe_in_res, struct ia_css_resolution pipe_in_res,
bool enable_zoom) { bool enable_zoom)
{
unsigned int x0 = 0, y0 = 0, x1 = 0, y1 = 0; unsigned int x0 = 0, y0 = 0, x1 = 0, y1 = 0;
int err = 0; int err = 0;
/* Note: /* Note:
...@@ -4285,19 +4269,16 @@ sh_css_update_uds_and_crop_info_based_on_zoom_region( ...@@ -4285,19 +4269,16 @@ sh_css_update_uds_and_crop_info_based_on_zoom_region(
if ((x0 > x1) || (y0 > y1) || (x1 > pipe_in_res.width) || (y1 > pipe_in_res.height)) if ((x0 > x1) || (y0 > y1) || (x1 > pipe_in_res.width) || (y1 > pipe_in_res.height))
return -EINVAL; return -EINVAL;
if (!enable_zoom) if (!enable_zoom) {
{
uds->curr_dx = HRT_GDC_N; uds->curr_dx = HRT_GDC_N;
uds->curr_dy = HRT_GDC_N; uds->curr_dy = HRT_GDC_N;
} }
if (info->enable.dvs_envelope) if (info->enable.dvs_envelope) {
{
/* Zoom region is only supported by the UDS module on ISP /* Zoom region is only supported by the UDS module on ISP
* 2 and higher. It is not supported in video mode on ISP 1 */ * 2 and higher. It is not supported in video mode on ISP 1 */
return -EINVAL; return -EINVAL;
} else } else {
{
if (enable_zoom) { if (enable_zoom) {
/* A. Calculate dx/dy based on crop region using in_frame_info /* A. Calculate dx/dy based on crop region using in_frame_info
* Scale the crop region if in_frame_info to the stage is not same as * Scale the crop region if in_frame_info to the stage is not same as
......
...@@ -535,12 +535,12 @@ sh_css_copy_frame_to_spframe(struct ia_css_frame_sp *sp_frame_out, ...@@ -535,12 +535,12 @@ sh_css_copy_frame_to_spframe(struct ia_css_frame_sp *sp_frame_out,
} }
static int static int
set_input_frame_buffer(const struct ia_css_frame *frame) { set_input_frame_buffer(const struct ia_css_frame *frame)
{
if (!frame) if (!frame)
return -EINVAL; return -EINVAL;
switch (frame->info.format) switch (frame->info.format) {
{
case IA_CSS_FRAME_FORMAT_QPLANE6: case IA_CSS_FRAME_FORMAT_QPLANE6:
case IA_CSS_FRAME_FORMAT_YUV420_16: case IA_CSS_FRAME_FORMAT_YUV420_16:
case IA_CSS_FRAME_FORMAT_RAW_PACKED: case IA_CSS_FRAME_FORMAT_RAW_PACKED:
...@@ -566,12 +566,12 @@ set_input_frame_buffer(const struct ia_css_frame *frame) { ...@@ -566,12 +566,12 @@ set_input_frame_buffer(const struct ia_css_frame *frame) {
static int static int
set_output_frame_buffer(const struct ia_css_frame *frame, set_output_frame_buffer(const struct ia_css_frame *frame,
unsigned int idx) { unsigned int idx)
{
if (!frame) if (!frame)
return -EINVAL; return -EINVAL;
switch (frame->info.format) switch (frame->info.format) {
{
case IA_CSS_FRAME_FORMAT_YUV420: case IA_CSS_FRAME_FORMAT_YUV420:
case IA_CSS_FRAME_FORMAT_YUV422: case IA_CSS_FRAME_FORMAT_YUV422:
case IA_CSS_FRAME_FORMAT_YUV444: case IA_CSS_FRAME_FORMAT_YUV444:
...@@ -607,12 +607,12 @@ set_output_frame_buffer(const struct ia_css_frame *frame, ...@@ -607,12 +607,12 @@ set_output_frame_buffer(const struct ia_css_frame *frame,
} }
static int static int
set_view_finder_buffer(const struct ia_css_frame *frame) { set_view_finder_buffer(const struct ia_css_frame *frame)
{
if (!frame) if (!frame)
return -EINVAL; return -EINVAL;
switch (frame->info.format) switch (frame->info.format) {
{
/* the dual output pin */ /* the dual output pin */
case IA_CSS_FRAME_FORMAT_NV12: case IA_CSS_FRAME_FORMAT_NV12:
case IA_CSS_FRAME_FORMAT_NV12_16: case IA_CSS_FRAME_FORMAT_NV12_16:
...@@ -732,7 +732,8 @@ sh_css_sp_set_disable_continuous_viewfinder(bool flag) ...@@ -732,7 +732,8 @@ sh_css_sp_set_disable_continuous_viewfinder(bool flag)
} }
static int static int
sh_css_sp_write_frame_pointers(const struct sh_css_binary_args *args) { sh_css_sp_write_frame_pointers(const struct sh_css_binary_args *args)
{
int err = 0; int err = 0;
int i; int i;
...@@ -742,8 +743,7 @@ sh_css_sp_write_frame_pointers(const struct sh_css_binary_args *args) { ...@@ -742,8 +743,7 @@ sh_css_sp_write_frame_pointers(const struct sh_css_binary_args *args) {
err = set_input_frame_buffer(args->in_frame); err = set_input_frame_buffer(args->in_frame);
if (!err && args->out_vf_frame) if (!err && args->out_vf_frame)
err = set_view_finder_buffer(args->out_vf_frame); err = set_view_finder_buffer(args->out_vf_frame);
for (i = 0; i < IA_CSS_BINARY_MAX_OUTPUT_PORTS; i++) for (i = 0; i < IA_CSS_BINARY_MAX_OUTPUT_PORTS; i++) {
{
if (!err && args->out_frame[i]) if (!err && args->out_frame[i])
err = set_output_frame_buffer(args->out_frame[i], i); err = set_output_frame_buffer(args->out_frame[i], i);
} }
...@@ -786,7 +786,8 @@ sh_css_stage_write_binary_info(struct ia_css_binary_info *info) ...@@ -786,7 +786,8 @@ sh_css_stage_write_binary_info(struct ia_css_binary_info *info)
} }
static int static int
copy_isp_mem_if_to_ddr(struct ia_css_binary *binary) { copy_isp_mem_if_to_ddr(struct ia_css_binary *binary)
{
int err; int err;
err = ia_css_isp_param_copy_isp_mem_if_to_ddr( err = ia_css_isp_param_copy_isp_mem_if_to_ddr(
...@@ -817,7 +818,8 @@ configure_isp_from_args( ...@@ -817,7 +818,8 @@ configure_isp_from_args(
const struct ia_css_binary *binary, const struct ia_css_binary *binary,
const struct sh_css_binary_args *args, const struct sh_css_binary_args *args,
bool two_ppc, bool two_ppc,
bool deinterleaved) { bool deinterleaved)
{
ia_css_fpn_configure(binary, &binary->in_frame_info); ia_css_fpn_configure(binary, &binary->in_frame_info);
ia_css_crop_configure(binary, &args->delay_frames[0]->info); ia_css_crop_configure(binary, &args->delay_frames[0]->info);
ia_css_qplane_configure(pipeline, binary, &binary->in_frame_info); ia_css_qplane_configure(pipeline, binary, &binary->in_frame_info);
...@@ -896,7 +898,8 @@ sh_css_sp_init_stage(struct ia_css_binary *binary, ...@@ -896,7 +898,8 @@ sh_css_sp_init_stage(struct ia_css_binary *binary,
bool xnr, bool xnr,
const struct ia_css_isp_param_css_segments *isp_mem_if, const struct ia_css_isp_param_css_segments *isp_mem_if,
unsigned int if_config_index, unsigned int if_config_index,
bool two_ppc) { bool two_ppc)
{
const struct ia_css_binary_xinfo *xinfo; const struct ia_css_binary_xinfo *xinfo;
const struct ia_css_binary_info *info; const struct ia_css_binary_info *info;
int err = 0; int err = 0;
...@@ -928,8 +931,7 @@ sh_css_sp_init_stage(struct ia_css_binary *binary, ...@@ -928,8 +931,7 @@ sh_css_sp_init_stage(struct ia_css_binary *binary,
ia_css_pipeline_get_sp_thread_id(pipe_num, &thread_id); ia_css_pipeline_get_sp_thread_id(pipe_num, &thread_id);
if (!info) if (!info) {
{
sh_css_sp_group.pipe[thread_id].sp_stage_addr[stage] = mmgr_NULL; sh_css_sp_group.pipe[thread_id].sp_stage_addr[stage] = mmgr_NULL;
return 0; return 0;
} }
...@@ -961,8 +963,7 @@ sh_css_sp_init_stage(struct ia_css_binary *binary, ...@@ -961,8 +963,7 @@ sh_css_sp_init_stage(struct ia_css_binary *binary,
ia_css_frame_info_to_frame_sp_info(&sh_css_sp_stage.frames.in.info, ia_css_frame_info_to_frame_sp_info(&sh_css_sp_stage.frames.in.info,
&binary->in_frame_info); &binary->in_frame_info);
for (i = 0; i < IA_CSS_BINARY_MAX_OUTPUT_PORTS; i++) for (i = 0; i < IA_CSS_BINARY_MAX_OUTPUT_PORTS; i++) {
{
ia_css_frame_info_to_frame_sp_info(&sh_css_sp_stage.frames.out[i].info, ia_css_frame_info_to_frame_sp_info(&sh_css_sp_stage.frames.out[i].info,
&binary->out_frame_info[i]); &binary->out_frame_info[i]);
} }
...@@ -996,16 +997,14 @@ sh_css_sp_init_stage(struct ia_css_binary *binary, ...@@ -996,16 +997,14 @@ sh_css_sp_init_stage(struct ia_css_binary *binary,
err = sh_css_sp_write_frame_pointers(args); err = sh_css_sp_write_frame_pointers(args);
/* TODO: move it to a better place */ /* TODO: move it to a better place */
if (binary->info->sp.enable.s3a) if (binary->info->sp.enable.s3a) {
{
ia_css_query_internal_queue_id(IA_CSS_BUFFER_TYPE_3A_STATISTICS, thread_id, ia_css_query_internal_queue_id(IA_CSS_BUFFER_TYPE_3A_STATISTICS, thread_id,
&queue_id); &queue_id);
sh_css_copy_buffer_attr_to_spbuffer(&sh_css_sp_stage.frames.s3a_buf, queue_id, sh_css_copy_buffer_attr_to_spbuffer(&sh_css_sp_stage.frames.s3a_buf, queue_id,
mmgr_EXCEPTION, mmgr_EXCEPTION,
IA_CSS_BUFFER_TYPE_3A_STATISTICS); IA_CSS_BUFFER_TYPE_3A_STATISTICS);
} }
if (binary->info->sp.enable.dis) if (binary->info->sp.enable.dis) {
{
ia_css_query_internal_queue_id(IA_CSS_BUFFER_TYPE_DIS_STATISTICS, thread_id, ia_css_query_internal_queue_id(IA_CSS_BUFFER_TYPE_DIS_STATISTICS, thread_id,
&queue_id); &queue_id);
sh_css_copy_buffer_attr_to_spbuffer(&sh_css_sp_stage.frames.dvs_buf, queue_id, sh_css_copy_buffer_attr_to_spbuffer(&sh_css_sp_stage.frames.dvs_buf, queue_id,
...@@ -1046,8 +1045,7 @@ sh_css_sp_init_stage(struct ia_css_binary *binary, ...@@ -1046,8 +1045,7 @@ sh_css_sp_init_stage(struct ia_css_binary *binary,
* the original out res. for video pipe, it has two output pins --- out and * the original out res. for video pipe, it has two output pins --- out and
* vf_out, so it can keep these two resolutions already. */ * vf_out, so it can keep these two resolutions already. */
if (binary->info->sp.pipeline.mode == IA_CSS_BINARY_MODE_PREVIEW && if (binary->info->sp.pipeline.mode == IA_CSS_BINARY_MODE_PREVIEW &&
(binary->vf_downscale_log2 > 0)) (binary->vf_downscale_log2 > 0)) {
{
/* TODO: Remove this after preview output decimation is fixed /* TODO: Remove this after preview output decimation is fixed
* by configuring out&vf info fiels properly */ * by configuring out&vf info fiels properly */
sh_css_sp_stage.frames.out[0].info.padded_width sh_css_sp_stage.frames.out[0].info.padded_width
...@@ -1069,7 +1067,8 @@ sp_init_stage(struct ia_css_pipeline_stage *stage, ...@@ -1069,7 +1067,8 @@ sp_init_stage(struct ia_css_pipeline_stage *stage,
unsigned int pipe_num, unsigned int pipe_num,
bool xnr, bool xnr,
unsigned int if_config_index, unsigned int if_config_index,
bool two_ppc) { bool two_ppc)
{
struct ia_css_binary *binary; struct ia_css_binary *binary;
const struct ia_css_fw_info *firmware; const struct ia_css_fw_info *firmware;
const struct sh_css_binary_args *args; const struct sh_css_binary_args *args;
...@@ -1105,14 +1104,12 @@ sp_init_stage(struct ia_css_pipeline_stage *stage, ...@@ -1105,14 +1104,12 @@ sp_init_stage(struct ia_css_pipeline_stage *stage,
args = &stage->args; args = &stage->args;
stage_num = stage->stage_num; stage_num = stage->stage_num;
if (binary) if (binary) {
{
info = binary->info; info = binary->info;
binary_name = (const char *)(info->blob->name); binary_name = (const char *)(info->blob->name);
blob_info = &info->blob->header.blob; blob_info = &info->blob->header.blob;
ia_css_init_memory_interface(mem_if, &binary->mem_params, &binary->css_params); ia_css_init_memory_interface(mem_if, &binary->mem_params, &binary->css_params);
} else if (firmware) } else if (firmware) {
{
const struct ia_css_frame_info *out_infos[IA_CSS_BINARY_MAX_OUTPUT_PORTS] = {NULL}; const struct ia_css_frame_info *out_infos[IA_CSS_BINARY_MAX_OUTPUT_PORTS] = {NULL};
if (args->out_frame[0]) if (args->out_frame[0])
...@@ -1133,8 +1130,7 @@ sp_init_stage(struct ia_css_pipeline_stage *stage, ...@@ -1133,8 +1130,7 @@ sp_init_stage(struct ia_css_pipeline_stage *stage,
binary_name = IA_CSS_EXT_ISP_PROG_NAME(firmware); binary_name = IA_CSS_EXT_ISP_PROG_NAME(firmware);
blob_info = &firmware->blob; blob_info = &firmware->blob;
mem_if = (struct ia_css_isp_param_css_segments *)&firmware->mem_initializers; mem_if = (struct ia_css_isp_param_css_segments *)&firmware->mem_initializers;
} else } else {
{
/* SP stage */ /* SP stage */
assert(stage->sp_func != IA_CSS_PIPELINE_NO_FUNC); assert(stage->sp_func != IA_CSS_PIPELINE_NO_FUNC);
/* binary and blob_info are now NULL. /* binary and blob_info are now NULL.
...@@ -1205,7 +1201,8 @@ sh_css_sp_init_pipeline(struct ia_css_pipeline *me, ...@@ -1205,7 +1201,8 @@ sh_css_sp_init_pipeline(struct ia_css_pipeline *me,
*internal_frame_origin_bqs_on_sctbl, /* Origin of internal frame *internal_frame_origin_bqs_on_sctbl, /* Origin of internal frame
positioned on shading table at shading correction in ISP. */ positioned on shading table at shading correction in ISP. */
const struct ia_css_isp_parameters *params const struct ia_css_isp_parameters *params
) { )
{
/* Get first stage */ /* Get first stage */
struct ia_css_pipeline_stage *stage = NULL; struct ia_css_pipeline_stage *stage = NULL;
struct ia_css_binary *first_binary = NULL; struct ia_css_binary *first_binary = NULL;
...@@ -1223,17 +1220,14 @@ sh_css_sp_init_pipeline(struct ia_css_pipeline *me, ...@@ -1223,17 +1220,14 @@ sh_css_sp_init_pipeline(struct ia_css_pipeline *me,
first_binary = me->stages->binary; first_binary = me->stages->binary;
if (input_mode == IA_CSS_INPUT_MODE_SENSOR || if (input_mode == IA_CSS_INPUT_MODE_SENSOR ||
input_mode == IA_CSS_INPUT_MODE_BUFFERED_SENSOR) input_mode == IA_CSS_INPUT_MODE_BUFFERED_SENSOR) {
{
assert(port_id < N_MIPI_PORT_ID); assert(port_id < N_MIPI_PORT_ID);
if (port_id >= N_MIPI_PORT_ID) /* should not happen but KW does not know */ if (port_id >= N_MIPI_PORT_ID) /* should not happen but KW does not know */
return; /* we should be able to return an error */ return; /* we should be able to return an error */
if_config_index = (uint8_t)(port_id - MIPI_PORT0_ID); if_config_index = (uint8_t)(port_id - MIPI_PORT0_ID);
} else if (input_mode == IA_CSS_INPUT_MODE_MEMORY) } else if (input_mode == IA_CSS_INPUT_MODE_MEMORY) {
{
if_config_index = SH_CSS_IF_CONFIG_NOT_NEEDED; if_config_index = SH_CSS_IF_CONFIG_NOT_NEEDED;
} else } else {
{
if_config_index = 0x0; if_config_index = 0x0;
} }
...@@ -1241,15 +1235,13 @@ sh_css_sp_init_pipeline(struct ia_css_pipeline *me, ...@@ -1241,15 +1235,13 @@ sh_css_sp_init_pipeline(struct ia_css_pipeline *me,
memset(&sh_css_sp_group.pipe[thread_id], 0, sizeof(struct sh_css_sp_pipeline)); memset(&sh_css_sp_group.pipe[thread_id], 0, sizeof(struct sh_css_sp_pipeline));
/* Count stages */ /* Count stages */
for (stage = me->stages, num = 0; stage; stage = stage->next, num++) for (stage = me->stages, num = 0; stage; stage = stage->next, num++) {
{
stage->stage_num = num; stage->stage_num = num;
ia_css_debug_pipe_graph_dump_stage(stage, id); ia_css_debug_pipe_graph_dump_stage(stage, id);
} }
me->num_stages = num; me->num_stages = num;
if (first_binary) if (first_binary) {
{
/* Init pipeline data */ /* Init pipeline data */
sh_css_sp_init_group(two_ppc, first_binary->input_format, sh_css_sp_init_group(two_ppc, first_binary->input_format,
offline, if_config_index); offline, if_config_index);
...@@ -1277,8 +1269,7 @@ sh_css_sp_init_pipeline(struct ia_css_pipeline *me, ...@@ -1277,8 +1269,7 @@ sh_css_sp_init_pipeline(struct ia_css_pipeline *me,
/* TODO: next indicates from which queues parameters need to be /* TODO: next indicates from which queues parameters need to be
sampled, needs checking/improvement */ sampled, needs checking/improvement */
if (ia_css_pipeline_uses_params(me)) if (ia_css_pipeline_uses_params(me)) {
{
sh_css_sp_group.pipe[thread_id].pipe_config = sh_css_sp_group.pipe[thread_id].pipe_config =
SH_CSS_PIPE_CONFIG_SAMPLE_PARAMS << thread_id; SH_CSS_PIPE_CONFIG_SAMPLE_PARAMS << thread_id;
} }
...@@ -1292,15 +1283,13 @@ sh_css_sp_init_pipeline(struct ia_css_pipeline *me, ...@@ -1292,15 +1283,13 @@ sh_css_sp_init_pipeline(struct ia_css_pipeline *me,
pipe = find_pipe_by_num(pipe_num); pipe = find_pipe_by_num(pipe_num);
assert(pipe); assert(pipe);
if (!pipe) if (!pipe) {
{
return; return;
} }
sh_css_sp_group.pipe[thread_id].scaler_pp_lut = sh_css_pipe_get_pp_gdc_lut(pipe); sh_css_sp_group.pipe[thread_id].scaler_pp_lut = sh_css_pipe_get_pp_gdc_lut(pipe);
#if defined(SH_CSS_ENABLE_METADATA) #if defined(SH_CSS_ENABLE_METADATA)
if (md_info && md_info->size > 0) if (md_info && md_info->size > 0) {
{
sh_css_sp_group.pipe[thread_id].metadata.width = md_info->resolution.width; sh_css_sp_group.pipe[thread_id].metadata.width = md_info->resolution.width;
sh_css_sp_group.pipe[thread_id].metadata.height = md_info->resolution.height; sh_css_sp_group.pipe[thread_id].metadata.height = md_info->resolution.height;
sh_css_sp_group.pipe[thread_id].metadata.stride = md_info->stride; sh_css_sp_group.pipe[thread_id].metadata.stride = md_info->stride;
...@@ -1316,8 +1305,7 @@ sh_css_sp_init_pipeline(struct ia_css_pipeline *me, ...@@ -1316,8 +1305,7 @@ sh_css_sp_init_pipeline(struct ia_css_pipeline *me,
#if defined(SH_CSS_ENABLE_PER_FRAME_PARAMS) #if defined(SH_CSS_ENABLE_PER_FRAME_PARAMS)
sh_css_sp_group.pipe[thread_id].output_frame_queue_id = (uint32_t)SH_CSS_INVALID_QUEUE_ID; sh_css_sp_group.pipe[thread_id].output_frame_queue_id = (uint32_t)SH_CSS_INVALID_QUEUE_ID;
if (pipe_id != IA_CSS_PIPE_ID_COPY) if (pipe_id != IA_CSS_PIPE_ID_COPY) {
{
ia_css_query_internal_queue_id(IA_CSS_BUFFER_TYPE_OUTPUT_FRAME, thread_id, ia_css_query_internal_queue_id(IA_CSS_BUFFER_TYPE_OUTPUT_FRAME, thread_id,
(enum sh_css_queue_id *)( (enum sh_css_queue_id *)(
&sh_css_sp_group.pipe[thread_id].output_frame_queue_id)); &sh_css_sp_group.pipe[thread_id].output_frame_queue_id));
...@@ -1329,14 +1317,12 @@ sh_css_sp_init_pipeline(struct ia_css_pipeline *me, ...@@ -1329,14 +1317,12 @@ sh_css_sp_init_pipeline(struct ia_css_pipeline *me,
* the parameters are passed to the isp for the shading table centering. * the parameters are passed to the isp for the shading table centering.
*/ */
if (internal_frame_origin_bqs_on_sctbl && if (internal_frame_origin_bqs_on_sctbl &&
params && params->shading_settings.enable_shading_table_conversion == 0) params && params->shading_settings.enable_shading_table_conversion == 0) {
{
sh_css_sp_group.pipe[thread_id].shading.internal_frame_origin_x_bqs_on_sctbl sh_css_sp_group.pipe[thread_id].shading.internal_frame_origin_x_bqs_on_sctbl
= (uint32_t)internal_frame_origin_bqs_on_sctbl->x; = (uint32_t)internal_frame_origin_bqs_on_sctbl->x;
sh_css_sp_group.pipe[thread_id].shading.internal_frame_origin_y_bqs_on_sctbl sh_css_sp_group.pipe[thread_id].shading.internal_frame_origin_y_bqs_on_sctbl
= (uint32_t)internal_frame_origin_bqs_on_sctbl->y; = (uint32_t)internal_frame_origin_bqs_on_sctbl->y;
} else } else {
{
sh_css_sp_group.pipe[thread_id].shading.internal_frame_origin_x_bqs_on_sctbl = sh_css_sp_group.pipe[thread_id].shading.internal_frame_origin_x_bqs_on_sctbl =
0; 0;
sh_css_sp_group.pipe[thread_id].shading.internal_frame_origin_y_bqs_on_sctbl = sh_css_sp_group.pipe[thread_id].shading.internal_frame_origin_y_bqs_on_sctbl =
...@@ -1347,8 +1333,7 @@ sh_css_sp_init_pipeline(struct ia_css_pipeline *me, ...@@ -1347,8 +1333,7 @@ sh_css_sp_init_pipeline(struct ia_css_pipeline *me,
IA_CSS_LOG("pipe_id %d port_config %08x", IA_CSS_LOG("pipe_id %d port_config %08x",
pipe_id, sh_css_sp_group.pipe[thread_id].inout_port_config); pipe_id, sh_css_sp_group.pipe[thread_id].inout_port_config);
for (stage = me->stages, num = 0; stage; stage = stage->next, num++) for (stage = me->stages, num = 0; stage; stage = stage->next, num++) {
{
sh_css_sp_group.pipe[thread_id].num_stages++; sh_css_sp_group.pipe[thread_id].num_stages++;
if (is_sp_stage(stage)) { if (is_sp_stage(stage)) {
sp_init_sp_stage(stage, pipe_num, two_ppc, sp_init_sp_stage(stage, pipe_num, two_ppc,
...@@ -1400,7 +1385,8 @@ bool sh_css_write_host2sp_command(enum host2sp_commands host2sp_command) ...@@ -1400,7 +1385,8 @@ bool sh_css_write_host2sp_command(enum host2sp_commands host2sp_command)
} }
enum host2sp_commands enum host2sp_commands
sh_css_read_host2sp_command(void) { sh_css_read_host2sp_command(void)
{
unsigned int HIVE_ADDR_host_sp_com = sh_css_sp_fw.info.sp.host_sp_com; unsigned int HIVE_ADDR_host_sp_com = sh_css_sp_fw.info.sp.host_sp_com;
unsigned int offset = (unsigned int)offsetof(struct host_sp_communication, host2sp_command) unsigned int offset = (unsigned int)offsetof(struct host_sp_communication, host2sp_command)
/ sizeof(int); / sizeof(int);
...@@ -1586,7 +1572,8 @@ sh_css_event_init_irq_mask(void) ...@@ -1586,7 +1572,8 @@ sh_css_event_init_irq_mask(void)
int int
ia_css_pipe_set_irq_mask(struct ia_css_pipe *pipe, ia_css_pipe_set_irq_mask(struct ia_css_pipe *pipe,
unsigned int or_mask, unsigned int or_mask,
unsigned int and_mask) { unsigned int and_mask)
{
unsigned int HIVE_ADDR_host_sp_com = sh_css_sp_fw.info.sp.host_sp_com; unsigned int HIVE_ADDR_host_sp_com = sh_css_sp_fw.info.sp.host_sp_com;
unsigned int offset; unsigned int offset;
struct sh_css_event_irq_mask event_irq_mask; struct sh_css_event_irq_mask event_irq_mask;
...@@ -1625,7 +1612,8 @@ ia_css_pipe_set_irq_mask(struct ia_css_pipe *pipe, ...@@ -1625,7 +1612,8 @@ ia_css_pipe_set_irq_mask(struct ia_css_pipe *pipe,
int int
ia_css_event_get_irq_mask(const struct ia_css_pipe *pipe, ia_css_event_get_irq_mask(const struct ia_css_pipe *pipe,
unsigned int *or_mask, unsigned int *or_mask,
unsigned int *and_mask) { unsigned int *and_mask)
{
unsigned int HIVE_ADDR_host_sp_com = sh_css_sp_fw.info.sp.host_sp_com; unsigned int HIVE_ADDR_host_sp_com = sh_css_sp_fw.info.sp.host_sp_com;
unsigned int offset; unsigned int offset;
struct sh_css_event_irq_mask event_irq_mask; struct sh_css_event_irq_mask event_irq_mask;
......
...@@ -21,7 +21,8 @@ ...@@ -21,7 +21,8 @@
#include "sh_css_firmware.h" #include "sh_css_firmware.h"
int int
ia_css_get_version(char *version, int max_size) { ia_css_get_version(char *version, int max_size)
{
char *css_version; char *css_version;
if (!IS_ISP2401) if (!IS_ISP2401)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment