Lines Matching refs:ptr
76 zr36060_read (struct zr36060 *ptr, in zr36060_read() argument
82 if (ptr->codec->master_data->readreg) in zr36060_read()
83 value = (ptr->codec->master_data->readreg(ptr->codec, in zr36060_read()
88 ptr->name); in zr36060_read()
96 zr36060_write(struct zr36060 *ptr, in zr36060_write() argument
104 if (ptr->codec->master_data->writereg) in zr36060_write()
105 ptr->codec->master_data->writereg(ptr->codec, reg, value); in zr36060_write()
110 ptr->name); in zr36060_write()
121 zr36060_read_status (struct zr36060 *ptr) in zr36060_read_status() argument
123 ptr->status = zr36060_read(ptr, ZR060_CFSR); in zr36060_read_status()
125 zr36060_read(ptr, 0); in zr36060_read_status()
126 return ptr->status; in zr36060_read_status()
137 zr36060_read_scalefactor (struct zr36060 *ptr) in zr36060_read_scalefactor() argument
139 ptr->scalefact = (zr36060_read(ptr, ZR060_SF_HI) << 8) | in zr36060_read_scalefactor()
140 (zr36060_read(ptr, ZR060_SF_LO) & 0xFF); in zr36060_read_scalefactor()
143 zr36060_read(ptr, 0); in zr36060_read_scalefactor()
144 return ptr->scalefact; in zr36060_read_scalefactor()
154 zr36060_wait_end (struct zr36060 *ptr) in zr36060_wait_end() argument
158 while (zr36060_read_status(ptr) & ZR060_CFSR_Busy) { in zr36060_wait_end()
163 ptr->name, ptr->status); in zr36060_wait_end()
176 zr36060_basic_test (struct zr36060 *ptr) in zr36060_basic_test() argument
178 if ((zr36060_read(ptr, ZR060_IDR_DEV) != 0x33) && in zr36060_basic_test()
179 (zr36060_read(ptr, ZR060_IDR_REV) != 0x01)) { in zr36060_basic_test()
183 ptr->name); in zr36060_basic_test()
187 zr36060_wait_end(ptr); in zr36060_basic_test()
188 if (ptr->status & ZR060_CFSR_Busy) { in zr36060_basic_test()
192 ptr->name); in zr36060_basic_test()
206 zr36060_pushit (struct zr36060 *ptr, in zr36060_pushit() argument
213 dprintk(4, "%s: write data block to 0x%04x (len=%d)\n", ptr->name, in zr36060_pushit()
216 zr36060_write(ptr, startreg++, data[i++]); in zr36060_pushit()
337 zr36060_set_sof (struct zr36060 *ptr) in zr36060_set_sof() argument
342 dprintk(3, "%s: write SOF (%dx%d, %d components)\n", ptr->name, in zr36060_set_sof()
343 ptr->width, ptr->height, NO_OF_COMPONENTS); in zr36060_set_sof()
349 sof_data[5] = (ptr->height) >> 8; in zr36060_set_sof()
350 sof_data[6] = (ptr->height) & 0xff; in zr36060_set_sof()
351 sof_data[7] = (ptr->width) >> 8; in zr36060_set_sof()
352 sof_data[8] = (ptr->width) & 0xff; in zr36060_set_sof()
356 sof_data[11 + (i * 3)] = (ptr->h_samp_ratio[i] << 4) | in zr36060_set_sof()
357 (ptr->v_samp_ratio[i]); // sampling ratios in zr36060_set_sof()
360 return zr36060_pushit(ptr, ZR060_SOF_IDX, in zr36060_set_sof()
370 zr36060_set_sos (struct zr36060 *ptr) in zr36060_set_sos() argument
375 dprintk(3, "%s: write SOS\n", ptr->name); in zr36060_set_sos()
389 return zr36060_pushit(ptr, ZR060_SOS_IDX, in zr36060_set_sos()
399 zr36060_set_dri (struct zr36060 *ptr) in zr36060_set_dri() argument
403 dprintk(3, "%s: write DRI\n", ptr->name); in zr36060_set_dri()
408 dri_data[4] = (ptr->dri) >> 8; in zr36060_set_dri()
409 dri_data[5] = (ptr->dri) & 0xff; in zr36060_set_dri()
410 return zr36060_pushit(ptr, ZR060_DRI_IDX, 6, dri_data); in zr36060_set_dri()
422 zr36060_init (struct zr36060 *ptr) in zr36060_init() argument
427 if (ptr->mode == CODEC_DO_COMPRESSION) { in zr36060_init()
428 dprintk(2, "%s: COMPRESSION SETUP\n", ptr->name); in zr36060_init()
430 zr36060_write(ptr, ZR060_LOAD, ZR060_LOAD_SyncRst); in zr36060_init()
433 zr36060_write(ptr, ZR060_CIR, ZR060_CIR_CodeMstr); in zr36060_init()
437 zr36060_write(ptr, ZR060_CMR, in zr36060_init()
442 zr36060_write(ptr, ZR060_MBZ, 0x00); in zr36060_init()
443 zr36060_write(ptr, ZR060_TCR_HI, 0x00); in zr36060_init()
444 zr36060_write(ptr, ZR060_TCR_LO, 0x00); in zr36060_init()
447 zr36060_write(ptr, ZR060_IMR, 0); in zr36060_init()
450 zr36060_write(ptr, ZR060_SF_HI, ptr->scalefact >> 8); in zr36060_init()
451 zr36060_write(ptr, ZR060_SF_LO, ptr->scalefact & 0xff); in zr36060_init()
453 zr36060_write(ptr, ZR060_AF_HI, 0xff); in zr36060_init()
454 zr36060_write(ptr, ZR060_AF_M, 0xff); in zr36060_init()
455 zr36060_write(ptr, ZR060_AF_LO, 0xff); in zr36060_init()
458 sum += zr36060_set_sof(ptr); in zr36060_init()
459 sum += zr36060_set_sos(ptr); in zr36060_init()
460 sum += zr36060_set_dri(ptr); in zr36060_init()
465 zr36060_pushit(ptr, ZR060_DQT_IDX, sizeof(zr36060_dqt), in zr36060_init()
468 zr36060_pushit(ptr, ZR060_DHT_IDX, sizeof(zr36060_dht), in zr36060_init()
470 zr36060_write(ptr, ZR060_APP_IDX, 0xff); in zr36060_init()
471 zr36060_write(ptr, ZR060_APP_IDX + 1, 0xe0 + ptr->app.appn); in zr36060_init()
472 zr36060_write(ptr, ZR060_APP_IDX + 2, 0x00); in zr36060_init()
473 zr36060_write(ptr, ZR060_APP_IDX + 3, ptr->app.len + 2); in zr36060_init()
474 sum += zr36060_pushit(ptr, ZR060_APP_IDX + 4, 60, in zr36060_init()
475 ptr->app.data) + 4; in zr36060_init()
476 zr36060_write(ptr, ZR060_COM_IDX, 0xff); in zr36060_init()
477 zr36060_write(ptr, ZR060_COM_IDX + 1, 0xfe); in zr36060_init()
478 zr36060_write(ptr, ZR060_COM_IDX + 2, 0x00); in zr36060_init()
479 zr36060_write(ptr, ZR060_COM_IDX + 3, ptr->com.len + 2); in zr36060_init()
480 sum += zr36060_pushit(ptr, ZR060_COM_IDX + 4, 60, in zr36060_init()
481 ptr->com.data) + 4; in zr36060_init()
486 sum = ptr->real_code_vol - sum; in zr36060_init()
492 ptr->name, sum, ptr->real_code_vol, bitcnt, tmp); in zr36060_init()
493 zr36060_write(ptr, ZR060_TCV_NET_HI, tmp >> 8); in zr36060_init()
494 zr36060_write(ptr, ZR060_TCV_NET_MH, tmp & 0xff); in zr36060_init()
496 zr36060_write(ptr, ZR060_TCV_NET_ML, tmp >> 8); in zr36060_init()
497 zr36060_write(ptr, ZR060_TCV_NET_LO, tmp & 0xff); in zr36060_init()
504 ptr->name, bitcnt, tmp); in zr36060_init()
505 zr36060_write(ptr, ZR060_TCV_DATA_HI, tmp >> 8); in zr36060_init()
506 zr36060_write(ptr, ZR060_TCV_DATA_MH, tmp & 0xff); in zr36060_init()
508 zr36060_write(ptr, ZR060_TCV_DATA_ML, tmp >> 8); in zr36060_init()
509 zr36060_write(ptr, ZR060_TCV_DATA_LO, tmp & 0xff); in zr36060_init()
512 zr36060_write(ptr, ZR060_MER, in zr36060_init()
514 ((ptr->com.len > 0) ? ZR060_MER_Com : 0) | in zr36060_init()
515 ((ptr->app.len > 0) ? ZR060_MER_App : 0)); in zr36060_init()
519 zr36060_write(ptr, ZR060_VCR, ZR060_VCR_Range); in zr36060_init()
522 dprintk(2, "%s: EXPANSION SETUP\n", ptr->name); in zr36060_init()
524 zr36060_write(ptr, ZR060_LOAD, ZR060_LOAD_SyncRst); in zr36060_init()
527 zr36060_write(ptr, ZR060_CIR, ZR060_CIR_CodeMstr); in zr36060_init()
530 zr36060_write(ptr, ZR060_CMR, 0); in zr36060_init()
533 zr36060_write(ptr, ZR060_MBZ, 0x00); in zr36060_init()
534 zr36060_write(ptr, ZR060_TCR_HI, 0x00); in zr36060_init()
535 zr36060_write(ptr, ZR060_TCR_LO, 0x00); in zr36060_init()
538 zr36060_write(ptr, ZR060_IMR, 0); in zr36060_init()
541 zr36060_write(ptr, ZR060_MER, 0); in zr36060_init()
545 zr36060_pushit(ptr, ZR060_DHT_IDX, sizeof(zr36060_dht), in zr36060_init()
551 zr36060_write(ptr, ZR060_VCR, ZR060_VCR_Range); in zr36060_init()
555 zr36060_write(ptr, ZR060_LOAD, in zr36060_init()
557 zr36060_wait_end(ptr); in zr36060_init()
558 dprintk(2, "%s: Status after table preload: 0x%02x\n", ptr->name, in zr36060_init()
559 ptr->status); in zr36060_init()
561 if (ptr->status & ZR060_CFSR_Busy) { in zr36060_init()
562 dprintk(1, KERN_ERR "%s: init aborted!\n", ptr->name); in zr36060_init()
579 struct zr36060 *ptr = (struct zr36060 *) codec->data; in zr36060_set_mode() local
581 dprintk(2, "%s: set_mode %d call\n", ptr->name, mode); in zr36060_set_mode()
586 ptr->mode = mode; in zr36060_set_mode()
587 zr36060_init(ptr); in zr36060_set_mode()
599 struct zr36060 *ptr = (struct zr36060 *) codec->data; in zr36060_set_video() local
603 dprintk(2, "%s: set_video %d/%d-%dx%d (%%%d) call\n", ptr->name, in zr36060_set_video()
609 ptr->width = cap->width / (cap->decimation & 0xff); in zr36060_set_video()
610 ptr->height = cap->height / (cap->decimation >> 8); in zr36060_set_video()
612 zr36060_write(ptr, ZR060_LOAD, ZR060_LOAD_SyncRst); in zr36060_set_video()
627 zr36060_write(ptr, ZR060_VPR, reg); in zr36060_set_video()
653 zr36060_write(ptr, ZR060_SR, reg); in zr36060_set_video()
655 zr36060_write(ptr, ZR060_BCR_Y, 0x00); in zr36060_set_video()
656 zr36060_write(ptr, ZR060_BCR_U, 0x80); in zr36060_set_video()
657 zr36060_write(ptr, ZR060_BCR_V, 0x80); in zr36060_set_video()
662 zr36060_write(ptr, ZR060_SGR_VTOTAL_HI, (reg >> 8) & 0xff); in zr36060_set_video()
663 zr36060_write(ptr, ZR060_SGR_VTOTAL_LO, (reg >> 0) & 0xff); in zr36060_set_video()
666 zr36060_write(ptr, ZR060_SGR_HTOTAL_HI, (reg >> 8) & 0xff); in zr36060_set_video()
667 zr36060_write(ptr, ZR060_SGR_HTOTAL_LO, (reg >> 0) & 0xff); in zr36060_set_video()
670 zr36060_write(ptr, ZR060_SGR_VSYNC, reg); in zr36060_set_video()
675 zr36060_write(ptr, ZR060_SGR_HSYNC, reg); in zr36060_set_video()
678 zr36060_write(ptr, ZR060_SGR_BVSTART, reg); in zr36060_set_video()
681 zr36060_write(ptr, ZR060_SGR_BVEND_HI, (reg >> 8) & 0xff); in zr36060_set_video()
682 zr36060_write(ptr, ZR060_SGR_BVEND_LO, (reg >> 0) & 0xff); in zr36060_set_video()
685 zr36060_write(ptr, ZR060_SGR_BHSTART, reg); in zr36060_set_video()
688 zr36060_write(ptr, ZR060_SGR_BHEND_HI, (reg >> 8) & 0xff); in zr36060_set_video()
689 zr36060_write(ptr, ZR060_SGR_BHEND_LO, (reg >> 0) & 0xff); in zr36060_set_video()
693 zr36060_write(ptr, ZR060_AAR_VSTART_HI, (reg >> 8) & 0xff); in zr36060_set_video()
694 zr36060_write(ptr, ZR060_AAR_VSTART_LO, (reg >> 0) & 0xff); in zr36060_set_video()
697 zr36060_write(ptr, ZR060_AAR_VEND_HI, (reg >> 8) & 0xff); in zr36060_set_video()
698 zr36060_write(ptr, ZR060_AAR_VEND_LO, (reg >> 0) & 0xff); in zr36060_set_video()
701 zr36060_write(ptr, ZR060_AAR_HSTART_HI, (reg >> 8) & 0xff); in zr36060_set_video()
702 zr36060_write(ptr, ZR060_AAR_HSTART_LO, (reg >> 0) & 0xff); in zr36060_set_video()
705 zr36060_write(ptr, ZR060_AAR_HEND_HI, (reg >> 8) & 0xff); in zr36060_set_video()
706 zr36060_write(ptr, ZR060_AAR_HEND_LO, (reg >> 0) & 0xff); in zr36060_set_video()
710 zr36060_write(ptr, ZR060_SWR_VSTART_HI, (reg >> 8) & 0xff); in zr36060_set_video()
711 zr36060_write(ptr, ZR060_SWR_VSTART_LO, (reg >> 0) & 0xff); in zr36060_set_video()
714 zr36060_write(ptr, ZR060_SWR_VEND_HI, (reg >> 8) & 0xff); in zr36060_set_video()
715 zr36060_write(ptr, ZR060_SWR_VEND_LO, (reg >> 0) & 0xff); in zr36060_set_video()
718 zr36060_write(ptr, ZR060_SWR_HSTART_HI, (reg >> 8) & 0xff); in zr36060_set_video()
719 zr36060_write(ptr, ZR060_SWR_HSTART_LO, (reg >> 0) & 0xff); in zr36060_set_video()
722 zr36060_write(ptr, ZR060_SWR_HEND_HI, (reg >> 8) & 0xff); in zr36060_set_video()
723 zr36060_write(ptr, ZR060_SWR_HEND_LO, (reg >> 0) & 0xff); in zr36060_set_video()
725 size = ptr->width * ptr->height; in zr36060_set_video()
738 if (size > ptr->total_code_vol * 7) in zr36060_set_video()
739 size = ptr->total_code_vol * 7; in zr36060_set_video()
741 ptr->real_code_vol = size >> 3; /* in bytes */ in zr36060_set_video()
746 reg = ptr->max_block_vol; in zr36060_set_video()
747 zr36060_write(ptr, ZR060_MBCVR, reg); in zr36060_set_video()
759 struct zr36060 *ptr = (struct zr36060 *) codec->data; in zr36060_control() local
762 dprintk(2, "%s: control %d call with %d byte\n", ptr->name, type, in zr36060_control()
769 zr36060_read_status(ptr); in zr36060_control()
770 *ival = ptr->status; in zr36060_control()
799 *ival = ptr->total_code_vol; in zr36060_control()
805 ptr->total_code_vol = *ival; in zr36060_control()
806 ptr->real_code_vol = (ptr->total_code_vol * 6) >> 3; in zr36060_control()
812 *ival = zr36060_read_scalefactor(ptr); in zr36060_control()
818 ptr->scalefact = *ival; in zr36060_control()
827 *app = ptr->app; in zr36060_control()
837 ptr->app = *app; in zr36060_control()
847 *com = ptr->com; in zr36060_control()
857 ptr->com = *com; in zr36060_control()
877 struct zr36060 *ptr = codec->data; in zr36060_unset() local
879 if (ptr) { in zr36060_unset()
882 dprintk(1, "%s: finished codec #%d\n", ptr->name, in zr36060_unset()
883 ptr->num); in zr36060_unset()
884 kfree(ptr); in zr36060_unset()
906 struct zr36060 *ptr; in zr36060_setup() local
918 codec->data = ptr = kzalloc(sizeof(struct zr36060), GFP_KERNEL); in zr36060_setup()
919 if (NULL == ptr) { in zr36060_setup()
924 snprintf(ptr->name, sizeof(ptr->name), "zr36060[%d]", in zr36060_setup()
926 ptr->num = zr36060_codecs++; in zr36060_setup()
927 ptr->codec = codec; in zr36060_setup()
930 res = zr36060_basic_test(ptr); in zr36060_setup()
936 memcpy(ptr->h_samp_ratio, zr36060_decimation_h, 8); in zr36060_setup()
937 memcpy(ptr->v_samp_ratio, zr36060_decimation_v, 8); in zr36060_setup()
939 ptr->bitrate_ctrl = 0; /* 0 or 1 - fixed file size flag in zr36060_setup()
941 ptr->mode = CODEC_DO_COMPRESSION; in zr36060_setup()
942 ptr->width = 384; in zr36060_setup()
943 ptr->height = 288; in zr36060_setup()
944 ptr->total_code_vol = 16000; /* CHECKME */ in zr36060_setup()
945 ptr->real_code_vol = (ptr->total_code_vol * 6) >> 3; in zr36060_setup()
946 ptr->max_block_vol = 240; /* CHECKME, was 120 is 240 */ in zr36060_setup()
947 ptr->scalefact = 0x100; in zr36060_setup()
948 ptr->dri = 1; /* CHECKME, was 8 is 1 */ in zr36060_setup()
951 ptr->com.len = 0; in zr36060_setup()
952 ptr->app.appn = 0; in zr36060_setup()
953 ptr->app.len = 0; in zr36060_setup()
955 zr36060_init(ptr); in zr36060_setup()
958 ptr->name); in zr36060_setup()