Merge branch 'pm-opp'
[linux-2.6-microblaze.git] / drivers / video / videomode.c
1 // SPDX-License-Identifier: GPL-2.0-only
2 /*
3  * generic display timing functions
4  *
5  * Copyright (c) 2012 Steffen Trumtrar <s.trumtrar@pengutronix.de>, Pengutronix
6  */
7
8 #include <linux/errno.h>
9 #include <linux/export.h>
10 #include <video/display_timing.h>
11 #include <video/videomode.h>
12
13 void videomode_from_timing(const struct display_timing *dt,
14                           struct videomode *vm)
15 {
16         vm->pixelclock = dt->pixelclock.typ;
17         vm->hactive = dt->hactive.typ;
18         vm->hfront_porch = dt->hfront_porch.typ;
19         vm->hback_porch = dt->hback_porch.typ;
20         vm->hsync_len = dt->hsync_len.typ;
21
22         vm->vactive = dt->vactive.typ;
23         vm->vfront_porch = dt->vfront_porch.typ;
24         vm->vback_porch = dt->vback_porch.typ;
25         vm->vsync_len = dt->vsync_len.typ;
26
27         vm->flags = dt->flags;
28 }
29 EXPORT_SYMBOL_GPL(videomode_from_timing);
30
31 int videomode_from_timings(const struct display_timings *disp,
32                           struct videomode *vm, unsigned int index)
33 {
34         struct display_timing *dt;
35
36         dt = display_timings_get(disp, index);
37         if (!dt)
38                 return -EINVAL;
39
40         videomode_from_timing(dt, vm);
41
42         return 0;
43 }
44 EXPORT_SYMBOL_GPL(videomode_from_timings);