mirror of
https://git.proxmox.com/git/fwupd
synced 2025-08-03 06:09:51 +00:00
Change all instances of master/slave to initiator/target
This makes perfect sense, because the 'initiator' starts the transaction and the 'target' is the addressee of the transaction. Even the I²C spec defines the 'master' as 'initiating' the transaction. This is the same nomenclature now used by the Glasgow project too.
This commit is contained in:
parent
7ebcd06ae4
commit
d09cf101c3
@ -25,7 +25,7 @@
|
||||
#define CY_I2C_ENABLE_PRECISE_TIMING 1
|
||||
#define CY_I2C_EVENT_NOTIFICATION_LEN 3
|
||||
|
||||
#define PD_I2C_SLAVE_ADDRESS 0x08
|
||||
#define PD_I2C_TARGET_ADDRESS 0x08
|
||||
|
||||
/* timeout (ms) for USB I2C communication */
|
||||
#define FU_CCGX_HPI_WAIT_TIMEOUT 5000
|
||||
@ -60,11 +60,11 @@ typedef enum {
|
||||
* length = 16, data_out = 16 byte configuration information */
|
||||
CY_I2C_WRITE_CMD, /* perform I2C write operation
|
||||
* value = bit0 - start, bit1 - stop, bit3 - start on idle,
|
||||
* bits[14:8] - slave address, bit15 - scbIndex. length = 0 the
|
||||
* bits[14:8] - target address, bit15 - scbIndex. length = 0 the
|
||||
* data is provided over the bulk endpoints */
|
||||
CY_I2C_READ_CMD, /* rerform I2C read operation.
|
||||
* value = bit0 - start, bit1 - stop, bit2 - Nak last byte,
|
||||
* bit3 - start on idle, bits[14:8] - slave address, bit15 - scbIndex,
|
||||
* bit3 - start on idle, bits[14:8] - target address, bit15 - scbIndex,
|
||||
* length = 0. The data is provided over the bulk endpoints */
|
||||
CY_I2C_GET_STATUS_CMD, /* retrieve the I2C bus status.
|
||||
* value = bit0 - 0: TX 1: RX, bit15 - scbIndex, length = 3,
|
||||
@ -107,10 +107,10 @@ typedef enum {
|
||||
|
||||
typedef struct __attribute__((packed)) {
|
||||
guint32 frequency; /* frequency of operation. Only valid values are 100KHz and 400KHz */
|
||||
guint8 slave_address; /* slave address to be used when in slave mode */
|
||||
guint8 target_address; /* target address to be used when in target mode */
|
||||
guint8 is_msb_first; /* whether to transmit most significant bit first */
|
||||
guint8 is_master; /* whether to block is to be configured as a master*/
|
||||
guint8 s_ignore; /* ignore general call in slave mode */
|
||||
guint8 is_initiator; /* whether to block is to be configured as a initiator */
|
||||
guint8 s_ignore; /* ignore general call in target mode */
|
||||
guint8 is_clock_stretch; /* whether to stretch clock in case of no FIFO availability */
|
||||
guint8 is_loop_back; /* whether to loop back TX data to RX. Valid only for debug purposes */
|
||||
guint8 reserved[6];
|
||||
|
@ -26,7 +26,7 @@ struct _FuCcgxHpiDevice
|
||||
guint8 num_ports; /* max number of ports */
|
||||
FWMode fw_mode;
|
||||
FWImageType fw_image_type;
|
||||
guint8 slave_address;
|
||||
guint8 target_address;
|
||||
guint8 ep_bulk_in;
|
||||
guint8 ep_bulk_out;
|
||||
guint8 ep_intr_in;
|
||||
@ -273,19 +273,19 @@ fu_ccgx_hpi_device_i2c_read (FuCcgxHpiDevice *self,
|
||||
CyI2CDataConfigBits cfg_bits,
|
||||
GError **error)
|
||||
{
|
||||
guint8 slave_address = 0;
|
||||
guint8 target_address = 0;
|
||||
|
||||
if (!fu_ccgx_hpi_device_check_i2c_status (self, CY_I2C_MODE_READ, error)) {
|
||||
g_prefix_error (error, "i2c read error: ");
|
||||
return FALSE;
|
||||
}
|
||||
slave_address = (self->slave_address & 0x7F) | (self->scb_index << 7);
|
||||
target_address = (self->target_address & 0x7F) | (self->scb_index << 7);
|
||||
if (!g_usb_device_control_transfer (fu_usb_device_get_dev (FU_USB_DEVICE (self)),
|
||||
G_USB_DEVICE_DIRECTION_HOST_TO_DEVICE,
|
||||
G_USB_DEVICE_REQUEST_TYPE_VENDOR,
|
||||
G_USB_DEVICE_RECIPIENT_DEVICE,
|
||||
CY_I2C_READ_CMD,
|
||||
(((guint16) slave_address) << 8) | cfg_bits,
|
||||
(((guint16) target_address) << 8) | cfg_bits,
|
||||
bufsz, NULL, 0x0, NULL,
|
||||
FU_CCGX_HPI_WAIT_TIMEOUT, NULL,
|
||||
error)) {
|
||||
@ -316,20 +316,20 @@ fu_ccgx_hpi_device_i2c_write (FuCcgxHpiDevice *self,
|
||||
CyI2CDataConfigBits cfg_bits,
|
||||
GError **error)
|
||||
{
|
||||
guint8 slave_address;
|
||||
guint8 target_address;
|
||||
g_autoptr(GError) error_local = NULL;
|
||||
|
||||
if (!fu_ccgx_hpi_device_check_i2c_status (self, CY_I2C_MODE_WRITE, error)) {
|
||||
g_prefix_error (error, "i2c get status error: ");
|
||||
return FALSE;
|
||||
}
|
||||
slave_address = (self->slave_address & 0x7F) | (self->scb_index << 7);
|
||||
target_address = (self->target_address & 0x7F) | (self->scb_index << 7);
|
||||
if (!g_usb_device_control_transfer (fu_usb_device_get_dev (FU_USB_DEVICE (self)),
|
||||
G_USB_DEVICE_DIRECTION_HOST_TO_DEVICE,
|
||||
G_USB_DEVICE_REQUEST_TYPE_VENDOR,
|
||||
G_USB_DEVICE_RECIPIENT_DEVICE,
|
||||
CY_I2C_WRITE_CMD,
|
||||
((guint16) slave_address << 8) | (cfg_bits & CY_I2C_DATA_CONFIG_STOP),
|
||||
((guint16) target_address << 8) | (cfg_bits & CY_I2C_DATA_CONFIG_STOP),
|
||||
bufsz, /* idx */
|
||||
NULL, 0x0, NULL,
|
||||
FU_CCGX_HPI_WAIT_TIMEOUT,
|
||||
@ -360,20 +360,20 @@ fu_ccgx_hpi_device_i2c_write_no_resp (FuCcgxHpiDevice *self,
|
||||
CyI2CDataConfigBits cfg_bits,
|
||||
GError **error)
|
||||
{
|
||||
guint8 slave_address = 0;
|
||||
guint8 target_address = 0;
|
||||
g_autoptr(GError) error_local = NULL;
|
||||
|
||||
if (!fu_ccgx_hpi_device_check_i2c_status (self, CY_I2C_MODE_WRITE, error)) {
|
||||
g_prefix_error (error, "i2c write error: ");
|
||||
return FALSE;
|
||||
}
|
||||
slave_address = (self->slave_address & 0x7F) | (self->scb_index << 7);
|
||||
target_address = (self->target_address & 0x7F) | (self->scb_index << 7);
|
||||
if (!g_usb_device_control_transfer (fu_usb_device_get_dev (FU_USB_DEVICE (self)),
|
||||
G_USB_DEVICE_DIRECTION_HOST_TO_DEVICE,
|
||||
G_USB_DEVICE_REQUEST_TYPE_VENDOR,
|
||||
G_USB_DEVICE_RECIPIENT_DEVICE,
|
||||
CY_I2C_WRITE_CMD,
|
||||
((guint16) slave_address << 8) | (cfg_bits & CY_I2C_DATA_CONFIG_STOP),
|
||||
((guint16) target_address << 8) | (cfg_bits & CY_I2C_DATA_CONFIG_STOP),
|
||||
bufsz, NULL, 0x0, NULL,
|
||||
FU_CCGX_HPI_WAIT_TIMEOUT,
|
||||
NULL, error)) {
|
||||
@ -1376,7 +1376,7 @@ fu_ccgx_hpi_device_setup (FuDevice *device, GError **error)
|
||||
return FALSE;
|
||||
}
|
||||
i2c_config.frequency = FU_CCGX_HPI_FREQ;
|
||||
i2c_config.is_master = TRUE;
|
||||
i2c_config.is_initiator = TRUE;
|
||||
i2c_config.is_msb_first = TRUE;
|
||||
if (!fu_ccgx_hpi_device_set_i2c_config (self, &i2c_config, error)) {
|
||||
g_prefix_error (error, "set config error: ");
|
||||
@ -1574,7 +1574,7 @@ fu_ccgx_hpi_device_init (FuCcgxHpiDevice *self)
|
||||
self->inf_num = 0x0;
|
||||
self->hpi_addrsz = 1;
|
||||
self->num_ports = 1;
|
||||
self->slave_address = PD_I2C_SLAVE_ADDRESS;
|
||||
self->target_address = PD_I2C_TARGET_ADDRESS;
|
||||
self->ep_bulk_out = PD_I2C_USB_EP_BULK_OUT;
|
||||
self->ep_bulk_in = PD_I2C_USB_EP_BULK_IN;
|
||||
self->ep_intr_in = PD_I2C_USB_EP_INTR_IN;
|
||||
|
@ -77,10 +77,10 @@ ch_strerror (ChError error_enum)
|
||||
return "Self test failed: ADC Vss";
|
||||
if (error_enum == CH_ERROR_SELF_TEST_ADC_VREF)
|
||||
return "Self test failed: ADC Vref";
|
||||
if (error_enum == CH_ERROR_I2C_SLAVE_ADDRESS)
|
||||
return "I2C set slave address failed";
|
||||
if (error_enum == CH_ERROR_I2C_SLAVE_CONFIG)
|
||||
return "I2C set slave config failed";
|
||||
if (error_enum == CH_ERROR_I2C_TARGET_ADDRESS)
|
||||
return "I2C set target address failed";
|
||||
if (error_enum == CH_ERROR_I2C_TARGET_CONFIG)
|
||||
return "I2C set target config failed";
|
||||
if (error_enum == CH_ERROR_SELF_TEST_EEPROM)
|
||||
return "Self test failed: EEPROM";
|
||||
return NULL;
|
||||
|
@ -42,8 +42,8 @@ typedef enum {
|
||||
CH_ERROR_SELF_TEST_ADC_VDD,
|
||||
CH_ERROR_SELF_TEST_ADC_VSS,
|
||||
CH_ERROR_SELF_TEST_ADC_VREF,
|
||||
CH_ERROR_I2C_SLAVE_ADDRESS,
|
||||
CH_ERROR_I2C_SLAVE_CONFIG,
|
||||
CH_ERROR_I2C_TARGET_ADDRESS,
|
||||
CH_ERROR_I2C_TARGET_CONFIG,
|
||||
CH_ERROR_SELF_TEST_EEPROM,
|
||||
CH_ERROR_LAST
|
||||
} ChError;
|
||||
|
@ -65,7 +65,7 @@ typedef struct __attribute__ ((packed)) {
|
||||
typedef struct __attribute__ ((packed)) {
|
||||
guint8 cmd;
|
||||
guint8 ext;
|
||||
guint8 i2cslaveaddr;
|
||||
guint8 i2ctargetaddr;
|
||||
guint8 i2cspeed;
|
||||
union {
|
||||
guint32 startaddress;
|
||||
@ -129,7 +129,7 @@ fu_dell_dock_hid_get_hub_version (FuDevice *self,
|
||||
.cmd_data2 = 0,
|
||||
.cmd_data3 = 0,
|
||||
.bufferlen = GUINT16_TO_LE (12),
|
||||
.parameters = {.i2cslaveaddr = 0, .regaddrlen = 0, .i2cspeed = 0},
|
||||
.parameters = {.i2ctargetaddr = 0, .regaddrlen = 0, .i2cspeed = 0},
|
||||
.extended_cmdarea[0 ... 52] = 0,
|
||||
};
|
||||
|
||||
@ -164,7 +164,7 @@ fu_dell_dock_hid_raise_mcu_clock (FuDevice *self,
|
||||
.cmd_data2 = 0,
|
||||
.cmd_data3 = 0,
|
||||
.bufferlen = 0,
|
||||
.parameters = {.i2cslaveaddr = 0, .regaddrlen = 0, .i2cspeed = 0},
|
||||
.parameters = {.i2ctargetaddr = 0, .regaddrlen = 0, .i2cspeed = 0},
|
||||
.extended_cmdarea[0 ... 52] = 0,
|
||||
};
|
||||
|
||||
@ -193,7 +193,7 @@ fu_dell_dock_hid_get_ec_status (FuDevice *self,
|
||||
.cmd_data2 = 0,
|
||||
.cmd_data3 = 0,
|
||||
.bufferlen = GUINT16_TO_LE (27),
|
||||
.parameters = {.i2cslaveaddr = 0, .regaddrlen = 0, .i2cspeed = 0},
|
||||
.parameters = {.i2ctargetaddr = 0, .regaddrlen = 0, .i2cspeed = 0},
|
||||
.extended_cmdarea[0 ... 52] = 0,
|
||||
};
|
||||
|
||||
@ -224,7 +224,7 @@ fu_dell_dock_hid_erase_bank (FuDevice *self, guint8 idx, GError **error)
|
||||
.cmd_data2 = 0,
|
||||
.cmd_data3 = 0,
|
||||
.bufferlen = 0,
|
||||
.parameters = {.i2cslaveaddr = 0, .regaddrlen = 0, .i2cspeed = 0},
|
||||
.parameters = {.i2ctargetaddr = 0, .regaddrlen = 0, .i2cspeed = 0},
|
||||
.extended_cmdarea[0 ... 52] = 0,
|
||||
};
|
||||
|
||||
@ -249,7 +249,7 @@ fu_dell_dock_hid_write_flash (FuDevice *self,
|
||||
.ext = HUB_EXT_WRITEFLASH,
|
||||
.dwregaddr = GUINT32_TO_LE (dwAddr),
|
||||
.bufferlen = GUINT16_TO_LE (write_size),
|
||||
.parameters = {.i2cslaveaddr = 0, .regaddrlen = 0, .i2cspeed = 0},
|
||||
.parameters = {.i2ctargetaddr = 0, .regaddrlen = 0, .i2cspeed = 0},
|
||||
.extended_cmdarea[0 ... 52] = 0,
|
||||
};
|
||||
|
||||
@ -280,7 +280,7 @@ fu_dell_dock_hid_verify_update (FuDevice *self,
|
||||
.cmd_data2 = 0,
|
||||
.cmd_data3 = 0,
|
||||
.bufferlen = GUINT16_TO_LE (1),
|
||||
.parameters = {.i2cslaveaddr = 0, .regaddrlen = 0, .i2cspeed = 0},
|
||||
.parameters = {.i2ctargetaddr = 0, .regaddrlen = 0, .i2cspeed = 0},
|
||||
.extended_cmdarea[0 ... 52] = 0,
|
||||
};
|
||||
|
||||
@ -310,7 +310,7 @@ fu_dell_dock_hid_i2c_write (FuDevice *self,
|
||||
.ext = HUB_EXT_I2C_WRITE,
|
||||
.dwregaddr = 0,
|
||||
.bufferlen = GUINT16_TO_LE (write_size),
|
||||
.parameters = {.i2cslaveaddr = parameters->i2cslaveaddr,
|
||||
.parameters = {.i2ctargetaddr = parameters->i2ctargetaddr,
|
||||
.regaddrlen = 0,
|
||||
.i2cspeed = parameters->i2cspeed | 0x80},
|
||||
.extended_cmdarea[0 ... 52] = 0,
|
||||
@ -336,7 +336,7 @@ fu_dell_dock_hid_i2c_read (FuDevice *self,
|
||||
.ext = HUB_EXT_I2C_READ,
|
||||
.dwregaddr = GUINT32_TO_LE (cmd),
|
||||
.bufferlen = GUINT16_TO_LE (read_size),
|
||||
.parameters = {.i2cslaveaddr = parameters->i2cslaveaddr,
|
||||
.parameters = {.i2ctargetaddr = parameters->i2ctargetaddr,
|
||||
.regaddrlen = parameters->regaddrlen,
|
||||
.i2cspeed = parameters->i2cspeed | 0x80},
|
||||
.extended_cmdarea[0 ... 52] = 0,
|
||||
@ -365,7 +365,7 @@ fu_dell_dock_hid_tbt_wake (FuDevice *self,
|
||||
FuTbtCmdBuffer cmd_buffer = {
|
||||
.cmd = HUB_CMD_READ_DATA, /* special write command that reads status result */
|
||||
.ext = HUB_EXT_WRITE_TBT_FLASH,
|
||||
.i2cslaveaddr = parameters->i2cslaveaddr,
|
||||
.i2ctargetaddr = parameters->i2ctargetaddr,
|
||||
.i2cspeed = parameters->i2cspeed, /* unlike other commands doesn't need | 0x80 */
|
||||
.tbt_command = TBT_COMMAND_WAKEUP,
|
||||
.bufferlen = 0,
|
||||
@ -408,7 +408,7 @@ fu_dell_dock_hid_tbt_write (FuDevice *self,
|
||||
FuTbtCmdBuffer cmd_buffer = {
|
||||
.cmd = HUB_CMD_READ_DATA, /* It's a special write command that reads status result */
|
||||
.ext = HUB_EXT_WRITE_TBT_FLASH,
|
||||
.i2cslaveaddr = parameters->i2cslaveaddr,
|
||||
.i2ctargetaddr = parameters->i2ctargetaddr,
|
||||
.i2cspeed = parameters->i2cspeed, /* unlike other commands doesn't need | 0x80 */
|
||||
.startaddress = GUINT32_TO_LE (start_addr),
|
||||
.bufferlen = write_size,
|
||||
@ -454,7 +454,7 @@ fu_dell_dock_hid_tbt_authenticate (FuDevice *self,
|
||||
FuTbtCmdBuffer cmd_buffer = {
|
||||
.cmd = HUB_CMD_READ_DATA, /* It's a special write command that reads status result */
|
||||
.ext = HUB_EXT_WRITE_TBT_FLASH,
|
||||
.i2cslaveaddr = parameters->i2cslaveaddr,
|
||||
.i2ctargetaddr = parameters->i2ctargetaddr,
|
||||
.i2cspeed = parameters->i2cspeed, /* unlike other commands doesn't need | 0x80 */
|
||||
.tbt_command = GUINT32_TO_LE (TBT_COMMAND_AUTHENTICATE),
|
||||
.bufferlen = 0,
|
||||
|
@ -23,7 +23,7 @@
|
||||
#include "fu-device.h"
|
||||
|
||||
typedef struct __attribute__ ((packed)) {
|
||||
guint8 i2cslaveaddr;
|
||||
guint8 i2ctargetaddr;
|
||||
guint8 regaddrlen;
|
||||
guint8 i2cspeed;
|
||||
} FuHIDI2CParameters;
|
||||
|
@ -54,7 +54,7 @@ typedef enum {
|
||||
} FuDellDockECFWUpdateStatus;
|
||||
|
||||
const FuHIDI2CParameters ec_base_settings = {
|
||||
.i2cslaveaddr = I2C_EC_ADDRESS,
|
||||
.i2ctargetaddr = I2C_EC_ADDRESS,
|
||||
.regaddrlen = 1,
|
||||
.i2cspeed = I2C_SPEED_250K,
|
||||
};
|
||||
|
@ -96,7 +96,7 @@ const MSTBankAttributes esm_attributes = {
|
||||
};
|
||||
|
||||
FuHIDI2CParameters mst_base_settings = {
|
||||
.i2cslaveaddr = I2C_MST_ADDRESS,
|
||||
.i2ctargetaddr = I2C_MST_ADDRESS,
|
||||
.regaddrlen = 0,
|
||||
.i2cspeed = I2C_SPEED_400K,
|
||||
};
|
||||
|
@ -28,7 +28,7 @@
|
||||
#define I2C_TBT_ADDRESS 0xa2
|
||||
|
||||
const FuHIDI2CParameters tbt_base_settings = {
|
||||
.i2cslaveaddr = I2C_TBT_ADDRESS,
|
||||
.i2ctargetaddr = I2C_TBT_ADDRESS,
|
||||
.regaddrlen = 1,
|
||||
.i2cspeed = I2C_SPEED_400K,
|
||||
};
|
||||
|
@ -44,6 +44,6 @@ This plugin uses the following plugin-specific quirks:
|
||||
|
||||
| Quirk | Description | Minimum fwupd version |
|
||||
|------------------------|---------------------------------------------|-----------------------|
|
||||
| `Rts54SlaveAddr` | The slave address of a child module. | 1.1.3 |
|
||||
| `Rts54TargetAddr` | The target address of a child module. | 1.1.3 |
|
||||
| `Rts54I2cSpeed` | The I2C speed to operate at (0, 1, 2). | 1.1.3 |
|
||||
| `Rts54RegisterAddrLen` | The I2C register address length of commands | 1.1.3 |
|
||||
|
@ -15,7 +15,7 @@
|
||||
#define FU_RTS54HID_CMD_BUFFER_OFFSET_DATA 0x40
|
||||
|
||||
typedef struct __attribute__ ((packed)) {
|
||||
guint8 slave_addr;
|
||||
guint8 target_addr;
|
||||
guint8 data_sz;
|
||||
guint8 speed;
|
||||
} FuRts54HidI2cParameters;
|
||||
|
@ -17,7 +17,7 @@
|
||||
|
||||
struct _FuRts54HidModule {
|
||||
FuDevice parent_instance;
|
||||
guint8 slave_addr;
|
||||
guint8 target_addr;
|
||||
guint8 i2c_speed;
|
||||
guint8 register_addr_len;
|
||||
};
|
||||
@ -28,7 +28,7 @@ static void
|
||||
fu_rts54hid_module_to_string (FuDevice *module, guint idt, GString *str)
|
||||
{
|
||||
FuRts54HidModule *self = FU_RTS54HID_MODULE (module);
|
||||
fu_common_string_append_kx (str, idt, "SlaveAddr", self->slave_addr);
|
||||
fu_common_string_append_kx (str, idt, "TargetAddr", self->target_addr);
|
||||
fu_common_string_append_kx (str, idt, "I2cSpeed", self->i2c_speed);
|
||||
fu_common_string_append_kx (str, idt, "RegisterAddrLen", self->register_addr_len);
|
||||
}
|
||||
@ -59,7 +59,7 @@ fu_rts54hid_module_i2c_write (FuRts54HidModule *self,
|
||||
.ext = FU_RTS54HID_EXT_I2C_WRITE,
|
||||
.dwregaddr = 0,
|
||||
.bufferlen = GUINT16_TO_LE (data_sz),
|
||||
.parameters_i2c = {.slave_addr = self->slave_addr,
|
||||
.parameters_i2c = {.target_addr = self->target_addr,
|
||||
.data_sz = self->register_addr_len,
|
||||
.speed = self->i2c_speed | 0x80},
|
||||
};
|
||||
@ -83,7 +83,7 @@ fu_rts54hid_module_i2c_write (FuRts54HidModule *self,
|
||||
FU_RTS54HID_DEVICE_TIMEOUT * 2,
|
||||
FU_HID_DEVICE_FLAG_NONE,
|
||||
error)) {
|
||||
g_prefix_error (error, "failed to write i2c @%04x: ", self->slave_addr);
|
||||
g_prefix_error (error, "failed to write i2c @%04x: ", self->target_addr);
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
@ -102,7 +102,7 @@ fu_rts54hid_module_i2c_read (FuRts54HidModule *self,
|
||||
.ext = FU_RTS54HID_EXT_I2C_READ,
|
||||
.dwregaddr = GUINT32_TO_LE (cmd),
|
||||
.bufferlen = GUINT16_TO_LE (data_sz),
|
||||
.parameters_i2c = {.slave_addr = self->slave_addr,
|
||||
.parameters_i2c = {.target_addr = self->target_addr,
|
||||
.data_sz = self->register_addr_len,
|
||||
.speed = self->i2c_speed | 0x80},
|
||||
};
|
||||
@ -123,7 +123,7 @@ fu_rts54hid_module_i2c_read (FuRts54HidModule *self,
|
||||
FU_RTS54HID_DEVICE_TIMEOUT * 2,
|
||||
FU_HID_DEVICE_FLAG_NONE,
|
||||
error)) {
|
||||
g_prefix_error (error, "failed to write i2c @%04x: ", self->slave_addr);
|
||||
g_prefix_error (error, "failed to write i2c @%04x: ", self->target_addr);
|
||||
return FALSE;
|
||||
}
|
||||
if (!fu_hid_device_get_report (FU_HID_DEVICE (parent), 0x0, buf, sizeof(buf),
|
||||
@ -144,17 +144,17 @@ fu_rts54hid_module_set_quirk_kv (FuDevice *device,
|
||||
{
|
||||
FuRts54HidModule *self = FU_RTS54HID_MODULE (device);
|
||||
|
||||
/* load slave address from quirks */
|
||||
if (g_strcmp0 (key, "Rts54SlaveAddr") == 0) {
|
||||
/* load target address from quirks */
|
||||
if (g_strcmp0 (key, "Rts54TargetAddr") == 0) {
|
||||
guint64 tmp = fu_common_strtoull (value);
|
||||
if (tmp <= 0xff) {
|
||||
self->slave_addr = tmp;
|
||||
self->target_addr = tmp;
|
||||
return TRUE;
|
||||
}
|
||||
g_set_error_literal (error,
|
||||
G_IO_ERROR,
|
||||
G_IO_ERROR_INVALID_DATA,
|
||||
"invalid slave address");
|
||||
"invalid target address");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -11,6 +11,6 @@ Plugin = rts54hid
|
||||
Name = HDMI Converter
|
||||
Flags = updatable
|
||||
FirmwareSize = 0x20000
|
||||
Rts54SlaveAddr = 0x00
|
||||
Rts54TargetAddr = 0x00
|
||||
Rts54I2cSpeed = 0x00
|
||||
Rts54RegisterAddrLen = 0x04
|
||||
|
Loading…
Reference in New Issue
Block a user