• Andres Salomon's avatar
    cs5535-gpio: apply CS5536 errata workaround for GPIOs · 853ff883
    Andres Salomon authored
    The AMD Geode CS5536 Companion Device Silicon Revision B1 Specification
    Update mentions the follow as issue #36:
    
     "Atomic write transactions to the atomic GPIO High Bank Feature Bit
      registers should only affect the bits selected [...]"
    
     "after Suspend, an atomic write transaction [...] will clear all
      non-selected bits of the accessed register."
    
    In other words, writing to the high bank for a single GPIO bit will
    clear every other GPIO bit (but only sometimes after a suspend).
    
    The workaround described is obvious and simple; do a read-modify-write.
    This patch does that, and documents why we're doing it.
    Signed-off-by: default avatarAndres Salomon <dilinger@queued.net>
    Cc: <stable@kernel.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    853ff883
cs5535-gpio.c 9.23 KB