Commit 6e3f62f0 authored by Johan Hovold's avatar Johan Hovold Committed by Lee Jones

mfd: core: Fix platform-device id generation

Make sure to always honour multi-function devices registered with
PLATFORM_DEVID_NONE (-1) or PLATFORM_DEVID_AUTO (-2) as id base. In this
case it does not make sense to append the cell id to the mfd-id base and
potentially change the requested behaviour.

Specifically this will allow multi-function devices to be registered
with PLATFORM_DEVID_AUTO while still having non-zero cell ids.
Signed-off-by: default avatarJohan Hovold <johan@kernel.org>
Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
parent 16b5fe29
...@@ -125,9 +125,15 @@ static int mfd_add_device(struct device *parent, int id, ...@@ -125,9 +125,15 @@ static int mfd_add_device(struct device *parent, int id,
struct platform_device *pdev; struct platform_device *pdev;
struct device_node *np = NULL; struct device_node *np = NULL;
int ret = -ENOMEM; int ret = -ENOMEM;
int platform_id;
int r; int r;
pdev = platform_device_alloc(cell->name, id + cell->id); if (id < 0)
platform_id = id;
else
platform_id = id + cell->id;
pdev = platform_device_alloc(cell->name, platform_id);
if (!pdev) if (!pdev)
goto fail_alloc; goto fail_alloc;
......
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