Skip to content
  • Paul Walmsley's avatar
    ARM: OMAP3: PM: fix I/O wakeup and I/O chain clock control detection · b02b9172
    Paul Walmsley authored
    The way that we detect which OMAP3 chips support I/O wakeup and
    software I/O chain clock control is broken.
    
    Currently, I/O wakeup is marked as present for all OMAP3 SoCs other
    than the AM3505/3517.  The TI81xx family of SoCs are at present
    considered to be OMAP3 SoCs, but don't support I/O wakeup.  To resolve
    this, convert the existing blacklist approach to an explicit,
    whitelist support, in which only SoCs which are known to support I/O
    wakeup are listed.  (At present, this only includes OMAP34xx,
    OMAP3503, OMAP3515, OMAP3525, OMAP3530, and OMAP36xx.)
    
    Also, the current code incorrectly detects the presence of a
    software-controllable I/O chain clock on several chips that don't
    support it.  This results in writes to reserved bitfields, unnecessary
    delays, and console messages on kernels running on those chips:
    
        http://www.spinics.net/lists/linux-omap/msg58735.html
    
    
    
    Convert this test to a feature test with a chip-by-chip whitelist.
    
    Thanks to Dave Hylands <dhylands@gmail.com> for reporting this problem
    and doing some testing to help isolate the cause.  Thanks to Steve
    Sakoman <sakoman@gmail.com> for catching a bug in the first version of
    this patch.  Thanks to Russell King <linux@arm.linux.org.uk> for
    comments.
    
    Signed-off-by: default avatarPaul Walmsley <paul@pwsan.com>
    Cc: Dave Hylands <dhylands@gmail.com>
    Cc: Steve Sakoman <sakoman@gmail.com>
    Tested-by: default avatarSteve Sakoman <sakoman@gmail.com>
    Cc: Russell King - ARM Linux <linux@arm.linux.org.uk>
    Signed-off-by: default avatarKevin Hilman <khilman@ti.com>
    b02b9172