Skip to content

Commit

Permalink
platform/mellanox: Group create/destroy with attribute functions
Browse files Browse the repository at this point in the history
Move the mlxreg_hotplug_device_create and _destroy functions up with the
related attribute functions. No functional changes.

Signed-off-by: Vadim Pasternak <vadimp@mellanox.com>
Acked-by: Andy Shevchenko <andy.shevchenko@gmail.com>
[dvhart: refactored commit into smaller functional changes]
Signed-off-by: Darren Hart (VMware) <dvhart@infradead.org>
  • Loading branch information
Vadim Pasternak authored and Darren Hart (VMware) committed Jan 31, 2018
1 parent 3d838f5 commit 752849e
Showing 1 changed file with 35 additions and 35 deletions.
70 changes: 35 additions & 35 deletions drivers/platform/mellanox/mlxreg-hotplug.c
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,41 @@ struct mlxreg_hotplug_priv_data {
u8 fan_cache;
};

static int mlxreg_hotplug_device_create(struct device *dev,
struct mlxreg_hotplug_device *item)
{
item->adapter = i2c_get_adapter(item->nr);
if (!item->adapter) {
dev_err(dev, "Failed to get adapter for bus %d\n",
item->nr);
return -EFAULT;
}

item->client = i2c_new_device(item->adapter, &item->brdinfo);
if (!item->client) {
dev_err(dev, "Failed to create client %s at bus %d at addr 0x%02x\n",
item->brdinfo.type, item->nr, item->brdinfo.addr);
i2c_put_adapter(item->adapter);
item->adapter = NULL;
return -EFAULT;
}

return 0;
}

static void mlxreg_hotplug_device_destroy(struct mlxreg_hotplug_device *item)
{
if (item->client) {
i2c_unregister_device(item->client);
item->client = NULL;
}

if (item->adapter) {
i2c_put_adapter(item->adapter);
item->adapter = NULL;
}
}

static ssize_t mlxreg_hotplug_attr_show(struct device *dev,
struct device_attribute *attr,
char *buf)
Expand Down Expand Up @@ -183,41 +218,6 @@ static int mlxreg_hotplug_attr_init(struct mlxreg_hotplug_priv_data *priv)
return 0;
}

static int mlxreg_hotplug_device_create(struct device *dev,
struct mlxreg_hotplug_device *item)
{
item->adapter = i2c_get_adapter(item->nr);
if (!item->adapter) {
dev_err(dev, "Failed to get adapter for bus %d\n",
item->nr);
return -EFAULT;
}

item->client = i2c_new_device(item->adapter, &item->brdinfo);
if (!item->client) {
dev_err(dev, "Failed to create client %s at bus %d at addr 0x%02x\n",
item->brdinfo.type, item->nr, item->brdinfo.addr);
i2c_put_adapter(item->adapter);
item->adapter = NULL;
return -EFAULT;
}

return 0;
}

static void mlxreg_hotplug_device_destroy(struct mlxreg_hotplug_device *item)
{
if (item->client) {
i2c_unregister_device(item->client);
item->client = NULL;
}

if (item->adapter) {
i2c_put_adapter(item->adapter);
item->adapter = NULL;
}
}

static inline void
mlxreg_hotplug_work_helper(struct device *dev,
struct mlxreg_hotplug_device *item, u8 is_inverse,
Expand Down

0 comments on commit 752849e

Please sign in to comment.