lkml.org 
[lkml]   [2011]   [Apr]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Date
    SubjectRe: [PATCH 07/19] timberdale: mfd_cell is now implicitly available to drivers
    On Fri, Apr 1, 2011 at 11:56 AM, Grant Likely <grant.likely@secretlab.ca> wrote:
    > On Fri, Apr 1, 2011 at 11:47 AM, Andres Salomon <dilinger@queued.net> wrote:
    >> On Fri, 1 Apr 2011 13:20:31 +0200
    >> Samuel Ortiz <sameo@linux.intel.com> wrote:
    >>
    >>> Hi Grant,
    >>>
    >>> On Thu, Mar 31, 2011 at 05:05:22PM -0600, Grant Likely wrote:
    >> [...]
    >>> > Gah.  Not all devices instantiated via mfd will be an mfd device,
    >>> > which means that the driver may very well expect an *entirely
    >>> > different* platform_device pointer; which further means a very high
    >>> > potential of incorrectly dereferenced structures (as evidenced by a
    >>> > patch series that is not bisectable).  For instance, the xilinx ip
    >>> > cores are used by more than just mfd.
    >>> I agree. Since the vast majority of the MFD subdevices are MFD
    >>> specific IPs, I overlooked that part. The impacted drivers are the
    >>> timberdale and the DaVinci voice codec ones.
    >
    > Another option is you could do this for MFD devices:
    >
    > struct mfd_device {
    >        struct platform_devce pdev;
    >        struct mfd_cell *cell;
    > };
    >
    > However, that requires that drivers using the mfd_cell will *never*
    > get instantiated outside of the mfd infrastructure, and there is no
    > way to protect against this so it is probably a bad idea.
    >
    > Or, mfd_cell could be added to platform_device directly which would
    > *by far* be the safest option at the cost of every platform_device
    > having a mostly unused mfd_cell pointer.  Not a significant cost in my
    > opinion.
    >
    > One last option is I'm prototyping a way to add type-safe structure
    > pointers to a device, but that requires nasty CPP tricks and it's not
    > complete yet.  The cure might be worse than the disease here.

    And yet another option is to create a mfd_bus_type, but that probably
    isn't helpful since the one of the purposes of MFDs is that it is a
    collection of non-detectable memory mapped devices that
    platform_bus_type is intended to handle.

    g.
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2011-04-01 20:03    [W:0.023 / U:398.048 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site