forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-05-13 9d77db3c730780c8ef5ccd4b66403ff5675cfe4e
kernel/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.h
....@@ -1,3 +1,4 @@
1
+/* SPDX-License-Identifier: GPL-2.0-or-later */
12 /* Hisilicon Hibmc SoC drm driver
23 *
34 * Based on the bochs drm driver.
....@@ -8,33 +9,15 @@
89 * Rongrong Zou <zourongrong@huawei.com>
910 * Rongrong Zou <zourongrong@gmail.com>
1011 * Jianhua Li <lijianhua@huawei.com>
11
- *
12
- * This program is free software; you can redistribute it and/or modify
13
- * it under the terms of the GNU General Public License as published by
14
- * the Free Software Foundation; either version 2 of the License, or
15
- * (at your option) any later version.
16
- *
1712 */
1813
1914 #ifndef HIBMC_DRM_DRV_H
2015 #define HIBMC_DRM_DRV_H
2116
22
-#include <drm/drmP.h>
23
-#include <drm/drm_atomic.h>
2417 #include <drm/drm_fb_helper.h>
25
-#include <drm/drm_gem.h>
26
-#include <drm/ttm/ttm_bo_driver.h>
18
+#include <drm/drm_framebuffer.h>
2719
28
-struct hibmc_framebuffer {
29
- struct drm_framebuffer fb;
30
- struct drm_gem_object *obj;
31
-};
32
-
33
-struct hibmc_fbdev {
34
- struct drm_fb_helper helper;
35
- struct hibmc_framebuffer *fb;
36
- int size;
37
-};
20
+struct drm_device;
3821
3922 struct hibmc_drm_private {
4023 /* hw */
....@@ -42,44 +25,15 @@
4225 void __iomem *fb_map;
4326 unsigned long fb_base;
4427 unsigned long fb_size;
45
- bool msi_enabled;
4628
4729 /* drm */
4830 struct drm_device *dev;
31
+ struct drm_plane primary_plane;
32
+ struct drm_crtc crtc;
33
+ struct drm_encoder encoder;
34
+ struct drm_connector connector;
4935 bool mode_config_initialized;
50
- struct drm_atomic_state *suspend_state;
51
-
52
- /* ttm */
53
- struct drm_global_reference mem_global_ref;
54
- struct ttm_bo_global_ref bo_global_ref;
55
- struct ttm_bo_device bdev;
56
- bool initialized;
57
-
58
- /* fbdev */
59
- struct hibmc_fbdev *fbdev;
60
- bool mm_inited;
6136 };
62
-
63
-#define to_hibmc_framebuffer(x) container_of(x, struct hibmc_framebuffer, fb)
64
-
65
-struct hibmc_bo {
66
- struct ttm_buffer_object bo;
67
- struct ttm_placement placement;
68
- struct ttm_bo_kmap_obj kmap;
69
- struct drm_gem_object gem;
70
- struct ttm_place placements[3];
71
- int pin_count;
72
-};
73
-
74
-static inline struct hibmc_bo *hibmc_bo(struct ttm_buffer_object *bo)
75
-{
76
- return container_of(bo, struct hibmc_bo, bo);
77
-}
78
-
79
-static inline struct hibmc_bo *gem_to_hibmc_bo(struct drm_gem_object *gem)
80
-{
81
- return container_of(gem, struct hibmc_bo, gem);
82
-}
8337
8438 void hibmc_set_power_mode(struct hibmc_drm_private *priv,
8539 unsigned int power_mode);
....@@ -88,26 +42,11 @@
8842
8943 int hibmc_de_init(struct hibmc_drm_private *priv);
9044 int hibmc_vdac_init(struct hibmc_drm_private *priv);
91
-int hibmc_fbdev_init(struct hibmc_drm_private *priv);
92
-void hibmc_fbdev_fini(struct hibmc_drm_private *priv);
93
-
94
-int hibmc_gem_create(struct drm_device *dev, u32 size, bool iskernel,
95
- struct drm_gem_object **obj);
96
-struct hibmc_framebuffer *
97
-hibmc_framebuffer_init(struct drm_device *dev,
98
- const struct drm_mode_fb_cmd2 *mode_cmd,
99
- struct drm_gem_object *obj);
10045
10146 int hibmc_mm_init(struct hibmc_drm_private *hibmc);
10247 void hibmc_mm_fini(struct hibmc_drm_private *hibmc);
103
-int hibmc_bo_pin(struct hibmc_bo *bo, u32 pl_flag, u64 *gpu_addr);
104
-int hibmc_bo_unpin(struct hibmc_bo *bo);
105
-void hibmc_gem_free_object(struct drm_gem_object *obj);
10648 int hibmc_dumb_create(struct drm_file *file, struct drm_device *dev,
10749 struct drm_mode_create_dumb *args);
108
-int hibmc_dumb_mmap_offset(struct drm_file *file, struct drm_device *dev,
109
- u32 handle, u64 *offset);
110
-int hibmc_mmap(struct file *filp, struct vm_area_struct *vma);
11150
11251 extern const struct drm_mode_config_funcs hibmc_mode_funcs;
11352