XenevaOS
Loading...
Searching...
No Matches
drm_panic.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: GPL-2.0 or MIT */
2
3/*
4 * Copyright (c) 2024 Intel
5 * Copyright (c) 2024 Red Hat
6 */
7
8#ifndef __DRM_PANIC_H__
9#define __DRM_PANIC_H__
10
11#include <linux/module.h>
12#include <linux/types.h>
13#include <linux/iosys-map.h>
14
15#include <drm/drm_device.h>
16#include <drm/drm_fourcc.h>
17
30 const struct drm_format_info *format;
31
41
50 struct page **pages;
51
55 unsigned int width;
56
60 unsigned int height;
61
66
72 void (*set_pixel)(struct drm_scanout_buffer *sb, unsigned int x,
73 unsigned int y, u32 color);
74
79 void *private;
80
81};
82
83#ifdef CONFIG_DRM_PANIC
84
133#define drm_panic_trylock(dev, flags) \
134 raw_spin_trylock_irqsave(&(dev)->mode_config.panic_lock, flags)
135
156#define drm_panic_lock(dev, flags) \
157 raw_spin_lock_irqsave(&(dev)->mode_config.panic_lock, flags)
158
167#define drm_panic_unlock(dev, flags) \
168 raw_spin_unlock_irqrestore(&(dev)->mode_config.panic_lock, flags)
169
170#else
171
172static inline bool drm_panic_trylock(struct drm_device *dev, unsigned long flags)
173{
174 return true;
175}
176
177static inline void drm_panic_lock(struct drm_device *dev, unsigned long flags) {}
178static inline void drm_panic_unlock(struct drm_device *dev, unsigned long flags) {}
179
180#endif
181
182#if defined(CONFIG_DRM_PANIC_SCREEN_QR_CODE)
183size_t drm_panic_qr_max_data_size(u8 version, size_t url_len);
184
185u8 drm_panic_qr_generate(const char *url, u8 *data, size_t data_len, size_t data_size,
186 u8 *tmp, size_t tmp_size);
187#endif
188
189#endif /* __DRM_PANIC_H__ */
uint8_t flags
Definition virtio.h:0
GameVersion_t version
Definition d_main.c:943
#define DRM_FORMAT_MAX_PLANES
Definition drm_fourcc.h:32
const struct device * dev
Definition drm_print.h:519
void * data
Definition kthread.h:30
int y
Definition layout.c:118
int x
Definition layout.c:118
uint8_t u8
Definition kernel.h:14
uint32_t u32
Definition kernel.h:16
Definition i_video.h:141
Definition drm_device.h:75
Definition drm_fourcc.h:61
Definition drm_panic.h:24
struct iosys_map map[DRM_FORMAT_MAX_PLANES]
Definition drm_panic.h:40
struct page ** pages
Definition drm_panic.h:50
const struct drm_format_info * format
Definition drm_panic.h:30
unsigned int pitch[DRM_FORMAT_MAX_PLANES]
Definition drm_panic.h:65
unsigned int height
Definition drm_panic.h:60
unsigned int width
Definition drm_panic.h:55
void(* set_pixel)(struct drm_scanout_buffer *sb, unsigned int x, unsigned int y, u32 color)
Definition drm_panic.h:72
Definition iosys-map.h:109
Definition pagemap.h:38