Lines Matching refs:zr
154 struct zoran *zr = (struct zoran *) codec->master_data->data; in zr36060_read() local
157 if (post_office_wait(zr) in zr36060_read()
158 || post_office_write(zr, 0, 1, reg >> 8) in zr36060_read()
159 || post_office_write(zr, 0, 2, reg & 0xff)) { in zr36060_read()
163 data = post_office_read(zr, 0, 3) & 0xff; in zr36060_read()
172 struct zoran *zr = (struct zoran *) codec->master_data->data; in zr36060_write() local
174 if (post_office_wait(zr) in zr36060_write()
175 || post_office_write(zr, 0, 1, reg >> 8) in zr36060_write()
176 || post_office_write(zr, 0, 2, reg & 0xff)) { in zr36060_write()
180 post_office_write(zr, 0, 3, val & 0xff); in zr36060_write()
188 struct zoran *zr = (struct zoran *) codec->master_data->data; in zr36050_read() local
191 if (post_office_wait(zr) in zr36050_read()
192 || post_office_write(zr, 1, 0, reg >> 2)) { // reg. HIGHBYTES in zr36050_read()
196 data = post_office_read(zr, 0, reg & 0x03) & 0xff; // reg. LOWBYTES + read in zr36050_read()
205 struct zoran *zr = (struct zoran *) codec->master_data->data; in zr36050_write() local
207 if (post_office_wait(zr) in zr36050_write()
208 || post_office_write(zr, 1, 0, reg >> 2)) { // reg. HIGHBYTES in zr36050_write()
212 post_office_write(zr, 0, reg & 0x03, val & 0xff); // reg. LOWBYTES + wr. data in zr36050_write()
220 struct zoran *zr = (struct zoran *) codec->master_data->data; in zr36016_read() local
223 if (post_office_wait(zr)) { in zr36016_read()
227 data = post_office_read(zr, 2, reg & 0x03) & 0xff; // read in zr36016_read()
237 struct zoran *zr = (struct zoran *) codec->master_data->data; in zr36016_write() local
239 if (post_office_wait(zr)) { in zr36016_write()
243 post_office_write(zr, 2, reg & 0x03, val & 0x0ff); // wr. data in zr36016_write()
251 dc10_init (struct zoran *zr) in dc10_init() argument
253 dprintk(3, KERN_DEBUG "%s: %s\n", ZR_DEVNAME(zr), __func__); in dc10_init()
256 GPIO(zr, 4, 0); in dc10_init()
257 GPIO(zr, 5, 1); in dc10_init()
259 GPIO(zr, 7, 0); in dc10_init()
263 dc10plus_init (struct zoran *zr) in dc10plus_init() argument
265 dprintk(3, KERN_DEBUG "%s: %s\n", ZR_DEVNAME(zr), __func__); in dc10plus_init()
269 buz_init (struct zoran *zr) in buz_init() argument
271 dprintk(3, KERN_DEBUG "%s: %s\n", ZR_DEVNAME(zr), __func__); in buz_init()
274 pci_write_config_dword(zr->pci_dev, 0xfc, 0x90680f15); in buz_init()
275 pci_write_config_dword(zr->pci_dev, 0x0c, 0x00012020); in buz_init()
276 pci_write_config_dword(zr->pci_dev, 0xe8, 0xc0200000); in buz_init()
280 lml33_init (struct zoran *zr) in lml33_init() argument
282 dprintk(3, KERN_DEBUG "%s: %s\n", ZR_DEVNAME(zr), __func__); in lml33_init()
284 GPIO(zr, 2, 1); // Set Composite input/output in lml33_init()
288 avs6eyes_init (struct zoran *zr) in avs6eyes_init() argument
297 GPIO(zr, 4, 1); /* Bt866 SLEEP on */ in avs6eyes_init()
300 GPIO(zr, 0, 1); /* ZR36060 /RESET on */ in avs6eyes_init()
301 GPIO(zr, 1, 0); /* ZR36060 /SLEEP on */ in avs6eyes_init()
302 GPIO(zr, 2, mux & 1); /* MUX S0 */ in avs6eyes_init()
303 GPIO(zr, 3, 0); /* /FRAME on */ in avs6eyes_init()
304 GPIO(zr, 4, 0); /* Bt866 SLEEP off */ in avs6eyes_init()
305 GPIO(zr, 5, mux & 2); /* MUX S1 */ in avs6eyes_init()
306 GPIO(zr, 6, 0); /* ? */ in avs6eyes_init()
307 GPIO(zr, 7, mux & 4); /* MUX S2 */ in avs6eyes_init()
660 struct zoran *zr = (struct zoran *) data; in zoran_i2c_getsda() local
668 struct zoran *zr = (struct zoran *) data; in zoran_i2c_getscl() local
677 struct zoran *zr = (struct zoran *) data; in zoran_i2c_setsda() local
680 zr->i2cbr |= 2; in zoran_i2c_setsda()
682 zr->i2cbr &= ~2; in zoran_i2c_setsda()
683 btwrite(zr->i2cbr, ZR36057_I2CBR); in zoran_i2c_setsda()
690 struct zoran *zr = (struct zoran *) data; in zoran_i2c_setscl() local
693 zr->i2cbr |= 1; in zoran_i2c_setscl()
695 zr->i2cbr &= ~1; in zoran_i2c_setscl()
696 btwrite(zr->i2cbr, ZR36057_I2CBR); in zoran_i2c_setscl()
709 zoran_register_i2c (struct zoran *zr) in zoran_register_i2c() argument
711 zr->i2c_algo = zoran_i2c_bit_data_template; in zoran_register_i2c()
712 zr->i2c_algo.data = zr; in zoran_register_i2c()
713 strlcpy(zr->i2c_adapter.name, ZR_DEVNAME(zr), in zoran_register_i2c()
714 sizeof(zr->i2c_adapter.name)); in zoran_register_i2c()
715 i2c_set_adapdata(&zr->i2c_adapter, &zr->v4l2_dev); in zoran_register_i2c()
716 zr->i2c_adapter.algo_data = &zr->i2c_algo; in zoran_register_i2c()
717 zr->i2c_adapter.dev.parent = &zr->pci_dev->dev; in zoran_register_i2c()
718 return i2c_bit_add_bus(&zr->i2c_adapter); in zoran_register_i2c()
722 zoran_unregister_i2c (struct zoran *zr) in zoran_unregister_i2c() argument
724 i2c_del_adapter(&zr->i2c_adapter); in zoran_unregister_i2c()
730 zoran_check_jpg_settings (struct zoran *zr, in zoran_check_jpg_settings() argument
739 ZR_DEVNAME(zr), __func__, settings->decimation, settings->HorDcm, in zoran_check_jpg_settings()
744 ZR_DEVNAME(zr), __func__, settings->img_x, settings->img_y, in zoran_check_jpg_settings()
773 if (zr->card.type == DC10_new) { in zoran_check_jpg_settings()
777 ZR_DEVNAME(zr), __func__); in zoran_check_jpg_settings()
797 (zr->card.type == DC10_new || settings->HorDcm != 4)) { in zoran_check_jpg_settings()
855 ZR_DEVNAME(zr), __func__); in zoran_check_jpg_settings()
863 ZR_DEVNAME(zr), __func__, settings->decimation); in zoran_check_jpg_settings()
890 zoran_open_init_params (struct zoran *zr) in zoran_open_init_params() argument
895 zr->overlay_settings.is_set = 0; in zoran_open_init_params()
896 zr->overlay_mask = NULL; in zoran_open_init_params()
897 zr->overlay_active = ZORAN_FREE; in zoran_open_init_params()
899 zr->v4l_memgrab_active = 0; in zoran_open_init_params()
900 zr->v4l_overlay_active = 0; in zoran_open_init_params()
901 zr->v4l_grab_frame = NO_GRAB_ACTIVE; in zoran_open_init_params()
902 zr->v4l_grab_seq = 0; in zoran_open_init_params()
903 zr->v4l_settings.width = 192; in zoran_open_init_params()
904 zr->v4l_settings.height = 144; in zoran_open_init_params()
905 zr->v4l_settings.format = &zoran_formats[7]; /* YUY2 - YUV-4:2:2 packed */ in zoran_open_init_params()
906 zr->v4l_settings.bytesperline = in zoran_open_init_params()
907 zr->v4l_settings.width * in zoran_open_init_params()
908 ((zr->v4l_settings.format->depth + 7) / 8); in zoran_open_init_params()
911 zr->v4l_pend_tail = 0; in zoran_open_init_params()
912 zr->v4l_pend_head = 0; in zoran_open_init_params()
913 zr->v4l_sync_tail = 0; in zoran_open_init_params()
914 zr->v4l_buffers.active = ZORAN_FREE; in zoran_open_init_params()
916 zr->v4l_buffers.buffer[i].state = BUZ_STATE_USER; /* nothing going on */ in zoran_open_init_params()
918 zr->v4l_buffers.allocated = 0; in zoran_open_init_params()
921 zr->jpg_buffers.buffer[i].state = BUZ_STATE_USER; /* nothing going on */ in zoran_open_init_params()
923 zr->jpg_buffers.active = ZORAN_FREE; in zoran_open_init_params()
924 zr->jpg_buffers.allocated = 0; in zoran_open_init_params()
926 zr->jpg_settings.decimation = 1; in zoran_open_init_params()
927 zr->jpg_settings.jpg_comp.quality = 50; /* default compression factor 8 */ in zoran_open_init_params()
928 if (zr->card.type != BUZ) in zoran_open_init_params()
929 zr->jpg_settings.odd_even = 1; in zoran_open_init_params()
931 zr->jpg_settings.odd_even = 0; in zoran_open_init_params()
932 zr->jpg_settings.jpg_comp.APPn = 0; in zoran_open_init_params()
933 zr->jpg_settings.jpg_comp.APP_len = 0; /* No APPn marker */ in zoran_open_init_params()
934 memset(zr->jpg_settings.jpg_comp.APP_data, 0, in zoran_open_init_params()
935 sizeof(zr->jpg_settings.jpg_comp.APP_data)); in zoran_open_init_params()
936 zr->jpg_settings.jpg_comp.COM_len = 0; /* No COM marker */ in zoran_open_init_params()
937 memset(zr->jpg_settings.jpg_comp.COM_data, 0, in zoran_open_init_params()
938 sizeof(zr->jpg_settings.jpg_comp.COM_data)); in zoran_open_init_params()
939 zr->jpg_settings.jpg_comp.jpeg_markers = in zoran_open_init_params()
941 i = zoran_check_jpg_settings(zr, &zr->jpg_settings, 0); in zoran_open_init_params()
944 ZR_DEVNAME(zr), __func__); in zoran_open_init_params()
946 clear_interrupt_counters(zr); in zoran_open_init_params()
947 zr->testing = 0; in zoran_open_init_params()
950 static void test_interrupts (struct zoran *zr) in test_interrupts() argument
955 clear_interrupt_counters(zr); in test_interrupts()
957 zr->testing = 1; in test_interrupts()
960 prepare_to_wait(&zr->test_q, &wait, TASK_INTERRUPTIBLE); in test_interrupts()
962 finish_wait(&zr->test_q, &wait); in test_interrupts()
965 zr->testing = 0; in test_interrupts()
966 dprintk(5, KERN_INFO "%s: Testing interrupts...\n", ZR_DEVNAME(zr)); in test_interrupts()
971 print_interrupts(zr); in test_interrupts()
975 static int zr36057_init (struct zoran *zr) in zr36057_init() argument
982 ZR_DEVNAME(zr), __func__, zr->id, zr); in zr36057_init()
985 zr->user = 0; in zr36057_init()
987 init_waitqueue_head(&zr->v4l_capq); in zr36057_init()
988 init_waitqueue_head(&zr->jpg_capq); in zr36057_init()
989 init_waitqueue_head(&zr->test_q); in zr36057_init()
990 zr->jpg_buffers.allocated = 0; in zr36057_init()
991 zr->v4l_buffers.allocated = 0; in zr36057_init()
993 zr->vbuf_base = (void *) vidmem; in zr36057_init()
994 zr->vbuf_width = 0; in zr36057_init()
995 zr->vbuf_height = 0; in zr36057_init()
996 zr->vbuf_depth = 0; in zr36057_init()
997 zr->vbuf_bytesperline = 0; in zr36057_init()
1003 zr->norm = V4L2_STD_PAL; in zr36057_init()
1004 zr->timing = zr->card.tvn[0]; in zr36057_init()
1006 zr->norm = V4L2_STD_NTSC; in zr36057_init()
1007 zr->timing = zr->card.tvn[1]; in zr36057_init()
1009 zr->norm = V4L2_STD_SECAM; in zr36057_init()
1010 zr->timing = zr->card.tvn[2]; in zr36057_init()
1012 if (zr->timing == NULL) { in zr36057_init()
1016 ZR_DEVNAME(zr), __func__); in zr36057_init()
1017 zr->norm = V4L2_STD_PAL; in zr36057_init()
1018 zr->timing = zr->card.tvn[0]; in zr36057_init()
1021 if (default_input > zr->card.inputs-1) { in zr36057_init()
1025 ZR_DEVNAME(zr), default_input, zr->card.inputs-1); in zr36057_init()
1028 zr->input = default_input; in zr36057_init()
1031 zoran_open_init_params(zr); in zr36057_init()
1035 zr->stat_com = kzalloc(BUZ_NUM_STAT_COM * 4, GFP_KERNEL); in zr36057_init()
1036 zr->video_dev = video_device_alloc(); in zr36057_init()
1037 if (!zr->stat_com || !zr->video_dev) { in zr36057_init()
1041 ZR_DEVNAME(zr), __func__); in zr36057_init()
1046 zr->stat_com[j] = cpu_to_le32(1); /* mark as unavailable to zr36057 */ in zr36057_init()
1052 *zr->video_dev = zoran_template; in zr36057_init()
1053 zr->video_dev->v4l2_dev = &zr->v4l2_dev; in zr36057_init()
1054 zr->video_dev->lock = &zr->lock; in zr36057_init()
1055 strcpy(zr->video_dev->name, ZR_DEVNAME(zr)); in zr36057_init()
1059 zr->video_dev->vfl_dir = VFL_DIR_M2M; in zr36057_init()
1060 err = video_register_device(zr->video_dev, VFL_TYPE_GRABBER, video_nr[zr->id]); in zr36057_init()
1063 video_set_drvdata(zr->video_dev, zr); in zr36057_init()
1065 zoran_init_hardware(zr); in zr36057_init()
1067 detect_guest_activity(zr); in zr36057_init()
1068 test_interrupts(zr); in zr36057_init()
1070 decoder_call(zr, video, s_stream, 0); in zr36057_init()
1071 encoder_call(zr, video, s_routing, 2, 0, 0); in zr36057_init()
1074 zr->zoran_proc = NULL; in zr36057_init()
1075 zr->initialized = 1; in zr36057_init()
1079 kfree(zr->stat_com); in zr36057_init()
1080 kfree(zr->video_dev); in zr36057_init()
1087 struct zoran *zr = to_zoran(v4l2_dev); in zoran_remove() local
1089 if (!zr->initialized) in zoran_remove()
1093 if (zr->codec) { in zoran_remove()
1094 struct videocodec_master *master = zr->codec->master_data; in zoran_remove()
1096 videocodec_detach(zr->codec); in zoran_remove()
1099 if (zr->vfe) { in zoran_remove()
1100 struct videocodec_master *master = zr->vfe->master_data; in zoran_remove()
1102 videocodec_detach(zr->vfe); in zoran_remove()
1107 zoran_unregister_i2c(zr); in zoran_remove()
1109 zoran_set_pci_master(zr, 0); in zoran_remove()
1112 free_irq(zr->pci_dev->irq, zr); in zoran_remove()
1114 kfree(zr->stat_com); in zoran_remove()
1115 zoran_proc_cleanup(zr); in zoran_remove()
1116 iounmap(zr->zr36057_mem); in zoran_remove()
1117 pci_disable_device(zr->pci_dev); in zoran_remove()
1118 video_unregister_device(zr->video_dev); in zoran_remove()
1120 v4l2_ctrl_handler_free(&zr->hdl); in zoran_remove()
1121 v4l2_device_unregister(&zr->v4l2_dev); in zoran_remove()
1122 kfree(zr); in zoran_remove()
1131 static struct videocodec_master *zoran_setup_videocodec(struct zoran *zr, in zoran_setup_videocodec() argument
1139 ZR_DEVNAME(zr), __func__); in zoran_setup_videocodec()
1152 strlcpy(m->name, ZR_DEVNAME(zr), sizeof(m->name)); in zoran_setup_videocodec()
1153 m->data = zr; in zoran_setup_videocodec()
1179 struct zoran *zr = to_zoran(sd->v4l2_dev); in zoran_subdev_notify() local
1184 GPIO(zr, 7, 0); in zoran_subdev_notify()
1186 GPIO(zr, 7, 1); in zoran_subdev_notify()
1196 struct zoran *zr; in zoran_probe() local
1212 zr = kzalloc(sizeof(struct zoran), GFP_KERNEL); in zoran_probe()
1213 if (!zr) { in zoran_probe()
1218 zr->v4l2_dev.notify = zoran_subdev_notify; in zoran_probe()
1219 if (v4l2_device_register(&pdev->dev, &zr->v4l2_dev)) in zoran_probe()
1221 zr->pci_dev = pdev; in zoran_probe()
1222 zr->id = nr; in zoran_probe()
1223 snprintf(ZR_DEVNAME(zr), sizeof(ZR_DEVNAME(zr)), "MJPEG[%u]", zr->id); in zoran_probe()
1224 if (v4l2_ctrl_handler_init(&zr->hdl, 10)) in zoran_probe()
1226 zr->v4l2_dev.ctrl_handler = &zr->hdl; in zoran_probe()
1227 spin_lock_init(&zr->spinlock); in zoran_probe()
1228 mutex_init(&zr->lock); in zoran_probe()
1231 zr->revision = zr->pci_dev->revision; in zoran_probe()
1236 ZR_DEVNAME(zr), zr->revision < 2 ? '5' : '6', zr->revision, in zoran_probe()
1237 zr->pci_dev->irq, (uint64_t)pci_resource_start(zr->pci_dev, 0)); in zoran_probe()
1238 if (zr->revision >= 2) { in zoran_probe()
1242 ZR_DEVNAME(zr), zr->pci_dev->subsystem_vendor, in zoran_probe()
1243 zr->pci_dev->subsystem_device); in zoran_probe()
1248 if (zr->revision < 2) { in zoran_probe()
1252 ZR_DEVNAME(zr)); in zoran_probe()
1256 ZR_DEVNAME(zr)); in zoran_probe()
1265 ZR_DEVNAME(zr)); in zoran_probe()
1271 ZR_DEVNAME(zr), __func__, zoran_cards[card_num].name); in zoran_probe()
1278 ZR_DEVNAME(zr), card_num, NUM_CARDS - 1); in zoran_probe()
1288 zr->card = zoran_cards[card_num]; in zoran_probe()
1289 snprintf(ZR_DEVNAME(zr), sizeof(ZR_DEVNAME(zr)), in zoran_probe()
1290 "%s[%u]", zr->card.name, zr->id); in zoran_probe()
1292 zr->zr36057_mem = pci_ioremap_bar(zr->pci_dev, 0); in zoran_probe()
1293 if (!zr->zr36057_mem) { in zoran_probe()
1295 ZR_DEVNAME(zr), __func__); in zoran_probe()
1299 result = request_irq(zr->pci_dev->irq, zoran_irq, in zoran_probe()
1300 IRQF_SHARED, ZR_DEVNAME(zr), zr); in zoran_probe()
1306 ZR_DEVNAME(zr), __func__); in zoran_probe()
1311 ZR_DEVNAME(zr), __func__, zr->pci_dev->irq); in zoran_probe()
1316 ZR_DEVNAME(zr), __func__, result); in zoran_probe()
1322 pci_read_config_byte(zr->pci_dev, PCI_LATENCY_TIMER, in zoran_probe()
1324 need_latency = zr->revision > 1 ? 32 : 48; in zoran_probe()
1327 ZR_DEVNAME(zr), latency, need_latency); in zoran_probe()
1328 pci_write_config_byte(zr->pci_dev, PCI_LATENCY_TIMER, in zoran_probe()
1332 zr36057_restart(zr); in zoran_probe()
1335 ZR_DEVNAME(zr)); in zoran_probe()
1337 if (zoran_register_i2c(zr) < 0) { in zoran_probe()
1339 ZR_DEVNAME(zr), __func__); in zoran_probe()
1343 zr->decoder = v4l2_i2c_new_subdev(&zr->v4l2_dev, in zoran_probe()
1344 &zr->i2c_adapter, zr->card.i2c_decoder, in zoran_probe()
1345 0, zr->card.addrs_decoder); in zoran_probe()
1347 if (zr->card.i2c_encoder) in zoran_probe()
1348 zr->encoder = v4l2_i2c_new_subdev(&zr->v4l2_dev, in zoran_probe()
1349 &zr->i2c_adapter, zr->card.i2c_encoder, in zoran_probe()
1350 0, zr->card.addrs_encoder); in zoran_probe()
1354 ZR_DEVNAME(zr)); in zoran_probe()
1356 if (zr->card.video_codec) { in zoran_probe()
1357 codec_name = codecid_to_modulename(zr->card.video_codec); in zoran_probe()
1364 ZR_DEVNAME(zr), codec_name, result); in zoran_probe()
1368 if (zr->card.video_vfe) { in zoran_probe()
1369 vfe_name = codecid_to_modulename(zr->card.video_vfe); in zoran_probe()
1376 ZR_DEVNAME(zr), vfe_name, result); in zoran_probe()
1382 jpeg_codec_sleep(zr, 1); in zoran_probe()
1383 jpeg_codec_reset(zr); in zoran_probe()
1386 if (zr->card.video_codec != 0) { in zoran_probe()
1387 master_codec = zoran_setup_videocodec(zr, zr->card.video_codec); in zoran_probe()
1390 zr->codec = videocodec_attach(master_codec); in zoran_probe()
1391 if (!zr->codec) { in zoran_probe()
1393 ZR_DEVNAME(zr), __func__); in zoran_probe()
1396 if (zr->codec->type != zr->card.video_codec) { in zoran_probe()
1398 ZR_DEVNAME(zr), __func__); in zoran_probe()
1402 if (zr->card.video_vfe != 0) { in zoran_probe()
1403 master_vfe = zoran_setup_videocodec(zr, zr->card.video_vfe); in zoran_probe()
1406 zr->vfe = videocodec_attach(master_vfe); in zoran_probe()
1407 if (!zr->vfe) { in zoran_probe()
1409 ZR_DEVNAME(zr), __func__); in zoran_probe()
1412 if (zr->vfe->type != zr->card.video_vfe) { in zoran_probe()
1414 ZR_DEVNAME(zr), __func__); in zoran_probe()
1420 if ((pci_pci_problems & PCIPCI_NATOMA) && zr->revision <= 1) { in zoran_probe()
1421 zr->jpg_buffers.need_contiguous = 1; in zoran_probe()
1424 ZR_DEVNAME(zr)); in zoran_probe()
1427 if (zr36057_init(zr) < 0) in zoran_probe()
1430 zoran_proc_init(zr); in zoran_probe()
1435 videocodec_detach(zr->vfe); in zoran_probe()
1439 videocodec_detach(zr->codec); in zoran_probe()
1443 zoran_unregister_i2c(zr); in zoran_probe()
1446 free_irq(zr->pci_dev->irq, zr); in zoran_probe()
1448 iounmap(zr->zr36057_mem); in zoran_probe()
1450 v4l2_ctrl_handler_free(&zr->hdl); in zoran_probe()
1451 v4l2_device_unregister(&zr->v4l2_dev); in zoran_probe()
1453 kfree(zr); in zoran_probe()