diff options
Diffstat (limited to 'include/linux/vga_switcheroo.h')
-rw-r--r-- | include/linux/vga_switcheroo.h | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/include/linux/vga_switcheroo.h b/include/linux/vga_switcheroo.h index 4b9a7f596f92..b455c7c212eb 100644 --- a/include/linux/vga_switcheroo.h +++ b/include/linux/vga_switcheroo.h | |||
@@ -28,13 +28,19 @@ struct vga_switcheroo_handler { | |||
28 | int (*get_client_id)(struct pci_dev *pdev); | 28 | int (*get_client_id)(struct pci_dev *pdev); |
29 | }; | 29 | }; |
30 | 30 | ||
31 | struct vga_switcheroo_client_ops { | ||
32 | void (*set_gpu_state)(struct pci_dev *dev, enum vga_switcheroo_state); | ||
33 | void (*reprobe)(struct pci_dev *dev); | ||
34 | bool (*can_switch)(struct pci_dev *dev); | ||
35 | }; | ||
31 | 36 | ||
32 | #if defined(CONFIG_VGA_SWITCHEROO) | 37 | #if defined(CONFIG_VGA_SWITCHEROO) |
33 | void vga_switcheroo_unregister_client(struct pci_dev *dev); | 38 | void vga_switcheroo_unregister_client(struct pci_dev *dev); |
34 | int vga_switcheroo_register_client(struct pci_dev *dev, | 39 | int vga_switcheroo_register_client(struct pci_dev *dev, |
35 | void (*set_gpu_state)(struct pci_dev *dev, enum vga_switcheroo_state), | 40 | const struct vga_switcheroo_client_ops *ops); |
36 | void (*reprobe)(struct pci_dev *dev), | 41 | int vga_switcheroo_register_audio_client(struct pci_dev *pdev, |
37 | bool (*can_switch)(struct pci_dev *dev)); | 42 | const struct vga_switcheroo_client_ops *ops, |
43 | int id, bool active); | ||
38 | 44 | ||
39 | void vga_switcheroo_client_fb_set(struct pci_dev *dev, | 45 | void vga_switcheroo_client_fb_set(struct pci_dev *dev, |
40 | struct fb_info *info); | 46 | struct fb_info *info); |
@@ -48,11 +54,12 @@ int vga_switcheroo_process_delayed_switch(void); | |||
48 | 54 | ||
49 | static inline void vga_switcheroo_unregister_client(struct pci_dev *dev) {} | 55 | static inline void vga_switcheroo_unregister_client(struct pci_dev *dev) {} |
50 | static inline int vga_switcheroo_register_client(struct pci_dev *dev, | 56 | static inline int vga_switcheroo_register_client(struct pci_dev *dev, |
51 | void (*set_gpu_state)(struct pci_dev *dev, enum vga_switcheroo_state), | 57 | const struct vga_switcheroo_client_ops *ops) { return 0; } |
52 | void (*reprobe)(struct pci_dev *dev), | ||
53 | bool (*can_switch)(struct pci_dev *dev)) { return 0; } | ||
54 | static inline void vga_switcheroo_client_fb_set(struct pci_dev *dev, struct fb_info *info) {} | 58 | static inline void vga_switcheroo_client_fb_set(struct pci_dev *dev, struct fb_info *info) {} |
55 | static inline int vga_switcheroo_register_handler(struct vga_switcheroo_handler *handler) { return 0; } | 59 | static inline int vga_switcheroo_register_handler(struct vga_switcheroo_handler *handler) { return 0; } |
60 | static inline int vga_switcheroo_register_audio_client(struct pci_dev *pdev, | ||
61 | const struct vga_switcheroo_client_ops *ops, | ||
62 | int id, bool active) { return 0; } | ||
56 | static inline void vga_switcheroo_unregister_handler(void) {} | 63 | static inline void vga_switcheroo_unregister_handler(void) {} |
57 | static inline int vga_switcheroo_process_delayed_switch(void) { return 0; } | 64 | static inline int vga_switcheroo_process_delayed_switch(void) { return 0; } |
58 | 65 | ||