Lines Matching refs:di

46 	device_info	*di;			/* pointer to the owning device */
64 device_info di[MAX_DEVICES]; /* device specific stuff */
74 static status_t map_device(device_info *di);
75 static void unmap_device(device_info *di);
76 static void copy_rom(device_info *di);
304 static status_t map_device(device_info *di)
307 shared_info *si = di->si;
309 pci_info *pcii = &(di->pcii);
328 if (di->pcii.device_id == 0x0519)
353 di->pcii.vendor_id, di->pcii.device_id,
354 di->pcii.bus, di->pcii.device, di->pcii.function);
359 di->pcii.u.h0.base_registers[registers],
360 di->pcii.u.h0.base_register_sizes[registers],
363 (void **)&(di->regs));
364 si->clone_bugfix_regs = (uint32 *) di->regs;
371 di->pcii.vendor_id, di->pcii.device_id,
372 di->pcii.bus, di->pcii.device, di->pcii.function);
375 tmpUlong = di->pcii.u.h0.base_registers[frame_buffer];
381 di->pcii.u.h0.base_registers[frame_buffer],
398 if ((di->pcii.class_base == PCI_display) &&
399 (di->pcii.class_sub == PCI_display_other) &&
400 ((rom_temp[0] != 0x55) || (rom_temp[1] != 0xaa)) && di->pcii.device)
408 if ((pd->di[index].pcii.bus == di->pcii.bus) &&
409 (pd->di[index].pcii.device == 0x00))
418 memcpy (si->rom_mirror, pd->di[index].rom_mirror, 32768);
432 if (current_settings.dumprom) dumprom (si->rom_mirror, 32768, di->pcii);
440 if (di->pcii.device_id != 0x0519)
444 di->pcii.vendor_id, di->pcii.device_id,
445 di->pcii.bus, di->pcii.device, di->pcii.function);
450 di->pcii.u.h0.base_registers[pseudo_dma],
451 di->pcii.u.h0.base_register_sizes[pseudo_dma],
465 // di->pcii.vendor_id, di->pcii.device_id,
466 // di->pcii.bus, di->pcii.device, di->pcii.function);
493 di->pcii.vendor_id, di->pcii.device_id,
494 di->pcii.bus, di->pcii.device, di->pcii.function);
499 di->pcii.u.h0.base_registers[frame_buffer],
500 di->pcii.u.h0.base_register_sizes[frame_buffer],
509 di->pcii.u.h0.base_registers[frame_buffer],
510 di->pcii.u.h0.base_register_sizes[frame_buffer],
521 if (di->pcii.device_id != 0x0519)
533 si->framebuffer_pci = (void *) di->pcii.u.h0.base_registers_pci[frame_buffer];
542 static void unmap_device(device_info *di) {
543 shared_info *si = di->si;
545 pci_info *pcii = &(di->pcii);
558 if (di->pcii.device_id != 0x0519)
567 di->regs = NULL;
570 static void copy_rom(device_info *di)
576 pci_info *pcii = &(di->pcii);
582 if (di->pcii.device_id == 0x0519) frame_buffer = 1;
592 di->pcii.vendor_id, di->pcii.device_id,
593 di->pcii.bus, di->pcii.device, di->pcii.function);
596 tmpUlong = di->pcii.u.h0.base_registers[frame_buffer];
602 di->pcii.u.h0.base_registers[frame_buffer],
613 memcpy (di->rom_mirror, rom_temp, 32768);
630 device_info *di = pd->di;
634 while ((count < MAX_DEVICES) && ((*pci_bus->get_nth_pci_info)(pci_index, &(di->pcii)) == B_NO_ERROR))
641 if (SupportedDevices[vendor].vendor == di->pcii.vendor_id)
648 if (*devices == di->pcii.device_id )
652 di->pcii.vendor_id, di->pcii.device_id,
653 di->pcii.bus, di->pcii.device, di->pcii.function);
660 sprintf(di->name, "graphics/%s", tmp_name);
662 pd->device_names[count] = di->name;
664 di->is_open = 0;
666 di->shared_area = -1;
668 di->si = NULL;
672 copy_rom(di);
674 di++;
714 device_info *di = (device_info *)data;
715 shared_info *si = di->si;
724 regs = di->regs;
743 device_info *di;
755 di = &(pd->di[index]);
761 if (di->is_open) {
767 di->pcii.vendor_id, di->pcii.device_id,
768 di->pcii.bus, di->pcii.device, di->pcii.function);
770 di->shared_area = create_area(shared_name, (void **)&(di->si), B_ANY_KERNEL_ADDRESS,
773 if (di->shared_area < 0) {
775 result = di->shared_area;
780 si = di->si;
783 si->vendor_id = di->pcii.vendor_id;
784 si->device_id = di->pcii.device_id;
785 si->revision = di->pcii.revision;
786 si->bus = di->pcii.bus;
787 si->device = di->pcii.device;
788 si->function = di->pcii.function;
794 result = map_device(di);
801 disable_vbi(di->regs);
807 si->vblank = create_sem(0, di->name);
817 if ((di->pcii.u.h0.interrupt_pin == 0x00) ||
818 (di->pcii.u.h0.interrupt_line == 0xff) || /* no IRQ assigned */
819 (di->pcii.u.h0.interrupt_line <= 0x02)) /* system IRQ assigned */
828 result = install_io_interrupt_handler(di->pcii.u.h0.interrupt_line, gx00_interrupt, (void *)di, 0);
845 di->is_open++;
848 *cookie = di;
855 delete_area(di->shared_area);
856 di->shared_area = -1;
857 di->si = NULL;
903 device_info *di = (device_info *)dev;
904 shared_info *si = di->si;
905 vuint32 *regs = di->regs;
911 if (di->is_open > 1)
920 remove_io_interrupt_handler(di->pcii.u.h0.interrupt_line, gx00_interrupt, di);
928 unmap_device(di);
931 delete_area(di->shared_area);
932 di->shared_area = -1;
933 di->si = NULL;
937 di->is_open--;
949 device_info *di = (device_info *)dev;
968 gpd.shared_info_area = di->shared_area;
977 pci_info *pcii = &(di->pcii);
987 pci_info *pcii = &(di->pcii);
997 if (user_strlcpy(dn.name, di->name, B_OS_NAME_LENGTH) < B_OK)
1007 vuint32 *regs = di->regs;