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()
171 static inline void vga_irq_set_state(struct vga_device *vgadev, bool state) in vga_irq_set_state() argument
173 if (vgadev->irq_set_state) in vga_irq_set_state()
174 vgadev->irq_set_state(vgadev->cookie, state); in vga_irq_set_state()
192 static struct vga_device *__vga_tryget(struct vga_device *vgadev, in __vga_tryget() argument
195 struct device *dev = &vgadev->pdev->dev; in __vga_tryget()
205 (vgadev->decodes & VGA_RSRC_LEGACY_IO)) in __vga_tryget()
208 (vgadev->decodes & VGA_RSRC_LEGACY_MEM)) in __vga_tryget()
212 vgaarb_dbg(dev, "%s: owns: %d\n", __func__, vgadev->owns); in __vga_tryget()
215 wants = rsrc & ~vgadev->owns; in __vga_tryget()
234 if (vgadev == conflict) in __vga_tryget()
240 if (!vga_conflicts(vgadev->pdev, conflict->pdev)) in __vga_tryget()
249 if (vgadev->pdev->bus != conflict->pdev->bus) { in __vga_tryget()
312 if (!vgadev->bridge_has_one_vga) { in __vga_tryget()
322 pci_set_vga_state(vgadev->pdev, true, pci_bits, flags); in __vga_tryget()
324 if (!vgadev->bridge_has_one_vga) in __vga_tryget()
325 vga_irq_set_state(vgadev, true); in __vga_tryget()
327 vgadev->owns |= wants; in __vga_tryget()
329 vgadev->locks |= (rsrc & VGA_RSRC_LEGACY_MASK); in __vga_tryget()
331 vgadev->io_lock_cnt++; in __vga_tryget()
333 vgadev->mem_lock_cnt++; in __vga_tryget()
335 vgadev->io_norm_cnt++; in __vga_tryget()
337 vgadev->mem_norm_cnt++; in __vga_tryget()
342 static void __vga_put(struct vga_device *vgadev, unsigned int rsrc) in __vga_put() argument
344 struct device *dev = &vgadev->pdev->dev; in __vga_put()
345 unsigned int old_locks = vgadev->locks; in __vga_put()
352 if ((rsrc & VGA_RSRC_NORMAL_IO) && vgadev->io_norm_cnt > 0) { in __vga_put()
353 vgadev->io_norm_cnt--; in __vga_put()
354 if (vgadev->decodes & VGA_RSRC_LEGACY_IO) in __vga_put()
357 if ((rsrc & VGA_RSRC_NORMAL_MEM) && vgadev->mem_norm_cnt > 0) { in __vga_put()
358 vgadev->mem_norm_cnt--; in __vga_put()
359 if (vgadev->decodes & VGA_RSRC_LEGACY_MEM) in __vga_put()
362 if ((rsrc & VGA_RSRC_LEGACY_IO) && vgadev->io_lock_cnt > 0) in __vga_put()
363 vgadev->io_lock_cnt--; in __vga_put()
364 if ((rsrc & VGA_RSRC_LEGACY_MEM) && vgadev->mem_lock_cnt > 0) in __vga_put()
365 vgadev->mem_lock_cnt--; in __vga_put()
370 if (vgadev->io_lock_cnt == 0) in __vga_put()
371 vgadev->locks &= ~VGA_RSRC_LEGACY_IO; in __vga_put()
372 if (vgadev->mem_lock_cnt == 0) in __vga_put()
373 vgadev->locks &= ~VGA_RSRC_LEGACY_MEM; in __vga_put()
378 if (old_locks != vgadev->locks) in __vga_put()
418 struct vga_device *vgadev, *conflict; in vga_get() local
432 vgadev = vgadev_find(pdev); in vga_get()
433 if (vgadev == NULL) { in vga_get()
438 conflict = __vga_tryget(vgadev, rsrc); in vga_get()
485 struct vga_device *vgadev; in vga_tryget() local
497 vgadev = vgadev_find(pdev); in vga_tryget()
498 if (vgadev == NULL) { in vga_tryget()
502 if (__vga_tryget(vgadev, rsrc)) in vga_tryget()
522 struct vga_device *vgadev; in vga_put() local
531 vgadev = vgadev_find(pdev); in vga_put()
532 if (vgadev == NULL) in vga_put()
534 __vga_put(vgadev, rsrc); in vga_put()
549 static void vga_arbiter_check_bridge_sharing(struct vga_device *vgadev) in vga_arbiter_check_bridge_sharing() argument
555 vgadev->bridge_has_one_vga = true; in vga_arbiter_check_bridge_sharing()
561 new_bus = vgadev->pdev->bus; in vga_arbiter_check_bridge_sharing()
589 if (bridge && bridge == vgadev->pdev->bus->self) in vga_arbiter_check_bridge_sharing()
590 vgadev->bridge_has_one_vga = false; in vga_arbiter_check_bridge_sharing()
607 struct vga_device *vgadev; in vga_arbiter_add_pci_device() local
618 vgadev = kzalloc(sizeof(struct vga_device), GFP_KERNEL); in vga_arbiter_add_pci_device()
619 if (vgadev == NULL) { in vga_arbiter_add_pci_device()
634 vgadev->pdev = pdev; in vga_arbiter_add_pci_device()
637 vgadev->decodes = VGA_RSRC_LEGACY_IO | VGA_RSRC_LEGACY_MEM | in vga_arbiter_add_pci_device()
647 vgadev->owns |= VGA_RSRC_LEGACY_IO; in vga_arbiter_add_pci_device()
649 vgadev->owns |= VGA_RSRC_LEGACY_MEM; in vga_arbiter_add_pci_device()
660 vgadev->owns = 0; in vga_arbiter_add_pci_device()
671 ((vgadev->owns & VGA_RSRC_LEGACY_MASK) == VGA_RSRC_LEGACY_MASK)) { in vga_arbiter_add_pci_device()
676 vga_arbiter_check_bridge_sharing(vgadev); in vga_arbiter_add_pci_device()
679 list_add(&vgadev->list, &vga_list); in vga_arbiter_add_pci_device()
682 vga_iostate_to_str(vgadev->decodes), in vga_arbiter_add_pci_device()
683 vga_iostate_to_str(vgadev->owns), in vga_arbiter_add_pci_device()
684 vga_iostate_to_str(vgadev->locks)); in vga_arbiter_add_pci_device()
690 kfree(vgadev); in vga_arbiter_add_pci_device()
696 struct vga_device *vgadev; in vga_arbiter_del_pci_device() local
701 vgadev = vgadev_find(pdev); in vga_arbiter_del_pci_device()
702 if (vgadev == NULL) { in vga_arbiter_del_pci_device()
710 if (vgadev->decodes & (VGA_RSRC_LEGACY_IO | VGA_RSRC_LEGACY_MEM)) in vga_arbiter_del_pci_device()
714 list_del(&vgadev->list); in vga_arbiter_del_pci_device()
725 kfree(vgadev); in vga_arbiter_del_pci_device()
730 static inline void vga_update_device_decodes(struct vga_device *vgadev, in vga_update_device_decodes() argument
733 struct device *dev = &vgadev->pdev->dev; in vga_update_device_decodes()
736 old_decodes = vgadev->decodes; in vga_update_device_decodes()
738 decodes_unlocked = vgadev->locks & decodes_removed; in vga_update_device_decodes()
739 vgadev->decodes = new_decodes; in vga_update_device_decodes()
743 vga_iostate_to_str(vgadev->decodes), in vga_update_device_decodes()
744 vga_iostate_to_str(vgadev->owns)); in vga_update_device_decodes()
749 vgadev->io_lock_cnt = 0; in vga_update_device_decodes()
751 vgadev->mem_lock_cnt = 0; in vga_update_device_decodes()
752 __vga_put(vgadev, decodes_unlocked); in vga_update_device_decodes()
769 struct vga_device *vgadev; in __vga_set_legacy_decoding() local
775 vgadev = vgadev_find(pdev); in __vga_set_legacy_decoding()
776 if (vgadev == NULL) in __vga_set_legacy_decoding()
780 if (userspace && vgadev->set_vga_decode) in __vga_set_legacy_decoding()
784 vga_update_device_decodes(vgadev, decodes); in __vga_set_legacy_decoding()
837 struct vga_device *vgadev; in vga_client_register() local
841 vgadev = vgadev_find(pdev); in vga_client_register()
842 if (!vgadev) in vga_client_register()
845 vgadev->irq_set_state = irq_set_state; in vga_client_register()
846 vgadev->set_vga_decode = set_vga_decode; in vga_client_register()
847 vgadev->cookie = cookie; in vga_client_register()
958 struct vga_device *vgadev; in vga_arb_read() local
983 vgadev = vgadev_find(pdev); in vga_arb_read()
984 if (vgadev == NULL) { in vga_arb_read()
999 vga_iostate_to_str(vgadev->decodes), in vga_arb_read()
1000 vga_iostate_to_str(vgadev->owns), in vga_arb_read()
1001 vga_iostate_to_str(vgadev->locks), in vga_arb_read()
1002 vgadev->io_lock_cnt, vgadev->mem_lock_cnt); in vga_arb_read()
1178 struct vga_device *vgadev; in vga_arb_write() local
1206 vgadev = vgadev_find(pdev); in vga_arb_write()
1207 pr_debug("vgadev %p\n", vgadev); in vga_arb_write()
1208 if (vgadev == NULL) { in vga_arb_write()
1343 struct vga_device *vgadev; in vga_arbiter_notify_clients() local
1352 list_for_each_entry(vgadev, &vga_list, list) { in vga_arbiter_notify_clients()
1357 if (vgadev->set_vga_decode) { in vga_arbiter_notify_clients()
1358 new_decodes = vgadev->set_vga_decode(vgadev->cookie, in vga_arbiter_notify_clients()
1360 vga_update_device_decodes(vgadev, new_decodes); in vga_arbiter_notify_clients()
1408 struct vga_device *vgadev; in vga_arb_select_default_device() local
1411 list_for_each_entry(vgadev, &vga_list, list) { in vga_arb_select_default_device()
1412 struct device *dev = &vgadev->pdev->dev; in vga_arb_select_default_device()
1429 flags = pci_resource_flags(vgadev->pdev, i); in vga_arb_select_default_device()
1434 start = pci_resource_start(vgadev->pdev, i); in vga_arb_select_default_device()
1435 end = pci_resource_end(vgadev->pdev, i); in vga_arb_select_default_device()
1445 else if (vgadev->pdev != vga_default_device()) in vga_arb_select_default_device()
1447 vga_set_default_device(vgadev->pdev); in vga_arb_select_default_device()
1453 list_for_each_entry(vgadev, &vga_list, list) { in vga_arb_select_default_device()
1454 struct device *dev = &vgadev->pdev->dev; in vga_arb_select_default_device()
1457 pdev = vgadev->pdev; in vga_arb_select_default_device()
1468 vgadev = list_first_entry_or_null(&vga_list, in vga_arb_select_default_device()
1470 if (vgadev) { in vga_arb_select_default_device()
1471 struct device *dev = &vgadev->pdev->dev; in vga_arb_select_default_device()
1473 vga_set_default_device(vgadev->pdev); in vga_arb_select_default_device()
1482 struct vga_device *vgadev; in vga_arb_device_init() local
1498 list_for_each_entry(vgadev, &vga_list, list) { in vga_arb_device_init()
1499 struct device *dev = &vgadev->pdev->dev; in vga_arb_device_init()
1501 if (vgadev->bridge_has_one_vga) in vga_arb_device_init()