• Home
  • Raw
  • Download

Lines Matching refs:bt

68 #define btwrite(dat,adr)    bmtwrite((dat), (bt->bt878_mem+(adr)))
69 #define btread(adr) bmtread(bt->bt878_mem+(adr))
84 static void bt878_mem_free(struct bt878 *bt) in bt878_mem_free() argument
86 if (bt->buf_cpu) { in bt878_mem_free()
87 pci_free_consistent(bt->dev, bt->buf_size, bt->buf_cpu, in bt878_mem_free()
88 bt->buf_dma); in bt878_mem_free()
89 bt->buf_cpu = NULL; in bt878_mem_free()
92 if (bt->risc_cpu) { in bt878_mem_free()
93 pci_free_consistent(bt->dev, bt->risc_size, bt->risc_cpu, in bt878_mem_free()
94 bt->risc_dma); in bt878_mem_free()
95 bt->risc_cpu = NULL; in bt878_mem_free()
99 static int bt878_mem_alloc(struct bt878 *bt) in bt878_mem_alloc() argument
101 if (!bt->buf_cpu) { in bt878_mem_alloc()
102 bt->buf_size = 128 * 1024; in bt878_mem_alloc()
104 bt->buf_cpu = pci_zalloc_consistent(bt->dev, bt->buf_size, in bt878_mem_alloc()
105 &bt->buf_dma); in bt878_mem_alloc()
106 if (!bt->buf_cpu) in bt878_mem_alloc()
110 if (!bt->risc_cpu) { in bt878_mem_alloc()
111 bt->risc_size = PAGE_SIZE; in bt878_mem_alloc()
112 bt->risc_cpu = pci_zalloc_consistent(bt->dev, bt->risc_size, in bt878_mem_alloc()
113 &bt->risc_dma); in bt878_mem_alloc()
114 if (!bt->risc_cpu) { in bt878_mem_alloc()
115 bt878_mem_free(bt); in bt878_mem_alloc()
137 #define RISC_FLUSH() bt->risc_pos = 0
138 #define RISC_INSTR(instr) bt->risc_cpu[bt->risc_pos++] = cpu_to_le32(instr)
140 static int bt878_make_risc(struct bt878 *bt) in bt878_make_risc() argument
142 bt->block_bytes = bt->buf_size >> 4; in bt878_make_risc()
143 bt->block_count = 1 << 4; in bt878_make_risc()
144 bt->line_bytes = bt->block_bytes; in bt878_make_risc()
145 bt->line_count = bt->block_count; in bt878_make_risc()
147 while (bt->line_bytes > 4095) { in bt878_make_risc()
148 bt->line_bytes >>= 1; in bt878_make_risc()
149 bt->line_count <<= 1; in bt878_make_risc()
152 if (bt->line_count > 255) { in bt878_make_risc()
160 static void bt878_risc_program(struct bt878 *bt, u32 op_sync_orin) in bt878_risc_program() argument
170 bt->line_count, bt->line_bytes); in bt878_risc_program()
171 for (line = 0; line < bt->line_count; line++) { in bt878_risc_program()
173 if (!(buf_pos % bt->block_bytes)) in bt878_risc_program()
177 bt->block_bytes) + in bt878_risc_program()
178 (bt->block_count - in bt878_risc_program()
180 bt->block_count) | bt-> in bt878_risc_program()
184 bt->line_bytes); in bt878_risc_program()
185 RISC_INSTR(bt->buf_dma + buf_pos); in bt878_risc_program()
186 buf_pos += bt->line_bytes; in bt878_risc_program()
193 RISC_INSTR(bt->risc_dma); in bt878_risc_program()
195 btwrite((bt->line_count << 16) | bt->line_bytes, BT878_APACK_LEN); in bt878_risc_program()
202 void bt878_start(struct bt878 *bt, u32 controlreg, u32 op_sync_orin, in bt878_start() argument
211 bt878_risc_program(bt, op_sync_orin); in bt878_start()
215 btwrite(bt->risc_dma, BT878_ARISC_START); in bt878_start()
236 void bt878_stop(struct bt878 *bt) in bt878_stop() argument
254 bt->nr, i, stat); in bt878_stop()
268 struct bt878 *bt; in bt878_irq() local
270 bt = (struct bt878 *) dev_id; in bt878_irq()
286 bt->nr, in bt878_irq()
297 bt->nr, in bt878_irq()
310 bt->nr, in bt878_irq()
319 bt->finished_block = (stat & BT878_ARISCS) >> 28; in bt878_irq()
320 tasklet_schedule(&bt->tasklet); in bt878_irq()
328 bt->nr); in bt878_irq()
336 bt878_device_control(struct bt878 *bt, unsigned int cmd, union dst_gpio_packet *mp) in bt878_device_control() argument
341 if (mutex_lock_interruptible(&bt->gpio_lock)) in bt878_device_control()
347 retval = bttv_gpio_enable(bt->bttv_nr, in bt878_device_control()
353 retval = bttv_write_gpio(bt->bttv_nr, in bt878_device_control()
360 retval = bttv_read_gpio(bt->bttv_nr, &mp->rd.value); in bt878_device_control()
365 bt->TS_Size = mp->psize; in bt878_device_control()
372 mutex_unlock(&bt->gpio_lock); in bt878_device_control()
418 struct bt878 *bt; in bt878_probe() local
440 bt = &bt878[bt878_num]; in bt878_probe()
441 bt->dev = dev; in bt878_probe()
442 bt->nr = bt878_num; in bt878_probe()
443 bt->shutdown = 0; in bt878_probe()
445 bt->id = dev->device; in bt878_probe()
446 bt->irq = dev->irq; in bt878_probe()
447 bt->bt878_adr = pci_resource_start(dev, 0); in bt878_probe()
454 bt->revision = dev->revision; in bt878_probe()
459 bt878_num, bt->id, bt->revision, dev->bus->number, in bt878_probe()
462 bt->irq, lat, bt->bt878_adr); in bt878_probe()
474 bt->bt878_mem = (unsigned char *) bt->bt878_adr; in bt878_probe()
476 bt->bt878_mem = ioremap(bt->bt878_adr, 0x1000); in bt878_probe()
482 result = request_irq(bt->irq, bt878_irq, in bt878_probe()
483 IRQF_SHARED, "bt878", (void *) bt); in bt878_probe()
492 bt878_num, bt->irq); in bt878_probe()
499 pci_set_drvdata(dev, bt); in bt878_probe()
501 if ((result = bt878_mem_alloc(bt))) { in bt878_probe()
506 bt878_make_risc(bt); in bt878_probe()
513 free_irq(bt->irq, bt); in bt878_probe()
515 release_mem_region(pci_resource_start(bt->dev, 0), in bt878_probe()
516 pci_resource_len(bt->dev, 0)); in bt878_probe()
525 struct bt878 *bt = pci_get_drvdata(pci_dev); in bt878_remove() local
528 printk(KERN_INFO "bt878(%d): unloading\n", bt->nr); in bt878_remove()
538 pci_read_config_byte(bt->dev, PCI_COMMAND, &command); in bt878_remove()
541 pci_write_config_byte(bt->dev, PCI_COMMAND, command); in bt878_remove()
543 free_irq(bt->irq, bt); in bt878_remove()
544 printk(KERN_DEBUG "bt878_mem: 0x%p.\n", bt->bt878_mem); in bt878_remove()
545 if (bt->bt878_mem) in bt878_remove()
546 iounmap(bt->bt878_mem); in bt878_remove()
548 release_mem_region(pci_resource_start(bt->dev, 0), in bt878_remove()
549 pci_resource_len(bt->dev, 0)); in bt878_remove()
554 bt->shutdown = 1; in bt878_remove()
555 bt878_mem_free(bt); in bt878_remove()