diff options
author | Mauro Carvalho Chehab <mchehab@s-opensource.com> | 2017-11-14 10:47:01 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@s-opensource.com> | 2017-11-14 10:47:01 -0500 |
commit | f2ecc3d0787e05d9145722feed01d4a11ab6bec1 (patch) | |
tree | 8b952af40dad67d728f1e421efc640907c523982 /drivers/staging/media/atomisp | |
parent | b1cb7372fa822af6c06c8045963571d13ad6348b (diff) | |
parent | c14dd9d5f8beda9d8c621683b4e7d6cb5cd3cda7 (diff) |
Merge tag 'staging-4.15-rc1' into v4l_for_linus
There are some conflicts between staging and media trees,
as reported by Stephen Rothwell <sfr@canb.auug.org.au>.
So, merge from staging.
* tag 'staging-4.15-rc1': (775 commits)
staging: lustre: add SPDX identifiers to all lustre files
staging: greybus: Remove redundant license text
staging: greybus: add SPDX identifiers to all greybus driver files
staging: ccree: simplify ioread/iowrite
staging: ccree: simplify registers access
staging: ccree: simplify error handling logic
staging: ccree: remove dead code
staging: ccree: handle limiting of DMA masks
staging: ccree: copy IV to DMAable memory
staging: fbtft: remove redundant initialization of buf
staging: sm750fb: Fix parameter mistake in poke32
staging: wilc1000: Fix bssid buffer offset in Txq
staging: fbtft: fb_ssd1331: fix mirrored display
staging: android: Fix checkpatch.pl error
staging: greybus: loopback: convert loopback to use generic async operations
staging: greybus: operation: add private data with get/set accessors
staging: greybus: loopback: Fix iteration count on async path
staging: greybus: loopback: Hold per-connection mutex across operations
staging: greybus/loopback: use ktime_get() for time intervals
staging: fsl-dpaa2/eth: Extra headroom in RX buffers
...
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Diffstat (limited to 'drivers/staging/media/atomisp')
3 files changed, 24 insertions, 13 deletions
diff --git a/drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_css20.c b/drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_css20.c index c32240262f57..6e87aa5aab4c 100644 --- a/drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_css20.c +++ b/drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_css20.c @@ -151,7 +151,7 @@ static void atomisp_css2_hw_store(hrt_address addr, const void *from, uint32_t n) { unsigned long flags; - unsigned i; + unsigned int i; unsigned int _to = (unsigned int)addr; const char *_from = (const char *)from; @@ -164,7 +164,7 @@ static void atomisp_css2_hw_store(hrt_address addr, static void atomisp_css2_hw_load(hrt_address addr, void *to, uint32_t n) { unsigned long flags; - unsigned i; + unsigned int i; char *_to = (char *)to; unsigned int _from = (unsigned int)addr; @@ -228,9 +228,11 @@ static void __dump_pipe_config(struct atomisp_sub_device *asd, unsigned int pipe_id) { struct atomisp_device *isp = asd->isp; + if (stream_env->pipes[pipe_id]) { struct ia_css_pipe_config *p_config; struct ia_css_pipe_extra_config *pe_config; + p_config = &stream_env->pipe_configs[pipe_id]; pe_config = &stream_env->pipe_extra_configs[pipe_id]; dev_dbg(isp->dev, "dumping pipe[%d] config:\n", pipe_id); @@ -503,6 +505,7 @@ static int __destroy_stream(struct atomisp_sub_device *asd, static int __destroy_streams(struct atomisp_sub_device *asd, bool force) { int ret, i; + for (i = 0; i < ATOMISP_INPUT_STREAM_NUM; i++) { ret = __destroy_stream(asd, &asd->stream_env[i], force); if (ret) @@ -569,6 +572,7 @@ static int __destroy_stream_pipes(struct atomisp_sub_device *asd, struct atomisp_device *isp = asd->isp; int ret = 0; int i; + for (i = 0; i < IA_CSS_PIPE_ID_NUM; i++) { if (!stream_env->pipes[i] || !(force || stream_env->update_pipe[i])) @@ -888,12 +892,12 @@ static inline int __set_css_print_env(struct atomisp_device *isp, int opt) { int ret = 0; - if (0 == opt) + if (opt == 0) isp->css_env.isp_css_env.print_env.debug_print = NULL; - else if (1 == opt) + else if (opt == 1) isp->css_env.isp_css_env.print_env.debug_print = atomisp_css2_dbg_ftrace_print; - else if (2 == opt) + else if (opt == 2) isp->css_env.isp_css_env.print_env.debug_print = atomisp_css2_dbg_print; else @@ -1047,6 +1051,7 @@ int atomisp_css_irq_enable(struct atomisp_device *isp, void atomisp_css_init_struct(struct atomisp_sub_device *asd) { int i, j; + for (i = 0; i < ATOMISP_INPUT_STREAM_NUM; i++) { asd->stream_env[i].stream = NULL; for (j = 0; j < IA_CSS_PIPE_MODE_NUM; j++) { @@ -1185,6 +1190,7 @@ int atomisp_css_start(struct atomisp_sub_device *asd, struct atomisp_device *isp = asd->isp; bool sp_is_started = false; int ret = 0, i = 0; + if (in_reset) { if (__destroy_streams(asd, true)) dev_warn(isp->dev, "destroy stream failed.\n"); @@ -1972,6 +1978,7 @@ void atomisp_css_enable_raw_binning(struct atomisp_sub_device *asd, void atomisp_css_enable_dz(struct atomisp_sub_device *asd, bool enable) { int i; + for (i = 0; i < IA_CSS_PIPE_ID_NUM; i++) asd->stream_env[ATOMISP_INPUT_STREAM_GENERAL] .pipe_configs[i].enable_dz = enable; @@ -1998,6 +2005,7 @@ void atomisp_css_input_set_mode(struct atomisp_sub_device *asd, int i; struct atomisp_device *isp = asd->isp; unsigned int size_mem_words; + for (i = 0; i < ATOMISP_INPUT_STREAM_NUM; i++) asd->stream_env[i].stream_config.mode = mode; @@ -2271,6 +2279,7 @@ int atomisp_css_stop(struct atomisp_sub_device *asd, if (!in_reset) { struct atomisp_stream_env *stream_env; int i, j; + for (i = 0; i < ATOMISP_INPUT_STREAM_NUM; i++) { stream_env = &asd->stream_env[i]; for (j = 0; j < IA_CSS_PIPE_ID_NUM; j++) { @@ -2797,6 +2806,7 @@ static void __configure_video_vf_output(struct atomisp_sub_device *asd, struct atomisp_stream_env *stream_env = &asd->stream_env[ATOMISP_INPUT_STREAM_GENERAL]; struct ia_css_frame_info *css_output_info; + stream_env->pipe_configs[pipe_id].mode = __pipe_id_to_pipe_mode(asd, pipe_id); stream_env->update_pipe[pipe_id] = true; @@ -4460,7 +4470,8 @@ int atomisp_css_load_acc_binary(struct atomisp_sub_device *asd, static struct atomisp_sub_device *__get_atomisp_subdev( struct ia_css_pipe *css_pipe, struct atomisp_device *isp, - enum atomisp_input_stream_id *stream_id) { + enum atomisp_input_stream_id *stream_id) +{ int i, j, k; struct atomisp_sub_device *asd; struct atomisp_stream_env *stream_env; @@ -4655,7 +4666,7 @@ int atomisp_css_dump_sp_raw_copy_linecount(bool reduced) int atomisp_css_dump_blob_infor(void) { struct ia_css_blob_descr *bd = sh_css_blob_info; - unsigned i, nm = sh_css_num_binaries; + unsigned int i, nm = sh_css_num_binaries; if (nm == 0) return -EPERM; @@ -4691,7 +4702,7 @@ int atomisp_set_css_dbgfunc(struct atomisp_device *isp, int opt) int ret; ret = __set_css_print_env(isp, opt); - if (0 == ret) + if (ret == 0) dbg_func = opt; return ret; diff --git a/drivers/staging/media/atomisp/pci/atomisp2/css2400/sh_css_firmware.c b/drivers/staging/media/atomisp/pci/atomisp2/css2400/sh_css_firmware.c index 383d236c010c..8158ea40d069 100644 --- a/drivers/staging/media/atomisp/pci/atomisp2/css2400/sh_css_firmware.c +++ b/drivers/staging/media/atomisp/pci/atomisp2/css2400/sh_css_firmware.c @@ -146,7 +146,7 @@ sh_css_load_blob_info(const char *fw, const struct ia_css_fw_info *bi, struct ia size_t statestruct_size = sizeof(struct ia_css_state_memory_offsets); char *parambuf = kmalloc(paramstruct_size + configstruct_size + statestruct_size, - GFP_KERNEL); + GFP_KERNEL); if (!parambuf) return IA_CSS_ERR_CANNOT_ALLOCATE_MEMORY; diff --git a/drivers/staging/media/atomisp/pci/atomisp2/hmm/hmm_bo.c b/drivers/staging/media/atomisp/pci/atomisp2/hmm/hmm_bo.c index 9e957514108e..6e2dce7a5a2d 100644 --- a/drivers/staging/media/atomisp/pci/atomisp2/hmm/hmm_bo.c +++ b/drivers/staging/media/atomisp/pci/atomisp2/hmm/hmm_bo.c @@ -721,7 +721,7 @@ static int alloc_private_pages(struct hmm_buffer_object *bo, pgnr = bo->pgnr; - bo->page_obj = kmalloc(sizeof(struct hmm_page_object) * pgnr, + bo->page_obj = kmalloc_array(pgnr, sizeof(struct hmm_page_object), GFP_KERNEL); if (unlikely(!bo->page_obj)) return -ENOMEM; @@ -984,11 +984,11 @@ static int alloc_user_pages(struct hmm_buffer_object *bo, struct vm_area_struct *vma; struct page **pages; - pages = kmalloc(sizeof(struct page *) * bo->pgnr, GFP_KERNEL); + pages = kmalloc_array(bo->pgnr, sizeof(struct page *), GFP_KERNEL); if (unlikely(!pages)) return -ENOMEM; - bo->page_obj = kmalloc(sizeof(struct hmm_page_object) * bo->pgnr, + bo->page_obj = kmalloc_array(bo->pgnr, sizeof(struct hmm_page_object), GFP_KERNEL); if (unlikely(!bo->page_obj)) { kfree(pages); @@ -1350,7 +1350,7 @@ void *hmm_bo_vmap(struct hmm_buffer_object *bo, bool cached) bo->status &= ~(HMM_BO_VMAPED | HMM_BO_VMAPED_CACHED); } - pages = kmalloc(sizeof(*pages) * bo->pgnr, GFP_KERNEL); + pages = kmalloc_array(bo->pgnr, sizeof(*pages), GFP_KERNEL); if (unlikely(!pages)) { mutex_unlock(&bo->mutex); return NULL; |