@@ -17156,7 +17156,7 @@ L: linux-input@vger.kernel.org
L: platform-driver-x86@vger.kernel.org
S: Maintained
F: drivers/input/touchscreen/silead.c
-F: drivers/platform/x86/touchscreen_dmi.c
+F: drivers/platform/x86/dmi_device_properties.c
SILICON LABS WIRELESS DRIVERS (for WFxxx series)
M: Jérôme Pouiller <jerome.pouiller@silabs.com>
@@ -21,8 +21,8 @@ bool efi_embedded_fw_checked;
EXPORT_SYMBOL_NS_GPL(efi_embedded_fw_checked, TEST_FIRMWARE);
static const struct dmi_system_id * const embedded_fw_table[] = {
-#ifdef CONFIG_TOUCHSCREEN_DMI
- touchscreen_dmi_table,
+#ifdef CONFIG_DMI_DEVICE_PROPERTIES
+ dmi_device_properties,
#endif
NULL
};
@@ -981,17 +981,19 @@ config MLX_PLATFORM
If you have a Mellanox system, say Y or M here.
-config TOUCHSCREEN_DMI
- bool "DMI based touchscreen configuration info"
- depends on ACPI && DMI && I2C=y && TOUCHSCREEN_SILEAD
+config DMI_DEVICE_PROPERTIES
+ bool "DMI based extra device properties"
+ depends on ACPI && DMI && I2C=y
select EFI_EMBEDDED_FIRMWARE if EFI
help
- Certain ACPI based tablets with e.g. Silead or Chipone touchscreens
- do not have enough data in ACPI tables for the touchscreen driver to
- handle the touchscreen properly, as OEMs expect the data to be baked
- into the tablet model specific version of the driver shipped with the
- the OS-image for the device. This option supplies the missing info.
- Enable this for x86 tablets with Silead or Chipone touchscreens.
+ Sometimes ACPI based x86 devices do not have enough data in their ACPI
+ tables to fully describe the hardware. This option enables support for
+ supplying the missing info based on DMI (vendor & model string)
+ matching for devices where this info has been added to the
+ dmi-device-properties code.
+
+ This option is often necessary for correct operation of x86 based
+ tablets and 2-in-1 devices. If in doubt, say Y here.
config FW_ATTR_CLASS
tristate
@@ -107,10 +107,10 @@ obj-$(CONFIG_SYSTEM76_ACPI) += system76_acpi.o
obj-$(CONFIG_TOPSTAR_LAPTOP) += topstar-laptop.o
# Platform drivers
+obj-$(CONFIG_DMI_DEVICE_PROPERTIES) += dmi_device_properties.o
obj-$(CONFIG_FW_ATTR_CLASS) += firmware_attributes_class.o
obj-$(CONFIG_I2C_MULTI_INSTANTIATE) += i2c-multi-instantiate.o
obj-$(CONFIG_MLX_PLATFORM) += mlx-platform.o
-obj-$(CONFIG_TOUCHSCREEN_DMI) += touchscreen_dmi.o
obj-$(CONFIG_WIRELESS_HOTKEY) += wireless-hotkey.o
# Intel uncore drivers
similarity index 99%
rename from drivers/platform/x86/touchscreen_dmi.c
rename to drivers/platform/x86/dmi_device_properties.c
@@ -1,8 +1,8 @@
// SPDX-License-Identifier: GPL-2.0-or-later
/*
- * Touchscreen driver DMI based configuration code
+ * DMI based device-property addition (adding info missing from ACPI tables)
*
- * Copyright (c) 2017 Red Hat Inc.
+ * Copyright (c) 2017-2021 Red Hat Inc.
*
* Red Hat authors:
* Hans de Goede <hdegoede@redhat.com>
@@ -979,7 +979,7 @@ static const struct ts_dmi_data vinga_twizzle_j116_data = {
};
/* NOTE: Please keep this table sorted alphabetically */
-const struct dmi_system_id touchscreen_dmi_table[] = {
+const struct dmi_system_id dmi_device_properties[] = {
{
/* Chuwi Hi8 */
.driver_data = (void *)&chuwi_hi8_data,
@@ -1633,7 +1633,7 @@ static int __init ts_dmi_init(void)
const struct dmi_system_id *dmi_id;
int error;
- dmi_id = dmi_first_match(touchscreen_dmi_table);
+ dmi_id = dmi_first_match(dmi_device_properties);
if (!dmi_id)
return 0; /* Not an error */
@@ -34,7 +34,7 @@ struct efi_embedded_fw_desc {
u8 sha256[32];
};
-extern const struct dmi_system_id touchscreen_dmi_table[];
+extern const struct dmi_system_id dmi_device_properties[];
int efi_get_embedded_fw(const char *name, const u8 **dat, size_t *sz);
The ability to attach device-properties to (I2C) devices based on a DMI + I2C device-name match to address the hw-description in some ACPI tables being incomplete is useful for more things then just touchscreens. Rename the Kconfig option and file to reflect this. The specific use-case triggering this change is describing the hardware surrounding the Whiskey Cove PMIC found on several Cherry Trail based devices. At least 3 configs are known: 1. The WC PMIC is connected to a TI BQ24292i charger, paired with a Maxim MAX17047 fuelgauge + a FUSB302 USB Type-C Controller + a PI3USB30532 USB switch, for a fully functional Type-C port 2. The WC PMIC is connected to a TI BQ25890 charger, paired with a TI BQ27520 fuelgauge, for a USB-2 only Type-C port without PD 3. The WC PMIC is connected to a TI BQ25890 charger, paired with a TI BQ27542 fuelgauge, for a micro-USB port And various drivers (extcon-intel-cht-wc.c, i2c-cht-wc.c, ...) need to know which config they are dealing with. Signed-off-by: Hans de Goede <hdegoede@redhat.com> --- MAINTAINERS | 2 +- drivers/firmware/efi/embedded-firmware.c | 4 ++-- drivers/platform/x86/Kconfig | 20 ++++++++++--------- drivers/platform/x86/Makefile | 2 +- ...chscreen_dmi.c => dmi_device_properties.c} | 8 ++++---- include/linux/efi_embedded_fw.h | 2 +- 6 files changed, 20 insertions(+), 18 deletions(-) rename drivers/platform/x86/{touchscreen_dmi.c => dmi_device_properties.c} (99%)