1. 19 2月, 2012 15 次提交
  2. 04 2月, 2012 7 次提交
  3. 23 1月, 2012 1 次提交
    • R
      MFD: ucb1x00-ts: fix resume failure · 0af5e4c3
      Russell King 提交于
      If the ucb1x00 touchscreen is resumed while the touchscreen is being
      touched, the main thread stops responding.  This occurs because two
      things happen:
      
      1. When we suspended, we were woken up, and executed the loop.
         Finding that the touchscreen was not pressed, we prepare to
         schedule for a maximum timeout, before being stopped in
         try_to_freeze().
      
      2. an irq occurs, we disable the irq, and mark it as disabled,
         and wake the thread.  This wake occurs while the thread is
         still within __refrigerator()
      
      3. The thread is unfrozen, and __refrigerator() sets the threads
         state back to INTERRUPTIBLE.
      
      We then drop into schedule_timeout() with an infinite timeout and the
      IRQ disabled.  This prevents any further screen touches activating
      the thread.
      
      Fix this by using kthread_freezable_should_stop() which handles the
      freezing issues for us outside of the hotspot where the task state
      matters.  Include a flag to ignore the touchscreen until it is
      released to avoid sending unintended data to the application.
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      0af5e4c3
  4. 22 1月, 2012 2 次提交
  5. 21 1月, 2012 4 次提交
  6. 20 1月, 2012 10 次提交
  7. 19 1月, 2012 1 次提交