Lines Matching refs:client
190 struct vga_switcheroo_client *client; in vga_switcheroo_enable() local
196 list_for_each_entry(client, &vgasr_priv.clients, list) { in vga_switcheroo_enable()
197 if (!client_is_vga(client) || in vga_switcheroo_enable()
198 client_id(client) != VGA_SWITCHEROO_UNKNOWN_ID) in vga_switcheroo_enable()
201 ret = vgasr_priv.handler->get_client_id(client->pdev); in vga_switcheroo_enable()
205 client->id = ret; in vga_switcheroo_enable()
208 list_for_each_entry(client, &vgasr_priv.clients, list) { in vga_switcheroo_enable()
209 if (!client_is_audio(client) || in vga_switcheroo_enable()
210 client_id(client) != VGA_SWITCHEROO_UNKNOWN_ID) in vga_switcheroo_enable()
213 ret = vgasr_priv.handler->get_client_id(client->vga_dev); in vga_switcheroo_enable()
217 client->id = ret | ID_BIT_AUDIO; in vga_switcheroo_enable()
218 if (client->ops->gpu_bound) in vga_switcheroo_enable()
219 client->ops->gpu_bound(client->pdev, ret); in vga_switcheroo_enable()
299 struct vga_switcheroo_client *client; in register_client() local
301 client = kzalloc(sizeof(*client), GFP_KERNEL); in register_client()
302 if (!client) in register_client()
305 client->pwr_state = VGA_SWITCHEROO_ON; in register_client()
306 client->pdev = pdev; in register_client()
307 client->ops = ops; in register_client()
308 client->id = id; in register_client()
309 client->active = active; in register_client()
310 client->driver_power_control = driver_power_control; in register_client()
311 client->vga_dev = vga_dev; in register_client()
314 list_add_tail(&client->list, &vgasr_priv.clients); in register_client()
315 if (client_is_vga(client)) in register_client()
394 struct vga_switcheroo_client *client; in find_client_from_pci() local
396 list_for_each_entry(client, head, list) in find_client_from_pci()
397 if (client->pdev == pdev) in find_client_from_pci()
398 return client; in find_client_from_pci()
406 struct vga_switcheroo_client *client; in find_client_from_id() local
408 list_for_each_entry(client, head, list) in find_client_from_id()
409 if (client->id == client_id) in find_client_from_id()
410 return client; in find_client_from_id()
417 struct vga_switcheroo_client *client; in find_active_client() local
419 list_for_each_entry(client, head, list) in find_active_client()
420 if (client->active) in find_active_client()
421 return client; in find_active_client()
453 vga_switcheroo_pwr_state(struct vga_switcheroo_client *client) in vga_switcheroo_pwr_state() argument
455 if (client->driver_power_control) in vga_switcheroo_pwr_state()
456 if (pm_runtime_enabled(&client->pdev->dev) && in vga_switcheroo_pwr_state()
457 pm_runtime_active(&client->pdev->dev)) in vga_switcheroo_pwr_state()
462 return client->pwr_state; in vga_switcheroo_pwr_state()
476 struct vga_switcheroo_client *client; in vga_switcheroo_get_client_state() local
480 client = find_client_from_pci(&vgasr_priv.clients, pdev); in vga_switcheroo_get_client_state()
481 if (!client) in vga_switcheroo_get_client_state()
484 ret = vga_switcheroo_pwr_state(client); in vga_switcheroo_get_client_state()
498 struct vga_switcheroo_client *client; in vga_switcheroo_unregister_client() local
501 client = find_client_from_pci(&vgasr_priv.clients, pdev); in vga_switcheroo_unregister_client()
502 if (client) { in vga_switcheroo_unregister_client()
503 if (client_is_vga(client)) in vga_switcheroo_unregister_client()
505 list_del(&client->list); in vga_switcheroo_unregister_client()
506 kfree(client); in vga_switcheroo_unregister_client()
528 struct vga_switcheroo_client *client; in vga_switcheroo_client_fb_set() local
531 client = find_client_from_pci(&vgasr_priv.clients, pdev); in vga_switcheroo_client_fb_set()
532 if (client) in vga_switcheroo_client_fb_set()
533 client->fb_info = info; in vga_switcheroo_client_fb_set()
646 struct vga_switcheroo_client *client; in vga_switcheroo_show() local
650 list_for_each_entry(client, &vgasr_priv.clients, list) { in vga_switcheroo_show()
652 client_id(client) == VGA_SWITCHEROO_DIS ? "DIS" : in vga_switcheroo_show()
654 client_is_vga(client) ? "" : "-Audio", in vga_switcheroo_show()
655 client->active ? '+' : ' ', in vga_switcheroo_show()
656 client->driver_power_control ? "Dyn" : "", in vga_switcheroo_show()
657 vga_switcheroo_pwr_state(client) ? "Pwr" : "Off", in vga_switcheroo_show()
658 pci_name(client->pdev)); in vga_switcheroo_show()
670 static int vga_switchon(struct vga_switcheroo_client *client) in vga_switchon() argument
672 if (client->driver_power_control) in vga_switchon()
675 vgasr_priv.handler->power_state(client->id, VGA_SWITCHEROO_ON); in vga_switchon()
677 client->ops->set_gpu_state(client->pdev, VGA_SWITCHEROO_ON); in vga_switchon()
678 client->pwr_state = VGA_SWITCHEROO_ON; in vga_switchon()
682 static int vga_switchoff(struct vga_switcheroo_client *client) in vga_switchoff() argument
684 if (client->driver_power_control) in vga_switchoff()
687 client->ops->set_gpu_state(client->pdev, VGA_SWITCHEROO_OFF); in vga_switchoff()
689 vgasr_priv.handler->power_state(client->id, VGA_SWITCHEROO_OFF); in vga_switchoff()
690 client->pwr_state = VGA_SWITCHEROO_OFF; in vga_switchoff()
697 struct vga_switcheroo_client *client; in set_audio_state() local
699 client = find_client_from_id(&vgasr_priv.clients, id | ID_BIT_AUDIO); in set_audio_state()
700 if (client) in set_audio_state()
701 client->ops->set_gpu_state(client->pdev, state); in set_audio_state()
767 struct vga_switcheroo_client *client; in check_can_switch() local
769 list_for_each_entry(client, &vgasr_priv.clients, list) { in check_can_switch()
770 if (!client->ops->can_switch(client->pdev)) { in check_can_switch()
771 pr_err("client %x refused switch\n", client->id); in check_can_switch()
787 struct vga_switcheroo_client *client = NULL; in vga_switcheroo_debugfs_write() local
804 list_for_each_entry(client, &vgasr_priv.clients, list) { in vga_switcheroo_debugfs_write()
805 if (client->active || client_is_audio(client)) in vga_switcheroo_debugfs_write()
807 if (client->driver_power_control) in vga_switcheroo_debugfs_write()
809 set_audio_state(client->id, VGA_SWITCHEROO_OFF); in vga_switcheroo_debugfs_write()
810 if (client->pwr_state == VGA_SWITCHEROO_ON) in vga_switcheroo_debugfs_write()
811 vga_switchoff(client); in vga_switcheroo_debugfs_write()
817 list_for_each_entry(client, &vgasr_priv.clients, list) { in vga_switcheroo_debugfs_write()
818 if (client->active || client_is_audio(client)) in vga_switcheroo_debugfs_write()
820 if (client->driver_power_control) in vga_switcheroo_debugfs_write()
822 if (client->pwr_state == VGA_SWITCHEROO_OFF) in vga_switcheroo_debugfs_write()
823 vga_switchon(client); in vga_switcheroo_debugfs_write()
824 set_audio_state(client->id, VGA_SWITCHEROO_ON); in vga_switcheroo_debugfs_write()
857 client = find_client_from_id(&vgasr_priv.clients, client_id); in vga_switcheroo_debugfs_write()
858 if (!client) in vga_switcheroo_debugfs_write()
870 if (client->active) in vga_switcheroo_debugfs_write()
880 ret = vga_switchto_stage1(client); in vga_switcheroo_debugfs_write()
884 ret = vga_switchto_stage2(client); in vga_switcheroo_debugfs_write()
889 pr_info("setting delayed switch to client %d\n", client->id); in vga_switcheroo_debugfs_write()
893 ret = vga_switchto_stage1(client); in vga_switcheroo_debugfs_write()
960 struct vga_switcheroo_client *client; in vga_switcheroo_process_delayed_switch() local
971 client = find_client_from_id(&vgasr_priv.clients, in vga_switcheroo_process_delayed_switch()
973 if (!client || !check_can_switch()) in vga_switcheroo_process_delayed_switch()
976 ret = vga_switchto_stage2(client); in vga_switcheroo_process_delayed_switch()
1020 struct vga_switcheroo_client *client; in vga_switcheroo_power_switch() local
1025 client = find_client_from_pci(&vgasr_priv.clients, pdev); in vga_switcheroo_power_switch()
1026 if (!client) in vga_switcheroo_power_switch()
1029 if (!client->driver_power_control) in vga_switcheroo_power_switch()
1032 vgasr_priv.handler->power_state(client->id, state); in vga_switcheroo_power_switch()