]> Git Repo - linux.git/blob - drivers/platform/x86/x86-android-tablets/dmi.c
net: wan: Add framer framework support
[linux.git] / drivers / platform / x86 / x86-android-tablets / dmi.c
1 // SPDX-License-Identifier: GPL-2.0-or-later
2 /*
3  * DMI based code to deal with broken DSDTs on X86 tablets which ship with
4  * Android as (part of) the factory image. The factory kernels shipped on these
5  * devices typically have a bunch of things hardcoded, rather than specified
6  * in their DSDT.
7  *
8  * Copyright (C) 2021-2023 Hans de Goede <[email protected]>
9  */
10
11 #include <linux/dmi.h>
12 #include <linux/init.h>
13 #include <linux/mod_devicetable.h>
14 #include <linux/module.h>
15
16 #include "x86-android-tablets.h"
17
18 const struct dmi_system_id x86_android_tablet_ids[] __initconst = {
19         {
20                 /* Acer Iconia One 7 B1-750 */
21                 .matches = {
22                         DMI_MATCH(DMI_SYS_VENDOR, "Insyde"),
23                         DMI_MATCH(DMI_PRODUCT_NAME, "VESPA2"),
24                 },
25                 .driver_data = (void *)&acer_b1_750_info,
26         },
27         {
28                 /* Advantech MICA-071 */
29                 .matches = {
30                         DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Advantech"),
31                         DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "MICA-071"),
32                 },
33                 .driver_data = (void *)&advantech_mica_071_info,
34         },
35         {
36                 /* Asus MeMO Pad 7 ME176C */
37                 .matches = {
38                         DMI_EXACT_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
39                         DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "ME176C"),
40                 },
41                 .driver_data = (void *)&asus_me176c_info,
42         },
43         {
44                 /* Asus TF103C */
45                 .matches = {
46                         DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
47                         DMI_MATCH(DMI_PRODUCT_NAME, "TF103C"),
48                 },
49                 .driver_data = (void *)&asus_tf103c_info,
50         },
51         {
52                 /* Chuwi Hi8 (CWI509) */
53                 .matches = {
54                         DMI_MATCH(DMI_BOARD_VENDOR, "Hampoo"),
55                         DMI_MATCH(DMI_BOARD_NAME, "BYT-PA03C"),
56                         DMI_MATCH(DMI_SYS_VENDOR, "ilife"),
57                         DMI_MATCH(DMI_PRODUCT_NAME, "S806"),
58                 },
59                 .driver_data = (void *)&chuwi_hi8_info,
60         },
61         {
62                 /* Cyberbook T116 Android version */
63                 .matches = {
64                         DMI_MATCH(DMI_BOARD_VENDOR, "Default string"),
65                         DMI_MATCH(DMI_BOARD_NAME, "Cherry Trail CR"),
66                         /* Above strings are much too generic, also match on SKU + BIOS date */
67                         DMI_MATCH(DMI_PRODUCT_SKU, "20170531"),
68                         DMI_MATCH(DMI_BIOS_DATE, "07/12/2017"),
69                 },
70                 .driver_data = (void *)&cyberbook_t116_info,
71         },
72         {
73                 /* CZC P10T */
74                 .ident = "CZC ODEON TPC-10 (\"P10T\")",
75                 .matches = {
76                         DMI_MATCH(DMI_SYS_VENDOR, "CZC"),
77                         DMI_MATCH(DMI_PRODUCT_NAME, "ODEON*TPC-10"),
78                 },
79                 .driver_data = (void *)&czc_p10t,
80         },
81         {
82                 /* CZC P10T variant */
83                 .ident = "ViewSonic ViewPad 10",
84                 .matches = {
85                         DMI_MATCH(DMI_SYS_VENDOR, "ViewSonic"),
86                         DMI_MATCH(DMI_PRODUCT_NAME, "VPAD10"),
87                 },
88                 .driver_data = (void *)&czc_p10t,
89         },
90         {
91                 /* Lenovo Yoga Book X90F / X90L */
92                 .matches = {
93                         DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Intel Corporation"),
94                         DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "CHERRYVIEW D1 PLATFORM"),
95                         DMI_EXACT_MATCH(DMI_PRODUCT_VERSION, "YETI-11"),
96                 },
97                 .driver_data = (void *)&lenovo_yogabook_x90_info,
98         },
99         {
100                 /* Lenovo Yoga Book X91F / X91L */
101                 .matches = {
102                         /* Non exact match to match F + L versions */
103                         DMI_MATCH(DMI_PRODUCT_NAME, "Lenovo YB1-X91"),
104                 },
105                 .driver_data = (void *)&lenovo_yogabook_x91_info,
106         },
107         {
108                 /*
109                  * Lenovo Yoga Tablet 2 830F/L or 1050F/L (The 8" and 10"
110                  * Lenovo Yoga Tablet 2 use the same mainboard)
111                  */
112                 .matches = {
113                         DMI_MATCH(DMI_SYS_VENDOR, "Intel Corp."),
114                         DMI_MATCH(DMI_PRODUCT_NAME, "VALLEYVIEW C0 PLATFORM"),
115                         DMI_MATCH(DMI_BOARD_NAME, "BYT-T FFD8"),
116                         /* Partial match on beginning of BIOS version */
117                         DMI_MATCH(DMI_BIOS_VERSION, "BLADE_21"),
118                 },
119                 .driver_data = (void *)&lenovo_yoga_tab2_830_1050_info,
120         },
121         {
122                 /* Lenovo Yoga Tab 3 Pro YT3-X90F */
123                 .matches = {
124                         DMI_MATCH(DMI_SYS_VENDOR, "Intel Corporation"),
125                         DMI_MATCH(DMI_PRODUCT_NAME, "CHERRYVIEW D1 PLATFORM"),
126                         DMI_MATCH(DMI_PRODUCT_VERSION, "Blade3-10A-001"),
127                 },
128                 .driver_data = (void *)&lenovo_yt3_info,
129         },
130         {
131                 /* Medion Lifetab S10346 */
132                 .matches = {
133                         DMI_MATCH(DMI_BOARD_VENDOR, "AMI Corporation"),
134                         DMI_MATCH(DMI_BOARD_NAME, "Aptio CRB"),
135                         /* Above strings are much too generic, also match on BIOS date */
136                         DMI_MATCH(DMI_BIOS_DATE, "10/22/2015"),
137                 },
138                 .driver_data = (void *)&medion_lifetab_s10346_info,
139         },
140         {
141                 /* Nextbook Ares 8 (BYT version) */
142                 .matches = {
143                         DMI_MATCH(DMI_SYS_VENDOR, "Insyde"),
144                         DMI_MATCH(DMI_PRODUCT_NAME, "M890BAP"),
145                 },
146                 .driver_data = (void *)&nextbook_ares8_info,
147         },
148         {
149                 /* Nextbook Ares 8A (CHT version)*/
150                 .matches = {
151                         DMI_MATCH(DMI_SYS_VENDOR, "Insyde"),
152                         DMI_MATCH(DMI_PRODUCT_NAME, "CherryTrail"),
153                         DMI_MATCH(DMI_BIOS_VERSION, "M882"),
154                 },
155                 .driver_data = (void *)&nextbook_ares8a_info,
156         },
157         {
158                 /* Peaq C1010 */
159                 .matches = {
160                         DMI_MATCH(DMI_SYS_VENDOR, "PEAQ"),
161                         DMI_MATCH(DMI_PRODUCT_NAME, "PEAQ PMM C1010 MD99187"),
162                 },
163                 .driver_data = (void *)&peaq_c1010_info,
164         },
165         {
166                 /* Whitelabel (sold as various brands) TM800A550L */
167                 .matches = {
168                         DMI_MATCH(DMI_BOARD_VENDOR, "AMI Corporation"),
169                         DMI_MATCH(DMI_BOARD_NAME, "Aptio CRB"),
170                         /* Above strings are too generic, also match on BIOS version */
171                         DMI_MATCH(DMI_BIOS_VERSION, "ZY-8-BI-PX4S70VTR400-X423B-005-D"),
172                 },
173                 .driver_data = (void *)&whitelabel_tm800a550l_info,
174         },
175         {
176                 /* Xiaomi Mi Pad 2 */
177                 .matches = {
178                         DMI_MATCH(DMI_SYS_VENDOR, "Xiaomi Inc"),
179                         DMI_MATCH(DMI_PRODUCT_NAME, "Mipad2"),
180                 },
181                 .driver_data = (void *)&xiaomi_mipad2_info,
182         },
183         { }
184 };
185 MODULE_DEVICE_TABLE(dmi, x86_android_tablet_ids);
This page took 0.047533 seconds and 4 git commands to generate.