1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 /* 3 * Copyright 2012 Steffen Trumtrar <s.trumtrar@pengutronix.de> 4 * 5 * generic videomode description 6 */ 7 8 #ifndef __LINUX_VIDEOMODE_H 9 #define __LINUX_VIDEOMODE_H 10 11 #include <linux/types.h> 12 #include <video/display_timing.h> 13 14 /* 15 * Subsystem independent description of a videomode. 16 * Can be generated from struct display_timing. 17 */ 18 struct videomode { 19 unsigned long pixelclock; /* pixelclock in Hz */ 20 21 u32 hactive; 22 u32 hfront_porch; 23 u32 hback_porch; 24 u32 hsync_len; 25 26 u32 vactive; 27 u32 vfront_porch; 28 u32 vback_porch; 29 u32 vsync_len; 30 31 enum display_flags flags; /* display flags */ 32 }; 33 34 /** 35 * videomode_from_timing - convert display timing to videomode 36 * @dt: display_timing structure 37 * @vm: return value 38 * 39 * DESCRIPTION: 40 * This function converts a struct display_timing to a struct videomode. 41 */ 42 void videomode_from_timing(const struct display_timing *dt, 43 struct videomode *vm); 44 45 /** 46 * videomode_from_timings - convert one display timings entry to videomode 47 * @disp: structure with all possible timing entries 48 * @vm: return value 49 * @index: index into the list of display timings in devicetree 50 * 51 * DESCRIPTION: 52 * This function converts one struct display_timing entry to a struct videomode. 53 */ 54 int videomode_from_timings(const struct display_timings *disp, 55 struct videomode *vm, unsigned int index); 56 57 #endif