• Paul Walmsley's avatar
    ARM: OMAP2+: hwmod: add support for link registration · 2221b5cd
    Paul Walmsley authored
    Add support for direct IP block interconnect ("link") registration to
    the hwmod code via a new function, omap_hwmod_register_links().  This
    will replace direct registration of hwmods, and a subsequent patch
    will remove omap_hwmod_register().
    
    This change will allow a subsequent patch to remove the hwmod data
    link arrays.  This will reduce the size of the hwmod static data and
    also make it easier to generate the data files.  It will also make it
    possible to share some of the struct omap_hwmod records across
    multiple SoCs, since the link array pointers will be removed from the
    struct omap_hwmod.
    
    The downside is that boot time will increase.  Minimizing boot time
    was the reason why the link arrays were originally introduced.
    Removing them will require extra computation during boot to allocate
    memory and associate IP blocks with their interconnects.  However,
    since the current kernel development focus is on reducing the number
    of lines in arch/arm/mach-omap2/, boot time impact is now seemingly
    considered a lower priority.
    
    This patch contains additional complexity to reduce the number of
    memory allocations required for this change.  This reduces the boot
    time impact: total hwmod link registration time was ~ 2655
    microseconds with a simple allocation strategy, but is now ~ 549
    microseconds[1] with the approach taken by this patch.
    
    1. Measured on a BeagleBoard 35xx @ 500MHz MPU/333 MHz CORE, average
       of 7 samples.  Total uncertainty is +/- 61 microseconds.
    Signed-off-by: default avatarPaul Walmsley <paul@pwsan.com>
    Cc: Benoît Cousson <b-cousson@ti.com>
    2221b5cd
omap_hwmod.c 95.9 KB