mirror of
https://git.proxmox.com/git/fwupd
synced 2025-08-08 10:54:41 +00:00
superio: Move the device flush before getting the register map
This commit is contained in:
parent
c5ef28ad5e
commit
763483411d
@ -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);
|
return fu_superio_outb (priv->fd, priv->pm1_iobad1, data, error);
|
||||||
}
|
}
|
||||||
|
|
||||||
gboolean
|
static gboolean
|
||||||
fu_superio_device_ec_flush (FuSuperioDevice *self, GError **error)
|
fu_superio_device_ec_flush (FuSuperioDevice *self, GError **error)
|
||||||
{
|
{
|
||||||
FuSuperioDevicePrivate *priv = GET_PRIVATE (self);
|
FuSuperioDevicePrivate *priv = GET_PRIVATE (self);
|
||||||
@ -332,6 +332,12 @@ fu_superio_device_setup (FuDevice *device, GError **error)
|
|||||||
&priv->pm1_iobad1, error))
|
&priv->pm1_iobad1, error))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
|
/* drain */
|
||||||
|
if (!fu_superio_device_ec_flush (self, error)) {
|
||||||
|
g_prefix_error (error, "failed to flush: ");
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
/* dump PMC register map */
|
/* dump PMC register map */
|
||||||
if (g_getenv ("FWUPD_SUPERIO_VERBOSE") != NULL) {
|
if (g_getenv ("FWUPD_SUPERIO_VERBOSE") != NULL) {
|
||||||
guint8 buf[0xff] = { 0x00 };
|
guint8 buf[0xff] = { 0x00 };
|
||||||
|
@ -20,8 +20,6 @@ struct _FuSuperioDeviceClass
|
|||||||
GError **error);
|
GError **error);
|
||||||
};
|
};
|
||||||
|
|
||||||
gboolean fu_superio_device_ec_flush (FuSuperioDevice *self,
|
|
||||||
GError **error);
|
|
||||||
gboolean fu_superio_device_ec_read (FuSuperioDevice *self,
|
gboolean fu_superio_device_ec_read (FuSuperioDevice *self,
|
||||||
guint8 *data,
|
guint8 *data,
|
||||||
GError **error);
|
GError **error);
|
||||||
|
@ -41,10 +41,6 @@ fu_superio_it85_device_setup (FuSuperioDevice *self, GError **error)
|
|||||||
g_autofree gchar *version = NULL;
|
g_autofree gchar *version = NULL;
|
||||||
|
|
||||||
/* get EC size */
|
/* 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)) {
|
if (!fu_superio_device_ec_get_param (self, 0xe5, &size_tmp, error)) {
|
||||||
g_prefix_error (error, "failed to get EC size: ");
|
g_prefix_error (error, "failed to get EC size: ");
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
@ -102,10 +102,6 @@ fu_superio_it89_device_setup (FuSuperioDevice *self, GError **error)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* get version */
|
/* 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)) {
|
if (!fu_superio_device_ec_get_param (self, 0x00, &version_tmp[0], error)) {
|
||||||
g_prefix_error (error, "failed to get version major: ");
|
g_prefix_error (error, "failed to get version major: ");
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
Loading…
Reference in New Issue
Block a user