XenevaOS
Loading...
Searching...
No Matches
drm_module.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: MIT */
2
3#ifndef DRM_MODULE_H
4#define DRM_MODULE_H
5
6#include <linux/pci.h>
8
9#include <drm/drm_drv.h>
10
34/*
35 * PCI drivers
36 */
37
38static inline int __init drm_pci_register_driver(struct pci_driver *pci_drv)
39{
40 if (drm_firmware_drivers_only())
41 return -ENODEV;
42
43 return pci_register_driver(pci_drv);
44}
45
58#define drm_module_pci_driver(__pci_drv) \
59 module_driver(__pci_drv, drm_pci_register_driver, pci_unregister_driver)
60
61static inline int __init
62drm_pci_register_driver_if_modeset(struct pci_driver *pci_drv, int modeset)
63{
64 if (drm_firmware_drivers_only() && modeset == -1)
65 return -ENODEV;
66 if (modeset == 0)
67 return -ENODEV;
68
69 return pci_register_driver(pci_drv);
70}
71
72static inline void __exit
73drm_pci_unregister_driver_if_modeset(struct pci_driver *pci_drv, int modeset)
74{
75 pci_unregister_driver(pci_drv);
76}
77
92#define drm_module_pci_driver_if_modeset(__pci_drv, __modeset) \
93 module_driver(__pci_drv, drm_pci_register_driver_if_modeset, \
94 drm_pci_unregister_driver_if_modeset, __modeset)
95
96/*
97 * Platform drivers
98 */
99
100static inline int __init
101drm_platform_driver_register(struct platform_driver *platform_drv)
102{
103 if (drm_firmware_drivers_only())
104 return -ENODEV;
105
106 return platform_driver_register(platform_drv);
107}
108
121#define drm_module_platform_driver(__platform_drv) \
122 module_driver(__platform_drv, drm_platform_driver_register, \
123 platform_driver_unregister)
124
125#endif
#define ENODEV
Definition acclib.h:197
#define __init
Definition aclinux.h:309
#define __exit
Definition init.h:23
void pci_unregister_driver(struct pci_driver *drv)
int pci_register_driver(struct pci_driver *drv)
int platform_driver_register(struct platform_driver *drv)
Definition pci.h:178