mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-24 05:29:04 -04:00
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>
This commit is contained in:
parent
79721e0a91
commit
26ec685ff9
5 changed files with 35 additions and 31 deletions
|
|
@ -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) {}
|
||||
|
|
|
|||
Loading…
Reference in a new issue