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