diff --git a/plugins/superio/fu-superio-device.c b/plugins/superio/fu-superio-device.c index 5533f9e8d..b90e2543a 100644 --- a/plugins/superio/fu-superio-device.c +++ b/plugins/superio/fu-superio-device.c @@ -202,7 +202,7 @@ fu_superio_device_ec_write1 (FuSuperioDevice *self, guint8 data, GError **error) return fu_superio_outb (priv->fd, priv->pm1_iobad1, data, error); } -gboolean +static gboolean fu_superio_device_ec_flush (FuSuperioDevice *self, GError **error) { FuSuperioDevicePrivate *priv = GET_PRIVATE (self); @@ -332,6 +332,12 @@ fu_superio_device_setup (FuDevice *device, GError **error) &priv->pm1_iobad1, error)) return FALSE; + /* drain */ + if (!fu_superio_device_ec_flush (self, error)) { + g_prefix_error (error, "failed to flush: "); + return FALSE; + } + /* dump PMC register map */ if (g_getenv ("FWUPD_SUPERIO_VERBOSE") != NULL) { guint8 buf[0xff] = { 0x00 }; diff --git a/plugins/superio/fu-superio-device.h b/plugins/superio/fu-superio-device.h index 38023cf97..88f4d5ed0 100644 --- a/plugins/superio/fu-superio-device.h +++ b/plugins/superio/fu-superio-device.h @@ -20,8 +20,6 @@ struct _FuSuperioDeviceClass GError **error); }; -gboolean fu_superio_device_ec_flush (FuSuperioDevice *self, - GError **error); gboolean fu_superio_device_ec_read (FuSuperioDevice *self, guint8 *data, GError **error); diff --git a/plugins/superio/fu-superio-it85-device.c b/plugins/superio/fu-superio-it85-device.c index 33372175a..9859ee9b8 100644 --- a/plugins/superio/fu-superio-it85-device.c +++ b/plugins/superio/fu-superio-it85-device.c @@ -41,10 +41,6 @@ fu_superio_it85_device_setup (FuSuperioDevice *self, GError **error) g_autofree gchar *version = NULL; /* get EC size */ - if (!fu_superio_device_ec_flush (self, error)) { - g_prefix_error (error, "failed to flush: "); - return FALSE; - } if (!fu_superio_device_ec_get_param (self, 0xe5, &size_tmp, error)) { g_prefix_error (error, "failed to get EC size: "); return FALSE; diff --git a/plugins/superio/fu-superio-it89-device.c b/plugins/superio/fu-superio-it89-device.c index 817acb1c6..6a7d8c4b2 100644 --- a/plugins/superio/fu-superio-it89-device.c +++ b/plugins/superio/fu-superio-it89-device.c @@ -102,10 +102,6 @@ fu_superio_it89_device_setup (FuSuperioDevice *self, GError **error) } /* get version */ - if (!fu_superio_device_ec_flush (self, error)) { - g_prefix_error (error, "failed to flush: "); - return FALSE; - } if (!fu_superio_device_ec_get_param (self, 0x00, &version_tmp[0], error)) { g_prefix_error (error, "failed to get version major: "); return FALSE;