Merge tag 'iov_iter.3-5.15-2021-09-17' of git://git.kernel.dk/linux-block
[platform/kernel/linux-starfive.git] / include / drm / drm_aperture.h
1 /* SPDX-License-Identifier: MIT */
2
3 #ifndef _DRM_APERTURE_H_
4 #define _DRM_APERTURE_H_
5
6 #include <linux/types.h>
7
8 struct drm_device;
9 struct drm_driver;
10 struct pci_dev;
11
12 int devm_aperture_acquire_from_firmware(struct drm_device *dev, resource_size_t base,
13                                         resource_size_t size);
14
15 int drm_aperture_remove_conflicting_framebuffers(resource_size_t base, resource_size_t size,
16                                                  bool primary, const struct drm_driver *req_driver);
17
18 int drm_aperture_remove_conflicting_pci_framebuffers(struct pci_dev *pdev,
19                                                      const struct drm_driver *req_driver);
20
21 /**
22  * drm_aperture_remove_framebuffers - remove all existing framebuffers
23  * @primary: also kick vga16fb if present
24  * @req_driver: requesting DRM driver
25  *
26  * This function removes all graphics device drivers. Use this function on systems
27  * that can have their framebuffer located anywhere in memory.
28  *
29  * Returns:
30  * 0 on success, or a negative errno code otherwise
31  */
32 static inline int
33 drm_aperture_remove_framebuffers(bool primary, const struct drm_driver *req_driver)
34 {
35         return drm_aperture_remove_conflicting_framebuffers(0, (resource_size_t)-1, primary,
36                                                             req_driver);
37 }
38
39 #endif