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