Lines Matching refs:vgadev
132 struct vga_device *vgadev; in vgadev_find() local
134 list_for_each_entry(vgadev, &vga_list, list) in vgadev_find()
135 if (pdev == vgadev->pdev) in vgadev_find()
136 return vgadev; in vgadev_find()
220 static inline void vga_irq_set_state(struct vga_device *vgadev, bool state) in vga_irq_set_state() argument
222 if (vgadev->irq_set_state) in vga_irq_set_state()
223 vgadev->irq_set_state(vgadev->cookie, state); in vga_irq_set_state()
241 static struct vga_device *__vga_tryget(struct vga_device *vgadev, in __vga_tryget() argument
244 struct device *dev = &vgadev->pdev->dev; in __vga_tryget()
254 (vgadev->decodes & VGA_RSRC_LEGACY_IO)) in __vga_tryget()
257 (vgadev->decodes & VGA_RSRC_LEGACY_MEM)) in __vga_tryget()
261 vgaarb_dbg(dev, "%s: owns: %d\n", __func__, vgadev->owns); in __vga_tryget()
264 wants = rsrc & ~vgadev->owns; in __vga_tryget()
283 if (vgadev == conflict) in __vga_tryget()
289 if (!vga_conflicts(vgadev->pdev, conflict->pdev)) in __vga_tryget()
298 if (vgadev->pdev->bus != conflict->pdev->bus) { in __vga_tryget()
361 if (!vgadev->bridge_has_one_vga) { in __vga_tryget()
371 pci_set_vga_state(vgadev->pdev, true, pci_bits, flags); in __vga_tryget()
373 if (!vgadev->bridge_has_one_vga) in __vga_tryget()
374 vga_irq_set_state(vgadev, true); in __vga_tryget()
376 vgadev->owns |= wants; in __vga_tryget()
378 vgadev->locks |= (rsrc & VGA_RSRC_LEGACY_MASK); in __vga_tryget()
380 vgadev->io_lock_cnt++; in __vga_tryget()
382 vgadev->mem_lock_cnt++; in __vga_tryget()
384 vgadev->io_norm_cnt++; in __vga_tryget()
386 vgadev->mem_norm_cnt++; in __vga_tryget()
391 static void __vga_put(struct vga_device *vgadev, unsigned int rsrc) in __vga_put() argument
393 struct device *dev = &vgadev->pdev->dev; in __vga_put()
394 unsigned int old_locks = vgadev->locks; in __vga_put()
401 if ((rsrc & VGA_RSRC_NORMAL_IO) && vgadev->io_norm_cnt > 0) { in __vga_put()
402 vgadev->io_norm_cnt--; in __vga_put()
403 if (vgadev->decodes & VGA_RSRC_LEGACY_IO) in __vga_put()
406 if ((rsrc & VGA_RSRC_NORMAL_MEM) && vgadev->mem_norm_cnt > 0) { in __vga_put()
407 vgadev->mem_norm_cnt--; in __vga_put()
408 if (vgadev->decodes & VGA_RSRC_LEGACY_MEM) in __vga_put()
411 if ((rsrc & VGA_RSRC_LEGACY_IO) && vgadev->io_lock_cnt > 0) in __vga_put()
412 vgadev->io_lock_cnt--; in __vga_put()
413 if ((rsrc & VGA_RSRC_LEGACY_MEM) && vgadev->mem_lock_cnt > 0) in __vga_put()
414 vgadev->mem_lock_cnt--; in __vga_put()
419 if (vgadev->io_lock_cnt == 0) in __vga_put()
420 vgadev->locks &= ~VGA_RSRC_LEGACY_IO; in __vga_put()
421 if (vgadev->mem_lock_cnt == 0) in __vga_put()
422 vgadev->locks &= ~VGA_RSRC_LEGACY_MEM; in __vga_put()
427 if (old_locks != vgadev->locks) in __vga_put()
467 struct vga_device *vgadev, *conflict; in vga_get() local
481 vgadev = vgadev_find(pdev); in vga_get()
482 if (vgadev == NULL) { in vga_get()
487 conflict = __vga_tryget(vgadev, rsrc); in vga_get()
534 struct vga_device *vgadev; in vga_tryget() local
546 vgadev = vgadev_find(pdev); in vga_tryget()
547 if (vgadev == NULL) { in vga_tryget()
551 if (__vga_tryget(vgadev, rsrc)) in vga_tryget()
570 struct vga_device *vgadev; in vga_put() local
579 vgadev = vgadev_find(pdev); in vga_put()
580 if (vgadev == NULL) in vga_put()
582 __vga_put(vgadev, rsrc); in vga_put()
597 static void vga_arbiter_check_bridge_sharing(struct vga_device *vgadev) in vga_arbiter_check_bridge_sharing() argument
603 vgadev->bridge_has_one_vga = true; in vga_arbiter_check_bridge_sharing()
609 new_bus = vgadev->pdev->bus; in vga_arbiter_check_bridge_sharing()
637 if (bridge && bridge == vgadev->pdev->bus->self) in vga_arbiter_check_bridge_sharing()
638 vgadev->bridge_has_one_vga = false; in vga_arbiter_check_bridge_sharing()
655 struct vga_device *vgadev; in vga_arbiter_add_pci_device() local
666 vgadev = kzalloc(sizeof(struct vga_device), GFP_KERNEL); in vga_arbiter_add_pci_device()
667 if (vgadev == NULL) { in vga_arbiter_add_pci_device()
682 vgadev->pdev = pdev; in vga_arbiter_add_pci_device()
685 vgadev->decodes = VGA_RSRC_LEGACY_IO | VGA_RSRC_LEGACY_MEM | in vga_arbiter_add_pci_device()
695 vgadev->owns |= VGA_RSRC_LEGACY_IO; in vga_arbiter_add_pci_device()
697 vgadev->owns |= VGA_RSRC_LEGACY_MEM; in vga_arbiter_add_pci_device()
708 vgadev->owns = 0; in vga_arbiter_add_pci_device()
719 ((vgadev->owns & VGA_RSRC_LEGACY_MASK) == VGA_RSRC_LEGACY_MASK)) { in vga_arbiter_add_pci_device()
724 vga_arbiter_check_bridge_sharing(vgadev); in vga_arbiter_add_pci_device()
727 list_add_tail(&vgadev->list, &vga_list); in vga_arbiter_add_pci_device()
730 vga_iostate_to_str(vgadev->decodes), in vga_arbiter_add_pci_device()
731 vga_iostate_to_str(vgadev->owns), in vga_arbiter_add_pci_device()
732 vga_iostate_to_str(vgadev->locks)); in vga_arbiter_add_pci_device()
738 kfree(vgadev); in vga_arbiter_add_pci_device()
744 struct vga_device *vgadev; in vga_arbiter_del_pci_device() local
749 vgadev = vgadev_find(pdev); in vga_arbiter_del_pci_device()
750 if (vgadev == NULL) { in vga_arbiter_del_pci_device()
758 if (vgadev->decodes & (VGA_RSRC_LEGACY_IO | VGA_RSRC_LEGACY_MEM)) in vga_arbiter_del_pci_device()
762 list_del(&vgadev->list); in vga_arbiter_del_pci_device()
773 kfree(vgadev); in vga_arbiter_del_pci_device()
778 static inline void vga_update_device_decodes(struct vga_device *vgadev, in vga_update_device_decodes() argument
781 struct device *dev = &vgadev->pdev->dev; in vga_update_device_decodes()
784 old_decodes = vgadev->decodes; in vga_update_device_decodes()
786 decodes_unlocked = vgadev->locks & decodes_removed; in vga_update_device_decodes()
787 vgadev->decodes = new_decodes; in vga_update_device_decodes()
791 vga_iostate_to_str(vgadev->decodes), in vga_update_device_decodes()
792 vga_iostate_to_str(vgadev->owns)); in vga_update_device_decodes()
797 vgadev->io_lock_cnt = 0; in vga_update_device_decodes()
799 vgadev->mem_lock_cnt = 0; in vga_update_device_decodes()
800 __vga_put(vgadev, decodes_unlocked); in vga_update_device_decodes()
817 struct vga_device *vgadev; in __vga_set_legacy_decoding() local
823 vgadev = vgadev_find(pdev); in __vga_set_legacy_decoding()
824 if (vgadev == NULL) in __vga_set_legacy_decoding()
828 if (userspace && vgadev->set_vga_decode) in __vga_set_legacy_decoding()
832 vga_update_device_decodes(vgadev, decodes); in __vga_set_legacy_decoding()
885 struct vga_device *vgadev; in vga_client_register() local
889 vgadev = vgadev_find(pdev); in vga_client_register()
890 if (!vgadev) in vga_client_register()
893 vgadev->irq_set_state = irq_set_state; in vga_client_register()
894 vgadev->set_vga_decode = set_vga_decode; in vga_client_register()
895 vgadev->cookie = cookie; in vga_client_register()
1006 struct vga_device *vgadev; in vga_arb_read() local
1031 vgadev = vgadev_find(pdev); in vga_arb_read()
1032 if (vgadev == NULL) { in vga_arb_read()
1047 vga_iostate_to_str(vgadev->decodes), in vga_arb_read()
1048 vga_iostate_to_str(vgadev->owns), in vga_arb_read()
1049 vga_iostate_to_str(vgadev->locks), in vga_arb_read()
1050 vgadev->io_lock_cnt, vgadev->mem_lock_cnt); in vga_arb_read()
1226 struct vga_device *vgadev; in vga_arb_write() local
1254 vgadev = vgadev_find(pdev); in vga_arb_write()
1255 pr_debug("vgadev %p\n", vgadev); in vga_arb_write()
1256 if (vgadev == NULL) { in vga_arb_write()
1391 struct vga_device *vgadev; in vga_arbiter_notify_clients() local
1400 list_for_each_entry(vgadev, &vga_list, list) { in vga_arbiter_notify_clients()
1405 if (vgadev->set_vga_decode) { in vga_arbiter_notify_clients()
1406 new_decodes = vgadev->set_vga_decode(vgadev->cookie, in vga_arbiter_notify_clients()
1408 vga_update_device_decodes(vgadev, new_decodes); in vga_arbiter_notify_clients()
1456 struct vga_device *vgadev; in vga_arb_select_default_device() local
1471 list_for_each_entry(vgadev, &vga_list, list) { in vga_arb_select_default_device()
1472 struct device *dev = &vgadev->pdev->dev; in vga_arb_select_default_device()
1484 flags = pci_resource_flags(vgadev->pdev, i); in vga_arb_select_default_device()
1489 start = pci_resource_start(vgadev->pdev, i); in vga_arb_select_default_device()
1490 end = pci_resource_end(vgadev->pdev, i); in vga_arb_select_default_device()
1500 else if (vgadev->pdev != vga_default_device()) in vga_arb_select_default_device()
1502 vga_set_default_device(vgadev->pdev); in vga_arb_select_default_device()
1508 list_for_each_entry(vgadev, &vga_list, list) { in vga_arb_select_default_device()
1509 struct device *dev = &vgadev->pdev->dev; in vga_arb_select_default_device()
1512 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()