XenevaOS
Loading...
Searching...
No Matches
drm_client.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: GPL-2.0 or MIT */
2
3#ifndef _DRM_CLIENT_H_
4#define _DRM_CLIENT_H_
5
6#include <linux/iosys-map.h>
7#include <linux/lockdep.h>
8#include <linux/mutex.h>
9#include <linux/types.h>
10
11#include <drm/drm_connector.h>
12#include <drm/drm_crtc.h>
13
14struct drm_client_dev;
15struct drm_device;
16struct drm_file;
17struct drm_framebuffer;
18struct drm_gem_object;
19struct drm_minor;
20struct module;
21
29 struct module *owner;
30
39 void (*free)(struct drm_client_dev *client);
40
49 void (*unregister)(struct drm_client_dev *client);
50
67 int (*restore)(struct drm_client_dev *client, bool force);
68
77 int (*hotplug)(struct drm_client_dev *client);
78
86 int (*suspend)(struct drm_client_dev *client);
87
95 int (*resume)(struct drm_client_dev *client);
96};
97
106
110 const char *name;
111
119
123 const struct drm_client_funcs *funcs;
124
128 struct drm_file *file;
129
134
139
146
154
162};
163
164int drm_client_init(struct drm_device *dev, struct drm_client_dev *client,
165 const char *name, const struct drm_client_funcs *funcs);
168
177
186
191
196};
197
198struct drm_client_buffer *
200 u32 format, u32 handle, u32 pitch);
201struct drm_client_buffer *
204int drm_client_buffer_flush(struct drm_client_buffer *buffer, struct drm_rect *rect);
206 struct iosys_map *map_copy);
209 struct iosys_map *map);
211
214int drm_client_modeset_probe(struct drm_client_dev *client, unsigned int width, unsigned int height);
215bool drm_client_rotation(struct drm_mode_set *modeset, unsigned int *rotation);
220int drm_client_modeset_wait_for_vblank(struct drm_client_dev *client, unsigned int crtc_index);
221
227#define drm_client_for_each_modeset(modeset, client) \
228 for (({ lockdep_assert_held(&(client)->modeset_mutex); }), \
229 modeset = (client)->modesets; modeset->crtc; modeset++)
230
241#define drm_client_for_each_connector_iter(connector, iter) \
242 drm_for_each_connector_iter(connector, iter) \
243 if (connector->connector_type != DRM_MODE_CONNECTOR_WRITEBACK)
244
245#endif
float pitch
Definition compose3d.cpp:145
int map
Definition d_mode.c:31
size_t size_t const struct drm_bridge_funcs * funcs
Definition drm_bridge.h:1300
int drm_client_buffer_vmap_local(struct drm_client_buffer *buffer, struct iosys_map *map_copy)
void drm_client_buffer_delete(struct drm_client_buffer *buffer)
void drm_client_buffer_vunmap(struct drm_client_buffer *buffer)
int drm_client_init(struct drm_device *dev, struct drm_client_dev *client, const char *name, const struct drm_client_funcs *funcs)
void drm_client_modeset_free(struct drm_client_dev *client)
bool drm_client_rotation(struct drm_mode_set *modeset, unsigned int *rotation)
int drm_client_modeset_check(struct drm_client_dev *client)
int drm_client_modeset_commit(struct drm_client_dev *client)
struct drm_client_buffer * drm_client_buffer_create(struct drm_client_dev *client, u32 width, u32 height, u32 format, u32 handle, u32 pitch)
int drm_client_modeset_commit_locked(struct drm_client_dev *client)
int drm_client_modeset_wait_for_vblank(struct drm_client_dev *client, unsigned int crtc_index)
void drm_client_buffer_vunmap_local(struct drm_client_buffer *buffer)
int drm_client_modeset_create(struct drm_client_dev *client)
int drm_client_buffer_vmap(struct drm_client_buffer *buffer, struct iosys_map *map)
int drm_client_buffer_flush(struct drm_client_buffer *buffer, struct drm_rect *rect)
void drm_client_release(struct drm_client_dev *client)
struct drm_client_buffer * drm_client_buffer_create_dumb(struct drm_client_dev *client, u32 width, u32 height, u32 format)
int drm_client_modeset_dpms(struct drm_client_dev *client, int mode)
int drm_client_modeset_probe(struct drm_client_dev *client, unsigned int width, unsigned int height)
void drm_client_register(struct drm_client_dev *client)
struct drm_crtc struct drm_plane struct drm_plane const struct drm_crtc_funcs const char * name
Definition drm_crtc.h:1242
const struct device * dev
Definition drm_print.h:519
const char const char * format
Definition drm_print.h:516
uint32_t u32
Definition kernel.h:16
Definition drm_client.h:172
struct drm_gem_object * gem
Definition drm_client.h:185
struct iosys_map map
Definition drm_client.h:190
struct drm_framebuffer * fb
Definition drm_client.h:195
struct drm_client_dev * client
Definition drm_client.h:176
Definition drm_client.h:101
bool hotplug_pending
Definition drm_client.h:153
const char * name
Definition drm_client.h:110
struct drm_device * dev
Definition drm_client.h:105
bool hotplug_failed
Definition drm_client.h:161
struct drm_file * file
Definition drm_client.h:128
struct drm_mode_set * modesets
Definition drm_client.h:138
bool suspended
Definition drm_client.h:145
struct mutex modeset_mutex
Definition drm_client.h:133
const struct drm_client_funcs * funcs
Definition drm_client.h:123
struct list_head list
Definition drm_client.h:118
Definition drm_client.h:25
int(* suspend)(struct drm_client_dev *client)
Definition drm_client.h:86
int(* resume)(struct drm_client_dev *client)
Definition drm_client.h:95
void(* unregister)(struct drm_client_dev *client)
Definition drm_client.h:49
struct module * owner
Definition drm_client.h:29
int(* hotplug)(struct drm_client_dev *client)
Definition drm_client.h:77
int(* restore)(struct drm_client_dev *client, bool force)
Definition drm_client.h:67
void(* free)(struct drm_client_dev *client)
Definition drm_client.h:39
Definition drm_device.h:75
Definition drm_file.h:165
Definition drm_framebuffer.h:120
Definition drm_gem.h:277
Definition drm_file.h:78
Definition drm_crtc.h:1222
Definition drm_rect.h:46
Definition iosys-map.h:109
Definition list.h:11
Definition mutex.h:59
#define mode(x)