diff options
author | Takashi Iwai <tiwai@suse.de> | 2012-05-11 07:51:17 +0200 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2012-05-13 11:24:09 +0200 |
commit | 26ec685ff9d9c16525d8ec4c97e52fcdb187b302 (patch) | |
tree | 2536e4fd8fc9b41736c481822fb032a4e4efc81a /include/linux/vga_switcheroo.h | |
parent | 79721e0a91b5e8f662f12eeb50ea205c761e6bf8 (diff) | |
download | blackbird-op-linux-26ec685ff9d9c16525d8ec4c97e52fcdb187b302.tar.gz blackbird-op-linux-26ec685ff9d9c16525d8ec4c97e52fcdb187b302.zip |
vga_switcheroo: Introduce struct vga_switcheroo_client_ops
This changes the API as a clean-up. Instead of passing multiple
function pointers at each time, introduce a new struct holding the
whole callback functions and pass it to the registration.
The same struct will be used for the upcoming audio client
registration, too.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'include/linux/vga_switcheroo.h')
-rw-r--r-- | include/linux/vga_switcheroo.h | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/include/linux/vga_switcheroo.h b/include/linux/vga_switcheroo.h index 4b9a7f596f92..3c54ebc2e529 100644 --- a/include/linux/vga_switcheroo.h +++ b/include/linux/vga_switcheroo.h @@ -28,13 +28,16 @@ struct vga_switcheroo_handler { int (*get_client_id)(struct pci_dev *pdev); }; +struct vga_switcheroo_client_ops { + void (*set_gpu_state)(struct pci_dev *dev, enum vga_switcheroo_state); + void (*reprobe)(struct pci_dev *dev); + bool (*can_switch)(struct pci_dev *dev); +}; #if defined(CONFIG_VGA_SWITCHEROO) void vga_switcheroo_unregister_client(struct pci_dev *dev); int vga_switcheroo_register_client(struct pci_dev *dev, - void (*set_gpu_state)(struct pci_dev *dev, enum vga_switcheroo_state), - void (*reprobe)(struct pci_dev *dev), - bool (*can_switch)(struct pci_dev *dev)); + const struct vga_switcheroo_client_ops *ops); void vga_switcheroo_client_fb_set(struct pci_dev *dev, struct fb_info *info); @@ -48,9 +51,7 @@ int vga_switcheroo_process_delayed_switch(void); static inline void vga_switcheroo_unregister_client(struct pci_dev *dev) {} static inline int vga_switcheroo_register_client(struct pci_dev *dev, - void (*set_gpu_state)(struct pci_dev *dev, enum vga_switcheroo_state), - void (*reprobe)(struct pci_dev *dev), - bool (*can_switch)(struct pci_dev *dev)) { return 0; } + const struct vga_switcheroo_client_ops *ops) { return 0; } static inline void vga_switcheroo_client_fb_set(struct pci_dev *dev, struct fb_info *info) {} static inline int vga_switcheroo_register_handler(struct vga_switcheroo_handler *handler) { return 0; } static inline void vga_switcheroo_unregister_handler(void) {} |