• Paul Walmsley's avatar
    [ARM] OMAP3 clock: disable DPLL autoidle while waiting for DPLL to lock · 416db864
    Paul Walmsley authored
    During _omap3_noncore_dpll_lock(), if a DPLL has no active downstream
    clocks and DPLL autoidle is enabled, the DPLL may never lock, since it
    will enter autoidle immediately.  To resolve this, disable DPLL
    autoidle while locking the DPLL, and unconditionally wait for the DPLL
    to lock.  This fixes some bugs where the kernel would hang when returning
    from retention or return the wrong rate for the DPLL.
    
    This patch is a collaboration with Peter de Schrijver
    <peter.de-schrijver@nokia.com> and Kevin Hilman
    <khilman@deeprootsystems.com>.
    
    linux-omap source commit is 3b7de4be.
    Signed-off-by: default avatarPaul Walmsley <paul@pwsan.com>
    Cc: Peter de Schrijver <peter.de-schrijver@nokia.com>
    Cc: Kevin Hilman <khilman@deeprootsystems.com>
    Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
    Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
    416db864
clock34xx.c 26.6 KB