Lines Matching defs:bktr
4 /* $FreeBSD: src/sys/dev/bktr/bktr_os.c,v 1.20 2000/10/20 08:16:53 roger Exp$ */
57 #include "bktr.h"
200 #include <dev/pci/bktr/bktr_reg.h>
201 #include <dev/pci/bktr/bktr_tuner.h>
202 #include <dev/pci/bktr/bktr_card.h>
203 #include <dev/pci/bktr/bktr_audio.h>
204 #include <dev/pci/bktr/bktr_core.h>
205 #include <dev/pci/bktr/bktr_os.h>
209 #include <dev/bktr/bktr_reg.h>
210 #include <dev/bktr/bktr_tuner.h>
211 #include <dev/bktr/bktr_card.h>
212 #include <dev/bktr/bktr_audio.h>
213 #include <dev/bktr/bktr_core.h>
214 #include <dev/bktr/bktr_os.h>
216 #include <dev/bktr/bktr_i2c.h>
253 "bktr",
278 /* name */ "bktr",
286 DRIVER_MODULE(bktr, pci, bktr_driver, bktr_devclass, 0, 0);
288 MODULE_DEPEND(bktr, bktr_mem, 1,1,1);
289 MODULE_VERSION(bktr, 1);
343 struct bktr_softc *bktr = device_get_softc(dev);
348 snprintf(bktr->bktr_xname, sizeof(bktr->bktr_xname), "bktr%d",unit);
360 bktr->mem_rid = PCIR_MAPS;
361 bktr->res_mem = bus_alloc_resource(dev, SYS_RES_MEMORY, &bktr->mem_rid,
365 if (!bktr->res_mem) {
370 bktr->memt = rman_get_bustag(bktr->res_mem);
371 bktr->memh = rman_get_bushandle(bktr->res_mem);
377 OUTL(bktr, BKTR_INT_MASK, ALL_INTS_DISABLED);
378 OUTW(bktr, BKTR_GPIO_DMA_CTL, FIFO_RISC_DISABLED);
385 printf("bktr%d: attach: irq changed from %d to %d\n",
392 bktr->irq_rid = 0;
393 bktr->res_irq = bus_alloc_resource(dev, SYS_RES_IRQ, &bktr->irq_rid,
395 if (bktr->res_irq == NULL) {
401 error = bus_setup_intr(dev, bktr->res_irq, INTR_TYPE_TTY,
402 bktr_intr, bktr, &bktr->res_ih);
430 if (bt848_i2c_attach(unit, bktr, &bktr->i2c_sc))
431 printf("bktr%d: i2c_attach: can't attach\n", unit);
464 if (common_bktr_attach(bktr, unit, fun, rev) == 0)
468 bktr->bktrdev = make_dev(&bktr_cdevsw, unit,
469 0, 0, 0444, "bktr%d", unit);
470 bktr->tunerdev= make_dev(&bktr_cdevsw, unit+16,
472 bktr->vbidev = make_dev(&bktr_cdevsw, unit+32,
477 /* alias entries to /dev/bktr /dev/tuner and /dev/vbi */
480 bktr->bktrdev_alias = make_dev_alias(bktr->bktrdev, "bktr");
481 bktr->tunerdev_alias= make_dev_alias(bktr->tunerdev, "tuner");
482 bktr->vbidev_alias = make_dev_alias(bktr->vbidev, "vbi");
489 if (bktr->res_irq)
490 bus_release_resource(dev, SYS_RES_IRQ, bktr->irq_rid, bktr->res_irq);
491 if (bktr->res_mem)
492 bus_release_resource(dev, SYS_RES_IRQ, bktr->mem_rid, bktr->res_mem);
505 struct bktr_softc *bktr = device_get_softc(dev);
510 OUTL(bktr, BKTR_INT_MASK, ALL_INTS_DISABLED);
511 OUTW(bktr, BKTR_GPIO_DMA_CTL, FIFO_RISC_DISABLED);
515 /* then reload the main bktr driver module */
518 destroy_dev(bktr->vbidev);
519 destroy_dev(bktr->tunerdev);
520 destroy_dev(bktr->bktrdev);
525 destroy_dev(bktr->vbidev_alias);
526 destroy_dev(bktr->tunerdev_alias);
527 destroy_dev(bktr->bktrdev_alias);
530 seldestroy(&bktr->vbi_select);
535 bus_teardown_intr(dev, bktr->res_irq, bktr->res_ih);
536 bus_release_resource(dev, SYS_RES_IRQ, bktr->irq_rid, bktr->res_irq);
537 bus_release_resource(dev, SYS_RES_MEMORY, bktr->mem_rid, bktr->res_mem);
548 struct bktr_softc *bktr = device_get_softc(dev);
551 OUTL(bktr, BKTR_INT_MASK, ALL_INTS_DISABLED);
552 OUTW(bktr, BKTR_GPIO_DMA_CTL, FIFO_RISC_DISABLED);
570 printf("bktr%d: Unable to allocate %d bytes of memory.\n",
598 bktr_ptr_t bktr;
605 bktr = (struct bktr_softc*)devclass_get_softc(bktr_devclass, unit);
606 if (bktr == NULL) {
611 if (!(bktr->flags & METEOR_INITIALIZED)) /* device not found */
621 if (bktr->bt848_card != (bt848_card & 0xff)) {
622 bktr->bt848_card = (bt848_card & 0xff);
623 probeCard(bktr, FALSE, unit);
631 if (bktr->bt848_tuner != (bt848_tuner & 0xff)) {
632 bktr->bt848_tuner = (bt848_tuner & 0xff);
633 probeCard(bktr, FALSE, unit);
640 bktr->reverse_mute = bt848_reverse_mute & 0xff;
646 bktr->slow_msp_audio = (bt848_slow_msp_audio & 0xff);
652 result = video_open(bktr);
655 result = tuner_open(bktr);
658 result = vbi_open(bktr);
678 bktr_ptr_t bktr;
685 bktr = (struct bktr_softc*)devclass_get_softc(bktr_devclass, unit);
686 if (bktr == NULL) {
693 result = video_close(bktr);
696 result = tuner_close(bktr);
699 result = vbi_close(bktr);
717 bktr_ptr_t bktr;
723 bktr = (struct bktr_softc*)devclass_get_softc(bktr_devclass, unit);
724 if (bktr == NULL) {
731 return(video_read(bktr, unit, dev, uio));
733 return(vbi_read(bktr, uio, ioflag));
755 bktr_ptr_t bktr;
761 bktr = (struct bktr_softc*)devclass_get_softc(bktr_devclass, unit);
762 if (bktr == NULL) {
767 if (bktr->bigbuf == 0) /* no frame buffer allocated (ioctl failed) */
772 return(video_ioctl(bktr, unit, cmd, arg, pr));
774 return(tuner_ioctl(bktr, unit, cmd, arg, pr));
788 bktr_ptr_t bktr;
792 if (FUNCTION(minor(dev)) > 0) /* only allow mmap on /dev/bktr[n] */
796 bktr = (struct bktr_softc*)devclass_get_softc(bktr_devclass, unit);
797 if (bktr == NULL) {
808 if (offset >= bktr->alloc_pages * PAGE_SIZE)
811 return(atop(vtophys(bktr->bigbuf) + offset));
817 bktr_ptr_t bktr;
824 bktr = (struct bktr_softc*)devclass_get_softc(bktr_devclass, unit);
825 if (bktr == NULL) {
836 if(bktr->vbisize == 0)
837 selrecord(p, &bktr->vbi_select);
866 "bktr",
887 bktr_poll, bktr_mmap, NULL, "bktr",
939 bktr_ptr_t bktr;
948 bktr = &brooktree[unit];
958 snprintf(bktr->bktr_xname, sizeof(bktr->bktr_xname), "bktr%d",unit);
968 bktr->tag = tag;
975 &bktr->phys_base);
977 bktr->memt = I386_BUS_SPACE_MEM; /* XXX should use proper bus space */
978 bktr->memh = (bus_space_handle_t)base; /* XXX functions here */
984 OUTL(bktr, BKTR_INT_MASK, ALL_INTS_DISABLED);
985 OUTW(bktr, BKTR_GPIO_DMA_CTL, FIFO_RISC_DISABLED);
991 printf("bktr%d: attach: irq changed from %d to %d\n",
998 pci_map_int(tag, bktr_intr, (void*) bktr, &tty_imask);
1021 if (bt848_i2c_attach(unit, bktr, &bktr->i2c_sc))
1022 printf("bktr%d: i2c_attach: can't attach\n", unit);
1056 common_bktr_attach(bktr, unit, fun, rev);
1074 printf("bktr%d: Unable to allocate %d bytes of memory.\n",
1103 bktr_ptr_t bktr;
1110 bktr = &(brooktree[unit]);
1112 if (!(bktr->flags & METEOR_INITIALIZED)) /* device not found */
1119 if (bktr->bt848_card != (bt848_card & 0xff)) {
1120 bktr->bt848_card = (bt848_card & 0xff);
1121 probeCard(bktr, FALSE, unit);
1129 if (bktr->bt848_tuner != (bt848_tuner & 0xff)) {
1130 bktr->bt848_tuner = (bt848_tuner & 0xff);
1131 probeCard(bktr, FALSE, unit);
1138 bktr->reverse_mute = bt848_reverse_mute & 0xff;
1144 bktr->slow_msp_audio = (bt848_slow_msp_audio & 0xff);
1150 return(video_open(bktr));
1152 return(tuner_open(bktr));
1154 return(vbi_open(bktr));
1166 bktr_ptr_t bktr;
1173 bktr = &(brooktree[unit]);
1177 return(video_close(bktr));
1179 return(tuner_close(bktr));
1181 return(vbi_close(bktr));
1193 bktr_ptr_t bktr;
1200 bktr = &(brooktree[unit]);
1204 return(video_read(bktr, unit, dev, uio));
1206 return(vbi_read(bktr, uio, ioflag));
1227 bktr_ptr_t bktr;
1234 bktr = &(brooktree[unit]);
1236 if (bktr->bigbuf == 0) /* no frame buffer allocated (ioctl failed) */
1241 return(video_ioctl(bktr, unit, cmd, arg, pr));
1243 return(tuner_ioctl(bktr, unit, cmd, arg, pr));
1258 bktr_ptr_t bktr;
1265 bktr = &(brooktree[unit]);
1273 if (offset >= bktr->alloc_pages * PAGE_SIZE)
1276 return(i386_btop(vtophys(bktr->bigbuf) + offset));
1282 bktr_ptr_t bktr;
1290 bktr = &(brooktree[unit]);
1298 if(bktr->vbisize == 0)
1299 selrecord(p, &bktr->vbi_select);
1346 CFATTACH_DECL_NEW(bktr, sizeof(struct bktr_softc),
1353 NULL, "bktr", DV_DULL
1394 bktr_ptr_t bktr;
1409 bktr = (bktr_ptr_t)self;
1410 unit = bktr->bktr_dev.dv_unit;
1412 bktr->pc = pa->pa_pc;
1413 bktr->tag = pa->pa_tag;
1414 bktr->dmat = pa->pa_dmat;
1419 bktr->memt = pa->pa_memt;
1421 &bktr->phys_base, &bktr->obmemsz, NULL);
1423 bktr->phys_base,
1424 bktr->obmemsz, 0, &bktr->memh);
1441 bktr->ih = pci_intr_establish(pa->pa_pc, ih, IPL_VIDEO,
1442 bktr_intr, bktr, device_xname(bktr->bktr_dev));
1443 if (bktr->ih == NULL) {
1464 bktr = device_private(self);
1465 bktr->bktr_dev = self;
1466 unit = device_unit(bktr->bktr_dev);
1467 bktr->dmat = pa->pa_dmat;
1485 &bktr->memt, &bktr->memh, NULL,
1486 &bktr->obmemsz);
1488 (unsigned long)bktr->obmemsz));
1490 aprint_error("%s: couldn't map memory\n", bktr_name(bktr));
1497 OUTL(bktr, BKTR_INT_MASK, ALL_INTS_DISABLED);
1498 OUTW(bktr, BKTR_GPIO_DMA_CTL, FIFO_RISC_DISABLED);
1505 bktr_name(bktr));
1509 bktr->ih = pci_intr_establish_xname(pa->pa_pc, ih, IPL_VIDEO,
1510 bktr_intr, bktr, device_xname(bktr->bktr_dev));
1511 if (bktr->ih == NULL) {
1513 bktr_name(bktr));
1520 aprint_normal("%s: interrupting at %s\n", bktr_name(bktr),
1522 selinit(&bktr->vbi_select);
1538 bktr_name(bktr), BROOKTREE_DEF_LATENCY_VALUE);
1545 if (common_bktr_attach(bktr, unit, pa->pa_id,
1551 if (bktr->card.tuner->pllControl[3] != 0x00)
1552 radio_attach_mi(&bktr_hw_if, bktr, bktr->bktr_dev);
1565 get_bktr_mem(bktr_ptr_t bktr, bus_dmamap_t *dmapp, unsigned int size)
1567 bus_dma_tag_t dmat = bktr->dmat;
1583 bktr_name(bktr), size);
1590 bktr_name(bktr), size);
1595 bktr->dm_mapsize = size;
1602 bktr_name(bktr), size);
1609 bktr_name(bktr), size);
1623 free_bktr_mem(bktr_ptr_t bktr, bus_dmamap_t dmap, vaddr_t kva)
1625 bus_dma_tag_t dmat = bktr->dmat;
1631 bus_dmamem_unmap(dmat, (void *)kva, bktr->dm_mapsize);
1660 bktr_ptr_t bktr;
1666 bktr = device_lookup_private(&bktr_cd, unit);
1667 if (bktr == NULL)
1670 if (!(bktr->flags & METEOR_INITIALIZED)) /* device not found */
1675 return(video_open(bktr));
1677 return(tuner_open(bktr));
1679 return(vbi_open(bktr));
1693 bktr_ptr_t bktr;
1698 bktr = device_lookup_private(&bktr_cd, unit);
1702 return(video_close(bktr));
1704 return(tuner_close(bktr));
1706 return(vbi_close(bktr));
1718 bktr_ptr_t bktr;
1723 bktr = device_lookup_private(&bktr_cd, unit);
1727 return(video_read(bktr, unit, dev, uio));
1729 return(vbi_read(bktr, uio, ioflag));
1753 bktr_ptr_t bktr;
1758 bktr = device_lookup_private(&bktr_cd, unit);
1760 if (bktr->bigbuf == 0) /* no frame buffer allocated (ioctl failed) */
1765 return(video_ioctl(bktr, unit, cmd, arg, l));
1767 return(tuner_ioctl(bktr, unit, cmd, arg, l));
1780 bktr_ptr_t bktr;
1784 if (FUNCTION(dev) > 0) /* only allow mmap on /dev/bktr[n] */
1787 bktr = device_lookup_private(&bktr_cd, unit);
1789 if ((vaddr_t)offset >= bktr->alloc_pages * PAGE_SIZE)
1793 return (bus_dmamem_mmap(bktr->dmat, bktr->dm_mem->dm_segs, 1,
1796 return(i386_btop(vtophys(bktr->bigbuf) + offset));
1864 bktr_INB(struct bktr_softc *bktr, int offset)
1866 u_int8_t val = bus_space_read_1(bktr->memt, bktr->memh, offset);
1867 bus_space_barrier(bktr->memt, bktr->memh, offset, 1,
1873 bktr_INW(struct bktr_softc *bktr, int offset)
1875 u_int16_t val = bus_space_read_2(bktr->memt, bktr->memh, offset);
1876 bus_space_barrier(bktr->memt, bktr->memh, offset, 2,
1882 bktr_INL(struct bktr_softc *bktr, int offset)
1884 u_int32_t val = bus_space_read_4(bktr->memt, bktr->memh, offset);
1885 bus_space_barrier(bktr->memt, bktr->memh, offset, 4,
1891 bktr_OUTB(struct bktr_softc *bktr, int offset, u_int8_t value)
1893 bus_space_write_1(bktr->memt, bktr->memh, offset, value);
1894 bus_space_barrier(bktr->memt, bktr->memh, offset, 1,
1899 bktr_OUTW(struct bktr_softc *bktr, int offset, u_int16_t value)
1901 bus_space_write_2(bktr->memt, bktr->memh, offset, value);
1902 bus_space_barrier(bktr->memt, bktr->memh, offset, 2,
1907 bktr_OUTL(struct bktr_softc *bktr, int offset, u_int32_t value)
1909 bus_space_write_4(bktr->memt, bktr->memh, offset, value);
1910 bus_space_barrier(bktr->memt, bktr->memh, offset, 4,