if (!xe_modparam.probe_display)
return;
-#ifdef CONFIG_DRM_FBDEV_EMULATION
- driver->fbdev_probe = intel_fbdev_driver_fbdev_probe;
-#endif
-
driver->driver_features |= DRIVER_MODESET | DRIVER_ATOMIC;
}
unset_display_features(xe);
return 0;
}
+
+#ifdef CONFIG_DRM_FBDEV_EMULATION
+int xe_display_driver_fbdev_probe(struct drm_fb_helper *fbh,
+ struct drm_fb_helper_surface_size *sizes)
+{
+ return intel_fbdev_driver_fbdev_probe(fbh, sizes);
+}
+#endif
#include <linux/types.h>
struct drm_driver;
+struct drm_fb_helper;
+struct drm_fb_helper_surface_size;
struct pci_dev;
struct xe_device;
bool xe_display_driver_probe_defer(struct pci_dev *pdev);
void xe_display_driver_set_hooks(struct drm_driver *driver);
+int xe_display_driver_fbdev_probe(struct drm_fb_helper *fbh,
+ struct drm_fb_helper_surface_size *sizes);
int xe_display_probe(struct xe_device *xe);
void xe_display_pm_runtime_suspend_late(struct xe_device *xe);
void xe_display_pm_runtime_resume(struct xe_device *xe);
+#define XE_DISPLAY_DRIVER_OPS \
+ .fbdev_probe = PTR_IF(IS_ENABLED(CONFIG_DRM_FBDEV_EMULATION), \
+ xe_display_driver_fbdev_probe)
+
#else
+#define XE_DISPLAY_DRIVER_OPS \
+ .fbdev_probe = NULL
+
static inline int xe_display_driver_probe_defer(struct pci_dev *pdev) { return 0; }
static inline void xe_display_driver_set_hooks(struct drm_driver *driver) { }