mirror of
https://github.com/torvalds/linux.git
synced 2024-11-23 12:42:02 +00:00
mfd: core: Fix platform-device name collisions
Since commit6e3f62f079
("mfd: core: Fix platform-device id generation") we honour PLATFORM_DEVID_AUTO and PLATFORM_DEVID_NONE when registering mfd-devices. Unfortunately, some mfd-drivers rely on the old behaviour of generating platform-device ids by adding the cell id also to the special value of PLATFORM_DEVID_NONE. The resulting platform ids are not only used to generate device-unique names, but are also used instead of the cell id to identify cells when probing subdevices. These drivers should be updated to use PLATFORM_DEVID_AUTO, which would also allow more than one device to be registered without resorting to hacks (see for example wm831x), but lets fix the regression first by partially reverting the above mentioned commit with respect to PLATFORM_DEVID_NONE. Fixes:6e3f62f079
("mfd: core: Fix platform-device id generation") Cc: stable <stable@vger.kernel.org> # v3.19 Reported-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> Signed-off-by: Johan Hovold <johan@kernel.org> Acked-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> Signed-off-by: Lee Jones <lee.jones@linaro.org>
This commit is contained in:
parent
bafc1face2
commit
a77c50b44c
@ -128,7 +128,7 @@ static int mfd_add_device(struct device *parent, int id,
|
|||||||
int platform_id;
|
int platform_id;
|
||||||
int r;
|
int r;
|
||||||
|
|
||||||
if (id < 0)
|
if (id == PLATFORM_DEVID_AUTO)
|
||||||
platform_id = id;
|
platform_id = id;
|
||||||
else
|
else
|
||||||
platform_id = id + cell->id;
|
platform_id = id + cell->id;
|
||||||
|
Loading…
Reference in New Issue
Block a user