fwupd/plugins/synaptics-mst/fu-synaptics-mst-common.c
2021-08-24 11:18:40 -05:00

54 lines
1.5 KiB
C

/*
* Copyright (C) 2016 Mario Limonciello <mario.limonciello@dell.com>
* Copyright (C) 2019 Richard Hughes <richard@hughsie.com>
* Copyright (C) 2021 Apollo Ling <apollo.ling@synaptics.com>
*
* SPDX-License-Identifier: LGPL-2.1+
*/
#include "config.h"
#include "fu-synaptics-mst-common.h"
const gchar *
fu_synaptics_mst_mode_to_string(FuSynapticsMstMode mode)
{
if (mode == FU_SYNAPTICS_MST_MODE_DIRECT)
return "DIRECT";
if (mode == FU_SYNAPTICS_MST_MODE_REMOTE)
return "REMOTE";
return NULL;
}
const gchar *
fu_synaptics_mst_family_to_string(FuSynapticsMstFamily family)
{
if (family == FU_SYNAPTICS_MST_FAMILY_TESLA)
return "tesla";
if (family == FU_SYNAPTICS_MST_FAMILY_LEAF)
return "leaf";
if (family == FU_SYNAPTICS_MST_FAMILY_PANAMERA)
return "panamera";
if (family == FU_SYNAPTICS_MST_FAMILY_CAYENNE)
return "cayenne";
if (family == FU_SYNAPTICS_MST_FAMILY_SPYDER)
return "spyder";
return NULL;
}
FuSynapticsMstFamily
fu_synaptics_mst_family_from_chip_id(guint16 chip_id)
{
if (chip_id >= 0x7000 && chip_id < 0x8000)
return FU_SYNAPTICS_MST_FAMILY_SPYDER;
if ((chip_id >= 0x6000 && chip_id < 0x7000) || (chip_id >= 0x8000 && chip_id < 0x9000))
return FU_SYNAPTICS_MST_FAMILY_CAYENNE;
if (chip_id >= 0x5000 && chip_id < 0x6000)
return FU_SYNAPTICS_MST_FAMILY_PANAMERA;
if (chip_id >= 0x3000 && chip_id < 0x4000)
return FU_SYNAPTICS_MST_FAMILY_LEAF;
if (chip_id >= 0x2000 && chip_id < 0x3000)
return FU_SYNAPTICS_MST_FAMILY_TESLA;
return FU_SYNAPTICS_MST_FAMILY_UNKNOWN;
}