Lines Matching refs:vop

36 static inline void set_vop_mcu_rs(struct vop *vop, int v)  in set_vop_mcu_rs()  argument
38 if (dm_gpio_is_valid(&vop->mcu_rs_gpio)) in set_vop_mcu_rs()
39 dm_gpio_set_value(&vop->mcu_rs_gpio, v); in set_vop_mcu_rs()
41 VOP_CTRL_SET(vop, mcu_rs, v); in set_vop_mcu_rs()
150 static int rockchip_vop_init_gamma(struct vop *vop, struct display_state *state) in rockchip_vop_init_gamma() argument
196 VOP_CTRL_SET(vop, dsp_lut_en, 1); in rockchip_vop_init_gamma()
197 VOP_CTRL_SET(vop, update_gamma_lut, 1); in rockchip_vop_init_gamma()
202 static void vop_post_config(struct display_state *state, struct vop *vop) in vop_post_config() argument
224 VOP_CTRL_SET(vop, hpost_st_end, val); in vop_post_config()
229 VOP_CTRL_SET(vop, vpost_st_end, val); in vop_post_config()
232 VOP_CTRL_SET(vop, post_scl_factor, val); in vop_post_config()
235 VOP_CTRL_SET(vop, post_scl_ctrl, in vop_post_config()
243 VOP_CTRL_SET(vop, vpost_st_end_f1, val); in vop_post_config()
247 static void vop_mcu_bypass_mode_setup(struct display_state *state, struct vop *vop) in vop_mcu_bypass_mode_setup() argument
254 VOP_CTRL_SET(vop, mcu_frame_st, 0); in vop_mcu_bypass_mode_setup()
255 VOP_CTRL_SET(vop, mcu_clk_sel, 1); in vop_mcu_bypass_mode_setup()
256 VOP_CTRL_SET(vop, mcu_type, 1); in vop_mcu_bypass_mode_setup()
258 VOP_CTRL_SET(vop, mcu_hold_mode, 1); in vop_mcu_bypass_mode_setup()
259 VOP_CTRL_SET(vop, mcu_pix_total, 53); in vop_mcu_bypass_mode_setup()
260 VOP_CTRL_SET(vop, mcu_cs_pst, 6); in vop_mcu_bypass_mode_setup()
261 VOP_CTRL_SET(vop, mcu_cs_pend, 48); in vop_mcu_bypass_mode_setup()
262 VOP_CTRL_SET(vop, mcu_rw_pst, 12); in vop_mcu_bypass_mode_setup()
263 VOP_CTRL_SET(vop, mcu_rw_pend, 30); in vop_mcu_bypass_mode_setup()
266 static void vop_mcu_mode_setup(struct display_state *state, struct vop *vop) in vop_mcu_mode_setup() argument
275 VOP_CTRL_SET(vop, mcu_frame_st, 0); in vop_mcu_mode_setup()
276 VOP_CTRL_SET(vop, mcu_clk_sel, 1); in vop_mcu_mode_setup()
277 VOP_CTRL_SET(vop, mcu_type, 1); in vop_mcu_mode_setup()
279 VOP_CTRL_SET(vop, mcu_hold_mode, 1); in vop_mcu_mode_setup()
280 VOP_CTRL_SET(vop, mcu_pix_total, crtc_state->mcu_timing.mcu_pix_total); in vop_mcu_mode_setup()
281 VOP_CTRL_SET(vop, mcu_cs_pst, crtc_state->mcu_timing.mcu_cs_pst); in vop_mcu_mode_setup()
282 VOP_CTRL_SET(vop, mcu_cs_pend, crtc_state->mcu_timing.mcu_cs_pend); in vop_mcu_mode_setup()
283 VOP_CTRL_SET(vop, mcu_rw_pst, crtc_state->mcu_timing.mcu_rw_pst); in vop_mcu_mode_setup()
284 VOP_CTRL_SET(vop, mcu_rw_pend, crtc_state->mcu_timing.mcu_rw_pend); in vop_mcu_mode_setup()
296 static u32 vop_mode_done(struct vop *vop) in vop_mode_done() argument
298 return VOP_CTRL_GET(vop, out_mode); in vop_mode_done()
301 static void vop_set_out_mode(struct vop *vop, u32 mode) in vop_set_out_mode() argument
306 VOP_CTRL_SET(vop, out_mode, mode); in vop_set_out_mode()
307 vop_cfg_done(vop); in vop_set_out_mode()
308 ret = readx_poll_timeout(vop_mode_done, vop, val, val == mode, 1000 * 1000); in vop_set_out_mode()
320 struct vop *vop; in rockchip_vop_init() local
339 vop = malloc(sizeof(*vop)); in rockchip_vop_init()
340 if (!vop) in rockchip_vop_init()
342 memset(vop, 0, sizeof(*vop)); in rockchip_vop_init()
344 crtc_state->private = vop; in rockchip_vop_init()
345 vop->data = vop_data; in rockchip_vop_init()
346 vop->regs = dev_read_addr_ptr(crtc_state->dev); in rockchip_vop_init()
347 vop->regsbak = malloc(vop_data->reg_len); in rockchip_vop_init()
348 vop->win = vop_data->win; in rockchip_vop_init()
349 vop->win_offset = vop_data->win_offset; in rockchip_vop_init()
350 vop->ctrl = vop_data->ctrl; in rockchip_vop_init()
354 vop->grf_ctrl = regmap_get_range(map, 0); in rockchip_vop_init()
355 if (vop->grf_ctrl <= 0) in rockchip_vop_init()
356 printf("%s: Get syscon grf failed (ret=%p)\n", __func__, vop->grf_ctrl); in rockchip_vop_init()
360 vop->vo0_grf_ctrl = regmap_get_range(map, 0); in rockchip_vop_init()
361 if (vop->vo0_grf_ctrl <= 0) in rockchip_vop_init()
362 printf("%s: Get syscon vo0_grf failed (ret=%p)\n", __func__, vop->vo0_grf_ctrl); in rockchip_vop_init()
365 vop->line_flag = vop_data->line_flag; in rockchip_vop_init()
366 vop->csc_table = vop_data->csc_table; in rockchip_vop_init()
367 vop->win_csc = vop_data->win_csc; in rockchip_vop_init()
368 vop->version = vop_data->version; in rockchip_vop_init()
371 vop->regs, mode->crtc_hdisplay, mode->vdisplay, in rockchip_vop_init()
388 printf("VOP:0x%8p set crtc_clock to %dKHz, get %dHz\n", vop->regs, mode->crtc_clock, ret); in rockchip_vop_init()
390 memcpy(vop->regsbak, vop->regs, vop_data->reg_len); in rockchip_vop_init()
392 rockchip_vop_init_gamma(vop, state); in rockchip_vop_init()
395 0, &vop->mcu_rs_gpio, GPIOD_IS_OUT); in rockchip_vop_init()
399 VOP_CTRL_SET(vop, global_regdone_en, 1); in rockchip_vop_init()
400 VOP_CTRL_SET(vop, axi_outstanding_max_num, 30); in rockchip_vop_init()
401 VOP_CTRL_SET(vop, axi_max_outstanding_en, 1); in rockchip_vop_init()
402 VOP_CTRL_SET(vop, reg_done_frm, 1); in rockchip_vop_init()
403 VOP_CTRL_SET(vop, win_gate[0], 1); in rockchip_vop_init()
404 VOP_CTRL_SET(vop, win_gate[1], 1); in rockchip_vop_init()
405 VOP_CTRL_SET(vop, win_channel[0], 0x12); in rockchip_vop_init()
406 VOP_CTRL_SET(vop, win_channel[1], 0x34); in rockchip_vop_init()
407 VOP_CTRL_SET(vop, win_channel[2], 0x56); in rockchip_vop_init()
408 VOP_CTRL_SET(vop, dsp_blank, 0); in rockchip_vop_init()
410 if (vop->version == VOP_VERSION_RK3576_LITE) { in rockchip_vop_init()
411 VOP_GRF_SET(vop, grf_ctrl, grf_vopl_sel, 1); in rockchip_vop_init()
412 VOP_CTRL_SET(vop, enable, 1); in rockchip_vop_init()
417 if (vop->version == VOP_VERSION_RV1106) in rockchip_vop_init()
419 VOP_CTRL_SET(vop, dclk_pol, dclk_inv); in rockchip_vop_init()
424 VOP_CTRL_SET(vop, pin_pol, val); in rockchip_vop_init()
428 VOP_CTRL_SET(vop, rgb_en, 1); in rockchip_vop_init()
429 VOP_CTRL_SET(vop, rgb_pin_pol, val); in rockchip_vop_init()
430 VOP_CTRL_SET(vop, rgb_dclk_pol, dclk_inv); in rockchip_vop_init()
431 VOP_CTRL_SET(vop, lvds_en, 1); in rockchip_vop_init()
432 VOP_CTRL_SET(vop, lvds_pin_pol, val); in rockchip_vop_init()
433 VOP_CTRL_SET(vop, lvds_dclk_pol, dclk_inv); in rockchip_vop_init()
434 if (!IS_ERR_OR_NULL(vop->grf_ctrl)) in rockchip_vop_init()
435 VOP_GRF_SET(vop, grf_ctrl, grf_dclk_inv, dclk_inv); in rockchip_vop_init()
437 VOP_CTRL_SET(vop, bt1120_en, 1); in rockchip_vop_init()
439 VOP_CTRL_SET(vop, bt1120_yc_swap, yc_swap); in rockchip_vop_init()
440 VOP_CTRL_SET(vop, yuv_clip, 1); in rockchip_vop_init()
442 VOP_CTRL_SET(vop, bt656_en, 1); in rockchip_vop_init()
444 VOP_CTRL_SET(vop, bt1120_yc_swap, yc_swap); in rockchip_vop_init()
448 VOP_CTRL_SET(vop, edp_en, 1); in rockchip_vop_init()
449 VOP_CTRL_SET(vop, edp_pin_pol, val); in rockchip_vop_init()
450 VOP_CTRL_SET(vop, edp_dclk_pol, dclk_inv); in rockchip_vop_init()
451 VOP_CTRL_SET(vop, inf_out_en, 1); in rockchip_vop_init()
452 VOP_CTRL_SET(vop, out_dresetn, 1); in rockchip_vop_init()
453 VOP_GRF_SET(vop, vo0_grf_ctrl, grf_edp_ch_sel, 1); in rockchip_vop_init()
456 VOP_CTRL_SET(vop, hdmi_en, 1); in rockchip_vop_init()
457 VOP_CTRL_SET(vop, hdmi_pin_pol, val); in rockchip_vop_init()
458 VOP_CTRL_SET(vop, hdmi_dclk_pol, 1); in rockchip_vop_init()
459 VOP_CTRL_SET(vop, inf_out_en, 1); in rockchip_vop_init()
460 VOP_CTRL_SET(vop, out_dresetn, 1); in rockchip_vop_init()
461 VOP_GRF_SET(vop, vo0_grf_ctrl, grf_hdmi_ch_sel, 1); in rockchip_vop_init()
462 VOP_GRF_SET(vop, vo0_grf_ctrl, grf_hdmi_pin_pol, val); in rockchip_vop_init()
463 VOP_GRF_SET(vop, vo0_grf_ctrl, grf_hdmi_1to4_en, 1); in rockchip_vop_init()
470 if (vop->version == VOP_VERSION_RK3576_LITE) in rockchip_vop_init()
472 VOP_CTRL_SET(vop, mipi_en, 1); in rockchip_vop_init()
473 VOP_CTRL_SET(vop, mipi_pin_pol, val); in rockchip_vop_init()
474 VOP_CTRL_SET(vop, mipi_dclk_pol, dclk_inv); in rockchip_vop_init()
475 VOP_CTRL_SET(vop, mipi_dual_channel_en, in rockchip_vop_init()
477 VOP_CTRL_SET(vop, data01_swap, in rockchip_vop_init()
480 VOP_CTRL_SET(vop, inf_out_en, 1); in rockchip_vop_init()
481 VOP_CTRL_SET(vop, out_dresetn, 1); in rockchip_vop_init()
482 VOP_GRF_SET(vop, vo0_grf_ctrl, grf_mipi_ch_sel, 1); in rockchip_vop_init()
483 VOP_GRF_SET(vop, vo0_grf_ctrl, grf_mipi_mode, 0); in rockchip_vop_init()
484 VOP_GRF_SET(vop, vo0_grf_ctrl, grf_mipi_pin_pol, val); in rockchip_vop_init()
485 VOP_GRF_SET(vop, vo0_grf_ctrl, grf_mipi_1to4_en, 1); in rockchip_vop_init()
488 VOP_CTRL_SET(vop, dp_dclk_pol, 0); in rockchip_vop_init()
489 VOP_CTRL_SET(vop, dp_pin_pol, val); in rockchip_vop_init()
490 VOP_CTRL_SET(vop, dp_en, 1); in rockchip_vop_init()
494 VOP_CTRL_SET(vop, tve_sw_mode, 1); in rockchip_vop_init()
496 VOP_CTRL_SET(vop, tve_sw_mode, 0); in rockchip_vop_init()
497 VOP_CTRL_SET(vop, tve_dclk_pol, 1); in rockchip_vop_init()
498 VOP_CTRL_SET(vop, tve_dclk_en, 1); in rockchip_vop_init()
500 VOP_CTRL_SET(vop, hdmi_pin_pol, val); in rockchip_vop_init()
501 VOP_CTRL_SET(vop, sw_genlock, 1); in rockchip_vop_init()
502 VOP_CTRL_SET(vop, sw_uv_offset_en, 1); in rockchip_vop_init()
503 VOP_CTRL_SET(vop, dither_up, 1); in rockchip_vop_init()
511 (vop->version >= VOP_VERSION_RV1106 && vop->version < VOP_VERSION_RK3288 && in rockchip_vop_init()
545 VOP_CTRL_SET(vop, dither_down, val); in rockchip_vop_init()
547 VOP_CTRL_SET(vop, dclk_ddr, in rockchip_vop_init()
549 VOP_CTRL_SET(vop, hdmi_dclk_out_en, in rockchip_vop_init()
554 VOP_CTRL_SET(vop, dsp_rb_swap, 1); in rockchip_vop_init()
556 VOP_CTRL_SET(vop, dsp_data_swap, 0); in rockchip_vop_init()
562 if (vop->version == VOP_VERSION_RK3576_LITE) { in rockchip_vop_init()
564 VOP_CTRL_SET(vop, dsp_data_swap, DSP_RG_SWAP | DSP_RB_SWAP); in rockchip_vop_init()
567 VOP_CTRL_SET(vop, out_mode, conn_state->output_mode); in rockchip_vop_init()
569 if (VOP_CTRL_SUPPORT(vop, overlay_mode)) { in rockchip_vop_init()
571 VOP_CTRL_SET(vop, overlay_mode, yuv_overlay); in rockchip_vop_init()
576 VOP_CTRL_SET(vop, dsp_out_yuv, is_yuv_output(conn_state->bus_format)); in rockchip_vop_init()
588 VOP_CTRL_SET(vop, bcsh_r2y_en, post_r2y_en); in rockchip_vop_init()
589 VOP_CTRL_SET(vop, bcsh_y2r_en, post_y2r_en); in rockchip_vop_init()
590 VOP_CTRL_SET(vop, bcsh_r2y_csc_mode, post_csc_mode); in rockchip_vop_init()
591 VOP_CTRL_SET(vop, bcsh_y2r_csc_mode, post_csc_mode); in rockchip_vop_init()
598 else if (vop->version == VOP_VERSION_RK3576_LITE) in rockchip_vop_init()
600 else if (vop->version >= VOP_VERSION_RK3399_BIG) in rockchip_vop_init()
604 VOP_CTRL_SET(vop, dsp_background, val); in rockchip_vop_init()
606 VOP_CTRL_SET(vop, htotal_pw, (htotal << 16) | hsync_len); in rockchip_vop_init()
609 VOP_CTRL_SET(vop, hact_st_end, val); in rockchip_vop_init()
612 VOP_CTRL_SET(vop, vact_st_end, val); in rockchip_vop_init()
618 VOP_CTRL_SET(vop, vact_st_end_f1, val); in rockchip_vop_init()
621 VOP_CTRL_SET(vop, vs_st_end_f1, val); in rockchip_vop_init()
622 VOP_CTRL_SET(vop, dsp_interlace, 1); in rockchip_vop_init()
623 VOP_CTRL_SET(vop, p2i_en, 1); in rockchip_vop_init()
627 VOP_CTRL_SET(vop, dsp_interlace, 0); in rockchip_vop_init()
628 VOP_CTRL_SET(vop, p2i_en, 0); in rockchip_vop_init()
631 VOP_CTRL_SET(vop, vtotal_pw, (vtotal << 16) | vsync_len); in rockchip_vop_init()
632 vop_post_config(state, vop); in rockchip_vop_init()
633 VOP_CTRL_SET(vop, core_dclk_div, in rockchip_vop_init()
637 VOP_LINE_FLAG_SET(vop, line_flag_num[0], act_end - 3); in rockchip_vop_init()
638 VOP_LINE_FLAG_SET(vop, line_flag_num[1], in rockchip_vop_init()
642 if (vop->version >= VOP_VERSION_RK3576_LITE) { in rockchip_vop_init()
643 VOP_CTRL_SET(vop, standby, 0); in rockchip_vop_init()
644 vop_set_out_mode(vop, conn_state->output_mode); in rockchip_vop_init()
646 vop_mcu_mode_setup(state, vop); in rockchip_vop_init()
649 vop_cfg_done(vop); in rockchip_vop_init()
685 static void scl_vop_cal_scl_fac(struct vop *vop, in scl_vop_cal_scl_fac() argument
702 if (!vop->win->scl) in scl_vop_cal_scl_fac()
705 if (!vop->win->scl->ext) { in scl_vop_cal_scl_fac()
706 VOP_SCL_SET(vop, scale_yrgb_x, in scl_vop_cal_scl_fac()
708 VOP_SCL_SET(vop, scale_yrgb_y, in scl_vop_cal_scl_fac()
711 VOP_SCL_SET(vop, scale_cbcr_x, in scl_vop_cal_scl_fac()
713 VOP_SCL_SET(vop, scale_cbcr_y, in scl_vop_cal_scl_fac()
736 VOP_SCL_SET_EXT(vop, lb_mode, lb_mode); in scl_vop_cal_scl_fac()
755 VOP_SCL_SET(vop, scale_yrgb_x, val); in scl_vop_cal_scl_fac()
758 VOP_SCL_SET(vop, scale_yrgb_y, val); in scl_vop_cal_scl_fac()
760 VOP_SCL_SET_EXT(vop, vsd_yrgb_gt4, vskiplines == 4); in scl_vop_cal_scl_fac()
761 VOP_SCL_SET_EXT(vop, vsd_yrgb_gt2, vskiplines == 2); in scl_vop_cal_scl_fac()
763 VOP_SCL_SET_EXT(vop, yrgb_hor_scl_mode, yrgb_hor_scl_mode); in scl_vop_cal_scl_fac()
764 VOP_SCL_SET_EXT(vop, yrgb_ver_scl_mode, yrgb_ver_scl_mode); in scl_vop_cal_scl_fac()
765 VOP_SCL_SET_EXT(vop, yrgb_hsd_mode, SCALE_DOWN_BIL); in scl_vop_cal_scl_fac()
766 VOP_SCL_SET_EXT(vop, yrgb_vsd_mode, SCALE_DOWN_BIL); in scl_vop_cal_scl_fac()
767 VOP_SCL_SET_EXT(vop, yrgb_vsu_mode, vsu_mode); in scl_vop_cal_scl_fac()
771 VOP_SCL_SET(vop, scale_cbcr_x, val); in scl_vop_cal_scl_fac()
774 VOP_SCL_SET(vop, scale_cbcr_y, val); in scl_vop_cal_scl_fac()
776 VOP_SCL_SET_EXT(vop, vsd_cbcr_gt4, vskiplines == 4); in scl_vop_cal_scl_fac()
777 VOP_SCL_SET_EXT(vop, vsd_cbcr_gt2, vskiplines == 2); in scl_vop_cal_scl_fac()
778 VOP_SCL_SET_EXT(vop, cbcr_hor_scl_mode, cbcr_hor_scl_mode); in scl_vop_cal_scl_fac()
779 VOP_SCL_SET_EXT(vop, cbcr_ver_scl_mode, cbcr_ver_scl_mode); in scl_vop_cal_scl_fac()
780 VOP_SCL_SET_EXT(vop, cbcr_hsd_mode, SCALE_DOWN_BIL); in scl_vop_cal_scl_fac()
781 VOP_SCL_SET_EXT(vop, cbcr_vsd_mode, SCALE_DOWN_BIL); in scl_vop_cal_scl_fac()
782 VOP_SCL_SET_EXT(vop, cbcr_vsu_mode, vsu_mode); in scl_vop_cal_scl_fac()
786 static void vop_load_csc_table(struct vop *vop, u32 offset, const u32 *table) in vop_load_csc_table() argument
798 vop_writel(vop, offset + i * 4, table[i]); in vop_load_csc_table()
805 struct vop *vop = crtc_state->private; in rockchip_vop_setup_csc_table() local
808 if (!vop->csc_table || !crtc_state->yuv_overlay) in rockchip_vop_setup_csc_table()
814 csc_table = vop->csc_table->r2y_bt601_12_235; /* bt601 limit */ in rockchip_vop_setup_csc_table()
816 csc_table = vop->csc_table->r2y_bt601; /* bt601 full */ in rockchip_vop_setup_csc_table()
819 csc_table = vop->csc_table->r2y_bt709; in rockchip_vop_setup_csc_table()
822 csc_table = vop->csc_table->r2y_bt2020; in rockchip_vop_setup_csc_table()
825 csc_table = vop->csc_table->r2y_bt601; /* bt601 full */ in rockchip_vop_setup_csc_table()
829 vop_load_csc_table(vop, vop->win_csc->r2y_offset, csc_table); in rockchip_vop_setup_csc_table()
830 VOP_WIN_CSC_SET(vop, r2y_en, 1); in rockchip_vop_setup_csc_table()
843 struct vop *vop = crtc_state->private; in rockchip_vop_set_plane() local
859 if ((vop->version == VOP_VERSION_RK3036 || vop->version >= VOP_VERSION_RK3576_LITE) && in rockchip_vop_set_plane()
871 if ((vop->version == VOP_VERSION_RK3036 || vop->version >= VOP_VERSION_RK3576_LITE) && in rockchip_vop_set_plane()
894 if (VOP_CTRL_SUPPORT(vop, ymirror)) in rockchip_vop_set_plane()
899 VOP_CTRL_SET(vop, ymirror, y_mirror); in rockchip_vop_set_plane()
900 VOP_CTRL_SET(vop, xmirror, x_mirror); in rockchip_vop_set_plane()
902 VOP_WIN_SET(vop, format, crtc_state->format); in rockchip_vop_set_plane()
904 VOP_WIN_SET(vop, interlace_read, (mode->flags & DRM_MODE_FLAG_INTERLACE) ? 1 : 0); in rockchip_vop_set_plane()
906 VOP_WIN_SET(vop, yrgb_vir, xvir); in rockchip_vop_set_plane()
907 VOP_WIN_SET(vop, yrgb_mst, crtc_state->dma_addr); in rockchip_vop_set_plane()
909 scl_vop_cal_scl_fac(vop, src_w, src_h, crtc_w, crtc_h, in rockchip_vop_set_plane()
912 VOP_WIN_SET(vop, act_info, act_info); in rockchip_vop_set_plane()
913 VOP_WIN_SET(vop, dsp_info, dsp_info); in rockchip_vop_set_plane()
914 VOP_WIN_SET(vop, dsp_st, dsp_st); in rockchip_vop_set_plane()
915 VOP_WIN_SET(vop, rb_swap, crtc_state->rb_swap); in rockchip_vop_set_plane()
917 VOP_WIN_SET(vop, src_alpha_ctl, 0); in rockchip_vop_set_plane()
920 VOP_WIN_SET(vop, enable, 1); in rockchip_vop_set_plane()
921 VOP_WIN_SET(vop, gate, 1); in rockchip_vop_set_plane()
922 vop_cfg_done(vop); in rockchip_vop_set_plane()
925 vop->regs, crtc_state->src_rect.w, crtc_state->src_rect.h, in rockchip_vop_set_plane()
941 struct vop *vop = crtc_state->private; in rockchip_vop_enable() local
943 VOP_CTRL_SET(vop, standby, 0); in rockchip_vop_enable()
944 vop_cfg_done(vop); in rockchip_vop_enable()
946 VOP_CTRL_SET(vop, mcu_hold_mode, 0); in rockchip_vop_enable()
954 struct vop *vop = crtc_state->private; in rockchip_vop_disable() local
956 VOP_CTRL_SET(vop, standby, 1); in rockchip_vop_disable()
957 vop_cfg_done(vop); in rockchip_vop_disable()
1008 struct vop *vop = crtc_state->private; in rockchip_vop_send_mcu_cmd() local
1011 if (vop->version >= VOP_VERSION_RK3576_LITE) { in rockchip_vop_send_mcu_cmd()
1017 vop_mcu_bypass_mode_setup(state, vop); in rockchip_vop_send_mcu_cmd()
1026 if (vop) { in rockchip_vop_send_mcu_cmd()
1029 VOP_CTRL_SET(vop, mcu_force_rdn, 1); in rockchip_vop_send_mcu_cmd()
1030 set_vop_mcu_rs(vop, 0); in rockchip_vop_send_mcu_cmd()
1031 VOP_CTRL_SET(vop, mcu_rw_bypass_port, value); in rockchip_vop_send_mcu_cmd()
1032 set_vop_mcu_rs(vop, 1); in rockchip_vop_send_mcu_cmd()
1035 VOP_CTRL_SET(vop, mcu_force_rdn, 1); in rockchip_vop_send_mcu_cmd()
1036 set_vop_mcu_rs(vop, 1); in rockchip_vop_send_mcu_cmd()
1037 VOP_CTRL_SET(vop, mcu_rw_bypass_port, value); in rockchip_vop_send_mcu_cmd()
1040 VOP_CTRL_SET(vop, mcu_bypass, value ? 1 : 0); in rockchip_vop_send_mcu_cmd()
1042 VOP_CTRL_SET(vop, mcu_force_rdn, 1); in rockchip_vop_send_mcu_cmd()
1049 if (vop->version >= VOP_VERSION_RK3576_LITE) { in rockchip_vop_send_mcu_cmd()
1055 vop_mcu_mode_setup(state, vop); in rockchip_vop_send_mcu_cmd()