• Paul Walmsley's avatar
    ARM: OMAP2+: clockdomain/hwmod: add workaround for EMU clockdomain idle problems · b71c7217
    Paul Walmsley authored
    The idle status of the IP blocks and clocks inside the EMU clockdomain
    isn't taken into account by the PRCM hardware when deciding whether
    the clockdomain is idle.  Add a workaround flag in the clockdomain
    code, CLKDM_MISSING_IDLE_REPORTING, to deal with this problem, and add
    the code necessary to support it.
    
    If CLKDM_MISSING_IDLE_REPORTING is set on a clockdomain, the
    clockdomain will be forced active whenever an IP block inside that
    clockdomain is in use, even if the clockdomain supports
    hardware-supervised idle.  When the kernel indicates that the last
    active IP block inside the clockdomain is no longer used, the
    clockdomain will be forced idle, or, if that mode is not supported in
    the hardware, it will be placed into hardware-supervised idle.
    
    This patch is an equal collaboration with Jon Hunter
    <jon-hunter@ti.com>.  Ming Lei <ming.lei@canonical.com>, Will Deacon
    <will.deacon@arm.com>, Madhav Vij <mvij@ti.com>, Kevin Hilman
    <khilman@ti.com>, Benoît Cousson <b-cousson@ti.com>, and Santosh
    Shilimkar <santosh.shilimkar@ti.com> all made essential contributions
    to the understanding of EMU clockdomain power management on OMAP.
    Signed-off-by: default avatarPaul Walmsley <paul@pwsan.com>
    Cc: Jon Hunter <jon-hunter@ti.com>
    Cc: Ming Lei <ming.lei@canonical.com>
    Cc: Will Deacon <will.deacon@arm.com>
    Cc: Madhav Vij <mvij@ti.com>
    Cc: Kevin Hilman <khilman@ti.com>
    Cc: Benoît Cousson <b-cousson@ti.com>
    Cc: Santosh Shilimkar <santosh.shilimkar@ti.com>
    Tested-by: default avatarJon Hunter <jon-hunter@ti.com>
    b71c7217
clockdomain.c 30.4 KB