forked from Minki/linux
drm: Provide platform module-init macro
Provide a helper macro to register platform DRM drivers. The new macro behaves like module_platform_driver() with an additional test if DRM modesetting has been enabled. Signed-off-by: Javier Martinez Canillas <javierm@redhat.com> Acked-by: Thomas Zimmermann <tzimmermann@suse.de> Link: https://patchwork.freedesktop.org/patch/msgid/20211222082831.196562-7-javierm@redhat.com
This commit is contained in:
parent
2075a734ed
commit
09f137c320
@ -4,6 +4,7 @@
|
|||||||
#define DRM_MODULE_H
|
#define DRM_MODULE_H
|
||||||
|
|
||||||
#include <linux/pci.h>
|
#include <linux/pci.h>
|
||||||
|
#include <linux/platform_device.h>
|
||||||
|
|
||||||
#include <drm/drm_drv.h>
|
#include <drm/drm_drv.h>
|
||||||
|
|
||||||
@ -92,4 +93,33 @@ drm_pci_unregister_driver_if_modeset(struct pci_driver *pci_drv, int modeset)
|
|||||||
module_driver(__pci_drv, drm_pci_register_driver_if_modeset, \
|
module_driver(__pci_drv, drm_pci_register_driver_if_modeset, \
|
||||||
drm_pci_unregister_driver_if_modeset, __modeset)
|
drm_pci_unregister_driver_if_modeset, __modeset)
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Platform drivers
|
||||||
|
*/
|
||||||
|
|
||||||
|
static inline int __init
|
||||||
|
drm_platform_driver_register(struct platform_driver *platform_drv)
|
||||||
|
{
|
||||||
|
if (drm_firmware_drivers_only())
|
||||||
|
return -ENODEV;
|
||||||
|
|
||||||
|
return platform_driver_register(platform_drv);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* drm_module_platform_driver - Register a DRM driver for platform devices
|
||||||
|
* @__platform_drv: the platform driver structure
|
||||||
|
*
|
||||||
|
* Registers a DRM driver for devices on the platform bus. The helper
|
||||||
|
* macro behaves like module_platform_driver() but tests the state of
|
||||||
|
* drm_firmware_drivers_only(). For more complex module initialization,
|
||||||
|
* use module_init() and module_exit() directly.
|
||||||
|
*
|
||||||
|
* Each module may only use this macro once. Calling it replaces
|
||||||
|
* module_init() and module_exit().
|
||||||
|
*/
|
||||||
|
#define drm_module_platform_driver(__platform_drv) \
|
||||||
|
module_driver(__platform_drv, drm_platform_driver_register, \
|
||||||
|
platform_driver_unregister)
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user