fwupd/plugins/synapticsmst/fu-synapticsmst-common.h
Richard Hughes d350b2ecd7 synapticsmst: Partially rewrite the plugin (Fixes #1105)
This removes the 'two-layer' FuDevice and FuSyanpticsmstDevice model, where
a complicated plugin cache was used to add and remove devices to the daemon.

By making FuSynapticsmstDevice derive from FuDevice rather than GObject we can
also use a lot of the helper functionality like the other plugins, for instance
->prepare_firmware().

The `drm_dp_aux_dev` devices do not emit uevents on unplug/re-plug and so all
devices of `drm` class are watched and the actual DP AUX devices rescanned after
a small delay. When the AUX devices emit changes from the kernel this workaround
can be removed.

Also drop force power support for MST controllers in the Dell plugin. Overall
this has just led to more problems than it's helped.

 * Monitor flickers when turned on
 * Crashing graphics drivers from time to time
 * Fragile logic that doesn't always represent the device state
2019-08-28 08:50:15 -05:00

43 lines
1.2 KiB
C

/*
* Copyright (C) 2016 Mario Limonciello <mario.limonciello@dell.com>
* Copyright (C) 2017 Peichen Huang <peichenhuang@tw.synaptics.com>
* Copyright (C) 2019 Richard Hughes <richard@hughsie.com>
*
* SPDX-License-Identifier: LGPL-2.1+
*/
#pragma once
#include <glib.h>
#define SYNAPTICS_FLASH_MODE_DELAY 3 /* seconds */
/**
* FuSynapticsmstMode:
* @FU_SYNAPTICSMST_MODE_UNKNOWN: Type invalid or not known
* @FU_SYNAPTICSMST_MODE_DIRECT: Directly addressable
* @FU_SYNAPTICSMST_MODE_REMOTE: Requires remote register work
*
* The device type.
**/
typedef enum {
FU_SYNAPTICSMST_MODE_UNKNOWN,
FU_SYNAPTICSMST_MODE_DIRECT,
FU_SYNAPTICSMST_MODE_REMOTE,
/*< private >*/
FU_SYNAPTICSMST_MODE_LAST
} FuSynapticsmstMode;
typedef enum {
FU_SYNAPTICSMST_FAMILY_UNKNOWN,
FU_SYNAPTICSMST_FAMILY_TESLA,
FU_SYNAPTICSMST_FAMILY_LEAF,
FU_SYNAPTICSMST_FAMILY_PANAMERA,
/*<private >*/
FU_SYNAPTICSMST_FAMILY_LAST
} FuSynapticsmstFamily;
const gchar *fu_synapticsmst_mode_to_string (FuSynapticsmstMode mode);
const gchar *fu_synapticsmst_family_to_string (FuSynapticsmstFamily family);
FuSynapticsmstFamily fu_synapticsmst_family_from_chip_id (guint16 chip_id);