• Home
  • Raw
  • Download

Lines Matching refs:ch

88 	struct dcss_scaler_ch ch[3];  member
270 static void dcss_scaler_write(struct dcss_scaler_ch *ch, u32 val, u32 ofs) in dcss_scaler_write() argument
272 struct dcss_scaler *scl = ch->scl; in dcss_scaler_write()
274 dcss_ctxld_write(scl->ctxld, scl->ctx_id, val, ch->base_ofs + ofs); in dcss_scaler_write()
280 struct dcss_scaler_ch *ch; in dcss_scaler_ch_init_all() local
284 ch = &scl->ch[i]; in dcss_scaler_ch_init_all()
286 ch->base_ofs = scaler_base + i * 0x400; in dcss_scaler_ch_init_all()
288 ch->base_reg = ioremap(ch->base_ofs, SZ_4K); in dcss_scaler_ch_init_all()
289 if (!ch->base_reg) { in dcss_scaler_ch_init_all()
294 ch->scl = scl; in dcss_scaler_ch_init_all()
317 if (scaler->ch[i].base_reg) in dcss_scaler_init()
318 iounmap(scaler->ch[i].base_reg); in dcss_scaler_init()
334 struct dcss_scaler_ch *ch = &scl->ch[ch_no]; in dcss_scaler_exit() local
336 dcss_writel(0, ch->base_reg + DCSS_SCALER_CTRL); in dcss_scaler_exit()
338 if (ch->base_reg) in dcss_scaler_exit()
339 iounmap(ch->base_reg); in dcss_scaler_exit()
347 struct dcss_scaler_ch *ch = &scl->ch[ch_num]; in dcss_scaler_ch_enable() local
353 dcss_scaler_write(ch, ch->sdata_ctrl, DCSS_SCALER_SDATA_CTRL); in dcss_scaler_ch_enable()
355 if (ch->scaler_ctrl != scaler_ctrl) in dcss_scaler_ch_enable()
356 ch->scaler_ctrl_chgd = true; in dcss_scaler_ch_enable()
358 ch->scaler_ctrl = scaler_ctrl; in dcss_scaler_ch_enable()
361 static void dcss_scaler_yuv_enable(struct dcss_scaler_ch *ch, bool en) in dcss_scaler_yuv_enable() argument
363 ch->sdata_ctrl &= ~YUV_EN; in dcss_scaler_yuv_enable()
364 ch->sdata_ctrl |= en ? YUV_EN : 0; in dcss_scaler_yuv_enable()
367 static void dcss_scaler_rtr_8lines_enable(struct dcss_scaler_ch *ch, bool en) in dcss_scaler_rtr_8lines_enable() argument
369 ch->sdata_ctrl &= ~RTRAM_8LINES; in dcss_scaler_rtr_8lines_enable()
370 ch->sdata_ctrl |= en ? RTRAM_8LINES : 0; in dcss_scaler_rtr_8lines_enable()
373 static void dcss_scaler_bit_depth_set(struct dcss_scaler_ch *ch, int depth) in dcss_scaler_bit_depth_set() argument
379 dcss_scaler_write(ch, in dcss_scaler_bit_depth_set()
400 static void dcss_scaler_format_set(struct dcss_scaler_ch *ch, in dcss_scaler_format_set() argument
404 dcss_scaler_write(ch, src_fmt, DCSS_SCALER_SRC_FORMAT); in dcss_scaler_format_set()
405 dcss_scaler_write(ch, dst_fmt, DCSS_SCALER_DST_FORMAT); in dcss_scaler_format_set()
408 static void dcss_scaler_res_set(struct dcss_scaler_ch *ch, in dcss_scaler_res_set() argument
446 dcss_scaler_write(ch, (((lsrc_yres - 1) << HEIGHT_POS) & HEIGHT_MASK) | in dcss_scaler_res_set()
449 dcss_scaler_write(ch, (((csrc_yres - 1) << HEIGHT_POS) & HEIGHT_MASK) | in dcss_scaler_res_set()
452 dcss_scaler_write(ch, (((ldst_yres - 1) << HEIGHT_POS) & HEIGHT_MASK) | in dcss_scaler_res_set()
455 dcss_scaler_write(ch, (((cdst_yres - 1) << HEIGHT_POS) & HEIGHT_MASK) | in dcss_scaler_res_set()
472 static void dcss_scaler_fractions_set(struct dcss_scaler_ch *ch, in dcss_scaler_fractions_set() argument
543 ch->c_vstart = c_vstart; in dcss_scaler_fractions_set()
544 ch->c_hstart = c_hstart; in dcss_scaler_fractions_set()
546 dcss_scaler_write(ch, 0, DCSS_SCALER_V_LUM_START); in dcss_scaler_fractions_set()
547 dcss_scaler_write(ch, l_vinc, DCSS_SCALER_V_LUM_INC); in dcss_scaler_fractions_set()
549 dcss_scaler_write(ch, 0, DCSS_SCALER_H_LUM_START); in dcss_scaler_fractions_set()
550 dcss_scaler_write(ch, l_hinc, DCSS_SCALER_H_LUM_INC); in dcss_scaler_fractions_set()
552 dcss_scaler_write(ch, c_vstart, DCSS_SCALER_V_CHR_START); in dcss_scaler_fractions_set()
553 dcss_scaler_write(ch, c_vinc, DCSS_SCALER_V_CHR_INC); in dcss_scaler_fractions_set()
555 dcss_scaler_write(ch, c_hstart, DCSS_SCALER_H_CHR_START); in dcss_scaler_fractions_set()
556 dcss_scaler_write(ch, c_hinc, DCSS_SCALER_H_CHR_INC); in dcss_scaler_fractions_set()
568 static void dcss_scaler_program_5_coef_set(struct dcss_scaler_ch *ch, in dcss_scaler_program_5_coef_set() argument
575 dcss_scaler_write(ch, ((coef[i][1] & 0xfff) << 16 | in dcss_scaler_program_5_coef_set()
579 dcss_scaler_write(ch, ((coef[i][3] & 0x0ff) << 20 | in dcss_scaler_program_5_coef_set()
583 dcss_scaler_write(ch, ((coef[i][5] & 0x00f) << 24), in dcss_scaler_program_5_coef_set()
590 dcss_scaler_write(ch, ((coef[phase][5] & 0xfff) << 16 | in dcss_scaler_program_5_coef_set()
594 dcss_scaler_write(ch, ((coef[phase][3] & 0x0ff) << 20 | in dcss_scaler_program_5_coef_set()
598 dcss_scaler_write(ch, ((coef[phase][1] & 0x00f) << 24), in dcss_scaler_program_5_coef_set()
603 static void dcss_scaler_program_7_coef_set(struct dcss_scaler_ch *ch, in dcss_scaler_program_7_coef_set() argument
610 dcss_scaler_write(ch, ((coef[i][0] & 0xfff) << 16 | in dcss_scaler_program_7_coef_set()
614 dcss_scaler_write(ch, ((coef[i][2] & 0x0ff) << 20 | in dcss_scaler_program_7_coef_set()
618 dcss_scaler_write(ch, ((coef[i][4] & 0x00f) << 24 | in dcss_scaler_program_7_coef_set()
627 dcss_scaler_write(ch, ((coef[phase][6] & 0xfff) << 16 | in dcss_scaler_program_7_coef_set()
631 dcss_scaler_write(ch, ((coef[phase][4] & 0x0ff) << 20 | in dcss_scaler_program_7_coef_set()
635 dcss_scaler_write(ch, ((coef[phase][2] & 0x00f) << 24 | in dcss_scaler_program_7_coef_set()
642 static void dcss_scaler_yuv_coef_set(struct dcss_scaler_ch *ch, in dcss_scaler_yuv_coef_set() argument
657 dcss_scaler_program_7_coef_set(ch, DCSS_SCALER_COEF_HLUM, coef); in dcss_scaler_yuv_coef_set()
664 dcss_scaler_program_5_coef_set(ch, DCSS_SCALER_COEF_VLUM, coef); in dcss_scaler_yuv_coef_set()
666 dcss_scaler_program_7_coef_set(ch, DCSS_SCALER_COEF_VLUM, coef); in dcss_scaler_yuv_coef_set()
680 (src_xres == dst_xres) && (ch->c_hstart == 0), in dcss_scaler_yuv_coef_set()
683 dcss_scaler_program_7_coef_set(ch, DCSS_SCALER_COEF_HCHR, coef); in dcss_scaler_yuv_coef_set()
687 (src_yres == dst_yres) && (ch->c_vstart == 0), in dcss_scaler_yuv_coef_set()
690 dcss_scaler_program_5_coef_set(ch, DCSS_SCALER_COEF_VCHR, coef); in dcss_scaler_yuv_coef_set()
692 dcss_scaler_program_7_coef_set(ch, DCSS_SCALER_COEF_VCHR, coef); in dcss_scaler_yuv_coef_set()
695 static void dcss_scaler_rgb_coef_set(struct dcss_scaler_ch *ch, in dcss_scaler_rgb_coef_set() argument
704 dcss_scaler_program_7_coef_set(ch, DCSS_SCALER_COEF_HLUM, coef); in dcss_scaler_rgb_coef_set()
709 dcss_scaler_program_7_coef_set(ch, DCSS_SCALER_COEF_VLUM, coef); in dcss_scaler_rgb_coef_set()
712 static void dcss_scaler_set_rgb10_order(struct dcss_scaler_ch *ch, in dcss_scaler_set_rgb10_order() argument
720 ch->sdata_ctrl &= ~A2R10G10B10_FORMAT_MASK; in dcss_scaler_set_rgb10_order()
751 ch->sdata_ctrl |= a2r10g10b10_format << A2R10G10B10_FORMAT_POS; in dcss_scaler_set_rgb10_order()
759 struct dcss_scaler_ch *ch = &scl->ch[ch_num]; in dcss_scaler_setup() local
768 dcss_scaler_yuv_enable(ch, true); in dcss_scaler_setup()
783 dcss_scaler_yuv_enable(ch, false); in dcss_scaler_setup()
788 dcss_scaler_fractions_set(ch, src_xres, src_yres, dst_xres, in dcss_scaler_setup()
793 dcss_scaler_yuv_coef_set(ch, src_format, dst_format, in dcss_scaler_setup()
797 dcss_scaler_rgb_coef_set(ch, src_xres, src_yres, in dcss_scaler_setup()
800 dcss_scaler_rtr_8lines_enable(ch, rtr_8line_en); in dcss_scaler_setup()
801 dcss_scaler_bit_depth_set(ch, pixel_depth); in dcss_scaler_setup()
802 dcss_scaler_set_rgb10_order(ch, format); in dcss_scaler_setup()
803 dcss_scaler_format_set(ch, src_format, dst_format); in dcss_scaler_setup()
804 dcss_scaler_res_set(ch, src_xres, src_yres, dst_xres, dst_yres, in dcss_scaler_setup()
816 struct dcss_scaler_ch *ch = &scl->ch[chnum]; in dcss_scaler_write_sclctrl() local
818 if (ch->scaler_ctrl_chgd) { in dcss_scaler_write_sclctrl()
820 ch->scaler_ctrl, in dcss_scaler_write_sclctrl()
821 ch->base_ofs + in dcss_scaler_write_sclctrl()
823 ch->scaler_ctrl_chgd = false; in dcss_scaler_write_sclctrl()