fwupd/plugins/usi-dock/fu-plugin-usi-dock.c
Richard Hughes 56f6f99633 usi-dock: Add support for various TBT4 docks for Lenovo and HP
With much help from Victor Cheng <victor_cheng@usiglobal.com>
2021-12-21 10:04:12 +00:00

44 lines
1.2 KiB
C

/*
* Copyright (C) 2021 Richard Hughes <richard@hughsie.com>
* Copyright (C) 2021 Victor Cheng <victor_cheng@usiglobal.com>
*
* SPDX-License-Identifier: LGPL-2.1+
*/
#include "config.h"
#include <fwupdplugin.h>
#include "fu-usi-dock-dmc-device.h"
#include "fu-usi-dock-mcu-device.h"
#define USI_DOCK_TBT_INSTANCE_ID "THUNDERBOLT\\VEN_0108&DEV_2031"
static void
fu_plugin_usi_dock_dmc_registered(FuPlugin *plugin, FuDevice *device)
{
/* usb device from thunderbolt plugin */
if (g_strcmp0(fu_device_get_plugin(device), "thunderbolt") == 0 &&
fu_device_has_guid(device, USI_DOCK_TBT_INSTANCE_ID)) {
g_autofree gchar *msg = NULL;
msg = g_strdup_printf("firmware update inhibited by [%s] plugin",
fu_plugin_get_name(plugin));
fu_device_inhibit(device, "usb-blocked", msg);
}
}
static void
fu_usi_dock_init(FuPlugin *plugin)
{
fu_plugin_add_device_gtype(plugin, FU_TYPE_USI_DOCK_MCU_DEVICE);
fu_plugin_add_device_gtype(plugin, FU_TYPE_USI_DOCK_DMC_DEVICE);
}
void
fu_plugin_init_vfuncs(FuPluginVfuncs *vfuncs)
{
vfuncs->build_hash = FU_BUILD_HASH;
vfuncs->init = fu_usi_dock_init;
vfuncs->device_registered = fu_plugin_usi_dock_dmc_registered;
}