vgaswitcheroo: add vga_switcheroo_fini_domain_pm_ops
Drivers should call this on unload to unregister pmops. Bug: https://bugzilla.kernel.org/show_bug.cgi?id=84431 Reviewed-by: Ben Skeggs <bskeggs@redhat.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: stable@vger.kernel.org Signed-off-by: Pali Rohár <pali.rohar@gmail.com> Cc: Ben Skeggs <bskeggs@redhat.com>
This commit is contained in:
parent
c1789a2e66
commit
766a53d059
@ -660,6 +660,12 @@ int vga_switcheroo_init_domain_pm_ops(struct device *dev, struct dev_pm_domain *
|
|||||||
}
|
}
|
||||||
EXPORT_SYMBOL(vga_switcheroo_init_domain_pm_ops);
|
EXPORT_SYMBOL(vga_switcheroo_init_domain_pm_ops);
|
||||||
|
|
||||||
|
void vga_switcheroo_fini_domain_pm_ops(struct device *dev)
|
||||||
|
{
|
||||||
|
dev->pm_domain = NULL;
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(vga_switcheroo_fini_domain_pm_ops);
|
||||||
|
|
||||||
static int vga_switcheroo_runtime_resume_hdmi_audio(struct device *dev)
|
static int vga_switcheroo_runtime_resume_hdmi_audio(struct device *dev)
|
||||||
{
|
{
|
||||||
struct pci_dev *pdev = to_pci_dev(dev);
|
struct pci_dev *pdev = to_pci_dev(dev);
|
||||||
|
@ -64,6 +64,7 @@ int vga_switcheroo_get_client_state(struct pci_dev *dev);
|
|||||||
void vga_switcheroo_set_dynamic_switch(struct pci_dev *pdev, enum vga_switcheroo_state dynamic);
|
void vga_switcheroo_set_dynamic_switch(struct pci_dev *pdev, enum vga_switcheroo_state dynamic);
|
||||||
|
|
||||||
int vga_switcheroo_init_domain_pm_ops(struct device *dev, struct dev_pm_domain *domain);
|
int vga_switcheroo_init_domain_pm_ops(struct device *dev, struct dev_pm_domain *domain);
|
||||||
|
void vga_switcheroo_fini_domain_pm_ops(struct device *dev);
|
||||||
int vga_switcheroo_init_domain_pm_optimus_hdmi_audio(struct device *dev, struct dev_pm_domain *domain);
|
int vga_switcheroo_init_domain_pm_optimus_hdmi_audio(struct device *dev, struct dev_pm_domain *domain);
|
||||||
#else
|
#else
|
||||||
|
|
||||||
@ -82,6 +83,7 @@ static inline int vga_switcheroo_get_client_state(struct pci_dev *dev) { return
|
|||||||
static inline void vga_switcheroo_set_dynamic_switch(struct pci_dev *pdev, enum vga_switcheroo_state dynamic) {}
|
static inline void vga_switcheroo_set_dynamic_switch(struct pci_dev *pdev, enum vga_switcheroo_state dynamic) {}
|
||||||
|
|
||||||
static inline int vga_switcheroo_init_domain_pm_ops(struct device *dev, struct dev_pm_domain *domain) { return -EINVAL; }
|
static inline int vga_switcheroo_init_domain_pm_ops(struct device *dev, struct dev_pm_domain *domain) { return -EINVAL; }
|
||||||
|
static inline void vga_switcheroo_fini_domain_pm_ops(struct device *dev) {}
|
||||||
static inline int vga_switcheroo_init_domain_pm_optimus_hdmi_audio(struct device *dev, struct dev_pm_domain *domain) { return -EINVAL; }
|
static inline int vga_switcheroo_init_domain_pm_optimus_hdmi_audio(struct device *dev, struct dev_pm_domain *domain) { return -EINVAL; }
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user