lkml.org 
[lkml]   [2014]   [Mar]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: [PATCH v3 2/7] OF: Introduce DT overlay support.
    From
    On Tue, Mar 18, 2014 at 4:56 PM, Pantelis Antoniou
    <pantelis.antoniou@konsulko.com> wrote:
    > Introduce DT overlay support.
    > Using this functionality it is possible to dynamically overlay a part of
    > the kernel's tree with another tree that's been dynamically loaded.
    > It is also possible to remove node and properties.
    >
    > The creation/destruction of the devices is handled by calling in to
    > bus specific handlers which can deal with the peculiarities of each
    > device.
    >
    > Signed-off-by: Pantelis Antoniou <pantelis.antoniou@konsulko.com>
    > ---
    > Documentation/devicetree/overlay-notes.txt | 187 ++++++
    > drivers/of/Kconfig | 10 +
    > drivers/of/Makefile | 1 +
    > drivers/of/overlay.c | 895 +++++++++++++++++++++++++++++
    > include/linux/of.h | 153 +++++
    > 5 files changed, 1246 insertions(+)
    > create mode 100644 Documentation/devicetree/overlay-notes.txt
    > create mode 100644 drivers/of/overlay.c
    >
    > diff --git a/Documentation/devicetree/overlay-notes.txt b/Documentation/devicetree/overlay-notes.txt
    > new file mode 100644
    > index 0000000..882d512
    > --- /dev/null
    > +++ b/Documentation/devicetree/overlay-notes.txt
    > @@ -0,0 +1,187 @@
    > +Device Tree Overlay Notes
    > +-------------------------
    > +
    > +This document describes the implementation of the in-kernel
    > +device tree overlay functionality residing in drivers/of/overlay.c and is a
    > +companion document to Documentation/devicetree/dt-object-internal.txt[1] &
    > +Documentation/devicetree/dynamic-resolution-notes.txt[2]
    > +
    > +How overlays work
    > +-----------------
    > +
    > +A Device Tree's overlay purpose is to modify the kernel's live tree, and
    > +have the modification affecting the state of the the kernel in a way that
    > +is reflecting the changes.
    > +Since the kernel mainly deals with devices, any new device node that result
    > +in an active device should have it created while if the device node is either
    > +disabled or removed all together, the affected device should be deregistered.

    Suggestion for readability:

    Since the kernel mainly deals with devices, any new device node that results
    in an active device should have that device created. If the device node is
    either disabled or removed altogether, the affected device should be
    deregistered.

    > +/**
    > + * of_overlay - Apply @count overlays pointed at by @ovinfo_tab
    > + * @count: Number of of_overlay_info's
    > + * @ovinfo_tab: Array of overlay_info's to apply
    > + *
    > + * Applies the overlays given, while handling all error conditions
    > + * appropriately. Either the operation succeeds, or if it fails the
    > + * live tree is reverted to the state before the attempt.
    > + * Returns 0, or an error if the overlay attempt failed.
    > + */
    > +int of_overlay(int count, struct of_overlay_info *ovinfo_tab);

    Suggest renaming this function of_overlay_apply() for grep-ability

    Alan Tull
    aka
    delicious quinoa

    > +
    > +/**
    > + * of_overlay_revert - Revert a previously applied overlay
    > + * @count: Number of of_overlay_info's
    > + * @ovinfo_tab: Array of overlay_info's to apply
    > + *
    > + * Revert a previous overlay. The state of the live tree
    > + * is reverted to the one before the overlay.
    > + * Returns 0, or an error if the overlay table is not given.
    > + */
    > +int of_overlay_revert(int count, struct of_overlay_info *ovinfo_tab);


    \
     
     \ /
      Last update: 2014-03-28 20:21    [W:4.053 / U:1.332 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site