Lines Matching +full:8 +full:- +full:ch
1 // SPDX-License-Identifier: GPL-2.0-or-later
3 * Copyright (C) 2010-2013 Bluecherry, LLC <https://www.bluecherrydvr.com>
19 #define VI_PROG_HSIZE (1280 - 16)
20 #define VI_PROG_VSIZE (1024 - 16)
33 - SOLO_CAP_PAGE_SIZE) >> 16) in solo_capture_config()
37 if (solo_dev->type == SOLO_DEV_6110) { in solo_capture_config()
39 * wacked out frame timing on 4-port 6110. */ in solo_capture_config()
50 width = solo_dev->video_hsize; in solo_capture_config()
51 height = solo_dev->video_vsize; in solo_capture_config()
54 SOLO_DIM_V_MB_NUM_FRAME(height / 8) | in solo_capture_config()
58 width = solo_dev->video_hsize / 2; in solo_capture_config()
59 height = solo_dev->video_vsize; in solo_capture_config()
62 SOLO_DIM_V_MB_NUM_FRAME(height / 8) | in solo_capture_config()
66 width = solo_dev->video_hsize / 2; in solo_capture_config()
67 height = solo_dev->video_vsize / 2; in solo_capture_config()
70 SOLO_DIM_V_MB_NUM_FRAME(height / 8) | in solo_capture_config()
74 width = solo_dev->video_hsize / 3; in solo_capture_config()
75 height = solo_dev->video_vsize / 3; in solo_capture_config()
78 SOLO_DIM_V_MB_NUM_FRAME(height / 8) | in solo_capture_config()
82 width = solo_dev->video_hsize / 4; in solo_capture_config()
83 height = solo_dev->video_vsize / 2; in solo_capture_config()
86 SOLO_DIM_V_MB_NUM_FRAME(height / 8) | in solo_capture_config()
101 0xF0 << 16 | 0x80 << 8 | 0x80); in solo_capture_config()
103 if (solo_dev->type == SOLO_DEV_6010) in solo_capture_config()
115 for (i = 0; i < solo_dev->nr_chans; i++) { in solo_capture_config()
129 struct solo_dev *solo_dev = solo_enc->solo_dev; in solo_osd_print()
130 u8 *str = solo_enc->osd_text; in solo_osd_print()
131 u8 *buf = solo_enc->osd_buf; in solo_osd_print()
138 return -ENODEV; in solo_osd_print()
143 reg &= ~(1 << solo_enc->ch); in solo_osd_print()
148 vga_data = (const u8 *)vga->data; in solo_osd_print()
158 SOLO_EOSD_EXT_ADDR_CHAN(solo_dev, solo_enc->ch), in solo_osd_print()
162 reg |= (1 << solo_enc->ch); in solo_osd_print()
170 * Set channel Quality Profile (0-3).
172 void solo_s_jpeg_qp(struct solo_dev *solo_dev, unsigned int ch, in solo_s_jpeg_qp() argument
178 if ((ch > 31) || (qp > 3)) in solo_s_jpeg_qp()
181 if (solo_dev->type == SOLO_DEV_6010) in solo_s_jpeg_qp()
184 if (ch < 16) { in solo_s_jpeg_qp()
188 ch -= 16; in solo_s_jpeg_qp()
192 ch *= 2; in solo_s_jpeg_qp()
194 spin_lock_irqsave(&solo_dev->jpeg_qp_lock, flags); in solo_s_jpeg_qp()
196 solo_dev->jpeg_qp[idx] &= ~(3 << ch); in solo_s_jpeg_qp()
197 solo_dev->jpeg_qp[idx] |= (qp & 3) << ch; in solo_s_jpeg_qp()
199 solo_reg_write(solo_dev, reg, solo_dev->jpeg_qp[idx]); in solo_s_jpeg_qp()
201 spin_unlock_irqrestore(&solo_dev->jpeg_qp_lock, flags); in solo_s_jpeg_qp()
204 int solo_g_jpeg_qp(struct solo_dev *solo_dev, unsigned int ch) in solo_g_jpeg_qp() argument
208 if (solo_dev->type == SOLO_DEV_6010) in solo_g_jpeg_qp()
211 if (WARN_ON_ONCE(ch > 31)) in solo_g_jpeg_qp()
214 if (ch < 16) { in solo_g_jpeg_qp()
217 ch -= 16; in solo_g_jpeg_qp()
220 ch *= 2; in solo_g_jpeg_qp()
222 return (solo_dev->jpeg_qp[idx] >> ch) & 3; in solo_g_jpeg_qp()
229 if (solo_dev->type == SOLO_DEV_6010) { in solo_jpeg_config()
231 (2 << 24) | (2 << 16) | (2 << 8) | 2); in solo_jpeg_config()
234 (4 << 24) | (3 << 16) | (2 << 8) | 1); in solo_jpeg_config()
237 spin_lock_init(&solo_dev->jpeg_qp_lock); in solo_jpeg_config()
240 solo_dev->jpeg_qp[0] = solo_dev->jpeg_qp[1] = SOLO_QP_INIT; in solo_jpeg_config()
248 if (solo_dev->type == SOLO_DEV_6110) { in solo_jpeg_config()
250 (0 << 16) | (30 << 8) | 60); in solo_jpeg_config()
267 if (solo_dev->type != SOLO_DEV_6010) { in solo_mp4e_config()
278 if (solo_dev->type == SOLO_DEV_6110) in solo_mp4e_config()
288 SOLO_DCT_INTERVAL(solo_dev->type == SOLO_DEV_6010 ? 9 : 10)); in solo_mp4e_config()
290 for (i = 0; i < solo_dev->nr_chans; i++) { in solo_mp4e_config()
299 if (solo_dev->type == SOLO_DEV_6110) { in solo_mp4e_config()
302 for (i = 0; i < solo_dev->nr_chans; i++) in solo_mp4e_config()
315 for (i = 0; i < solo_dev->nr_chans; i++) { in solo_enc_init()
327 for (i = 0; i < solo_dev->nr_chans; i++) { in solo_enc_exit()