lkml.org 
[lkml]   [2015]   [Mar]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH v2 0/5] mfd: Fix platform device ids to avoid probe failure
    On Fri, Mar 20, 2015 at 08:23:18PM +0100, Bartlomiej Zolnierkiewicz wrote:

    > Commit 6e3f62f0793e ("mfd: core: Fix platform-device id generation")
    > changed the way platform device ids are generated from mfd id base and
    > cell ids in mfd_add_device(). Unfortunately the change in question
    > breaks mfd drivers which are using mfd_add_devices() with mfd id base
    > equal to -1 and non-zero cell ids (used to distinguish cells with
    > the same name field). The result is that mfd core tries to register
    > platform devices with the same name which obviously fails and leads
    > to mfd device probe failure.

    First of all, thanks for finding these. I obviously overlooked this
    class of drivers when fixing the device-id generation.

    > Changing mfd_add_devices() mfd id base from -1 to 0 and at the same
    > time setting proper cell ids for all cells fixes the issue.

    This is however not the right fix. Instead you should be using
    PLATFORM_DEVID_AUTO and keep the non-zero cell-ids as is, as this will
    allow more than one mfd-device to be registered without resorting to
    hacks.

    Have a look at wm831x, for example, which offsets the device id base if
    a wm831x_num parameter is passed in platform data (non-dt) to allow more
    than one device to be registered. Your patch would break this, and still
    not provide any other way to have multiple devices in a system.

    Your changes would also break da9052, which would no longer allow more
    than one device to be registered, something which was already fixed once
    by commit b3f6c73db732 ("mfd: da9052-core: Fix platform-device id
    collision").

    Thanks,
    Johan


    \
     
     \ /
      Last update: 2015-03-23 11:21    [W:5.465 / U:0.000 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site