From 895fb4b36156c18ddec22157020c6da232927f68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ky=C3=B6sti=20M=C3=A4lkki?= Date: Fri, 3 Jan 2020 10:55:59 +0200 Subject: [PATCH] device/smbus: Drop unused smbus_set_link() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit I expect it to be easier to just remodel the support for i2c multiplexers instead. Besides, there was no proper bounds for pbus_num when accessing pbus_a[]. Change-Id: I17f33b308c01e48bc03b142550535c32862442ac Signed-off-by: Kyösti Mälkki Reviewed-on: https://review.coreboot.org/c/coreboot/+/38161 Tested-by: build bot (Jenkins) Reviewed-by: Paul Menzel Reviewed-by: Nico Huber --- src/device/smbus_ops.c | 37 ------------------------------------- src/include/device/device.h | 1 - src/include/device/smbus.h | 1 - 3 files changed, 39 deletions(-) diff --git a/src/device/smbus_ops.c b/src/device/smbus_ops.c index 13e6cadd55..3b7a69eabe 100644 --- a/src/device/smbus_ops.c +++ b/src/device/smbus_ops.c @@ -27,43 +27,6 @@ struct bus *get_pbus_smbus(struct device *dev) return pbus; } -/* - * Multi-level I2C MUX? May need to find the first I2C device and then set link - * down to current dev. - * - * 1 store get_pbus_smbus list link - * 2 reverse the link and call set link. - * - * @param dev TODO. - */ -int smbus_set_link(struct device *dev) -{ - struct bus *pbus_a[4]; // 4 level mux only. Enough? - struct bus *pbus = dev->bus; - int pbus_num = 0; - int i; - - while (pbus && pbus->dev && (pbus->dev->path.type == DEVICE_PATH_I2C)) { - pbus_a[pbus_num++] = pbus; - pbus = pbus->dev->bus; - } - - // printk(BIOS_INFO, "smbus_set_link: "); - for (i = pbus_num - 1; i >= 0; i--) { - // printk(BIOS_INFO, " %s[%d] -> ", dev_path(pbus_a[i]->dev), - // pbus_a[i]->link); - if (ops_smbus_bus(get_pbus_smbus(pbus_a[i]->dev))) { - if (pbus_a[i]->dev->ops - && pbus_a[i]->dev->ops->set_link) - pbus_a[i]->dev->ops->set_link(pbus_a[i]->dev, - pbus_a[i]->link_num); - } - } - // printk(BIOS_INFO, " %s\n", dev_path(dev)); - - return pbus_num; -} - #define CHECK_PRESENCE(x) \ if (!ops_smbus_bus(get_pbus_smbus(dev))->x) { \ printk(BIOS_ERR, "%s missing " #x "\n", \ diff --git a/src/include/device/device.h b/src/include/device/device.h index e391291084..2d7400b464 100644 --- a/src/include/device/device.h +++ b/src/include/device/device.h @@ -41,7 +41,6 @@ struct device_operations { void (*scan_bus)(struct device *bus); void (*enable)(struct device *dev); void (*disable)(struct device *dev); - void (*set_link)(struct device *dev, unsigned int link); void (*reset_bus)(struct bus *bus); #if CONFIG(GENERATE_SMBIOS_TABLES) int (*get_smbios_data)(struct device *dev, int *handle, diff --git a/src/include/device/smbus.h b/src/include/device/smbus.h index 094ad42629..cae4f3fde3 100644 --- a/src/include/device/smbus.h +++ b/src/include/device/smbus.h @@ -28,7 +28,6 @@ static inline const struct smbus_bus_operations *ops_smbus_bus(struct bus *bus) } struct bus *get_pbus_smbus(struct device *dev); -int smbus_set_link(struct device *dev); static inline int smbus_recv_byte(struct device *const dev) {