lkml.org 
[lkml]   [2017]   [Jul]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRE: [PATCH v9 5/7] ACPI: Translate the I/O range of non-MMIO devices before scanning
    Date
    Hi Andy

    [...]

    >
    > JFYI: Mika on vacation.

    Thanks for letting me know

    >
    > > I had a look into the MFD framework. If my understanding is correct
    > the mfd
    > > framework create a platform device for each declared mfd_cell that is
    > passed
    > > to mfd_add_devices().
    >
    > Right.
    >
    > > However there is something that I do not quite understand:
    > > from
    > > http://elixir.free-electrons.com/linux/latest/source/drivers/mfd/mfd-
    > core.c#L207
    > > it seems that mfd_add_device() will create the platform device using
    > the
    > > resources that are statically declared in the respective mfd_cell.
    >
    > It's one possibility.
    >
    > > In my case I'd like to have a platform device using the resources
    > that are
    > > parsed from the ACPI table (i.e. as it is done now by
    > > acpi_create_platform_device()).
    >
    > So far so good. Nothing prevents you to do that.
    >
    > > If my understanding is correct, if I declared an mfd_cell for my IPMI
    > child
    > > the mfd subsystem would create a platform device for such child and
    > > therefore acpi_create_platform_device() would fail to create a new
    > platform
    > > device as adev->physical_node_count will be non zero.
    > > However as things stand now mfd_cell devices can only use the
    > resources
    > > that are statically defined in the code (and therefore not the ones
    > in the
    > > ACPI nodes)...am I right?
    >
    > You may file resources first and then register MFD cells. See many
    > existing examples in the kernel.

    Well I had a look around the Kernel I have seen no mfd cells using
    Resources that are not statically defined:
    i.e. cell->resources in mfd_add_device() always points to statically
    defined resource structures.

    Usually for ACPI devices first you need to parse the ACPI resources
    from the table calling acpi_dev_get_resources(), then you iterate
    over the resource list and fill the resource array by calling
    acpi_platform_fill_resurces() (as in acpi_create_platform_device())

    With respect to my case are you suggesting dynamically allocate a
    resource array and fill it using the same fashion as
    acpi_create_platform_device(), then point cell->resources to such
    array before calling mfd_add_device() ?

    Thanks
    Gab

    >
    > --
    > With Best Regards,
    > Andy Shevchenko
    \
     
     \ /
      Last update: 2017-07-04 17:15    [W:2.669 / U:0.132 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site