Lines Matching refs:di

53 	device_info	*di;			/* pointer to the owning device */
70 device_info di[MAX_DEVICES]; /* device specific stuff */
80 static status_t map_device(device_info *di);
81 static void unmap_device(device_info *di);
320 static status_t map_device(device_info *di)
323 shared_info *si = di->si;
325 pci_info *pcii = &(di->pcii);
359 switch (di->pcii.device_id)
373 di->pcii.vendor_id, di->pcii.device_id,
374 di->pcii.bus, di->pcii.device, di->pcii.function);
379 di->pcii.u.h0.base_registers[registers],
380 di->pcii.u.h0.base_register_sizes[registers],
383 (void **)&(di->regs));
384 si->clone_bugfix_regs = (uint32 *) di->regs;
391 di->pcii.vendor_id, di->pcii.device_id,
392 di->pcii.bus, di->pcii.device, di->pcii.function);
396 di->pcii.u.h0.base_registers[registers2],
397 di->pcii.u.h0.base_register_sizes[registers2],
400 (void **)&(di->regs2));
401 si->clone_bugfix_regs2 = (uint32 *) di->regs2;
416 di->pcii.vendor_id, di->pcii.device_id,
417 di->pcii.bus, di->pcii.device, di->pcii.function);
429 di->pcii.u.h0.rom_base_pci,
430 di->pcii.u.h0.rom_size,
489 di->pcii.vendor_id, di->pcii.device_id,
490 di->pcii.bus, di->pcii.device, di->pcii.function);
495 di->pcii.u.h0.base_registers[frame_buffer],
496 di->pcii.u.h0.base_register_sizes[frame_buffer],
505 di->pcii.u.h0.base_registers[frame_buffer],
506 di->pcii.u.h0.base_register_sizes[frame_buffer],
529 switch (di->pcii.device_id)
533 di->regs = (uint32 *)((uint8 *)si->framebuffer + 0x100000);
534 si->clone_bugfix_regs = (uint32 *) di->regs;
539 di->regs = (uint32 *)((uint8 *)si->framebuffer + 0x200000);
540 si->clone_bugfix_regs = (uint32 *) di->regs;
545 si->framebuffer_pci = (void *) di->pcii.u.h0.base_registers_pci[frame_buffer];
554 static void unmap_device(device_info *di) {
555 shared_info *si = di->si;
557 pci_info *pcii = &(di->pcii);
569 di->regs = NULL;
575 device_info *di = pd->di;
578 while ((count < MAX_DEVICES) && ((*pci_bus->get_nth_pci_info)(pci_index, &(di->pcii)) == B_NO_ERROR)) {
583 if (SupportedDevices[vendor].vendor == di->pcii.vendor_id) {
588 if (*devices == di->pcii.device_id ) {
590 sprintf(di->name, "graphics/" DEVICE_FORMAT,
591 di->pcii.vendor_id, di->pcii.device_id,
592 di->pcii.bus, di->pcii.device, di->pcii.function);
595 pd->device_names[count] = di->name;
597 di->is_open = 0;
599 di->shared_area = -1;
601 di->si = NULL;
603 di++;
642 device_info *di = (device_info *)data;
643 shared_info *si = di->si;
652 regs = di->regs;
653 regs2 = di->regs2;
672 device_info *di;
684 di = &(pd->di[index]);
690 if (di->is_open) {
696 di->pcii.vendor_id, di->pcii.device_id,
697 di->pcii.bus, di->pcii.device, di->pcii.function);
699 di->shared_area = create_area(shared_name, (void **)&(di->si), B_ANY_KERNEL_ADDRESS, ((sizeof(shared_info) + (B_PAGE_SIZE - 1)) & ~(B_PAGE_SIZE - 1)), B_FULL_LOCK,
701 if (di->shared_area < 0) {
703 result = di->shared_area;
708 si = di->si;
711 si->vendor_id = di->pcii.vendor_id;
712 si->device_id = di->pcii.device_id;
713 si->revision = di->pcii.revision;
719 result = map_device(di);
726 disable_vbi(di->regs, di->regs2);
732 si->vblank = create_sem(0, di->name);
742 if ((di->pcii.u.h0.interrupt_pin == 0x00) ||
743 (di->pcii.u.h0.interrupt_line == 0xff) || /* no IRQ assigned */
744 (di->pcii.u.h0.interrupt_line <= 0x02)) /* system IRQ assigned */
753 result = install_io_interrupt_handler(di->pcii.u.h0.interrupt_line, nm_interrupt, (void *)di, 0);
770 di->is_open++;
773 *cookie = di;
780 delete_area(di->shared_area);
781 di->shared_area = -1;
782 di->si = NULL;
828 device_info *di = (device_info *)dev;
829 shared_info *si = di->si;
830 vuint32 *regs = di->regs;
831 vuint32 *regs2 = di->regs2;
837 if (di->is_open > 1)
846 remove_io_interrupt_handler(di->pcii.u.h0.interrupt_line, nm_interrupt, di);
854 unmap_device(di);
857 delete_area(di->shared_area);
858 di->shared_area = -1;
859 di->si = NULL;
863 di->is_open--;
875 device_info *di = (device_info *)dev;
890 gpd->shared_info_area = di->shared_area;
897 pci_info *pcii = &(di->pcii);
905 pci_info *pcii = &(di->pcii);
913 strcpy(dn->name, di->name);
920 vuint32 *regs = di->regs;
921 vuint32 *regs2 = di->regs2;