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 1 : static inline void sysfb_apply_efi_quirks(void)
66 : {
67 1 : }
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 1 : static inline bool parse_mode(const struct screen_info *si,
81 : struct simplefb_platform_data *mode)
82 : {
83 1 : 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 */
|