diff options
Diffstat (limited to 'src/mainboard')
-rw-r--r-- | src/mainboard/google/butterfly/mainboard.c | 37 | ||||
-rw-r--r-- | src/mainboard/google/link/mainboard.c | 65 | ||||
-rw-r--r-- | src/mainboard/google/parrot/mainboard.c | 50 |
3 files changed, 50 insertions, 102 deletions
diff --git a/src/mainboard/google/butterfly/mainboard.c b/src/mainboard/google/butterfly/mainboard.c index 32a830842a..b11c22678f 100644 --- a/src/mainboard/google/butterfly/mainboard.c +++ b/src/mainboard/google/butterfly/mainboard.c @@ -343,40 +343,19 @@ static void mainboard_init(device_t dev) } } -static int butterfly_smbios_type41(int *handle, unsigned long *current, - const char *name, u8 irq, u8 addr) -{ - struct smbios_type41 *t = (struct smbios_type41 *)*current; - int len = sizeof(struct smbios_type41); - - memset(t, 0, sizeof(struct smbios_type41)); - t->type = SMBIOS_ONBOARD_DEVICES_EXTENDED_INFORMATION; - t->handle = *handle; - t->length = len - 2; - t->reference_designation = smbios_add_string(t->eos, name); - t->device_type = SMBIOS_DEVICE_TYPE_OTHER; - t->device_status = 1; - t->device_type_instance = irq; - t->segment_group_number = 0; - t->bus_number = addr; - t->function_number = 0; - t->device_number = 0; - - len = t->length + smbios_string_table_len(t->eos); - *current += len; - *handle += 1; - return len; -} - static int butterfly_onboard_smbios_data(device_t dev, int *handle, unsigned long *current) { int len = 0; - len += butterfly_smbios_type41(handle, current, - BUTTERFLY_TRACKPAD_NAME, - BUTTERFLY_TRACKPAD_IRQ, - BUTTERFLY_TRACKPAD_I2C_ADDR); + len += smbios_write_type41( + current, handle, + BUTTERFLY_TRACKPAD_NAME, /* name */ + BUTTERFLY_TRACKPAD_IRQ, /* instance */ + 0, /* segment */ + BUTTERFLY_TRACKPAD_I2C_ADDR, /* bus */ + 0, /* device */ + 0); /* function */ return len; } diff --git a/src/mainboard/google/link/mainboard.c b/src/mainboard/google/link/mainboard.c index 2731df0204..08b1c02a96 100644 --- a/src/mainboard/google/link/mainboard.c +++ b/src/mainboard/google/link/mainboard.c @@ -180,50 +180,37 @@ static void mainboard_init(device_t dev) } } -static int link_smbios_type41(int *handle, unsigned long *current, - const char *name, u8 irq, u8 addr) -{ - struct smbios_type41 *t = (struct smbios_type41 *)*current; - int len = sizeof(struct smbios_type41); - - memset(t, 0, sizeof(struct smbios_type41)); - t->type = SMBIOS_ONBOARD_DEVICES_EXTENDED_INFORMATION; - t->handle = *handle; - t->length = len - 2; - t->reference_designation = smbios_add_string(t->eos, name); - t->device_type = SMBIOS_DEVICE_TYPE_OTHER; - t->device_status = 1; - t->device_type_instance = irq; - t->segment_group_number = 0; - t->bus_number = addr; - t->function_number = 0; - t->device_number = 0; - - len = t->length + smbios_string_table_len(t->eos); - *current += len; - *handle += 1; - return len; -} - static int link_onboard_smbios_data(device_t dev, int *handle, unsigned long *current) { int len = 0; - len += link_smbios_type41(handle, current, - LINK_LIGHTSENSOR_NAME, - LINK_LIGHTSENSOR_IRQ, - LINK_LIGHTSENSOR_I2C_ADDR); - - len += link_smbios_type41(handle, current, - LINK_TRACKPAD_NAME, - LINK_TRACKPAD_IRQ, - LINK_TRACKPAD_I2C_ADDR); - - len += link_smbios_type41(handle, current, - LINK_TOUCHSCREEN_NAME, - LINK_TOUCHSCREEN_IRQ, - LINK_TOUCHSCREEN_I2C_ADDR); + len += smbios_write_type41( + current, handle, + LINK_LIGHTSENSOR_NAME, /* name */ + LINK_LIGHTSENSOR_IRQ, /* instance */ + 0, /* segment */ + LINK_LIGHTSENSOR_I2C_ADDR, /* bus */ + 0, /* device */ + 0); /* function */ + + len += smbios_write_type41( + current, handle, + LINK_TRACKPAD_NAME, /* name */ + LINK_TRACKPAD_IRQ, /* instance */ + 0, /* segment */ + LINK_TRACKPAD_I2C_ADDR, /* bus */ + 0, /* device */ + 0); /* function */ + + len += smbios_write_type41( + current, handle, + LINK_TOUCHSCREEN_NAME, /* name */ + LINK_TOUCHSCREEN_IRQ, /* instance */ + 0, /* segment */ + LINK_TOUCHSCREEN_I2C_ADDR, /* bus */ + 0, /* device */ + 0); /* function */ return len; } diff --git a/src/mainboard/google/parrot/mainboard.c b/src/mainboard/google/parrot/mainboard.c index bc505beaff..34cb24e87e 100644 --- a/src/mainboard/google/parrot/mainboard.c +++ b/src/mainboard/google/parrot/mainboard.c @@ -156,49 +156,31 @@ static void mainboard_init(device_t dev) parrot_ec_init(); } -static int parrot_smbios_type41(int *handle, unsigned long *current, - const char *name, u8 irq, u8 addr) -{ - struct smbios_type41 *t = (struct smbios_type41 *)*current; - int len = sizeof(struct smbios_type41); - - memset(t, 0, sizeof(struct smbios_type41)); - t->type = SMBIOS_ONBOARD_DEVICES_EXTENDED_INFORMATION; - t->handle = *handle; - t->length = len - 2; - t->reference_designation = smbios_add_string(t->eos, name); - t->device_type = SMBIOS_DEVICE_TYPE_OTHER; - t->device_status = 1; - t->device_type_instance = irq; - t->segment_group_number = 0; - t->bus_number = addr; - t->function_number = 0; - t->device_number = 0; - - len = t->length + smbios_string_table_len(t->eos); - *current += len; - *handle += 1; - return len; -} - static int parrot_onboard_smbios_data(device_t dev, int *handle, unsigned long *current) { int len = 0; u8 hardware_version = parrot_rev(); if (hardware_version < 0x2) { /* DVT vs PVT */ - len += parrot_smbios_type41(handle, current, - PARROT_TRACKPAD_NAME, - PARROT_TRACKPAD_IRQ_DVT, - PARROT_TRACKPAD_I2C_ADDR); + len += smbios_write_type41( + current, handle, + PARROT_TRACKPAD_NAME, /* name */ + PARROT_TRACKPAD_IRQ_DVT, /* instance */ + 0, /* segment */ + PARROT_TRACKPAD_I2C_ADDR, /* bus */ + 0, /* device */ + 0); /* function */ } else { - len += parrot_smbios_type41(handle, current, - PARROT_TRACKPAD_NAME, - PARROT_TRACKPAD_IRQ_PVT, - PARROT_TRACKPAD_I2C_ADDR); + len += smbios_write_type41( + current, handle, + PARROT_TRACKPAD_NAME, /* name */ + PARROT_TRACKPAD_IRQ_PVT, /* instance */ + 0, /* segment */ + PARROT_TRACKPAD_I2C_ADDR, /* bus */ + 0, /* device */ + 0); /* function */ } - return len; } |