• Home
  • Raw
  • Download

Lines Matching +full:0 +full:xfff

13 #define DCSS_SCALER_CTRL			0x00
14 #define SCALER_EN BIT(0)
18 #define DCSS_SCALER_OFIFO_CTRL 0x04
19 #define OFIFO_LOW_THRES_POS 0
20 #define OFIFO_LOW_THRES_MASK GENMASK(9, 0)
29 #define DCSS_SCALER_SDATA_CTRL 0x08
30 #define YUV_EN BIT(0)
35 #define DCSS_SCALER_BIT_DEPTH 0x0C
36 #define LUM_BIT_DEPTH_POS 0
37 #define LUM_BIT_DEPTH_MASK GENMASK(1, 0)
40 #define DCSS_SCALER_SRC_FORMAT 0x10
41 #define DCSS_SCALER_DST_FORMAT 0x14
42 #define FORMAT_MASK GENMASK(1, 0)
43 #define DCSS_SCALER_SRC_LUM_RES 0x18
44 #define DCSS_SCALER_SRC_CHR_RES 0x1C
45 #define DCSS_SCALER_DST_LUM_RES 0x20
46 #define DCSS_SCALER_DST_CHR_RES 0x24
47 #define WIDTH_POS 0
48 #define WIDTH_MASK GENMASK(11, 0)
51 #define DCSS_SCALER_V_LUM_START 0x48
52 #define V_START_MASK GENMASK(15, 0)
53 #define DCSS_SCALER_V_LUM_INC 0x4C
54 #define V_INC_MASK GENMASK(15, 0)
55 #define DCSS_SCALER_H_LUM_START 0x50
56 #define H_START_MASK GENMASK(18, 0)
57 #define DCSS_SCALER_H_LUM_INC 0x54
58 #define H_INC_MASK GENMASK(15, 0)
59 #define DCSS_SCALER_V_CHR_START 0x58
60 #define DCSS_SCALER_V_CHR_INC 0x5C
61 #define DCSS_SCALER_H_CHR_START 0x60
62 #define DCSS_SCALER_H_CHR_INC 0x64
63 #define DCSS_SCALER_COEF_VLUM 0x80
64 #define DCSS_SCALER_COEF_HLUM 0x140
65 #define DCSS_SCALER_COEF_VCHR 0x200
66 #define DCSS_SCALER_COEF_HCHR 0x300
132 if ((temp >= 0 && B >= 0) || (temp < 0 && B < 0)) in div_q()
165 * @fc_q: fixed-point cutoff frequency normalized to range [0, 1]
181 for (phase = 0; phase < PSC_STORED_PHASES; phase++) { in dcss_scaler_gaussian_filter()
182 coef[phase][0] = 0; in dcss_scaler_gaussian_filter()
183 coef[phase][PSC_NUM_TAPS - 1] = 0; in dcss_scaler_gaussian_filter()
201 for (i = 0; i < mid; i++) { in dcss_scaler_gaussian_filter()
221 coef[phase_cnt & PSC_PHASE_MASK][tap_cnt1 >> PSC_BITS_FOR_PHASE] = 0; in dcss_scaler_gaussian_filter()
223 /* override phase 0 with identity filter if specified */ in dcss_scaler_gaussian_filter()
225 for (i = 0; i < PSC_NUM_TAPS; i++) in dcss_scaler_gaussian_filter()
226 coef[0][i] = i == (PSC_NUM_TAPS >> 1) ? in dcss_scaler_gaussian_filter()
227 (1 << PSC_COEFF_PRECISION) : 0; in dcss_scaler_gaussian_filter()
230 for (phase = 0; phase < PSC_STORED_PHASES; phase++) { in dcss_scaler_gaussian_filter()
231 int sum = 0; in dcss_scaler_gaussian_filter()
234 for (i = 0; i < PSC_NUM_TAPS; i++) in dcss_scaler_gaussian_filter()
236 for (i = 0; i < PSC_NUM_TAPS; i++) { in dcss_scaler_gaussian_filter()
251 * @use_5_taps: 0 for 7 taps per phase, 1 for 5 taps
283 for (i = 0; i < 3; i++) { in dcss_scaler_ch_init_all()
286 ch->base_ofs = scaler_base + i * 0x400; in dcss_scaler_ch_init_all()
297 return 0; in dcss_scaler_ch_init_all()
316 for (i = 0; i < 3; i++) { in dcss_scaler_init()
326 return 0; in dcss_scaler_init()
333 for (ch_no = 0; ch_no < 3; ch_no++) { in dcss_scaler_exit()
336 dcss_writel(0, ch->base_reg + DCSS_SCALER_CTRL); in dcss_scaler_exit()
350 scaler_ctrl = en ? SCALER_EN | REPEAT_EN : 0; in dcss_scaler_ch_enable()
364 ch->sdata_ctrl |= en ? YUV_EN : 0; in dcss_scaler_yuv_enable()
370 ch->sdata_ctrl |= en ? RTRAM_8LINES : 0; in dcss_scaler_rtr_8lines_enable()
377 val = depth == 30 ? 2 : 0; in dcss_scaler_bit_depth_set()
392 PSC_LOC_HORZ_0_VERT_1_OVER_4 = 0,
487 c_vstart = 0; in dcss_scaler_fractions_set()
488 c_hstart = 0; in dcss_scaler_fractions_set()
546 dcss_scaler_write(ch, 0, DCSS_SCALER_V_LUM_START); in dcss_scaler_fractions_set()
549 dcss_scaler_write(ch, 0, DCSS_SCALER_H_LUM_START); in dcss_scaler_fractions_set()
565 return 0; in dcss_scaler_get_min_max_ratios()
574 for (i = 0; i < PSC_STORED_PHASES; i++) { in dcss_scaler_program_5_coef_set()
575 dcss_scaler_write(ch, ((coef[i][1] & 0xfff) << 16 | in dcss_scaler_program_5_coef_set()
576 (coef[i][2] & 0xfff) << 4 | in dcss_scaler_program_5_coef_set()
577 (coef[i][3] & 0xf00) >> 8), in dcss_scaler_program_5_coef_set()
579 dcss_scaler_write(ch, ((coef[i][3] & 0x0ff) << 20 | in dcss_scaler_program_5_coef_set()
580 (coef[i][4] & 0xfff) << 8 | in dcss_scaler_program_5_coef_set()
581 (coef[i][5] & 0xff0) >> 4), in dcss_scaler_program_5_coef_set()
582 base_addr + 0x40 + i * sizeof(u32)); in dcss_scaler_program_5_coef_set()
583 dcss_scaler_write(ch, ((coef[i][5] & 0x00f) << 24), in dcss_scaler_program_5_coef_set()
584 base_addr + 0x80 + i * sizeof(u32)); in dcss_scaler_program_5_coef_set()
590 dcss_scaler_write(ch, ((coef[phase][5] & 0xfff) << 16 | in dcss_scaler_program_5_coef_set()
591 (coef[phase][4] & 0xfff) << 4 | in dcss_scaler_program_5_coef_set()
592 (coef[phase][3] & 0xf00) >> 8), in dcss_scaler_program_5_coef_set()
594 dcss_scaler_write(ch, ((coef[phase][3] & 0x0ff) << 20 | in dcss_scaler_program_5_coef_set()
595 (coef[phase][2] & 0xfff) << 8 | in dcss_scaler_program_5_coef_set()
596 (coef[phase][1] & 0xff0) >> 4), in dcss_scaler_program_5_coef_set()
597 base_addr + 0x40 + i * sizeof(u32)); in dcss_scaler_program_5_coef_set()
598 dcss_scaler_write(ch, ((coef[phase][1] & 0x00f) << 24), in dcss_scaler_program_5_coef_set()
599 base_addr + 0x80 + i * sizeof(u32)); in dcss_scaler_program_5_coef_set()
609 for (i = 0; i < PSC_STORED_PHASES; i++) { in dcss_scaler_program_7_coef_set()
610 dcss_scaler_write(ch, ((coef[i][0] & 0xfff) << 16 | in dcss_scaler_program_7_coef_set()
611 (coef[i][1] & 0xfff) << 4 | in dcss_scaler_program_7_coef_set()
612 (coef[i][2] & 0xf00) >> 8), in dcss_scaler_program_7_coef_set()
614 dcss_scaler_write(ch, ((coef[i][2] & 0x0ff) << 20 | in dcss_scaler_program_7_coef_set()
615 (coef[i][3] & 0xfff) << 8 | in dcss_scaler_program_7_coef_set()
616 (coef[i][4] & 0xff0) >> 4), in dcss_scaler_program_7_coef_set()
617 base_addr + 0x40 + i * sizeof(u32)); in dcss_scaler_program_7_coef_set()
618 dcss_scaler_write(ch, ((coef[i][4] & 0x00f) << 24 | in dcss_scaler_program_7_coef_set()
619 (coef[i][5] & 0xfff) << 12 | in dcss_scaler_program_7_coef_set()
620 (coef[i][6] & 0xfff)), in dcss_scaler_program_7_coef_set()
621 base_addr + 0x80 + i * sizeof(u32)); in dcss_scaler_program_7_coef_set()
627 dcss_scaler_write(ch, ((coef[phase][6] & 0xfff) << 16 | in dcss_scaler_program_7_coef_set()
628 (coef[phase][5] & 0xfff) << 4 | in dcss_scaler_program_7_coef_set()
629 (coef[phase][4] & 0xf00) >> 8), in dcss_scaler_program_7_coef_set()
631 dcss_scaler_write(ch, ((coef[phase][4] & 0x0ff) << 20 | in dcss_scaler_program_7_coef_set()
632 (coef[phase][3] & 0xfff) << 8 | in dcss_scaler_program_7_coef_set()
633 (coef[phase][2] & 0xff0) >> 4), in dcss_scaler_program_7_coef_set()
634 base_addr + 0x40 + i * sizeof(u32)); in dcss_scaler_program_7_coef_set()
635 dcss_scaler_write(ch, ((coef[phase][2] & 0x00f) << 24 | in dcss_scaler_program_7_coef_set()
636 (coef[phase][1] & 0xfff) << 12 | in dcss_scaler_program_7_coef_set()
637 (coef[phase][0] & 0xfff)), in dcss_scaler_program_7_coef_set()
638 base_addr + 0x80 + i * sizeof(u32)); in dcss_scaler_program_7_coef_set()
680 (src_xres == dst_xres) && (ch->c_hstart == 0), in dcss_scaler_yuv_coef_set()
687 (src_yres == dst_yres) && (ch->c_vstart == 0), in dcss_scaler_yuv_coef_set()
728 a2r10g10b10_format = 0; in dcss_scaler_set_rgb10_order()
747 a2r10g10b10_format = 0; in dcss_scaler_set_rgb10_order()
760 unsigned int pixel_depth = 0; in dcss_scaler_setup()
815 for (chnum = 0; chnum < 3; chnum++) { in dcss_scaler_write_sclctrl()