1. 24 Sep, 2018 1 commit
    • Guenter Roeck's avatar
      i2c: aspeed: Acknowledge most interrupts early in interrupt handler · 2be6b472
      Guenter Roeck authored
      Commit 3e9efc32 ("i2c: aspeed: Handle master/slave combined irq events
      properly") moved interrupt acknowledgment to the end of the interrupt
      handler. In part this was done because the AST2500 datasheet says:
      
       I2CD10 Interrupt Status Register
         bit 2 Receive Done Interrupt status
               S/W needs to clear this status bit to allow next data receiving.
      
      Acknowledging Receive Done before receive data was handled resulted in
      receive errors on high speed I2C busses.
      
      However, interrupt acknowledgment was not only moved to the end of the
      interrupt handler for Receive Done Interrupt status, but for all interrupt
      status bits. This could result in race conditions if a second interrupt was
      received during interrupt handling and not handled but still acknowledged
      at the end of the interrupt handler.
      
      Acknowledge only "Receive Done Interrupt status" late in the interrupt
      handler to solve the problem.
      
      Fixes: 3e9efc32 ("i2c: aspeed: Handle master/slave combined irq events properly")
      Cc: Jae Hyun Yoo <jae.hyun.yoo@linux.intel.com>
      Cc: Joel Stanley <joel@jms.id.au>
      Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
      Acked-by: default avatarJae Hyun Yoo <jae.hyun.yoo@linux.intel.com>
      Tested-by: default avatarJoel Stanley <joel@jms.id.au>
      Acked-by: default avatarBrendan Higgins <brendanhiggins@google.com>
      Signed-off-by: default avatarWolfram Sang <wsa@the-dreams.de>
      2be6b472
  2. 06 Sep, 2018 3 commits
  3. 02 Sep, 2018 13 commits
  4. 01 Sep, 2018 4 commits
  5. 31 Aug, 2018 15 commits
  6. 30 Aug, 2018 4 commits