Lines Matching refs:vgadev

126 	struct vga_device *vgadev;  in vgadev_find()  local
128 list_for_each_entry(vgadev, &vga_list, list) in vgadev_find()
129 if (pdev == vgadev->pdev) in vgadev_find()
130 return vgadev; in vgadev_find()
150 static inline void vga_irq_set_state(struct vga_device *vgadev, bool state) in vga_irq_set_state() argument
152 if (vgadev->irq_set_state) in vga_irq_set_state()
153 vgadev->irq_set_state(vgadev->cookie, state); in vga_irq_set_state()
171 static struct vga_device *__vga_tryget(struct vga_device *vgadev, in __vga_tryget() argument
183 (vgadev->decodes & VGA_RSRC_LEGACY_IO)) in __vga_tryget()
186 (vgadev->decodes & VGA_RSRC_LEGACY_MEM)) in __vga_tryget()
190 pr_debug("%s: owns: %d\n", __func__, vgadev->owns); in __vga_tryget()
193 wants = rsrc & ~vgadev->owns; in __vga_tryget()
212 if (vgadev == conflict) in __vga_tryget()
218 if (!vga_conflicts(vgadev->pdev, conflict->pdev)) in __vga_tryget()
227 if (vgadev->pdev->bus != conflict->pdev->bus) { in __vga_tryget()
290 if (!vgadev->bridge_has_one_vga) { in __vga_tryget()
300 pci_set_vga_state(vgadev->pdev, true, pci_bits, flags); in __vga_tryget()
302 if (!vgadev->bridge_has_one_vga) in __vga_tryget()
303 vga_irq_set_state(vgadev, true); in __vga_tryget()
305 vgadev->owns |= wants; in __vga_tryget()
307 vgadev->locks |= (rsrc & VGA_RSRC_LEGACY_MASK); in __vga_tryget()
309 vgadev->io_lock_cnt++; in __vga_tryget()
311 vgadev->mem_lock_cnt++; in __vga_tryget()
313 vgadev->io_norm_cnt++; in __vga_tryget()
315 vgadev->mem_norm_cnt++; in __vga_tryget()
320 static void __vga_put(struct vga_device *vgadev, unsigned int rsrc) in __vga_put() argument
322 unsigned int old_locks = vgadev->locks; in __vga_put()
329 if ((rsrc & VGA_RSRC_NORMAL_IO) && vgadev->io_norm_cnt > 0) { in __vga_put()
330 vgadev->io_norm_cnt--; in __vga_put()
331 if (vgadev->decodes & VGA_RSRC_LEGACY_IO) in __vga_put()
334 if ((rsrc & VGA_RSRC_NORMAL_MEM) && vgadev->mem_norm_cnt > 0) { in __vga_put()
335 vgadev->mem_norm_cnt--; in __vga_put()
336 if (vgadev->decodes & VGA_RSRC_LEGACY_MEM) in __vga_put()
339 if ((rsrc & VGA_RSRC_LEGACY_IO) && vgadev->io_lock_cnt > 0) in __vga_put()
340 vgadev->io_lock_cnt--; in __vga_put()
341 if ((rsrc & VGA_RSRC_LEGACY_MEM) && vgadev->mem_lock_cnt > 0) in __vga_put()
342 vgadev->mem_lock_cnt--; in __vga_put()
347 if (vgadev->io_lock_cnt == 0) in __vga_put()
348 vgadev->locks &= ~VGA_RSRC_LEGACY_IO; in __vga_put()
349 if (vgadev->mem_lock_cnt == 0) in __vga_put()
350 vgadev->locks &= ~VGA_RSRC_LEGACY_MEM; in __vga_put()
355 if (old_locks != vgadev->locks) in __vga_put()
361 struct vga_device *vgadev, *conflict; in vga_get() local
375 vgadev = vgadev_find(pdev); in vga_get()
376 if (vgadev == NULL) { in vga_get()
381 conflict = __vga_tryget(vgadev, rsrc); in vga_get()
413 struct vga_device *vgadev; in vga_tryget() local
425 vgadev = vgadev_find(pdev); in vga_tryget()
426 if (vgadev == NULL) { in vga_tryget()
430 if (__vga_tryget(vgadev, rsrc)) in vga_tryget()
440 struct vga_device *vgadev; in vga_put() local
449 vgadev = vgadev_find(pdev); in vga_put()
450 if (vgadev == NULL) in vga_put()
452 __vga_put(vgadev, rsrc); in vga_put()
467 static void vga_arbiter_check_bridge_sharing(struct vga_device *vgadev) in vga_arbiter_check_bridge_sharing() argument
473 vgadev->bridge_has_one_vga = true; in vga_arbiter_check_bridge_sharing()
479 new_bus = vgadev->pdev->bus; in vga_arbiter_check_bridge_sharing()
507 if (bridge && bridge == vgadev->pdev->bus->self) in vga_arbiter_check_bridge_sharing()
508 vgadev->bridge_has_one_vga = false; in vga_arbiter_check_bridge_sharing()
525 struct vga_device *vgadev; in vga_arbiter_add_pci_device() local
536 vgadev = kzalloc(sizeof(struct vga_device), GFP_KERNEL); in vga_arbiter_add_pci_device()
537 if (vgadev == NULL) { in vga_arbiter_add_pci_device()
552 vgadev->pdev = pdev; in vga_arbiter_add_pci_device()
555 vgadev->decodes = VGA_RSRC_LEGACY_IO | VGA_RSRC_LEGACY_MEM | in vga_arbiter_add_pci_device()
565 vgadev->owns |= VGA_RSRC_LEGACY_IO; in vga_arbiter_add_pci_device()
567 vgadev->owns |= VGA_RSRC_LEGACY_MEM; in vga_arbiter_add_pci_device()
578 vgadev->owns = 0; in vga_arbiter_add_pci_device()
589 ((vgadev->owns & VGA_RSRC_LEGACY_MASK) == VGA_RSRC_LEGACY_MASK)) { in vga_arbiter_add_pci_device()
594 vga_arbiter_check_bridge_sharing(vgadev); in vga_arbiter_add_pci_device()
597 list_add(&vgadev->list, &vga_list); in vga_arbiter_add_pci_device()
601 vga_iostate_to_str(vgadev->decodes), in vga_arbiter_add_pci_device()
602 vga_iostate_to_str(vgadev->owns), in vga_arbiter_add_pci_device()
603 vga_iostate_to_str(vgadev->locks)); in vga_arbiter_add_pci_device()
609 kfree(vgadev); in vga_arbiter_add_pci_device()
615 struct vga_device *vgadev; in vga_arbiter_del_pci_device() local
620 vgadev = vgadev_find(pdev); in vga_arbiter_del_pci_device()
621 if (vgadev == NULL) { in vga_arbiter_del_pci_device()
629 if (vgadev->decodes & (VGA_RSRC_LEGACY_IO | VGA_RSRC_LEGACY_MEM)) in vga_arbiter_del_pci_device()
633 list_del(&vgadev->list); in vga_arbiter_del_pci_device()
644 kfree(vgadev); in vga_arbiter_del_pci_device()
649 static inline void vga_update_device_decodes(struct vga_device *vgadev, in vga_update_device_decodes() argument
654 old_decodes = vgadev->decodes; in vga_update_device_decodes()
656 decodes_unlocked = vgadev->locks & decodes_removed; in vga_update_device_decodes()
657 vgadev->decodes = new_decodes; in vga_update_device_decodes()
660 pci_name(vgadev->pdev), in vga_update_device_decodes()
662 vga_iostate_to_str(vgadev->decodes), in vga_update_device_decodes()
663 vga_iostate_to_str(vgadev->owns)); in vga_update_device_decodes()
668 vgadev->io_lock_cnt = 0; in vga_update_device_decodes()
670 vgadev->mem_lock_cnt = 0; in vga_update_device_decodes()
671 __vga_put(vgadev, decodes_unlocked); in vga_update_device_decodes()
688 struct vga_device *vgadev; in __vga_set_legacy_decoding() local
694 vgadev = vgadev_find(pdev); in __vga_set_legacy_decoding()
695 if (vgadev == NULL) in __vga_set_legacy_decoding()
699 if (userspace && vgadev->set_vga_decode) in __vga_set_legacy_decoding()
703 vga_update_device_decodes(vgadev, decodes); in __vga_set_legacy_decoding()
726 struct vga_device *vgadev; in vga_client_register() local
730 vgadev = vgadev_find(pdev); in vga_client_register()
731 if (!vgadev) in vga_client_register()
734 vgadev->irq_set_state = irq_set_state; in vga_client_register()
735 vgadev->set_vga_decode = set_vga_decode; in vga_client_register()
736 vgadev->cookie = cookie; in vga_client_register()
847 struct vga_device *vgadev; in vga_arb_read() local
872 vgadev = vgadev_find(pdev); in vga_arb_read()
873 if (vgadev == NULL) { in vga_arb_read()
888 vga_iostate_to_str(vgadev->decodes), in vga_arb_read()
889 vga_iostate_to_str(vgadev->owns), in vga_arb_read()
890 vga_iostate_to_str(vgadev->locks), in vga_arb_read()
891 vgadev->io_lock_cnt, vgadev->mem_lock_cnt); in vga_arb_read()
1072 struct vga_device *vgadev; in vga_arb_write() local
1099 vgadev = vgadev_find(pdev); in vga_arb_write()
1100 pr_debug("vgadev %p\n", vgadev); in vga_arb_write()
1101 if (vgadev == NULL) { in vga_arb_write()
1245 struct vga_device *vgadev; in vga_arbiter_notify_clients() local
1254 list_for_each_entry(vgadev, &vga_list, list) { in vga_arbiter_notify_clients()
1259 if (vgadev->set_vga_decode) { in vga_arbiter_notify_clients()
1260 new_decodes = vgadev->set_vga_decode(vgadev->cookie, in vga_arbiter_notify_clients()
1262 vga_update_device_decodes(vgadev, new_decodes); in vga_arbiter_notify_clients()
1311 struct vga_device *vgadev; in vga_arb_device_init() local
1329 list_for_each_entry(vgadev, &vga_list, list) { in vga_arb_device_init()
1347 flags = pci_resource_flags(vgadev->pdev, i); in vga_arb_device_init()
1352 start = pci_resource_start(vgadev->pdev, i); in vga_arb_device_init()
1353 end = pci_resource_end(vgadev->pdev, i); in vga_arb_device_init()
1363 pci_name(vgadev->pdev)); in vga_arb_device_init()
1364 else if (vgadev->pdev != vga_default_device()) in vga_arb_device_init()
1366 pci_name(vgadev->pdev)); in vga_arb_device_init()
1367 vga_set_default_device(vgadev->pdev); in vga_arb_device_init()
1370 if (vgadev->bridge_has_one_vga) in vga_arb_device_init()
1372 pci_name(vgadev->pdev)); in vga_arb_device_init()
1375 pci_name(vgadev->pdev)); in vga_arb_device_init()