Lines Matching refs:ss
73 static void dcss_ss_write(struct dcss_ss *ss, u32 val, u32 ofs)
75 if (!ss->in_use)
76 dcss_writel(val, ss->base_reg + ofs);
78 dcss_ctxld_write(ss->ctxld, ss->ctx_id, val,
79 ss->base_ofs + ofs);
84 struct dcss_ss *ss;
86 ss = devm_kzalloc(dcss->dev, sizeof(*ss), GFP_KERNEL);
87 if (!ss)
90 dcss->ss = ss;
91 ss->dev = dcss->dev;
92 ss->ctxld = dcss->ctxld;
94 ss->base_reg = devm_ioremap(ss->dev, ss_base, SZ_4K);
95 if (!ss->base_reg) {
96 dev_err(ss->dev, "ss: unable to remap ss base\n");
100 ss->base_ofs = ss_base;
101 ss->ctx_id = CTX_SB_HP;
106 void dcss_ss_exit(struct dcss_ss *ss)
109 dcss_writel(0, ss->base_reg + DCSS_SS_SYS_CTRL);
112 void dcss_ss_subsam_set(struct dcss_ss *ss)
114 dcss_ss_write(ss, 0x41614161, DCSS_SS_COEFF);
115 dcss_ss_write(ss, 0, DCSS_SS_MODE);
116 dcss_ss_write(ss, 0x03ff0000, DCSS_SS_CLIP_CB);
117 dcss_ss_write(ss, 0x03ff0000, DCSS_SS_CLIP_CR);
120 void dcss_ss_sync_set(struct dcss_ss *ss, struct videomode *vm,
134 dcss_ss_write(ss, (lrc_y << LRC_Y_POS) | lrc_x, DCSS_SS_DISPLAY);
140 dcss_ss_write(ss, (phsync ? SYNC_POL : 0) |
147 dcss_ss_write(ss, (pvsync ? SYNC_POL : 0) |
154 dcss_ss_write(ss, SYNC_POL | ((u32)de_ulc_y << ULC_Y_POS) | de_ulc_x,
161 dcss_ss_write(ss, (de_lrc_y << LRC_Y_POS) | de_lrc_x, DCSS_SS_DE_LRC);
164 void dcss_ss_enable(struct dcss_ss *ss)
166 dcss_ss_write(ss, RUN_EN, DCSS_SS_SYS_CTRL);
167 ss->in_use = true;
170 void dcss_ss_shutoff(struct dcss_ss *ss)
172 dcss_writel(0, ss->base_reg + DCSS_SS_SYS_CTRL);
173 ss->in_use = false;