Lines Matching refs:vgadev

130 	struct vga_device *vgadev;  in vgadev_find()  local
132 list_for_each_entry(vgadev, &vga_list, list) in vgadev_find()
133 if (pdev == vgadev->pdev) in vgadev_find()
134 return vgadev; in vgadev_find()
232 static struct vga_device *__vga_tryget(struct vga_device *vgadev, in __vga_tryget() argument
235 struct device *dev = &vgadev->pdev->dev; in __vga_tryget()
245 (vgadev->decodes & VGA_RSRC_LEGACY_IO)) in __vga_tryget()
248 (vgadev->decodes & VGA_RSRC_LEGACY_MEM)) in __vga_tryget()
252 vgaarb_dbg(dev, "%s: owns: %d\n", __func__, vgadev->owns); in __vga_tryget()
255 wants = rsrc & ~vgadev->owns; in __vga_tryget()
274 if (vgadev == conflict) in __vga_tryget()
283 if (vgadev->pdev->bus != conflict->pdev->bus) { in __vga_tryget()
344 if (!vgadev->bridge_has_one_vga) { in __vga_tryget()
354 pci_set_vga_state(vgadev->pdev, true, pci_bits, flags); in __vga_tryget()
356 vgadev->owns |= wants; in __vga_tryget()
358 vgadev->locks |= (rsrc & VGA_RSRC_LEGACY_MASK); in __vga_tryget()
360 vgadev->io_lock_cnt++; in __vga_tryget()
362 vgadev->mem_lock_cnt++; in __vga_tryget()
364 vgadev->io_norm_cnt++; in __vga_tryget()
366 vgadev->mem_norm_cnt++; in __vga_tryget()
371 static void __vga_put(struct vga_device *vgadev, unsigned int rsrc) in __vga_put() argument
373 struct device *dev = &vgadev->pdev->dev; in __vga_put()
374 unsigned int old_locks = vgadev->locks; in __vga_put()
381 if ((rsrc & VGA_RSRC_NORMAL_IO) && vgadev->io_norm_cnt > 0) { in __vga_put()
382 vgadev->io_norm_cnt--; in __vga_put()
383 if (vgadev->decodes & VGA_RSRC_LEGACY_IO) in __vga_put()
386 if ((rsrc & VGA_RSRC_NORMAL_MEM) && vgadev->mem_norm_cnt > 0) { in __vga_put()
387 vgadev->mem_norm_cnt--; in __vga_put()
388 if (vgadev->decodes & VGA_RSRC_LEGACY_MEM) in __vga_put()
391 if ((rsrc & VGA_RSRC_LEGACY_IO) && vgadev->io_lock_cnt > 0) in __vga_put()
392 vgadev->io_lock_cnt--; in __vga_put()
393 if ((rsrc & VGA_RSRC_LEGACY_MEM) && vgadev->mem_lock_cnt > 0) in __vga_put()
394 vgadev->mem_lock_cnt--; in __vga_put()
399 if (vgadev->io_lock_cnt == 0) in __vga_put()
400 vgadev->locks &= ~VGA_RSRC_LEGACY_IO; in __vga_put()
401 if (vgadev->mem_lock_cnt == 0) in __vga_put()
402 vgadev->locks &= ~VGA_RSRC_LEGACY_MEM; in __vga_put()
407 if (old_locks != vgadev->locks) in __vga_put()
447 struct vga_device *vgadev, *conflict; in vga_get() local
461 vgadev = vgadev_find(pdev); in vga_get()
462 if (vgadev == NULL) { in vga_get()
467 conflict = __vga_tryget(vgadev, rsrc); in vga_get()
514 struct vga_device *vgadev; in vga_tryget() local
526 vgadev = vgadev_find(pdev); in vga_tryget()
527 if (vgadev == NULL) { in vga_tryget()
531 if (__vga_tryget(vgadev, rsrc)) in vga_tryget()
550 struct vga_device *vgadev; in vga_put() local
559 vgadev = vgadev_find(pdev); in vga_put()
560 if (vgadev == NULL) in vga_put()
562 __vga_put(vgadev, rsrc); in vga_put()
577 static void vga_arbiter_check_bridge_sharing(struct vga_device *vgadev) in vga_arbiter_check_bridge_sharing() argument
583 vgadev->bridge_has_one_vga = true; in vga_arbiter_check_bridge_sharing()
589 new_bus = vgadev->pdev->bus; in vga_arbiter_check_bridge_sharing()
617 if (bridge && bridge == vgadev->pdev->bus->self) in vga_arbiter_check_bridge_sharing()
618 vgadev->bridge_has_one_vga = false; in vga_arbiter_check_bridge_sharing()
635 struct vga_device *vgadev; in vga_arbiter_add_pci_device() local
646 vgadev = kzalloc(sizeof(struct vga_device), GFP_KERNEL); in vga_arbiter_add_pci_device()
647 if (vgadev == NULL) { in vga_arbiter_add_pci_device()
662 vgadev->pdev = pdev; in vga_arbiter_add_pci_device()
665 vgadev->decodes = VGA_RSRC_LEGACY_IO | VGA_RSRC_LEGACY_MEM | in vga_arbiter_add_pci_device()
675 vgadev->owns |= VGA_RSRC_LEGACY_IO; in vga_arbiter_add_pci_device()
677 vgadev->owns |= VGA_RSRC_LEGACY_MEM; in vga_arbiter_add_pci_device()
688 vgadev->owns = 0; in vga_arbiter_add_pci_device()
699 ((vgadev->owns & VGA_RSRC_LEGACY_MASK) == VGA_RSRC_LEGACY_MASK)) { in vga_arbiter_add_pci_device()
704 vga_arbiter_check_bridge_sharing(vgadev); in vga_arbiter_add_pci_device()
707 list_add_tail(&vgadev->list, &vga_list); in vga_arbiter_add_pci_device()
710 vga_iostate_to_str(vgadev->decodes), in vga_arbiter_add_pci_device()
711 vga_iostate_to_str(vgadev->owns), in vga_arbiter_add_pci_device()
712 vga_iostate_to_str(vgadev->locks)); in vga_arbiter_add_pci_device()
718 kfree(vgadev); in vga_arbiter_add_pci_device()
724 struct vga_device *vgadev; in vga_arbiter_del_pci_device() local
729 vgadev = vgadev_find(pdev); in vga_arbiter_del_pci_device()
730 if (vgadev == NULL) { in vga_arbiter_del_pci_device()
738 if (vgadev->decodes & (VGA_RSRC_LEGACY_IO | VGA_RSRC_LEGACY_MEM)) in vga_arbiter_del_pci_device()
742 list_del(&vgadev->list); in vga_arbiter_del_pci_device()
753 kfree(vgadev); in vga_arbiter_del_pci_device()
758 static inline void vga_update_device_decodes(struct vga_device *vgadev, in vga_update_device_decodes() argument
761 struct device *dev = &vgadev->pdev->dev; in vga_update_device_decodes()
764 old_decodes = vgadev->decodes; in vga_update_device_decodes()
766 decodes_unlocked = vgadev->locks & decodes_removed; in vga_update_device_decodes()
767 vgadev->decodes = new_decodes; in vga_update_device_decodes()
771 vga_iostate_to_str(vgadev->decodes), in vga_update_device_decodes()
772 vga_iostate_to_str(vgadev->owns)); in vga_update_device_decodes()
777 vgadev->io_lock_cnt = 0; in vga_update_device_decodes()
779 vgadev->mem_lock_cnt = 0; in vga_update_device_decodes()
780 __vga_put(vgadev, decodes_unlocked); in vga_update_device_decodes()
797 struct vga_device *vgadev; in __vga_set_legacy_decoding() local
803 vgadev = vgadev_find(pdev); in __vga_set_legacy_decoding()
804 if (vgadev == NULL) in __vga_set_legacy_decoding()
808 if (userspace && vgadev->set_decode) in __vga_set_legacy_decoding()
812 vga_update_device_decodes(vgadev, decodes); in __vga_set_legacy_decoding()
867 struct vga_device *vgadev; in vga_client_register() local
871 vgadev = vgadev_find(pdev); in vga_client_register()
872 if (!vgadev) in vga_client_register()
875 vgadev->set_decode = set_decode; in vga_client_register()
986 struct vga_device *vgadev; in vga_arb_read() local
1011 vgadev = vgadev_find(pdev); in vga_arb_read()
1012 if (vgadev == NULL) { in vga_arb_read()
1027 vga_iostate_to_str(vgadev->decodes), in vga_arb_read()
1028 vga_iostate_to_str(vgadev->owns), in vga_arb_read()
1029 vga_iostate_to_str(vgadev->locks), in vga_arb_read()
1030 vgadev->io_lock_cnt, vgadev->mem_lock_cnt); in vga_arb_read()
1206 struct vga_device *vgadev; in vga_arb_write() local
1234 vgadev = vgadev_find(pdev); in vga_arb_write()
1235 pr_debug("vgadev %p\n", vgadev); in vga_arb_write()
1236 if (vgadev == NULL) { in vga_arb_write()
1371 struct vga_device *vgadev; in vga_arbiter_notify_clients() local
1380 list_for_each_entry(vgadev, &vga_list, list) { in vga_arbiter_notify_clients()
1385 if (vgadev->set_decode) { in vga_arbiter_notify_clients()
1386 new_decodes = vgadev->set_decode(vgadev->pdev, in vga_arbiter_notify_clients()
1388 vga_update_device_decodes(vgadev, new_decodes); in vga_arbiter_notify_clients()
1450 struct vga_device *vgadev; in vga_arb_select_default_device() local
1465 list_for_each_entry(vgadev, &vga_list, list) { in vga_arb_select_default_device()
1466 struct device *dev = &vgadev->pdev->dev; in vga_arb_select_default_device()
1478 flags = pci_resource_flags(vgadev->pdev, i); in vga_arb_select_default_device()
1483 start = pci_resource_start(vgadev->pdev, i); in vga_arb_select_default_device()
1484 end = pci_resource_end(vgadev->pdev, i); in vga_arb_select_default_device()
1494 else if (vgadev->pdev != vga_default_device()) in vga_arb_select_default_device()
1496 vga_set_default_device(vgadev->pdev); in vga_arb_select_default_device()
1502 list_for_each_entry_reverse(vgadev, &vga_list, list) { in vga_arb_select_default_device()
1503 struct device *dev = &vgadev->pdev->dev; in vga_arb_select_default_device()
1506 pdev = vgadev->pdev; in vga_arb_select_default_device()
1523 vgadev = list_first_entry_or_null(&vga_list, in vga_arb_select_default_device()
1525 if (vgadev) { in vga_arb_select_default_device()
1526 struct device *dev = &vgadev->pdev->dev; in vga_arb_select_default_device()
1528 vga_set_default_device(vgadev->pdev); in vga_arb_select_default_device()
1537 struct vga_device *vgadev; in vga_arb_device_init() local
1553 list_for_each_entry(vgadev, &vga_list, list) { in vga_arb_device_init()
1554 struct device *dev = &vgadev->pdev->dev; in vga_arb_device_init()
1556 if (vgadev->bridge_has_one_vga) in vga_arb_device_init()