Lines Matching refs:ptr
72 zr36050_read (struct zr36050 *ptr, in zr36050_read() argument
78 if (ptr->codec->master_data->readreg) in zr36050_read()
79 value = (ptr->codec->master_data->readreg(ptr->codec, in zr36050_read()
84 ptr->name); in zr36050_read()
86 dprintk(4, "%s: reading from 0x%04x: %02x\n", ptr->name, reg, in zr36050_read()
93 zr36050_write (struct zr36050 *ptr, in zr36050_write() argument
97 dprintk(4, "%s: writing 0x%02x to 0x%04x\n", ptr->name, value, in zr36050_write()
101 if (ptr->codec->master_data->writereg) in zr36050_write()
102 ptr->codec->master_data->writereg(ptr->codec, reg, value); in zr36050_write()
107 ptr->name); in zr36050_write()
118 zr36050_read_status1 (struct zr36050 *ptr) in zr36050_read_status1() argument
120 ptr->status1 = zr36050_read(ptr, ZR050_STATUS_1); in zr36050_read_status1()
122 zr36050_read(ptr, 0); in zr36050_read_status1()
123 return ptr->status1; in zr36050_read_status1()
134 zr36050_read_scalefactor (struct zr36050 *ptr) in zr36050_read_scalefactor() argument
136 ptr->scalefact = (zr36050_read(ptr, ZR050_SF_HI) << 8) | in zr36050_read_scalefactor()
137 (zr36050_read(ptr, ZR050_SF_LO) & 0xFF); in zr36050_read_scalefactor()
140 zr36050_read(ptr, 0); in zr36050_read_scalefactor()
141 return ptr->scalefact; in zr36050_read_scalefactor()
151 zr36050_wait_end (struct zr36050 *ptr) in zr36050_wait_end() argument
155 while (!(zr36050_read_status1(ptr) & 0x4)) { in zr36050_wait_end()
160 ptr->name, ptr->status1); in zr36050_wait_end()
173 zr36050_basic_test (struct zr36050 *ptr) in zr36050_basic_test() argument
175 zr36050_write(ptr, ZR050_SOF_IDX, 0x00); in zr36050_basic_test()
176 zr36050_write(ptr, ZR050_SOF_IDX + 1, 0x00); in zr36050_basic_test()
177 if ((zr36050_read(ptr, ZR050_SOF_IDX) | in zr36050_basic_test()
178 zr36050_read(ptr, ZR050_SOF_IDX + 1)) != 0x0000) { in zr36050_basic_test()
182 ptr->name); in zr36050_basic_test()
185 zr36050_write(ptr, ZR050_SOF_IDX, 0xff); in zr36050_basic_test()
186 zr36050_write(ptr, ZR050_SOF_IDX + 1, 0xc0); in zr36050_basic_test()
187 if (((zr36050_read(ptr, ZR050_SOF_IDX) << 8) | in zr36050_basic_test()
188 zr36050_read(ptr, ZR050_SOF_IDX + 1)) != 0xffc0) { in zr36050_basic_test()
192 ptr->name); in zr36050_basic_test()
196 zr36050_wait_end(ptr); in zr36050_basic_test()
197 if ((ptr->status1 & 0x4) == 0) { in zr36050_basic_test()
201 ptr->name); in zr36050_basic_test()
215 zr36050_pushit (struct zr36050 *ptr, in zr36050_pushit() argument
222 dprintk(4, "%s: write data block to 0x%04x (len=%d)\n", ptr->name, in zr36050_pushit()
225 zr36050_write(ptr, startreg++, data[i++]); in zr36050_pushit()
346 zr36050_set_sof (struct zr36050 *ptr) in zr36050_set_sof() argument
351 dprintk(3, "%s: write SOF (%dx%d, %d components)\n", ptr->name, in zr36050_set_sof()
352 ptr->width, ptr->height, NO_OF_COMPONENTS); in zr36050_set_sof()
358 sof_data[5] = (ptr->height) >> 8; in zr36050_set_sof()
359 sof_data[6] = (ptr->height) & 0xff; in zr36050_set_sof()
360 sof_data[7] = (ptr->width) >> 8; in zr36050_set_sof()
361 sof_data[8] = (ptr->width) & 0xff; in zr36050_set_sof()
365 sof_data[11 + (i * 3)] = (ptr->h_samp_ratio[i] << 4) | (ptr->v_samp_ratio[i]); // sampling ratios in zr36050_set_sof()
368 return zr36050_pushit(ptr, ZR050_SOF_IDX, in zr36050_set_sof()
378 zr36050_set_sos (struct zr36050 *ptr) in zr36050_set_sos() argument
383 dprintk(3, "%s: write SOS\n", ptr->name); in zr36050_set_sos()
396 return zr36050_pushit(ptr, ZR050_SOS1_IDX, in zr36050_set_sos()
406 zr36050_set_dri (struct zr36050 *ptr) in zr36050_set_dri() argument
410 dprintk(3, "%s: write DRI\n", ptr->name); in zr36050_set_dri()
415 dri_data[4] = ptr->dri >> 8; in zr36050_set_dri()
416 dri_data[5] = ptr->dri & 0xff; in zr36050_set_dri()
417 return zr36050_pushit(ptr, ZR050_DRI_IDX, 6, dri_data); in zr36050_set_dri()
429 zr36050_init (struct zr36050 *ptr) in zr36050_init() argument
434 if (ptr->mode == CODEC_DO_COMPRESSION) { in zr36050_init()
435 dprintk(2, "%s: COMPRESSION SETUP\n", ptr->name); in zr36050_init()
438 zr36050_write(ptr, ZR050_HARDWARE, ZR050_HW_MSTR); in zr36050_init()
441 zr36050_write(ptr, ZR050_MODE, in zr36050_init()
443 zr36050_write(ptr, ZR050_OPTIONS, 0); in zr36050_init()
446 zr36050_write(ptr, ZR050_INT_REQ_0, 0); in zr36050_init()
447 zr36050_write(ptr, ZR050_INT_REQ_1, 3); // low 2 bits always 1 in zr36050_init()
451 zr36050_write(ptr, ZR050_SF_HI, ptr->scalefact >> 8); in zr36050_init()
452 zr36050_write(ptr, ZR050_SF_LO, ptr->scalefact & 0xff); in zr36050_init()
454 zr36050_write(ptr, ZR050_AF_HI, 0xff); in zr36050_init()
455 zr36050_write(ptr, ZR050_AF_M, 0xff); in zr36050_init()
456 zr36050_write(ptr, ZR050_AF_LO, 0xff); in zr36050_init()
459 sum += zr36050_set_sof(ptr); in zr36050_init()
460 sum += zr36050_set_sos(ptr); in zr36050_init()
461 sum += zr36050_set_dri(ptr); in zr36050_init()
465 dprintk(3, "%s: write DQT, DHT, APP\n", ptr->name); in zr36050_init()
466 sum += zr36050_pushit(ptr, ZR050_DQT_IDX, in zr36050_init()
468 sum += zr36050_pushit(ptr, ZR050_DHT_IDX, in zr36050_init()
470 zr36050_write(ptr, ZR050_APP_IDX, 0xff); in zr36050_init()
471 zr36050_write(ptr, ZR050_APP_IDX + 1, 0xe0 + ptr->app.appn); in zr36050_init()
472 zr36050_write(ptr, ZR050_APP_IDX + 2, 0x00); in zr36050_init()
473 zr36050_write(ptr, ZR050_APP_IDX + 3, ptr->app.len + 2); in zr36050_init()
474 sum += zr36050_pushit(ptr, ZR050_APP_IDX + 4, 60, in zr36050_init()
475 ptr->app.data) + 4; in zr36050_init()
476 zr36050_write(ptr, ZR050_COM_IDX, 0xff); in zr36050_init()
477 zr36050_write(ptr, ZR050_COM_IDX + 1, 0xfe); in zr36050_init()
478 zr36050_write(ptr, ZR050_COM_IDX + 2, 0x00); in zr36050_init()
479 zr36050_write(ptr, ZR050_COM_IDX + 3, ptr->com.len + 2); in zr36050_init()
480 sum += zr36050_pushit(ptr, ZR050_COM_IDX + 4, 60, in zr36050_init()
481 ptr->com.data) + 4; in zr36050_init()
484 zr36050_write(ptr, ZR050_MARKERS_EN, ZR050_ME_DHTI); in zr36050_init()
486 zr36050_write(ptr, ZR050_GO, 1); // launch codec in zr36050_init()
487 zr36050_wait_end(ptr); in zr36050_init()
489 ptr->name, ptr->status1); in zr36050_init()
491 if ((ptr->status1 & 0x4) == 0) { in zr36050_init()
493 ptr->name); in zr36050_init()
500 sum = ptr->real_code_vol - sum; in zr36050_init()
506 ptr->name, sum, ptr->real_code_vol, bitcnt, tmp); in zr36050_init()
507 zr36050_write(ptr, ZR050_TCV_NET_HI, tmp >> 8); in zr36050_init()
508 zr36050_write(ptr, ZR050_TCV_NET_MH, tmp & 0xff); in zr36050_init()
510 zr36050_write(ptr, ZR050_TCV_NET_ML, tmp >> 8); in zr36050_init()
511 zr36050_write(ptr, ZR050_TCV_NET_LO, tmp & 0xff); in zr36050_init()
518 ptr->name, bitcnt, tmp); in zr36050_init()
519 zr36050_write(ptr, ZR050_TCV_DATA_HI, tmp >> 8); in zr36050_init()
520 zr36050_write(ptr, ZR050_TCV_DATA_MH, tmp & 0xff); in zr36050_init()
522 zr36050_write(ptr, ZR050_TCV_DATA_ML, tmp >> 8); in zr36050_init()
523 zr36050_write(ptr, ZR050_TCV_DATA_LO, tmp & 0xff); in zr36050_init()
526 zr36050_write(ptr, ZR050_MODE, in zr36050_init()
528 (ptr->bitrate_ctrl ? ZR050_MO_BRC : 0)); in zr36050_init()
531 zr36050_write(ptr, ZR050_MARKERS_EN, in zr36050_init()
533 ((ptr->app.len > 0) ? ZR050_ME_APP : 0) | in zr36050_init()
534 ((ptr->com.len > 0) ? ZR050_ME_COM : 0)); in zr36050_init()
536 dprintk(2, "%s: EXPANSION SETUP\n", ptr->name); in zr36050_init()
539 zr36050_write(ptr, ZR050_HARDWARE, in zr36050_init()
543 zr36050_write(ptr, ZR050_MODE, ZR050_MO_TLM); in zr36050_init()
546 zr36050_write(ptr, ZR050_INT_REQ_0, 0); in zr36050_init()
547 zr36050_write(ptr, ZR050_INT_REQ_1, 3); // low 2 bits always 1 in zr36050_init()
549 dprintk(3, "%s: write DHT\n", ptr->name); in zr36050_init()
550 zr36050_pushit(ptr, ZR050_DHT_IDX, sizeof(zr36050_dht), in zr36050_init()
554 zr36050_write(ptr, ZR050_MARKERS_EN, ZR050_ME_DHTI); in zr36050_init()
556 zr36050_write(ptr, ZR050_GO, 1); // launch codec in zr36050_init()
557 zr36050_wait_end(ptr); in zr36050_init()
559 ptr->name, ptr->status1); in zr36050_init()
561 if ((ptr->status1 & 0x4) == 0) { in zr36050_init()
563 ptr->name); in zr36050_init()
568 zr36050_write(ptr, ZR050_MODE, 0); in zr36050_init()
569 zr36050_write(ptr, ZR050_MARKERS_EN, 0); in zr36050_init()
573 zr36050_read(ptr, 0); in zr36050_init()
588 struct zr36050 *ptr = (struct zr36050 *) codec->data; in zr36050_set_mode() local
590 dprintk(2, "%s: set_mode %d call\n", ptr->name, mode); in zr36050_set_mode()
595 ptr->mode = mode; in zr36050_set_mode()
596 zr36050_init(ptr); in zr36050_set_mode()
608 struct zr36050 *ptr = (struct zr36050 *) codec->data; in zr36050_set_video() local
612 ptr->name, norm->HStart, norm->VStart, in zr36050_set_video()
618 ptr->width = cap->width / (cap->decimation & 0xff); in zr36050_set_video()
619 ptr->height = cap->height / ((cap->decimation >> 8) & 0xff); in zr36050_set_video()
622 size = ptr->width * ptr->height; in zr36050_set_video()
631 if (size > ptr->total_code_vol * 7) in zr36050_set_video()
632 size = ptr->total_code_vol * 7; in zr36050_set_video()
634 ptr->real_code_vol = size >> 3; /* in bytes */ in zr36050_set_video()
638 zr36050_write(ptr, ZR050_MBCV, ptr->max_block_vol); in zr36050_set_video()
650 struct zr36050 *ptr = (struct zr36050 *) codec->data; in zr36050_control() local
653 dprintk(2, "%s: control %d call with %d byte\n", ptr->name, type, in zr36050_control()
660 zr36050_read_status1(ptr); in zr36050_control()
661 *ival = ptr->status1; in zr36050_control()
690 *ival = ptr->total_code_vol; in zr36050_control()
696 ptr->total_code_vol = *ival; in zr36050_control()
699 ptr->real_code_vol = (ptr->total_code_vol * 6) >> 3; in zr36050_control()
705 *ival = zr36050_read_scalefactor(ptr); in zr36050_control()
711 ptr->scalefact = *ival; in zr36050_control()
720 *app = ptr->app; in zr36050_control()
730 ptr->app = *app; in zr36050_control()
740 *com = ptr->com; in zr36050_control()
750 ptr->com = *com; in zr36050_control()
770 struct zr36050 *ptr = codec->data; in zr36050_unset() local
772 if (ptr) { in zr36050_unset()
775 dprintk(1, "%s: finished codec #%d\n", ptr->name, in zr36050_unset()
776 ptr->num); in zr36050_unset()
777 kfree(ptr); in zr36050_unset()
799 struct zr36050 *ptr; in zr36050_setup() local
811 codec->data = ptr = kzalloc(sizeof(struct zr36050), GFP_KERNEL); in zr36050_setup()
812 if (NULL == ptr) { in zr36050_setup()
817 snprintf(ptr->name, sizeof(ptr->name), "zr36050[%d]", in zr36050_setup()
819 ptr->num = zr36050_codecs++; in zr36050_setup()
820 ptr->codec = codec; in zr36050_setup()
823 res = zr36050_basic_test(ptr); in zr36050_setup()
829 memcpy(ptr->h_samp_ratio, zr36050_decimation_h, 8); in zr36050_setup()
830 memcpy(ptr->v_samp_ratio, zr36050_decimation_v, 8); in zr36050_setup()
832 ptr->bitrate_ctrl = 0; /* 0 or 1 - fixed file size flag in zr36050_setup()
834 ptr->mode = CODEC_DO_COMPRESSION; in zr36050_setup()
835 ptr->width = 384; in zr36050_setup()
836 ptr->height = 288; in zr36050_setup()
837 ptr->total_code_vol = 16000; in zr36050_setup()
838 ptr->max_block_vol = 240; in zr36050_setup()
839 ptr->scalefact = 0x100; in zr36050_setup()
840 ptr->dri = 1; in zr36050_setup()
843 ptr->app.appn = 0; in zr36050_setup()
844 ptr->app.len = 0; in zr36050_setup()
845 ptr->com.len = 0; in zr36050_setup()
847 zr36050_init(ptr); in zr36050_setup()
850 ptr->name); in zr36050_setup()