diff options
-rw-r--r-- | drivers/hwmon/pmbus/pmbus_core.c | 37 |
1 files changed, 18 insertions, 19 deletions
diff --git a/drivers/hwmon/pmbus/pmbus_core.c b/drivers/hwmon/pmbus/pmbus_core.c index b9ba8ce1f3f1..97eca0340dc0 100644 --- a/drivers/hwmon/pmbus/pmbus_core.c +++ b/drivers/hwmon/pmbus/pmbus_core.c | |||
@@ -1691,7 +1691,8 @@ static int pmbus_identify_common(struct i2c_client *client, | |||
1691 | int pmbus_do_probe(struct i2c_client *client, const struct i2c_device_id *id, | 1691 | int pmbus_do_probe(struct i2c_client *client, const struct i2c_device_id *id, |
1692 | struct pmbus_driver_info *info) | 1692 | struct pmbus_driver_info *info) |
1693 | { | 1693 | { |
1694 | const struct pmbus_platform_data *pdata = client->dev.platform_data; | 1694 | struct device *dev = &client->dev; |
1695 | const struct pmbus_platform_data *pdata = dev->platform_data; | ||
1695 | struct pmbus_data *data; | 1696 | struct pmbus_data *data; |
1696 | int ret; | 1697 | int ret; |
1697 | 1698 | ||
@@ -1703,7 +1704,7 @@ int pmbus_do_probe(struct i2c_client *client, const struct i2c_device_id *id, | |||
1703 | | I2C_FUNC_SMBUS_WORD_DATA)) | 1704 | | I2C_FUNC_SMBUS_WORD_DATA)) |
1704 | return -ENODEV; | 1705 | return -ENODEV; |
1705 | 1706 | ||
1706 | data = devm_kzalloc(&client->dev, sizeof(*data), GFP_KERNEL); | 1707 | data = devm_kzalloc(dev, sizeof(*data), GFP_KERNEL); |
1707 | if (!data) | 1708 | if (!data) |
1708 | return -ENOMEM; | 1709 | return -ENOMEM; |
1709 | 1710 | ||
@@ -1712,7 +1713,7 @@ int pmbus_do_probe(struct i2c_client *client, const struct i2c_device_id *id, | |||
1712 | 1713 | ||
1713 | /* Bail out if PMBus status register does not exist. */ | 1714 | /* Bail out if PMBus status register does not exist. */ |
1714 | if (i2c_smbus_read_byte_data(client, PMBUS_STATUS_BYTE) < 0) { | 1715 | if (i2c_smbus_read_byte_data(client, PMBUS_STATUS_BYTE) < 0) { |
1715 | dev_err(&client->dev, "PMBus status register not found\n"); | 1716 | dev_err(dev, "PMBus status register not found\n"); |
1716 | return -ENODEV; | 1717 | return -ENODEV; |
1717 | } | 1718 | } |
1718 | 1719 | ||
@@ -1725,40 +1726,38 @@ int pmbus_do_probe(struct i2c_client *client, const struct i2c_device_id *id, | |||
1725 | if (info->identify) { | 1726 | if (info->identify) { |
1726 | ret = (*info->identify)(client, info); | 1727 | ret = (*info->identify)(client, info); |
1727 | if (ret < 0) { | 1728 | if (ret < 0) { |
1728 | dev_err(&client->dev, "Chip identification failed\n"); | 1729 | dev_err(dev, "Chip identification failed\n"); |
1729 | return ret; | 1730 | return ret; |
1730 | } | 1731 | } |
1731 | } | 1732 | } |
1732 | 1733 | ||
1733 | if (info->pages <= 0 || info->pages > PMBUS_PAGES) { | 1734 | if (info->pages <= 0 || info->pages > PMBUS_PAGES) { |
1734 | dev_err(&client->dev, "Bad number of PMBus pages: %d\n", | 1735 | dev_err(dev, "Bad number of PMBus pages: %d\n", info->pages); |
1735 | info->pages); | ||
1736 | return -ENODEV; | 1736 | return -ENODEV; |
1737 | } | 1737 | } |
1738 | 1738 | ||
1739 | ret = pmbus_identify_common(client, data); | 1739 | ret = pmbus_identify_common(client, data); |
1740 | if (ret < 0) { | 1740 | if (ret < 0) { |
1741 | dev_err(&client->dev, "Failed to identify chip capabilities\n"); | 1741 | dev_err(dev, "Failed to identify chip capabilities\n"); |
1742 | return ret; | 1742 | return ret; |
1743 | } | 1743 | } |
1744 | 1744 | ||
1745 | ret = -ENOMEM; | 1745 | data->sensors = devm_kzalloc(dev, sizeof(struct pmbus_sensor) |
1746 | data->sensors = devm_kzalloc(&client->dev, sizeof(struct pmbus_sensor) | ||
1747 | * data->max_sensors, GFP_KERNEL); | 1746 | * data->max_sensors, GFP_KERNEL); |
1748 | if (!data->sensors) | 1747 | if (!data->sensors) |
1749 | return -ENOMEM; | 1748 | return -ENOMEM; |
1750 | 1749 | ||
1751 | data->booleans = devm_kzalloc(&client->dev, sizeof(struct pmbus_boolean) | 1750 | data->booleans = devm_kzalloc(dev, sizeof(struct pmbus_boolean) |
1752 | * data->max_booleans, GFP_KERNEL); | 1751 | * data->max_booleans, GFP_KERNEL); |
1753 | if (!data->booleans) | 1752 | if (!data->booleans) |
1754 | return -ENOMEM; | 1753 | return -ENOMEM; |
1755 | 1754 | ||
1756 | data->labels = devm_kzalloc(&client->dev, sizeof(struct pmbus_label) | 1755 | data->labels = devm_kzalloc(dev, sizeof(struct pmbus_label) |
1757 | * data->max_labels, GFP_KERNEL); | 1756 | * data->max_labels, GFP_KERNEL); |
1758 | if (!data->labels) | 1757 | if (!data->labels) |
1759 | return -ENOMEM; | 1758 | return -ENOMEM; |
1760 | 1759 | ||
1761 | data->attributes = devm_kzalloc(&client->dev, sizeof(struct attribute *) | 1760 | data->attributes = devm_kzalloc(dev, sizeof(struct attribute *) |
1762 | * data->max_attributes, GFP_KERNEL); | 1761 | * data->max_attributes, GFP_KERNEL); |
1763 | if (!data->attributes) | 1762 | if (!data->attributes) |
1764 | return -ENOMEM; | 1763 | return -ENOMEM; |
@@ -1770,27 +1769,27 @@ int pmbus_do_probe(struct i2c_client *client, const struct i2c_device_id *id, | |||
1770 | * Bail out instead of trying to register nothing. | 1769 | * Bail out instead of trying to register nothing. |
1771 | */ | 1770 | */ |
1772 | if (!data->num_attributes) { | 1771 | if (!data->num_attributes) { |
1773 | dev_err(&client->dev, "No attributes found\n"); | 1772 | dev_err(dev, "No attributes found\n"); |
1774 | return -ENODEV; | 1773 | return -ENODEV; |
1775 | } | 1774 | } |
1776 | 1775 | ||
1777 | /* Register sysfs hooks */ | 1776 | /* Register sysfs hooks */ |
1778 | data->group.attrs = data->attributes; | 1777 | data->group.attrs = data->attributes; |
1779 | ret = sysfs_create_group(&client->dev.kobj, &data->group); | 1778 | ret = sysfs_create_group(&dev->kobj, &data->group); |
1780 | if (ret) { | 1779 | if (ret) { |
1781 | dev_err(&client->dev, "Failed to create sysfs entries\n"); | 1780 | dev_err(dev, "Failed to create sysfs entries\n"); |
1782 | return ret; | 1781 | return ret; |
1783 | } | 1782 | } |
1784 | data->hwmon_dev = hwmon_device_register(&client->dev); | 1783 | data->hwmon_dev = hwmon_device_register(dev); |
1785 | if (IS_ERR(data->hwmon_dev)) { | 1784 | if (IS_ERR(data->hwmon_dev)) { |
1786 | ret = PTR_ERR(data->hwmon_dev); | 1785 | ret = PTR_ERR(data->hwmon_dev); |
1787 | dev_err(&client->dev, "Failed to register hwmon device\n"); | 1786 | dev_err(dev, "Failed to register hwmon device\n"); |
1788 | goto out_hwmon_device_register; | 1787 | goto out_hwmon_device_register; |
1789 | } | 1788 | } |
1790 | return 0; | 1789 | return 0; |
1791 | 1790 | ||
1792 | out_hwmon_device_register: | 1791 | out_hwmon_device_register: |
1793 | sysfs_remove_group(&client->dev.kobj, &data->group); | 1792 | sysfs_remove_group(&dev->kobj, &data->group); |
1794 | return ret; | 1793 | return ret; |
1795 | } | 1794 | } |
1796 | EXPORT_SYMBOL_GPL(pmbus_do_probe); | 1795 | EXPORT_SYMBOL_GPL(pmbus_do_probe); |