Lines Matching refs:vgasr_priv
132 struct vgasr_priv { struct
152 static int vga_switcheroo_debugfs_init(struct vgasr_priv *priv); argument
153 static void vga_switcheroo_debugfs_fini(struct vgasr_priv *priv);
156 static struct vgasr_priv vgasr_priv = { variable
157 .clients = LIST_HEAD_INIT(vgasr_priv.clients),
163 return !vgasr_priv.active && in vga_switcheroo_ready()
164 vgasr_priv.registered_clients == 2 && vgasr_priv.handler; in vga_switcheroo_ready()
173 if (vgasr_priv.handler->init) in vga_switcheroo_enable()
174 vgasr_priv.handler->init(); in vga_switcheroo_enable()
176 list_for_each_entry(client, &vgasr_priv.clients, list) { in vga_switcheroo_enable()
179 ret = vgasr_priv.handler->get_client_id(client->pdev); in vga_switcheroo_enable()
185 vga_switcheroo_debugfs_init(&vgasr_priv); in vga_switcheroo_enable()
186 vgasr_priv.active = true; in vga_switcheroo_enable()
201 if (vgasr_priv.handler) { in vga_switcheroo_register_handler()
206 vgasr_priv.handler = handler; in vga_switcheroo_register_handler()
224 vgasr_priv.handler = NULL; in vga_switcheroo_unregister_handler()
225 if (vgasr_priv.active) { in vga_switcheroo_unregister_handler()
227 vga_switcheroo_debugfs_fini(&vgasr_priv); in vga_switcheroo_unregister_handler()
228 vgasr_priv.active = false; in vga_switcheroo_unregister_handler()
253 list_add_tail(&client->list, &vgasr_priv.clients); in register_client()
255 vgasr_priv.registered_clients++; in register_client()
356 client = find_client_from_pci(&vgasr_priv.clients, pdev); in vga_switcheroo_get_client_state()
377 client = find_client_from_pci(&vgasr_priv.clients, pdev); in vga_switcheroo_unregister_client()
380 vgasr_priv.registered_clients--; in vga_switcheroo_unregister_client()
384 if (vgasr_priv.active && vgasr_priv.registered_clients < 2) { in vga_switcheroo_unregister_client()
386 vga_switcheroo_debugfs_fini(&vgasr_priv); in vga_switcheroo_unregister_client()
387 vgasr_priv.active = false; in vga_switcheroo_unregister_client()
407 client = find_client_from_pci(&vgasr_priv.clients, pdev); in vga_switcheroo_client_fb_set()
456 list_for_each_entry(client, &vgasr_priv.clients, list) { in vga_switcheroo_show()
480 if (vgasr_priv.handler->power_state) in vga_switchon()
481 vgasr_priv.handler->power_state(client->id, VGA_SWITCHEROO_ON); in vga_switchon()
494 if (vgasr_priv.handler->power_state) in vga_switchoff()
495 vgasr_priv.handler->power_state(client->id, VGA_SWITCHEROO_OFF); in vga_switchoff()
505 client = find_client_from_id(&vgasr_priv.clients, id | ID_BIT_AUDIO); in set_audio_state()
517 active = find_active_client(&vgasr_priv.clients); in vga_switchto_stage1()
534 active = find_active_client(&vgasr_priv.clients); in vga_switchto_stage2()
551 ret = vgasr_priv.handler->switchto(new_client->id); in vga_switchto_stage2()
571 list_for_each_entry(client, &vgasr_priv.clients, list) { in check_can_switch()
599 if (!vgasr_priv.active) { in vga_switcheroo_debugfs_write()
606 list_for_each_entry(client, &vgasr_priv.clients, list) { in vga_switcheroo_debugfs_write()
619 list_for_each_entry(client, &vgasr_priv.clients, list) { in vga_switcheroo_debugfs_write()
659 client = find_client_from_id(&vgasr_priv.clients, client_id); in vga_switcheroo_debugfs_write()
663 vgasr_priv.delayed_switch_active = false; in vga_switcheroo_debugfs_write()
666 ret = vgasr_priv.handler->switchto(client_id); in vga_switcheroo_debugfs_write()
690 vgasr_priv.delayed_switch_active = true; in vga_switcheroo_debugfs_write()
691 vgasr_priv.delayed_client_id = client_id; in vga_switcheroo_debugfs_write()
712 static void vga_switcheroo_debugfs_fini(struct vgasr_priv *priv) in vga_switcheroo_debugfs_fini()
721 static int vga_switcheroo_debugfs_init(struct vgasr_priv *priv) in vga_switcheroo_debugfs_init()
765 if (!vgasr_priv.delayed_switch_active) in vga_switcheroo_process_delayed_switch()
769 vgasr_priv.delayed_client_id); in vga_switcheroo_process_delayed_switch()
771 client = find_client_from_id(&vgasr_priv.clients, in vga_switcheroo_process_delayed_switch()
772 vgasr_priv.delayed_client_id); in vga_switcheroo_process_delayed_switch()
780 vgasr_priv.delayed_switch_active = false; in vga_switcheroo_process_delayed_switch()
826 if (!vgasr_priv.handler->power_state) in vga_switcheroo_power_switch()
829 client = find_client_from_pci(&vgasr_priv.clients, pdev); in vga_switcheroo_power_switch()
836 vgasr_priv.handler->power_state(client->id, state); in vga_switcheroo_power_switch()
856 client = find_client_from_pci(&vgasr_priv.clients, pdev); in vga_switcheroo_set_dynamic_switch()
878 if (vgasr_priv.handler->switchto) in vga_switcheroo_runtime_suspend()
879 vgasr_priv.handler->switchto(VGA_SWITCHEROO_IGD); in vga_switcheroo_runtime_suspend()
945 list_for_each_entry(client, &vgasr_priv.clients, list) { in vga_switcheroo_runtime_resume_hdmi_audio()