Lines Matching defs:isp

69 	struct atomisp_device *isp = dev_get_drvdata(atomisp_dev);
73 writeb(data, isp->base + (addr & 0x003FFFFF));
79 struct atomisp_device *isp = dev_get_drvdata(atomisp_dev);
83 writew(data, isp->base + (addr & 0x003FFFFF));
89 struct atomisp_device *isp = dev_get_drvdata(atomisp_dev);
93 writel(data, isp->base + (addr & 0x003FFFFF));
99 struct atomisp_device *isp = dev_get_drvdata(atomisp_dev);
104 ret = readb(isp->base + (addr & 0x003FFFFF));
111 struct atomisp_device *isp = dev_get_drvdata(atomisp_dev);
116 ret = readw(isp->base + (addr & 0x003FFFFF));
123 struct atomisp_device *isp = dev_get_drvdata(atomisp_dev);
128 ret = readl(isp->base + (addr & 0x003FFFFF));
135 struct atomisp_device *isp = dev_get_drvdata(atomisp_dev);
142 writeb(*(s8 *)from, isp->base + addr + i);
149 struct atomisp_device *isp = dev_get_drvdata(atomisp_dev);
156 *(s8 *)to = readb(isp->base + addr + i);
187 struct atomisp_device *isp = asd->isp;
195 dev_dbg(isp->dev, "dumping pipe[%d] config:\n", pipe_id);
196 dev_dbg(isp->dev,
198 dev_dbg(isp->dev,
202 dev_dbg(isp->dev,
206 dev_dbg(isp->dev,
210 dev_dbg(isp->dev,
213 dev_dbg(isp->dev,
217 dev_dbg(isp->dev,
221 dev_dbg(isp->dev,
225 dev_dbg(isp->dev,
228 dev_dbg(isp->dev,
231 dev_dbg(isp->dev,
234 dev_dbg(isp->dev,
237 dev_dbg(isp->dev,
240 dev_dbg(isp->dev,
242 dev_dbg(isp->dev,
245 dev_dbg(isp->dev,
248 dev_dbg(isp->dev,
251 dev_dbg(isp->dev,
254 dev_dbg(isp->dev,
257 dev_dbg(isp->dev,
260 dev_dbg(isp->dev,
269 struct atomisp_device *isp = asd->isp;
283 dev_dbg(isp->dev, "stream_config.mode=%d.\n", s_config->mode);
287 dev_dbg(isp->dev, "stream_config.source.port.port=%d.\n",
289 dev_dbg(isp->dev, "stream_config.source.port.num_lanes=%d.\n",
291 dev_dbg(isp->dev, "stream_config.source.port.timeout=%d.\n",
293 dev_dbg(isp->dev, "stream_config.source.port.rxcount=0x%x.\n",
295 dev_dbg(isp->dev, "stream_config.source.port.compression.type=%d.\n",
297 dev_dbg(isp->dev,
301 dev_dbg(isp->dev,
306 dev_dbg(isp->dev, "stream_config.source.prbs.id=%d.\n",
308 dev_dbg(isp->dev, "stream_config.source.prbs.h_blank=%d.\n",
310 dev_dbg(isp->dev, "stream_config.source.prbs.v_blank=%d.\n",
312 dev_dbg(isp->dev, "stream_config.source.prbs.seed=%d.\n",
314 dev_dbg(isp->dev, "stream_config.source.prbs.seed1=%d.\n",
319 dev_dbg(isp->dev, "stream_configisys_config[%d].input_res w=%d, h=%d.\n",
324 dev_dbg(isp->dev, "stream_configisys_config[%d].linked_isys_stream_id=%d\n",
328 dev_dbg(isp->dev, "stream_configisys_config[%d].format=%d\n",
332 dev_dbg(isp->dev, "stream_configisys_config[%d].valid=%d.\n",
337 dev_dbg(isp->dev, "stream_config.input_config.input_res w=%d, h=%d.\n",
341 dev_dbg(isp->dev, "stream_config.input_config.effective_res w=%d, h=%d.\n",
345 dev_dbg(isp->dev, "stream_config.input_config.format=%d\n",
348 dev_dbg(isp->dev, "stream_config.input_config.bayer_order=%d.\n",
351 dev_dbg(isp->dev, "stream_config.pixels_per_clock=%d.\n",
353 dev_dbg(isp->dev, "stream_config.online=%d.\n", s_config->online);
354 dev_dbg(isp->dev, "stream_config.continuous=%d.\n",
356 dev_dbg(isp->dev, "stream_config.disable_cont_viewfinder=%d.\n",
358 dev_dbg(isp->dev, "stream_config.channel_id=%d.\n",
360 dev_dbg(isp->dev, "stream_config.init_num_cont_raw_buf=%d.\n",
362 dev_dbg(isp->dev, "stream_config.target_num_cont_raw_buf=%d.\n",
364 dev_dbg(isp->dev, "stream_config.left_padding=%d.\n",
366 dev_dbg(isp->dev, "stream_config.sensor_binning_factor=%d.\n",
368 dev_dbg(isp->dev, "stream_config.pixels_per_clock=%d.\n",
370 dev_dbg(isp->dev, "stream_config.pack_raw_pixels=%d.\n",
372 dev_dbg(isp->dev, "stream_config.flash_gpio_pin=%d.\n",
374 dev_dbg(isp->dev, "stream_config.mipi_buffer_config.size_mem_words=%d.\n",
376 dev_dbg(isp->dev, "stream_config.mipi_buffer_config.contiguous=%d.\n",
378 dev_dbg(isp->dev, "stream_config.metadata_config.data_type=%d.\n",
380 dev_dbg(isp->dev, "stream_config.metadata_config.resolution w=%d, h=%d.\n",
388 struct atomisp_device *isp = asd->isp;
396 dev_err(isp->dev, "stop stream failed.\n");
407 dev_warn(isp->dev, "stop stream timeout.\n");
418 dev_err(isp->dev, "destroy stream failed.\n");
494 struct atomisp_device *isp = asd->isp;
503 dev_err(isp->dev,
515 struct atomisp_device *isp = asd->isp;
521 dev_err(isp->dev,
538 dev_warn(asd->isp->dev, "destroy stream failed.\n");
541 dev_warn(asd->isp->dev, "destroy pipe failed.\n");
549 struct atomisp_device *isp = asd->isp;
552 dev_err(isp->dev,
561 /* apply isp 2.2 specific config for baytrail*/
648 struct atomisp_device *isp = asd->isp;
676 dev_err(isp->dev, "create pipe[%d] error.\n", pipe_id);
714 dev_err(asd->isp->dev, "create pipe failed %d.\n", ret);
720 dev_warn(asd->isp->dev, "create stream failed %d.\n", ret);
734 int atomisp_css_init(struct atomisp_device *isp)
740 ret = hmm_get_mmu_base_addr(isp->dev, &mmu_base_addr);
745 err = ia_css_init(isp->dev, &isp->css_env.isp_css_env,
748 dev_err(isp->dev, "css init failed --- bad firmware?\n");
753 isp->css_initialized = true;
754 dev_dbg(isp->dev, "sh_css_init success\n");
759 static inline int __set_css_print_env(struct atomisp_device *isp, int opt)
764 isp->css_env.isp_css_env.print_env.debug_print = NULL;
766 isp->css_env.isp_css_env.print_env.debug_print = atomisp_vprintk;
773 int atomisp_css_load_firmware(struct atomisp_device *isp)
778 isp->css_env.isp_css_fw.data = (void *)isp->firmware->data;
779 isp->css_env.isp_css_fw.bytes = isp->firmware->size;
781 isp->css_env.isp_css_env.hw_access_env.store_8 =
783 isp->css_env.isp_css_env.hw_access_env.store_16 =
785 isp->css_env.isp_css_env.hw_access_env.store_32 =
788 isp->css_env.isp_css_env.hw_access_env.load_8 = atomisp_css2_hw_load_8;
789 isp->css_env.isp_css_env.hw_access_env.load_16 =
791 isp->css_env.isp_css_env.hw_access_env.load_32 =
794 isp->css_env.isp_css_env.hw_access_env.load = atomisp_css2_hw_load;
795 isp->css_env.isp_css_env.hw_access_env.store = atomisp_css2_hw_store;
797 __set_css_print_env(isp, dbg_func);
799 isp->css_env.isp_css_env.print_env.error_print = atomisp_vprintk;
801 /* load isp fw into ISP memory */
802 err = ia_css_load_firmware(isp->dev, &isp->css_env.isp_css_env,
803 &isp->css_env.isp_css_fw);
805 dev_err(isp->dev, "css load fw failed.\n");
812 void atomisp_css_uninit(struct atomisp_device *isp)
814 isp->css_initialized = false;
818 int atomisp_css_irq_translate(struct atomisp_device *isp,
825 dev_warn(isp->dev,
850 int atomisp_css_irq_enable(struct atomisp_device *isp,
853 dev_dbg(isp->dev, "%s: css irq info 0x%08x: %s (%d).\n",
857 dev_warn(isp->dev, "%s:Invalid irq info: 0x%08x when %s.\n",
912 struct atomisp_device *isp = asd->isp;
918 dev_err(isp->dev, "failed to q meta data buffer\n");
932 struct atomisp_device *isp = asd->isp;
939 dev_dbg(isp->dev, "failed to q s3a stat buffer\n");
953 struct atomisp_device *isp = asd->isp;
960 dev_dbg(isp->dev, "failed to q dvs stat buffer\n");
969 struct atomisp_device *isp = asd->isp;
974 dev_err(isp->dev, "CSS HW not idle before starting SP\n");
977 dev_err(isp->dev, "start sp error.\n");
988 dev_err(isp->dev, "stream[%d] start error.\n", i);
993 dev_dbg(isp->dev, "stream[%d] started.\n", i);
1026 dev_warn(asd->isp->dev,
1048 dev_dbg(asd->isp->dev,
1057 dev_warn(asd->isp->dev, "%s: ia_css_stream_set_isp_config_on_pipe failed %d\n",
1083 struct atomisp_device *isp = asd->isp;
1090 dev_err(isp->dev,
1104 struct atomisp_device *isp = asd->isp;
1114 dev_err(isp->dev, "3a buf allocation failed.\n");
1129 dev_err(isp->dev, "dvs buf allocation failed.\n");
1149 dev_err(isp->dev, "metadata buf allocation failed.\n");
1278 struct atomisp_device *isp = asd->isp;
1288 dev_err(isp->dev, "ia_css_pipe_get_info failed\n");
1302 dev_dbg(isp->dev, "css pipe %d enabled s3a grid replaced by: %d.\n",
1315 dev_dbg(isp->dev,
1358 dev_dbg(asd->isp->dev, "%s: dvs_grid not enabled.\n", __func__);
1692 dev_warn(asd->isp->dev,
1857 struct atomisp_device *isp = asd->isp;
1859 isp->inputs[asd->input_curr].camera);
1892 struct atomisp_device *isp = asd->isp;
1906 /* isp binary 2.2 specific setting*/
1913 dev_dbg(isp->dev, "configuring pipe[%d] output info w=%d.h=%d.f=%d.\n",
1925 struct atomisp_device *isp = asd->isp;
1947 if ((asd->isp->media_dev.hw_revision <
1950 dev_warn(asd->isp->dev,
1965 dev_dbg(isp->dev, "configuring pipe[%d]capture pp input w=%d.h=%d.\n",
1977 struct atomisp_device *isp = asd->isp;
2093 dev_dbg(isp->dev, "configuring pipe[%d]preview pp input w=%d.h=%d.\n",
2105 struct atomisp_device *isp = asd->isp;
2193 dev_dbg(isp->dev, "configuring pipe[%d]video pp input w=%d.h=%d.\n",
2203 struct atomisp_device *isp = asd->isp;
2215 dev_dbg(isp->dev,
2226 struct atomisp_device *isp = asd->isp;
2238 dev_err(isp->dev, "can't get info from pipe\n");
2245 dev_dbg(isp->dev, "getting vf frame info.\n");
2249 dev_dbg(isp->dev, "getting second vf frame info.\n");
2253 dev_dbg(isp->dev, "getting main frame info.\n");
2257 dev_dbg(isp->dev, "getting second main frame info.\n");
2262 dev_dbg(isp->dev, "getting raw frame info.\n");
2265 dev_dbg(isp->dev, "get frame info: w=%d, h=%d, num_invalid_frames %d.\n",
2289 dev_warn(asd->isp->dev, "cannot determine pipe-index return default preview pipe\n");
2299 struct atomisp_device *isp = asd->isp;
2307 dev_dbg(isp->dev, "ia_css_pipe_get_info FAILED");
2474 dev_dbg(asd->isp->dev, "%s num_capture:%d skip:%d offset:%d\n",
2555 dev_warn(asd->isp->dev, "Bypass the invalid ctc_table.\n");
2589 dev_err(asd->isp->dev, "dvs grid not available!\n");
2594 dev_err(asd->isp->dev, "dvs grid mismatch!\n");
2599 dev_err(asd->isp->dev, "dvs not enabled!\n");
2678 struct atomisp_device *isp = asd->isp;
2682 dev_dbg(isp->dev, "same zoom scale. skipped.\n");
2707 struct atomisp_device *isp = asd->isp;
2710 dev_err(isp->dev, "%s called after streamoff, skipping.\n",
2730 struct atomisp_device *isp = asd->isp;
2733 dev_err(isp->dev, "%s called after streamoff, skipping.\n",
2753 struct atomisp_device *isp = asd->isp;
2756 dev_err(isp->dev, "%s called after streamoff, skipping.\n",
2776 struct atomisp_device *isp = asd->isp;
2779 dev_err(isp->dev, "%s called after streamoff, skipping.\n",
2799 struct atomisp_device *isp = asd->isp;
2802 dev_err(isp->dev, "%s called after streamoff, skipping.\n",
2823 struct atomisp_device *isp = asd->isp;
2826 dev_err(isp->dev, "%s called after streamoff, skipping.\n",
2846 struct atomisp_device *isp = asd->isp;
2849 dev_err(isp->dev, "%s called after streamoff, skipping.\n",
2869 struct atomisp_device *isp = asd->isp;
2872 dev_err(isp->dev, "%s called after streamoff, skipping.\n",
2897 struct atomisp_device *isp = asd->isp;
2900 dev_err(isp->dev, "%s called after streamoff, skipping.\n",
2925 struct atomisp_device *isp = asd->isp;
2928 dev_err(isp->dev, "%s called after streamoff, skipping.\n",
2949 struct atomisp_device *isp = asd->isp;
2952 dev_err(isp->dev, "%s called after streamoff, skipping.\n",
2973 struct atomisp_device *isp = asd->isp;
2976 dev_err(isp->dev, "%s called after streamoff, skipping.\n",
2997 struct atomisp_device *isp = asd->isp;
3000 dev_err(isp->dev, "%s called after streamoff, skipping.\n",
3021 struct atomisp_device *isp = asd->isp;
3025 lockdep_assert_held(&isp->mutex);
3037 /* isp needs to be streaming to get DIS statistics */
3050 dev_err(isp->dev, "dis statistics is not valid.\n");
3140 struct atomisp_device *isp = asd->isp;
3143 dev_err(isp->dev,
3161 struct atomisp_device *isp,
3167 if (!isp->asd.streaming)
3171 stream_env = &isp->asd.stream_env[i];
3183 int atomisp_css_isr_thread(struct atomisp_device *isp)
3188 lockdep_assert_held(&isp->mutex);
3197 dev_err(isp->dev,
3203 queue_work(system_long_wq, &isp->assert_recovery_work);
3206 dev_warn(isp->dev, "%s: ISP reports warning, code is %d, exp_id %d\n",
3212 if (!atomisp_css_isr_get_stream_id(current_event.event.pipe, isp, &stream_id)) {
3214 dev_dbg(isp->dev,
3217 dev_warn(isp->dev, "%s:no subdev.event:%d",
3223 atomisp_css_temp_pipe_to_pipe_id(&isp->asd, &current_event);
3226 dev_dbg(isp->dev, "event: Output frame done");
3227 atomisp_buf_done(&isp->asd, 0, IA_CSS_BUFFER_TYPE_OUTPUT_FRAME,
3231 dev_dbg(isp->dev, "event: Second output frame done");
3232 atomisp_buf_done(&isp->asd, 0, IA_CSS_BUFFER_TYPE_SEC_OUTPUT_FRAME,
3236 dev_dbg(isp->dev, "event: 3A stats frame done");
3237 atomisp_buf_done(&isp->asd, 0,
3243 dev_dbg(isp->dev, "event: metadata frame done");
3244 atomisp_buf_done(&isp->asd, 0,
3250 dev_dbg(isp->dev, "event: VF output frame done");
3251 atomisp_buf_done(&isp->asd, 0,
3256 dev_dbg(isp->dev, "event: second VF output frame done");
3257 atomisp_buf_done(&isp->asd, 0,
3262 dev_dbg(isp->dev, "event: dis stats frame done");
3263 atomisp_buf_done(&isp->asd, 0,
3269 dev_dbg(isp->dev, "event: pipeline done");
3272 dev_warn(isp->dev, "unexpected event: acc stage done");
3275 dev_dbg(isp->dev, "unhandled css stored event: 0x%x\n",
3284 bool atomisp_css_valid_sof(struct atomisp_device *isp)
3290 if (!isp->asd.stream_env[i].stream)
3293 dev_dbg(isp->dev, "stream #%d: mode: %d\n",
3294 i, isp->asd.stream_env[i].stream_config.mode);
3295 if (isp->asd.stream_env[i].stream_config.mode == IA_CSS_INPUT_MODE_BUFFERED_SENSOR)
3328 int atomisp_css_dump_blob_infor(struct atomisp_device *isp)
3345 dev_dbg(isp->dev, "Num%2d type %s (%s), binary id is %2d, name is %s\n",
3348 fw_acc_type_name[bd[i].header.info.isp.type],
3349 bd[i].header.info.isp.sp.id,
3353 dev_dbg(isp->dev, "Num%2d type %s, name is %s\n",
3379 int atomisp_set_css_dbgfunc(struct atomisp_device *isp, int opt)
3383 ret = __set_css_print_env(isp, opt);