brintos

brintos / linux-shallow public Read only

0
0
Text · 5.7 KiB · 17f6da9 Raw
203 lines · c
1// SPDX-License-Identifier: GPL-2.0-or-later2/*3 * DMI based code to deal with broken DSDTs on X86 tablets which ship with4 * Android as (part of) the factory image. The factory kernels shipped on these5 * devices typically have a bunch of things hardcoded, rather than specified6 * in their DSDT.7 *8 * Copyright (C) 2021-2023 Hans de Goede <hdegoede@redhat.com>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 18const 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			/* Inexact 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 Pro 1380F/L (13")110		 * This has more or less the same BIOS as the 830F/L or 1050F/L111		 * (8" and 10") below, but unlike the 8"/10" models which share112		 * the same mainboard this model has a different mainboard.113		 * This match for the 13" model MUST come before the 8" + 10"114		 * match since that one will also match the 13" model!115		 */116		.matches = {117			DMI_MATCH(DMI_SYS_VENDOR, "Intel Corp."),118			DMI_MATCH(DMI_PRODUCT_NAME, "VALLEYVIEW C0 PLATFORM"),119			DMI_MATCH(DMI_BOARD_NAME, "BYT-T FFD8"),120			/* Full match so as to NOT match the 830/1050 BIOS */121			DMI_MATCH(DMI_BIOS_VERSION, "BLADE_21.X64.0005.R00.1504101516"),122		},123		.driver_data = (void *)&lenovo_yoga_tab2_1380_info,124	},125	{126		/*127		 * Lenovo Yoga Tablet 2 830F/L or 1050F/L128		 * The 8" and 10" Lenovo Yoga Tablet 2 use the same mainboard.129		 */130		.matches = {131			DMI_MATCH(DMI_SYS_VENDOR, "Intel Corp."),132			DMI_MATCH(DMI_PRODUCT_NAME, "VALLEYVIEW C0 PLATFORM"),133			DMI_MATCH(DMI_BOARD_NAME, "BYT-T FFD8"),134			/* Partial match on beginning of BIOS version */135			DMI_MATCH(DMI_BIOS_VERSION, "BLADE_21"),136		},137		.driver_data = (void *)&lenovo_yoga_tab2_830_1050_info,138	},139	{140		/* Lenovo Yoga Tab 3 Pro YT3-X90F */141		.matches = {142			DMI_MATCH(DMI_SYS_VENDOR, "Intel Corporation"),143			DMI_MATCH(DMI_PRODUCT_VERSION, "Blade3-10A-001"),144		},145		.driver_data = (void *)&lenovo_yt3_info,146	},147	{148		/* Medion Lifetab S10346 */149		.matches = {150			DMI_MATCH(DMI_BOARD_VENDOR, "AMI Corporation"),151			DMI_MATCH(DMI_BOARD_NAME, "Aptio CRB"),152			/* Above strings are much too generic, also match on BIOS date */153			DMI_MATCH(DMI_BIOS_DATE, "10/22/2015"),154		},155		.driver_data = (void *)&medion_lifetab_s10346_info,156	},157	{158		/* Nextbook Ares 8 (BYT version) */159		.matches = {160			DMI_MATCH(DMI_SYS_VENDOR, "Insyde"),161			DMI_MATCH(DMI_PRODUCT_NAME, "M890BAP"),162		},163		.driver_data = (void *)&nextbook_ares8_info,164	},165	{166		/* Nextbook Ares 8A (CHT version) */167		.matches = {168			DMI_MATCH(DMI_SYS_VENDOR, "Insyde"),169			DMI_MATCH(DMI_PRODUCT_NAME, "CherryTrail"),170			DMI_MATCH(DMI_BIOS_VERSION, "M882"),171		},172		.driver_data = (void *)&nextbook_ares8a_info,173	},174	{175		/* Peaq C1010 */176		.matches = {177			DMI_MATCH(DMI_SYS_VENDOR, "PEAQ"),178			DMI_MATCH(DMI_PRODUCT_NAME, "PEAQ PMM C1010 MD99187"),179		},180		.driver_data = (void *)&peaq_c1010_info,181	},182	{183		/* Whitelabel (sold as various brands) TM800A550L */184		.matches = {185			DMI_MATCH(DMI_BOARD_VENDOR, "AMI Corporation"),186			DMI_MATCH(DMI_BOARD_NAME, "Aptio CRB"),187			/* Above strings are too generic, also match on BIOS version */188			DMI_MATCH(DMI_BIOS_VERSION, "ZY-8-BI-PX4S70VTR400-X423B-005-D"),189		},190		.driver_data = (void *)&whitelabel_tm800a550l_info,191	},192	{193		/* Xiaomi Mi Pad 2 */194		.matches = {195			DMI_MATCH(DMI_SYS_VENDOR, "Xiaomi Inc"),196			DMI_MATCH(DMI_PRODUCT_NAME, "Mipad2"),197		},198		.driver_data = (void *)&xiaomi_mipad2_info,199	},200	{ }201};202MODULE_DEVICE_TABLE(dmi, x86_android_tablet_ids);203