Commit f4c6752d authored by Andy Shevchenko's avatar Andy Shevchenko Committed by Rafael J. Wysocki

i2c: amd-mp2-plat: Refactor _UID handling to use acpi_dev_uid_to_integer()

ACPI utils provide acpi_dev_uid_to_integer() helper to extract _UID as
an integer. Use it instead of custom approach.
Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: default avatarWolfram Sang <wsa@kernel.org>
Reviewed-by: default avatarHans de Goede <hdegoede@redhat.com>
Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
parent 197a5aea
...@@ -244,14 +244,18 @@ static const struct i2c_adapter_quirks amd_i2c_dev_quirks = { ...@@ -244,14 +244,18 @@ static const struct i2c_adapter_quirks amd_i2c_dev_quirks = {
static int i2c_amd_probe(struct platform_device *pdev) static int i2c_amd_probe(struct platform_device *pdev)
{ {
struct device *dev = &pdev->dev;
int ret; int ret;
struct amd_i2c_dev *i2c_dev; struct amd_i2c_dev *i2c_dev;
struct acpi_device *adev = ACPI_COMPANION(&pdev->dev);
struct amd_mp2_dev *mp2_dev; struct amd_mp2_dev *mp2_dev;
const char *uid; u64 uid;
if (!adev) ret = acpi_dev_uid_to_integer(ACPI_COMPANION(dev), &uid);
return -ENODEV; if (ret)
return dev_err_probe(dev, ret, "missing UID/bus id!\n");
if (uid >= 2)
return dev_err_probe(dev, -EINVAL, "incorrect UID/bus id \"%llu\"!\n", uid);
dev_dbg(dev, "bus id is %llu\n", uid);
/* The ACPI namespace doesn't contain information about which MP2 PCI /* The ACPI namespace doesn't contain information about which MP2 PCI
* device an AMDI0011 ACPI device is related to, so assume that there's * device an AMDI0011 ACPI device is related to, so assume that there's
...@@ -266,6 +270,7 @@ static int i2c_amd_probe(struct platform_device *pdev) ...@@ -266,6 +270,7 @@ static int i2c_amd_probe(struct platform_device *pdev)
if (!i2c_dev) if (!i2c_dev)
return -ENOMEM; return -ENOMEM;
i2c_dev->common.bus_id = uid;
i2c_dev->common.mp2_dev = mp2_dev; i2c_dev->common.mp2_dev = mp2_dev;
i2c_dev->pdev = pdev; i2c_dev->pdev = pdev;
platform_set_drvdata(pdev, i2c_dev); platform_set_drvdata(pdev, i2c_dev);
...@@ -276,20 +281,6 @@ static int i2c_amd_probe(struct platform_device *pdev) ...@@ -276,20 +281,6 @@ static int i2c_amd_probe(struct platform_device *pdev)
i2c_dev->common.resume = &i2c_amd_resume; i2c_dev->common.resume = &i2c_amd_resume;
#endif #endif
uid = adev->pnp.unique_id;
if (!uid) {
dev_err(&pdev->dev, "missing UID/bus id!\n");
return -EINVAL;
} else if (strcmp(uid, "0") == 0) {
i2c_dev->common.bus_id = 0;
} else if (strcmp(uid, "1") == 0) {
i2c_dev->common.bus_id = 1;
} else {
dev_err(&pdev->dev, "incorrect UID/bus id \"%s\"!\n", uid);
return -EINVAL;
}
dev_dbg(&pdev->dev, "bus id is %u\n", i2c_dev->common.bus_id);
/* Register the adapter */ /* Register the adapter */
amd_mp2_pm_runtime_get(mp2_dev); amd_mp2_pm_runtime_get(mp2_dev);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment