Since the dev_name field of i2c_board_info is not set while instantiating an I2C device, they are named like <adapter_id>-<device_addr>, unless they are instantiated through ACPI. These coded names are less desirable in some situations as they will vary across systems with different hardware configurations, and even also on the same system as the adapter_id may change with change in the order of i2c bus enumeration (i.e. due to device tree modifications). These device names are further used by other modules like "system wakeup events framework" to assign the name of wakeup_source. So overall this causes somewhat difficult to interpret device and wakeup source names, and hence presents difficulties debuging issues at multiple levels. This change addresses above mentioned problem by setting dev_name field based on value assigned to an optional "dev-name" property of device tree (if present). And as a result of this, i2c_dev_set_name() should now use the actual device name instead of made up one. Signed-off-by: Manish Varma <varmam@xxxxxxxxxx> --- drivers/i2c/i2c-core-of.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/i2c/i2c-core-of.c b/drivers/i2c/i2c-core-of.c index 3ed74aa4b44b..d7a85a9cc499 100644 --- a/drivers/i2c/i2c-core-of.c +++ b/drivers/i2c/i2c-core-of.c @@ -58,6 +58,8 @@ int of_i2c_get_board_info(struct device *dev, struct device_node *node, if (of_get_property(node, "wakeup-source", NULL)) info->flags |= I2C_CLIENT_WAKE; + of_property_read_string(node, "dev-name", &(info->dev_name)); + return 0; } EXPORT_SYMBOL_GPL(of_i2c_get_board_info); -- 2.31.1.295.g9ea45b61b8-goog