Lines Matching +full:0 +full:x63

32 module_param(low_bitrate, bool, 0);
43 u8 value = 0; in zr36060_read()
48 value = (ptr->codec->master_data->readreg(ptr->codec, reg)) & 0xff; in zr36060_read()
59 zrdev_dbg(zr, "0x%02x @0x%04x\n", value, reg); in zr36060_write()
79 zr36060_read(ptr, 0); in zr36060_read_status()
87 (zr36060_read(ptr, ZR060_SF_LO) & 0xFF); in zr36060_read_scalefactor()
89 /* leave 0 selected for an eventually GO from master */ in zr36060_read_scalefactor()
90 zr36060_read(ptr, 0); in zr36060_read_scalefactor()
98 int i = 0; in zr36060_wait_end()
104 "%s: timeout at wait_end (last status: 0x%02x)\n", in zr36060_wait_end()
116 if ((zr36060_read(ptr, ZR060_IDR_DEV) != 0x33) && in zr36060_basic_test()
117 (zr36060_read(ptr, ZR060_IDR_REV) != 0x01)) { in zr36060_basic_test()
128 return 0; /* looks good! */ in zr36060_basic_test()
135 int i = 0; in zr36060_pushit()
137 zrdev_dbg(zr, "%s: write data block to 0x%04x (len=%d)\n", ptr->name, in zr36060_pushit()
155 static const char zr36060_dqt[0x86] = {
156 0xff, 0xdb, //Marker: DQT
157 0x00, 0x84, //Length: 2*65+2
158 0x00, //Pq,Tq first table
159 0x10, 0x0b, 0x0c, 0x0e, 0x0c, 0x0a, 0x10, 0x0e,
160 0x0d, 0x0e, 0x12, 0x11, 0x10, 0x13, 0x18, 0x28,
161 0x1a, 0x18, 0x16, 0x16, 0x18, 0x31, 0x23, 0x25,
162 0x1d, 0x28, 0x3a, 0x33, 0x3d, 0x3c, 0x39, 0x33,
163 0x38, 0x37, 0x40, 0x48, 0x5c, 0x4e, 0x40, 0x44,
164 0x57, 0x45, 0x37, 0x38, 0x50, 0x6d, 0x51, 0x57,
165 0x5f, 0x62, 0x67, 0x68, 0x67, 0x3e, 0x4d, 0x71,
166 0x79, 0x70, 0x64, 0x78, 0x5c, 0x65, 0x67, 0x63,
167 0x01, //Pq,Tq second table
168 0x11, 0x12, 0x12, 0x18, 0x15, 0x18, 0x2f, 0x1a,
169 0x1a, 0x2f, 0x63, 0x42, 0x38, 0x42, 0x63, 0x63,
170 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63,
171 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63,
172 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63,
173 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63,
174 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63,
175 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63
178 static const char zr36060_dht[0x1a4] = {
179 0xff, 0xc4, //Marker: DHT
180 0x01, 0xa2, //Length: 2*AC, 2*DC
181 0x00, //DC first table
182 0x00, 0x01, 0x05, 0x01, 0x01, 0x01, 0x01, 0x01,
183 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
184 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B,
185 0x01, //DC second table
186 0x00, 0x03, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
187 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
188 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B,
189 0x10, //AC first table
190 0x00, 0x02, 0x01, 0x03, 0x03, 0x02, 0x04, 0x03,
191 0x05, 0x05, 0x04, 0x04, 0x00, 0x00,
192 0x01, 0x7D, 0x01, 0x02, 0x03, 0x00, 0x04, 0x11,
193 0x05, 0x12, 0x21, 0x31, 0x41, 0x06, 0x13, 0x51, 0x61,
194 0x07, 0x22, 0x71, 0x14, 0x32, 0x81, 0x91, 0xA1,
195 0x08, 0x23, 0x42, 0xB1, 0xC1, 0x15, 0x52, 0xD1, 0xF0, 0x24,
196 0x33, 0x62, 0x72, 0x82, 0x09, 0x0A, 0x16, 0x17,
197 0x18, 0x19, 0x1A, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x34,
198 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x43, 0x44,
199 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x53, 0x54, 0x55, 0x56,
200 0x57, 0x58, 0x59, 0x5A, 0x63, 0x64, 0x65, 0x66,
201 0x67, 0x68, 0x69, 0x6A, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78,
202 0x79, 0x7A, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88,
203 0x89, 0x8A, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99,
204 0x9A, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8,
205 0xA9, 0xAA, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9,
206 0xBA, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8,
207 0xC9, 0xCA, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9,
208 0xDA, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
209 0xE8, 0xE9, 0xEA, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
210 0xF8, 0xF9, 0xFA,
211 0x11, //AC second table
212 0x00, 0x02, 0x01, 0x02, 0x04, 0x04, 0x03, 0x04,
213 0x07, 0x05, 0x04, 0x04, 0x00, 0x01,
214 0x02, 0x77, 0x00, 0x01, 0x02, 0x03, 0x11, 0x04,
215 0x05, 0x21, 0x31, 0x06, 0x12, 0x41, 0x51, 0x07, 0x61, 0x71,
216 0x13, 0x22, 0x32, 0x81, 0x08, 0x14, 0x42, 0x91,
217 0xA1, 0xB1, 0xC1, 0x09, 0x23, 0x33, 0x52, 0xF0, 0x15, 0x62,
218 0x72, 0xD1, 0x0A, 0x16, 0x24, 0x34, 0xE1, 0x25,
219 0xF1, 0x17, 0x18, 0x19, 0x1A, 0x26, 0x27, 0x28, 0x29, 0x2A,
220 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x43, 0x44,
221 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x53, 0x54, 0x55, 0x56,
222 0x57, 0x58, 0x59, 0x5A, 0x63, 0x64, 0x65, 0x66,
223 0x67, 0x68, 0x69, 0x6A, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78,
224 0x79, 0x7A, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
225 0x88, 0x89, 0x8A, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98,
226 0x99, 0x9A, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7,
227 0xA8, 0xA9, 0xAA, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8,
228 0xB9, 0xBA, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7,
229 0xC8, 0xC9, 0xCA, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8,
230 0xD9, 0xDA, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
231 0xE8, 0xE9, 0xEA, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8,
232 0xF9, 0xFA
236 #define NO_OF_COMPONENTS 0x3 //Y,U,V
237 #define BASELINE_PRECISION 0x8 //MCU size (?)
238 static const char zr36060_tq[8] = { 0, 1, 1, 0, 0, 0, 0, 0 }; //table idx's QT
239 static const char zr36060_td[8] = { 0, 1, 1, 0, 0, 0, 0, 0 }; //table idx's DC
240 static const char zr36060_ta[8] = { 0, 1, 1, 0, 0, 0, 0, 0 }; //table idx's AC
243 static const char zr36060_decimation_h[8] = { 2, 1, 1, 0, 0, 0, 0, 0 };
244 static const char zr36060_decimation_v[8] = { 1, 1, 1, 0, 0, 0, 0, 0 };
258 sof_data[0] = 0xff; in zr36060_set_sof()
259 sof_data[1] = 0xc0; in zr36060_set_sof()
260 sof_data[2] = 0x00; in zr36060_set_sof()
264 sof_data[6] = (ptr->height) & 0xff; in zr36060_set_sof()
266 sof_data[8] = (ptr->width) & 0xff; in zr36060_set_sof()
268 for (i = 0; i < NO_OF_COMPONENTS; i++) { in zr36060_set_sof()
286 sos_data[0] = 0xff; in zr36060_set_sos()
287 sos_data[1] = 0xda; in zr36060_set_sos()
288 sos_data[2] = 0x00; in zr36060_set_sos()
291 for (i = 0; i < NO_OF_COMPONENTS; i++) { in zr36060_set_sos()
297 sos_data[2 + 1 + (2 * NO_OF_COMPONENTS) + 3] = 0x3f; in zr36060_set_sos()
311 dri_data[0] = 0xff; in zr36060_set_dri()
312 dri_data[1] = 0xdd; in zr36060_set_dri()
313 dri_data[2] = 0x00; in zr36060_set_dri()
314 dri_data[3] = 0x04; in zr36060_set_dri()
316 dri_data[5] = (ptr->dri) & 0xff; in zr36060_set_dri()
325 int sum = 0; in zr36060_init()
342 zr36060_write(ptr, ZR060_MBZ, 0x00); in zr36060_init()
343 zr36060_write(ptr, ZR060_TCR_HI, 0x00); in zr36060_init()
344 zr36060_write(ptr, ZR060_TCR_LO, 0x00); in zr36060_init()
347 zr36060_write(ptr, ZR060_IMR, 0); in zr36060_init()
351 zr36060_write(ptr, ZR060_SF_LO, ptr->scalefact & 0xff); in zr36060_init()
353 zr36060_write(ptr, ZR060_AF_HI, 0xff); in zr36060_init()
354 zr36060_write(ptr, ZR060_AF_M, 0xff); in zr36060_init()
355 zr36060_write(ptr, ZR060_AF_LO, 0xff); in zr36060_init()
365 zr36060_write(ptr, ZR060_APP_IDX, 0xff); in zr36060_init()
366 zr36060_write(ptr, ZR060_APP_IDX + 1, 0xe0 + ptr->app.appn); in zr36060_init()
367 zr36060_write(ptr, ZR060_APP_IDX + 2, 0x00); in zr36060_init()
370 zr36060_write(ptr, ZR060_COM_IDX, 0xff); in zr36060_init()
371 zr36060_write(ptr, ZR060_COM_IDX + 1, 0xfe); in zr36060_init()
372 zr36060_write(ptr, ZR060_COM_IDX + 2, 0x00); in zr36060_init()
387 zr36060_write(ptr, ZR060_TCV_NET_MH, tmp & 0xff); in zr36060_init()
388 tmp = bitcnt & 0xffff; in zr36060_init()
390 zr36060_write(ptr, ZR060_TCV_NET_LO, tmp & 0xff); in zr36060_init()
399 zr36060_write(ptr, ZR060_TCV_DATA_MH, tmp & 0xff); in zr36060_init()
400 tmp = bitcnt & 0xffff; in zr36060_init()
402 zr36060_write(ptr, ZR060_TCV_DATA_LO, tmp & 0xff); in zr36060_init()
407 ((ptr->com.len > 0) ? ZR060_MER_COM : 0) | in zr36060_init()
408 ((ptr->app.len > 0) ? ZR060_MER_APP : 0)); in zr36060_init()
423 zr36060_write(ptr, ZR060_CMR, 0); in zr36060_init()
426 zr36060_write(ptr, ZR060_MBZ, 0x00); in zr36060_init()
427 zr36060_write(ptr, ZR060_TCR_HI, 0x00); in zr36060_init()
428 zr36060_write(ptr, ZR060_TCR_LO, 0x00); in zr36060_init()
431 zr36060_write(ptr, ZR060_IMR, 0); in zr36060_init()
434 zr36060_write(ptr, ZR060_MER, 0); in zr36060_init()
448 zrdev_dbg(zr, "%s: Status after table preload: 0x%02x\n", in zr36060_init()
479 return 0; in zr36060_set_mode()
498 ptr->width = cap->width / (cap->decimation & 0xff); in zr36060_set_video()
505 * N.b. for VSPol this is only true if FIVEdge = 0 (default, in zr36060_set_video()
508 reg = (!pol->vsync_pol ? ZR060_VPR_VS_POL : 0) in zr36060_set_video()
509 | (!pol->hsync_pol ? ZR060_VPR_HS_POL : 0) in zr36060_set_video()
510 | (pol->field_pol ? ZR060_VPR_FI_POL : 0) in zr36060_set_video()
511 | (pol->blank_pol ? ZR060_VPR_BL_POL : 0) in zr36060_set_video()
512 | (pol->subimg_pol ? ZR060_VPR_S_IMG_POL : 0) in zr36060_set_video()
513 | (pol->poe_pol ? ZR060_VPR_POE_POL : 0) in zr36060_set_video()
514 | (pol->pvalid_pol ? ZR060_VPR_P_VAL_POL : 0) in zr36060_set_video()
515 | (pol->vclk_pol ? ZR060_VPR_VCLK_POL : 0); in zr36060_set_video()
518 reg = 0; in zr36060_set_video()
519 switch (cap->decimation & 0xff) { in zr36060_set_video()
544 zr36060_write(ptr, ZR060_BCR_Y, 0x00); in zr36060_set_video()
545 zr36060_write(ptr, ZR060_BCR_U, 0x80); in zr36060_set_video()
546 zr36060_write(ptr, ZR060_BCR_V, 0x80); in zr36060_set_video()
551 zr36060_write(ptr, ZR060_SGR_VTOTAL_HI, (reg >> 8) & 0xff); in zr36060_set_video()
552 zr36060_write(ptr, ZR060_SGR_VTOTAL_LO, (reg >> 0) & 0xff); in zr36060_set_video()
555 zr36060_write(ptr, ZR060_SGR_HTOTAL_HI, (reg >> 8) & 0xff); in zr36060_set_video()
556 zr36060_write(ptr, ZR060_SGR_HTOTAL_LO, (reg >> 0) & 0xff); in zr36060_set_video()
568 zr36060_write(ptr, ZR060_SGR_BVEND_HI, (reg >> 8) & 0xff); in zr36060_set_video()
569 zr36060_write(ptr, ZR060_SGR_BVEND_LO, (reg >> 0) & 0xff); in zr36060_set_video()
575 zr36060_write(ptr, ZR060_SGR_BHEND_HI, (reg >> 8) & 0xff); in zr36060_set_video()
576 zr36060_write(ptr, ZR060_SGR_BHEND_LO, (reg >> 0) & 0xff); in zr36060_set_video()
580 zr36060_write(ptr, ZR060_AAR_VSTART_HI, (reg >> 8) & 0xff); in zr36060_set_video()
581 zr36060_write(ptr, ZR060_AAR_VSTART_LO, (reg >> 0) & 0xff); in zr36060_set_video()
584 zr36060_write(ptr, ZR060_AAR_VEND_HI, (reg >> 8) & 0xff); in zr36060_set_video()
585 zr36060_write(ptr, ZR060_AAR_VEND_LO, (reg >> 0) & 0xff); in zr36060_set_video()
588 zr36060_write(ptr, ZR060_AAR_HSTART_HI, (reg >> 8) & 0xff); in zr36060_set_video()
589 zr36060_write(ptr, ZR060_AAR_HSTART_LO, (reg >> 0) & 0xff); in zr36060_set_video()
592 zr36060_write(ptr, ZR060_AAR_HEND_HI, (reg >> 8) & 0xff); in zr36060_set_video()
593 zr36060_write(ptr, ZR060_AAR_HEND_LO, (reg >> 0) & 0xff); in zr36060_set_video()
597 zr36060_write(ptr, ZR060_SWR_VSTART_HI, (reg >> 8) & 0xff); in zr36060_set_video()
598 zr36060_write(ptr, ZR060_SWR_VSTART_LO, (reg >> 0) & 0xff); in zr36060_set_video()
601 zr36060_write(ptr, ZR060_SWR_VEND_HI, (reg >> 8) & 0xff); in zr36060_set_video()
602 zr36060_write(ptr, ZR060_SWR_VEND_LO, (reg >> 0) & 0xff); in zr36060_set_video()
605 zr36060_write(ptr, ZR060_SWR_HSTART_HI, (reg >> 8) & 0xff); in zr36060_set_video()
606 zr36060_write(ptr, ZR060_SWR_HSTART_LO, (reg >> 0) & 0xff); in zr36060_set_video()
609 zr36060_write(ptr, ZR060_SWR_HEND_HI, (reg >> 8) & 0xff); in zr36060_set_video()
610 zr36060_write(ptr, ZR060_SWR_HEND_LO, (reg >> 0) & 0xff); in zr36060_set_video()
638 return 0; in zr36060_set_video()
671 return 0; in zr36060_control()
676 return 0; in zr36060_control()
772 return 0; in zr36060_unset()
810 if (res < 0) { in zr36060_setup()
818 ptr->bitrate_ctrl = 0; /* 0 or 1 - fixed file size flag (what is the difference?) */ in zr36060_setup()
825 ptr->scalefact = 0x100; in zr36060_setup()
829 ptr->com.len = 0; in zr36060_setup()
830 ptr->app.appn = 0; in zr36060_setup()
831 ptr->app.len = 0; in zr36060_setup()
837 return 0; in zr36060_setup()
842 .magic = 0L, // magic not used
857 zr36060_codecs = 0; in zr36060_init_module()