xref: /linux/drivers/gpu/drm/sysfb/drm_sysfb_helper.h (revision b5626f6f8f4db2f1dd354f70dfe8e747cb3cbcc9)
1*b5626f6fSThomas Zimmermann /* SPDX-License-Identifier: GPL-2.0-only */
2*b5626f6fSThomas Zimmermann 
3*b5626f6fSThomas Zimmermann #ifndef DRM_SYSFB_HELPER_H
4*b5626f6fSThomas Zimmermann #define DRM_SYSFB_HELPER_H
5*b5626f6fSThomas Zimmermann 
6*b5626f6fSThomas Zimmermann #include <linux/container_of.h>
7*b5626f6fSThomas Zimmermann #include <linux/iosys-map.h>
8*b5626f6fSThomas Zimmermann 
9*b5626f6fSThomas Zimmermann #include <drm/drm_device.h>
10*b5626f6fSThomas Zimmermann #include <drm/drm_modes.h>
11*b5626f6fSThomas Zimmermann 
12*b5626f6fSThomas Zimmermann struct drm_format_info;
13*b5626f6fSThomas Zimmermann 
14*b5626f6fSThomas Zimmermann /*
15*b5626f6fSThomas Zimmermann  * Device
16*b5626f6fSThomas Zimmermann  */
17*b5626f6fSThomas Zimmermann 
18*b5626f6fSThomas Zimmermann struct drm_sysfb_device {
19*b5626f6fSThomas Zimmermann 	struct drm_device dev;
20*b5626f6fSThomas Zimmermann 
21*b5626f6fSThomas Zimmermann 	/* hardware settings */
22*b5626f6fSThomas Zimmermann 	struct drm_display_mode fb_mode;
23*b5626f6fSThomas Zimmermann 	const struct drm_format_info *fb_format;
24*b5626f6fSThomas Zimmermann 	unsigned int fb_pitch;
25*b5626f6fSThomas Zimmermann 
26*b5626f6fSThomas Zimmermann 	/* hardware-framebuffer kernel address */
27*b5626f6fSThomas Zimmermann 	struct iosys_map fb_addr;
28*b5626f6fSThomas Zimmermann };
29*b5626f6fSThomas Zimmermann 
30*b5626f6fSThomas Zimmermann static inline struct drm_sysfb_device *to_drm_sysfb_device(struct drm_device *dev)
31*b5626f6fSThomas Zimmermann {
32*b5626f6fSThomas Zimmermann 	return container_of(dev, struct drm_sysfb_device, dev);
33*b5626f6fSThomas Zimmermann }
34*b5626f6fSThomas Zimmermann 
35*b5626f6fSThomas Zimmermann #endif
36