Branch data Line data Source code
1 : : /* SPDX-License-Identifier: GPL-2.0-or-later */
2 : : #ifndef _ARCH_X86_KERNEL_SYSFB_H
3 : : #define _ARCH_X86_KERNEL_SYSFB_H
4 : :
5 : : /*
6 : : * Generic System Framebuffers on x86
7 : : * Copyright (c) 2012-2013 David Herrmann <dh.herrmann@gmail.com>
8 : : */
9 : :
10 : : #include <linux/kernel.h>
11 : : #include <linux/platform_data/simplefb.h>
12 : : #include <linux/screen_info.h>
13 : :
14 : : enum {
15 : : M_I17, /* 17-Inch iMac */
16 : : M_I20, /* 20-Inch iMac */
17 : : M_I20_SR, /* 20-Inch iMac (Santa Rosa) */
18 : : M_I24, /* 24-Inch iMac */
19 : : M_I24_8_1, /* 24-Inch iMac, 8,1th gen */
20 : : M_I24_10_1, /* 24-Inch iMac, 10,1th gen */
21 : : M_I27_11_1, /* 27-Inch iMac, 11,1th gen */
22 : : M_MINI, /* Mac Mini */
23 : : M_MINI_3_1, /* Mac Mini, 3,1th gen */
24 : : M_MINI_4_1, /* Mac Mini, 4,1th gen */
25 : : M_MB, /* MacBook */
26 : : M_MB_2, /* MacBook, 2nd rev. */
27 : : M_MB_3, /* MacBook, 3rd rev. */
28 : : M_MB_5_1, /* MacBook, 5th rev. */
29 : : M_MB_6_1, /* MacBook, 6th rev. */
30 : : M_MB_7_1, /* MacBook, 7th rev. */
31 : : M_MB_SR, /* MacBook, 2nd gen, (Santa Rosa) */
32 : : M_MBA, /* MacBook Air */
33 : : M_MBA_3, /* Macbook Air, 3rd rev */
34 : : M_MBP, /* MacBook Pro */
35 : : M_MBP_2, /* MacBook Pro 2nd gen */
36 : : M_MBP_2_2, /* MacBook Pro 2,2nd gen */
37 : : M_MBP_SR, /* MacBook Pro (Santa Rosa) */
38 : : M_MBP_4, /* MacBook Pro, 4th gen */
39 : : M_MBP_5_1, /* MacBook Pro, 5,1th gen */
40 : : M_MBP_5_2, /* MacBook Pro, 5,2th gen */
41 : : M_MBP_5_3, /* MacBook Pro, 5,3rd gen */
42 : : M_MBP_6_1, /* MacBook Pro, 6,1th gen */
43 : : M_MBP_6_2, /* MacBook Pro, 6,2th gen */
44 : : M_MBP_7_1, /* MacBook Pro, 7,1th gen */
45 : : M_MBP_8_2, /* MacBook Pro, 8,2nd gen */
46 : : M_UNKNOWN /* placeholder */
47 : : };
48 : :
49 : : struct efifb_dmi_info {
50 : : char *optname;
51 : : unsigned long base;
52 : : int stride;
53 : : int width;
54 : : int height;
55 : : int flags;
56 : : };
57 : :
58 : : #ifdef CONFIG_EFI
59 : :
60 : : extern struct efifb_dmi_info efifb_dmi_list[];
61 : : void sysfb_apply_efi_quirks(void);
62 : :
63 : : #else /* CONFIG_EFI */
64 : :
65 : : static inline void sysfb_apply_efi_quirks(void)
66 : : {
67 : : }
68 : :
69 : : #endif /* CONFIG_EFI */
70 : :
71 : : #ifdef CONFIG_X86_SYSFB
72 : :
73 : : bool parse_mode(const struct screen_info *si,
74 : : struct simplefb_platform_data *mode);
75 : : int create_simplefb(const struct screen_info *si,
76 : : const struct simplefb_platform_data *mode);
77 : :
78 : : #else /* CONFIG_X86_SYSFB */
79 : :
80 : 13 : static inline bool parse_mode(const struct screen_info *si,
81 : : struct simplefb_platform_data *mode)
82 : : {
83 [ + - ]: 13 : return false;
84 : : }
85 : :
86 : : static inline int create_simplefb(const struct screen_info *si,
87 : : const struct simplefb_platform_data *mode)
88 : : {
89 : : return -EINVAL;
90 : : }
91 : :
92 : : #endif /* CONFIG_X86_SYSFB */
93 : :
94 : : #endif /* _ARCH_X86_KERNEL_SYSFB_H */
|