Lines Matching refs:plane

245 static unsigned long dispc_plane_pclk_rate(enum omap_plane plane);
246 static unsigned long dispc_plane_lclk_rate(enum omap_plane plane);
586 enum omap_plane plane = OMAP_DSS_WB; in dispc_wb_go() local
589 enable = REG_GET(DISPC_OVL_ATTRIBUTES(plane), 0, 0) == 1; in dispc_wb_go()
603 static void dispc_ovl_write_firh_reg(enum omap_plane plane, int reg, u32 value) in dispc_ovl_write_firh_reg() argument
605 dispc_write_reg(DISPC_OVL_FIR_COEF_H(plane, reg), value); in dispc_ovl_write_firh_reg()
608 static void dispc_ovl_write_firhv_reg(enum omap_plane plane, int reg, u32 value) in dispc_ovl_write_firhv_reg() argument
610 dispc_write_reg(DISPC_OVL_FIR_COEF_HV(plane, reg), value); in dispc_ovl_write_firhv_reg()
613 static void dispc_ovl_write_firv_reg(enum omap_plane plane, int reg, u32 value) in dispc_ovl_write_firv_reg() argument
615 dispc_write_reg(DISPC_OVL_FIR_COEF_V(plane, reg), value); in dispc_ovl_write_firv_reg()
618 static void dispc_ovl_write_firh2_reg(enum omap_plane plane, int reg, u32 value) in dispc_ovl_write_firh2_reg() argument
620 BUG_ON(plane == OMAP_DSS_GFX); in dispc_ovl_write_firh2_reg()
622 dispc_write_reg(DISPC_OVL_FIR_COEF_H2(plane, reg), value); in dispc_ovl_write_firh2_reg()
625 static void dispc_ovl_write_firhv2_reg(enum omap_plane plane, int reg, in dispc_ovl_write_firhv2_reg() argument
628 BUG_ON(plane == OMAP_DSS_GFX); in dispc_ovl_write_firhv2_reg()
630 dispc_write_reg(DISPC_OVL_FIR_COEF_HV2(plane, reg), value); in dispc_ovl_write_firhv2_reg()
633 static void dispc_ovl_write_firv2_reg(enum omap_plane plane, int reg, u32 value) in dispc_ovl_write_firv2_reg() argument
635 BUG_ON(plane == OMAP_DSS_GFX); in dispc_ovl_write_firv2_reg()
637 dispc_write_reg(DISPC_OVL_FIR_COEF_V2(plane, reg), value); in dispc_ovl_write_firv2_reg()
640 static void dispc_ovl_set_scale_coef(enum omap_plane plane, int fir_hinc, in dispc_ovl_set_scale_coef() argument
663 dispc_ovl_write_firh_reg(plane, i, h); in dispc_ovl_set_scale_coef()
664 dispc_ovl_write_firhv_reg(plane, i, hv); in dispc_ovl_set_scale_coef()
666 dispc_ovl_write_firh2_reg(plane, i, h); in dispc_ovl_set_scale_coef()
667 dispc_ovl_write_firhv2_reg(plane, i, hv); in dispc_ovl_set_scale_coef()
678 dispc_ovl_write_firv_reg(plane, i, v); in dispc_ovl_set_scale_coef()
680 dispc_ovl_write_firv2_reg(plane, i, v); in dispc_ovl_set_scale_coef()
686 static void dispc_ovl_write_color_conv_coef(enum omap_plane plane, in dispc_ovl_write_color_conv_coef() argument
691 dispc_write_reg(DISPC_OVL_CONV_COEF(plane, 0), CVAL(ct->rcr, ct->ry)); in dispc_ovl_write_color_conv_coef()
692 dispc_write_reg(DISPC_OVL_CONV_COEF(plane, 1), CVAL(ct->gy, ct->rcb)); in dispc_ovl_write_color_conv_coef()
693 dispc_write_reg(DISPC_OVL_CONV_COEF(plane, 2), CVAL(ct->gcb, ct->gcr)); in dispc_ovl_write_color_conv_coef()
694 dispc_write_reg(DISPC_OVL_CONV_COEF(plane, 3), CVAL(ct->bcr, ct->by)); in dispc_ovl_write_color_conv_coef()
695 dispc_write_reg(DISPC_OVL_CONV_COEF(plane, 4), CVAL(0, ct->bcb)); in dispc_ovl_write_color_conv_coef()
697 REG_FLD_MOD(DISPC_OVL_ATTRIBUTES(plane), ct->full_range, 11, 11); in dispc_ovl_write_color_conv_coef()
721 static void dispc_ovl_set_ba0(enum omap_plane plane, u32 paddr) in dispc_ovl_set_ba0() argument
723 dispc_write_reg(DISPC_OVL_BA0(plane), paddr); in dispc_ovl_set_ba0()
726 static void dispc_ovl_set_ba1(enum omap_plane plane, u32 paddr) in dispc_ovl_set_ba1() argument
728 dispc_write_reg(DISPC_OVL_BA1(plane), paddr); in dispc_ovl_set_ba1()
731 static void dispc_ovl_set_ba0_uv(enum omap_plane plane, u32 paddr) in dispc_ovl_set_ba0_uv() argument
733 dispc_write_reg(DISPC_OVL_BA0_UV(plane), paddr); in dispc_ovl_set_ba0_uv()
736 static void dispc_ovl_set_ba1_uv(enum omap_plane plane, u32 paddr) in dispc_ovl_set_ba1_uv() argument
738 dispc_write_reg(DISPC_OVL_BA1_UV(plane), paddr); in dispc_ovl_set_ba1_uv()
741 static void dispc_ovl_set_pos(enum omap_plane plane, in dispc_ovl_set_pos() argument
751 dispc_write_reg(DISPC_OVL_POSITION(plane), val); in dispc_ovl_set_pos()
754 static void dispc_ovl_set_input_size(enum omap_plane plane, int width, in dispc_ovl_set_input_size() argument
759 if (plane == OMAP_DSS_GFX || plane == OMAP_DSS_WB) in dispc_ovl_set_input_size()
760 dispc_write_reg(DISPC_OVL_SIZE(plane), val); in dispc_ovl_set_input_size()
762 dispc_write_reg(DISPC_OVL_PICTURE_SIZE(plane), val); in dispc_ovl_set_input_size()
765 static void dispc_ovl_set_output_size(enum omap_plane plane, int width, in dispc_ovl_set_output_size() argument
770 BUG_ON(plane == OMAP_DSS_GFX); in dispc_ovl_set_output_size()
774 if (plane == OMAP_DSS_WB) in dispc_ovl_set_output_size()
775 dispc_write_reg(DISPC_OVL_PICTURE_SIZE(plane), val); in dispc_ovl_set_output_size()
777 dispc_write_reg(DISPC_OVL_SIZE(plane), val); in dispc_ovl_set_output_size()
780 static void dispc_ovl_set_zorder(enum omap_plane plane, in dispc_ovl_set_zorder() argument
786 REG_FLD_MOD(DISPC_OVL_ATTRIBUTES(plane), zorder, 27, 26); in dispc_ovl_set_zorder()
800 static void dispc_ovl_set_pre_mult_alpha(enum omap_plane plane, in dispc_ovl_set_pre_mult_alpha() argument
806 REG_FLD_MOD(DISPC_OVL_ATTRIBUTES(plane), enable ? 1 : 0, 28, 28); in dispc_ovl_set_pre_mult_alpha()
809 static void dispc_ovl_setup_global_alpha(enum omap_plane plane, in dispc_ovl_setup_global_alpha() argument
818 shift = shifts[plane]; in dispc_ovl_setup_global_alpha()
822 static void dispc_ovl_set_pix_inc(enum omap_plane plane, s32 inc) in dispc_ovl_set_pix_inc() argument
824 dispc_write_reg(DISPC_OVL_PIXEL_INC(plane), inc); in dispc_ovl_set_pix_inc()
827 static void dispc_ovl_set_row_inc(enum omap_plane plane, s32 inc) in dispc_ovl_set_row_inc() argument
829 dispc_write_reg(DISPC_OVL_ROW_INC(plane), inc); in dispc_ovl_set_row_inc()
832 static void dispc_ovl_set_color_mode(enum omap_plane plane, in dispc_ovl_set_color_mode() argument
836 if (plane != OMAP_DSS_GFX) { in dispc_ovl_set_color_mode()
910 REG_FLD_MOD(DISPC_OVL_ATTRIBUTES(plane), m, 4, 1); in dispc_ovl_set_color_mode()
913 static void dispc_ovl_configure_burst_type(enum omap_plane plane, in dispc_ovl_configure_burst_type() argument
920 REG_FLD_MOD(DISPC_OVL_ATTRIBUTES(plane), 1, 29, 29); in dispc_ovl_configure_burst_type()
922 REG_FLD_MOD(DISPC_OVL_ATTRIBUTES(plane), 0, 29, 29); in dispc_ovl_configure_burst_type()
925 void dispc_ovl_set_channel_out(enum omap_plane plane, enum omap_channel channel) in dispc_ovl_set_channel_out() argument
931 switch (plane) { in dispc_ovl_set_channel_out()
945 val = dispc_read_reg(DISPC_OVL_ATTRIBUTES(plane)); in dispc_ovl_set_channel_out()
979 dispc_write_reg(DISPC_OVL_ATTRIBUTES(plane), val); in dispc_ovl_set_channel_out()
983 static enum omap_channel dispc_ovl_get_channel_out(enum omap_plane plane) in dispc_ovl_get_channel_out() argument
989 switch (plane) { in dispc_ovl_get_channel_out()
1003 val = dispc_read_reg(DISPC_OVL_ATTRIBUTES(plane)); in dispc_ovl_get_channel_out()
1026 enum omap_plane plane = OMAP_DSS_WB; in dispc_wb_set_channel_in() local
1028 REG_FLD_MOD(DISPC_OVL_ATTRIBUTES(plane), channel, 18, 16); in dispc_wb_set_channel_in()
1031 static void dispc_ovl_set_burst_size(enum omap_plane plane, in dispc_ovl_set_burst_size() argument
1037 shift = shifts[plane]; in dispc_ovl_set_burst_size()
1038 REG_FLD_MOD(DISPC_OVL_ATTRIBUTES(plane), burst_size, shift + 1, shift); in dispc_ovl_set_burst_size()
1051 static u32 dispc_ovl_get_burst_size(enum omap_plane plane) in dispc_ovl_get_burst_size() argument
1100 static void dispc_ovl_set_vid_color_conv(enum omap_plane plane, bool enable) in dispc_ovl_set_vid_color_conv() argument
1104 BUG_ON(plane == OMAP_DSS_GFX); in dispc_ovl_set_vid_color_conv()
1106 val = dispc_read_reg(DISPC_OVL_ATTRIBUTES(plane)); in dispc_ovl_set_vid_color_conv()
1108 dispc_write_reg(DISPC_OVL_ATTRIBUTES(plane), val); in dispc_ovl_set_vid_color_conv()
1111 static void dispc_ovl_enable_replication(enum omap_plane plane, in dispc_ovl_enable_replication() argument
1120 shift = shifts[plane]; in dispc_ovl_enable_replication()
1121 REG_FLD_MOD(DISPC_OVL_ATTRIBUTES(plane), enable, shift, shift); in dispc_ovl_enable_replication()
1197 static u32 dispc_ovl_get_fifo_size(enum omap_plane plane) in dispc_ovl_get_fifo_size() argument
1203 if (dispc.fifo_assignment[fifo] == plane) in dispc_ovl_get_fifo_size()
1210 void dispc_ovl_set_fifo_threshold(enum omap_plane plane, u32 low, u32 high) in dispc_ovl_set_fifo_threshold() argument
1227 plane, in dispc_ovl_set_fifo_threshold()
1228 REG_GET(DISPC_OVL_FIFO_THRESHOLD(plane), in dispc_ovl_set_fifo_threshold()
1230 REG_GET(DISPC_OVL_FIFO_THRESHOLD(plane), in dispc_ovl_set_fifo_threshold()
1234 dispc_write_reg(DISPC_OVL_FIFO_THRESHOLD(plane), in dispc_ovl_set_fifo_threshold()
1244 plane != OMAP_DSS_WB) in dispc_ovl_set_fifo_threshold()
1245 dispc_write_reg(DISPC_OVL_PRELOAD(plane), min(high, 0xfffu)); in dispc_ovl_set_fifo_threshold()
1260 void dispc_ovl_compute_fifo_thresholds(enum omap_plane plane, in dispc_ovl_compute_fifo_thresholds() argument
1273 burst_size = dispc_ovl_get_burst_size(plane); in dispc_ovl_compute_fifo_thresholds()
1274 ovl_fifo_size = dispc_ovl_get_fifo_size(plane); in dispc_ovl_compute_fifo_thresholds()
1293 } else if (plane == OMAP_DSS_WB) { in dispc_ovl_compute_fifo_thresholds()
1308 static void dispc_ovl_set_mflag(enum omap_plane plane, bool enable) in dispc_ovl_set_mflag() argument
1312 if (plane == OMAP_DSS_GFX) in dispc_ovl_set_mflag()
1317 REG_FLD_MOD(DISPC_OVL_ATTRIBUTES(plane), enable, bit, bit); in dispc_ovl_set_mflag()
1320 static void dispc_ovl_set_mflag_threshold(enum omap_plane plane, in dispc_ovl_set_mflag_threshold() argument
1323 dispc_write_reg(DISPC_OVL_MFLAG_THRESHOLD(plane), in dispc_ovl_set_mflag_threshold()
1365 static void dispc_ovl_set_fir(enum omap_plane plane, in dispc_ovl_set_fir() argument
1381 dispc_write_reg(DISPC_OVL_FIR(plane), val); in dispc_ovl_set_fir()
1384 dispc_write_reg(DISPC_OVL_FIR2(plane), val); in dispc_ovl_set_fir()
1388 static void dispc_ovl_set_vid_accu0(enum omap_plane plane, int haccu, int vaccu) in dispc_ovl_set_vid_accu0() argument
1399 dispc_write_reg(DISPC_OVL_ACCU0(plane), val); in dispc_ovl_set_vid_accu0()
1402 static void dispc_ovl_set_vid_accu1(enum omap_plane plane, int haccu, int vaccu) in dispc_ovl_set_vid_accu1() argument
1413 dispc_write_reg(DISPC_OVL_ACCU1(plane), val); in dispc_ovl_set_vid_accu1()
1416 static void dispc_ovl_set_vid_accu2_0(enum omap_plane plane, int haccu, in dispc_ovl_set_vid_accu2_0() argument
1422 dispc_write_reg(DISPC_OVL_ACCU2_0(plane), val); in dispc_ovl_set_vid_accu2_0()
1425 static void dispc_ovl_set_vid_accu2_1(enum omap_plane plane, int haccu, in dispc_ovl_set_vid_accu2_1() argument
1431 dispc_write_reg(DISPC_OVL_ACCU2_1(plane), val); in dispc_ovl_set_vid_accu2_1()
1434 static void dispc_ovl_set_scale_param(enum omap_plane plane, in dispc_ovl_set_scale_param() argument
1445 dispc_ovl_set_scale_coef(plane, fir_hinc, fir_vinc, five_taps, in dispc_ovl_set_scale_param()
1447 dispc_ovl_set_fir(plane, fir_hinc, fir_vinc, color_comp); in dispc_ovl_set_scale_param()
1450 static void dispc_ovl_set_accu_uv(enum omap_plane plane, in dispc_ovl_set_accu_uv() argument
1534 dispc_ovl_set_vid_accu2_0(plane, h_accu2_0, v_accu2_0); in dispc_ovl_set_accu_uv()
1535 dispc_ovl_set_vid_accu2_1(plane, h_accu2_1, v_accu2_1); in dispc_ovl_set_accu_uv()
1538 static void dispc_ovl_set_scaling_common(enum omap_plane plane, in dispc_ovl_set_scaling_common() argument
1549 dispc_ovl_set_scale_param(plane, orig_width, orig_height, in dispc_ovl_set_scaling_common()
1552 l = dispc_read_reg(DISPC_OVL_ATTRIBUTES(plane)); in dispc_ovl_set_scaling_common()
1573 dispc_write_reg(DISPC_OVL_ATTRIBUTES(plane), l); in dispc_ovl_set_scaling_common()
1588 dispc_ovl_set_vid_accu0(plane, 0, accu0); in dispc_ovl_set_scaling_common()
1589 dispc_ovl_set_vid_accu1(plane, 0, accu1); in dispc_ovl_set_scaling_common()
1592 static void dispc_ovl_set_scaling_uv(enum omap_plane plane, in dispc_ovl_set_scaling_uv() argument
1601 bool chroma_upscale = plane != OMAP_DSS_WB ? true : false; in dispc_ovl_set_scaling_uv()
1609 if (plane != OMAP_DSS_WB) in dispc_ovl_set_scaling_uv()
1610 REG_FLD_MOD(DISPC_OVL_ATTRIBUTES2(plane), 0, 8, 8); in dispc_ovl_set_scaling_uv()
1614 dispc_ovl_set_accu_uv(plane, orig_width, orig_height, out_width, in dispc_ovl_set_scaling_uv()
1658 dispc_ovl_set_scale_param(plane, orig_width, orig_height, in dispc_ovl_set_scaling_uv()
1662 if (plane != OMAP_DSS_WB) in dispc_ovl_set_scaling_uv()
1663 REG_FLD_MOD(DISPC_OVL_ATTRIBUTES2(plane), in dispc_ovl_set_scaling_uv()
1667 REG_FLD_MOD(DISPC_OVL_ATTRIBUTES(plane), scale_x ? 1 : 0, 5, 5); in dispc_ovl_set_scaling_uv()
1669 REG_FLD_MOD(DISPC_OVL_ATTRIBUTES(plane), scale_y ? 1 : 0, 6, 6); in dispc_ovl_set_scaling_uv()
1672 static void dispc_ovl_set_scaling(enum omap_plane plane, in dispc_ovl_set_scaling() argument
1679 BUG_ON(plane == OMAP_DSS_GFX); in dispc_ovl_set_scaling()
1681 dispc_ovl_set_scaling_common(plane, in dispc_ovl_set_scaling()
1688 dispc_ovl_set_scaling_uv(plane, in dispc_ovl_set_scaling()
1696 static void dispc_ovl_set_rotation_attrs(enum omap_plane plane, u8 rotation, in dispc_ovl_set_rotation_attrs() argument
1744 REG_FLD_MOD(DISPC_OVL_ATTRIBUTES(plane), vidrot, 13, 12); in dispc_ovl_set_rotation_attrs()
1746 REG_FLD_MOD(DISPC_OVL_ATTRIBUTES(plane), in dispc_ovl_set_rotation_attrs()
1754 REG_FLD_MOD(DISPC_OVL_ATTRIBUTES(plane), doublestride, 22, 22); in dispc_ovl_set_rotation_attrs()
2468 int dispc_ovl_check(enum omap_plane plane, enum omap_channel channel, in dispc_ovl_check() argument
2473 enum omap_overlay_caps caps = dss_feat_get_overlay_caps(plane); in dispc_ovl_check()
2499 if (!dss_feat_color_mode_supported(plane, oi->color_mode)) in dispc_ovl_check()
2509 static int dispc_ovl_setup_common(enum omap_plane plane, in dispc_ovl_setup_common() argument
2530 unsigned long pclk = dispc_plane_pclk_rate(plane); in dispc_ovl_setup_common()
2531 unsigned long lclk = dispc_plane_lclk_rate(plane); in dispc_ovl_setup_common()
2553 if (!dss_feat_color_mode_supported(plane, color_mode)) in dispc_ovl_setup_common()
2594 if (plane == OMAP_DSS_WB) { in dispc_ovl_setup_common()
2623 dispc_ovl_set_color_mode(plane, color_mode); in dispc_ovl_setup_common()
2625 dispc_ovl_configure_burst_type(plane, rotation_type); in dispc_ovl_setup_common()
2627 dispc_ovl_set_ba0(plane, paddr + offset0); in dispc_ovl_setup_common()
2628 dispc_ovl_set_ba1(plane, paddr + offset1); in dispc_ovl_setup_common()
2631 dispc_ovl_set_ba0_uv(plane, p_uv_addr + offset0); in dispc_ovl_setup_common()
2632 dispc_ovl_set_ba1_uv(plane, p_uv_addr + offset1); in dispc_ovl_setup_common()
2635 dispc_ovl_set_row_inc(plane, row_inc); in dispc_ovl_setup_common()
2636 dispc_ovl_set_pix_inc(plane, pix_inc); in dispc_ovl_setup_common()
2641 dispc_ovl_set_pos(plane, caps, pos_x, pos_y); in dispc_ovl_setup_common()
2643 dispc_ovl_set_input_size(plane, in_width, in_height); in dispc_ovl_setup_common()
2646 dispc_ovl_set_scaling(plane, in_width, in_height, out_width, in dispc_ovl_setup_common()
2649 dispc_ovl_set_output_size(plane, out_width, out_height); in dispc_ovl_setup_common()
2650 dispc_ovl_set_vid_color_conv(plane, cconv); in dispc_ovl_setup_common()
2653 dispc_ovl_set_rotation_attrs(plane, rotation, rotation_type, mirror, in dispc_ovl_setup_common()
2656 dispc_ovl_set_zorder(plane, caps, zorder); in dispc_ovl_setup_common()
2657 dispc_ovl_set_pre_mult_alpha(plane, caps, pre_mult_alpha); in dispc_ovl_setup_common()
2658 dispc_ovl_setup_global_alpha(plane, caps, global_alpha); in dispc_ovl_setup_common()
2660 dispc_ovl_enable_replication(plane, caps, replication); in dispc_ovl_setup_common()
2665 int dispc_ovl_setup(enum omap_plane plane, const struct omap_overlay_info *oi, in dispc_ovl_setup() argument
2670 enum omap_overlay_caps caps = dss_feat_get_overlay_caps(plane); in dispc_ovl_setup()
2673 channel = dispc_ovl_get_channel_out(plane); in dispc_ovl_setup()
2677 plane, &oi->paddr, &oi->p_uv_addr, oi->screen_width, oi->pos_x, in dispc_ovl_setup()
2681 r = dispc_ovl_setup_common(plane, caps, oi->paddr, oi->p_uv_addr, in dispc_ovl_setup()
2696 enum omap_plane plane = OMAP_DSS_WB; in dispc_wb_setup() local
2711 r = dispc_ovl_setup_common(plane, caps, wi->paddr, wi->p_uv_addr, in dispc_wb_setup()
2734 l = dispc_read_reg(DISPC_OVL_ATTRIBUTES(plane)); in dispc_wb_setup()
2737 dispc_write_reg(DISPC_OVL_ATTRIBUTES(plane), l); in dispc_wb_setup()
2742 int dispc_ovl_enable(enum omap_plane plane, bool enable) in dispc_ovl_enable() argument
2744 DSSDBG("dispc_enable_plane %d, %d\n", plane, enable); in dispc_ovl_enable()
2746 REG_FLD_MOD(DISPC_OVL_ATTRIBUTES(plane), enable ? 1 : 0, 0, 0); in dispc_ovl_enable()
2752 bool dispc_ovl_enabled(enum omap_plane plane) in dispc_ovl_enabled() argument
2754 return REG_GET(DISPC_OVL_ATTRIBUTES(plane), 0, 0); in dispc_ovl_enabled()
3274 static unsigned long dispc_plane_pclk_rate(enum omap_plane plane) in dispc_plane_pclk_rate() argument
3278 if (plane == OMAP_DSS_WB) in dispc_plane_pclk_rate()
3281 channel = dispc_ovl_get_channel_out(plane); in dispc_plane_pclk_rate()
3286 static unsigned long dispc_plane_lclk_rate(enum omap_plane plane) in dispc_plane_lclk_rate() argument
3290 if (plane == OMAP_DSS_WB) in dispc_plane_lclk_rate()
3293 channel = dispc_ovl_get_channel_out(plane); in dispc_plane_lclk_rate()
3478 #define DISPC_REG(plane, name, i) name(plane, i) in dispc_dump_regs() argument
3479 #define DUMPREG(plane, name, i) \ in dispc_dump_regs() argument
3480 seq_printf(s, "%s_%d(%s)%*s %08x\n", #name, i, p_names[plane], \ in dispc_dump_regs()
3481 (int)(46 - strlen(#name) - strlen(p_names[plane])), " ", \ in dispc_dump_regs()
3482 dispc_read_reg(DISPC_REG(plane, name, i))) in dispc_dump_regs()