mirror of
https://git.proxmox.com/git/fwupd
synced 2025-07-27 15:03:59 +00:00
synaptics-rmi: Write bus select zero when detaching
This has no effect for HID devices.
This commit is contained in:
parent
ff82d005d7
commit
8b1ca08332
@ -171,6 +171,15 @@ fu_synaptics_rmi_device_set_page (FuSynapticsRmiDevice *self, guint8 page, GErro
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
gboolean
|
||||||
|
fu_synaptics_rmi_device_write_bus_select (FuSynapticsRmiDevice *self, guint8 bus, GError **error)
|
||||||
|
{
|
||||||
|
FuSynapticsRmiDeviceClass *klass_rmi = FU_SYNAPTICS_RMI_DEVICE_GET_CLASS (self);
|
||||||
|
if (klass_rmi->write_bus_select == NULL)
|
||||||
|
return TRUE;
|
||||||
|
return klass_rmi->write_bus_select (self, bus, error);
|
||||||
|
}
|
||||||
|
|
||||||
gboolean
|
gboolean
|
||||||
fu_synaptics_rmi_device_reset (FuSynapticsRmiDevice *self, GError **error)
|
fu_synaptics_rmi_device_reset (FuSynapticsRmiDevice *self, GError **error)
|
||||||
{
|
{
|
||||||
|
@ -40,6 +40,9 @@ struct _FuSynapticsRmiDeviceClass
|
|||||||
GError **error);
|
GError **error);
|
||||||
gboolean (*disable_sleep) (FuSynapticsRmiDevice *self,
|
gboolean (*disable_sleep) (FuSynapticsRmiDevice *self,
|
||||||
GError **error);
|
GError **error);
|
||||||
|
gboolean (*write_bus_select) (FuSynapticsRmiDevice *self,
|
||||||
|
guint8 bus,
|
||||||
|
GError **error);
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
@ -109,3 +112,6 @@ guint16 fu_synaptics_rmi_device_get_sig_size (FuSynapticsRmiDevice *self);
|
|||||||
void fu_synaptics_rmi_device_set_max_page (FuSynapticsRmiDevice *self,
|
void fu_synaptics_rmi_device_set_max_page (FuSynapticsRmiDevice *self,
|
||||||
guint8 max_page);
|
guint8 max_page);
|
||||||
guint8 fu_synaptics_rmi_device_get_max_page (FuSynapticsRmiDevice *self);
|
guint8 fu_synaptics_rmi_device_get_max_page (FuSynapticsRmiDevice *self);
|
||||||
|
gboolean fu_synaptics_rmi_device_write_bus_select (FuSynapticsRmiDevice *self,
|
||||||
|
guint8 bus,
|
||||||
|
GError **error);
|
||||||
|
@ -44,6 +44,10 @@ fu_synaptics_rmi_v5_device_detach (FuDevice *device, GError **error)
|
|||||||
/* disable interrupts */
|
/* disable interrupts */
|
||||||
if (!fu_synaptics_rmi_device_disable_irqs (self, error))
|
if (!fu_synaptics_rmi_device_disable_irqs (self, error))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
if (!fu_synaptics_rmi_device_write_bus_select (self, 0, error)) {
|
||||||
|
g_prefix_error (error, "failed to write bus select: ");
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
/* unlock bootloader and rebind kernel driver */
|
/* unlock bootloader and rebind kernel driver */
|
||||||
if (!fu_synaptics_rmi_device_write_bootloader_id (self, error))
|
if (!fu_synaptics_rmi_device_write_bootloader_id (self, error))
|
||||||
|
Loading…
Reference in New Issue
Block a user