1. 04 2月, 2012 1 次提交
  2. 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
  3. 21 1月, 2012 1 次提交
    • R
      Revert "ARM: sa11x0: Implement autoloading of codec and codec pdata for mcp bus." · 65f2e753
      Russell King 提交于
      This reverts commit 5dd7bf59.
      
      Conflicts:
      
      	scripts/mod/file2alias.c
      
      This change is wrong on many levels.  First and foremost, it causes a
      regression.  On boot on Assabet, which this patch gives a codec id of
      'ucb1x00', it gives:
      
      	ucb1x00 ID not found: 1005
      
      0x1005 is a valid ID for the UCB1300 device.
      
      Secondly, this patch is way over the top in terms of complexity.  The
      only device which has been seen to be connected with this MCP code is
      the UCB1x00 (UCB1200, UCB1300 etc) devices, and they all use the same
      driver.  Adding a match table, requiring the codec string to match the
      hardware ID read out of the ID register, etc is completely over the top
      when we can just read the hardware ID register.
      65f2e753
  4. 09 1月, 2012 1 次提交
  5. 23 3月, 2011 1 次提交
  6. 02 3月, 2011 1 次提交
    • J
      mfd: Fix NULL pointer due to non-initialized ucb1x00-ts absinfo · 9063f1f1
      Jochen Friedrich 提交于
      Call input_set_abs_params instead of manually setting absbit only.
      This fixes this oops:
      
      Unable to handle kernel NULL pointer dereference at virtual address 00000024
      Internal error: Oops: 41b67017 [#1]
      CPU: 0    Not tainted  (2.6.37 #4)
      pc : [<c016d1fc>]    lr : [<00000000>]    psr: 20000093
      sp : c19e5f30  ip : c19e5e6c  fp : c19e5f58
      r10: 00000000  r9 : c19e4000  r8 : 00000003
      r7 : 000001e4  r6 : 00000001  r5 : c1854400  r4 : 00000003
      r3 : 00000018  r2 : 00000018  r1 : 00000018  r0 : c185447c
      Flags: nzCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
      Control: c1b6717f  Table: c1b6717f  DAC: 00000017
      Stack: (0xc19e5f30 to 0xc19e6000)
      5f20:                                     00000003 00000003 c1854400 00000013
      5f40: 00000001 000001e4 000001c5 c19e5f80 c19e5f5c c016d5e8 c016cf5c 000001e4
      5f60: c1854400 c18b5860 00000000 00000171 000001e4 c19e5fc4 c19e5f84 c01559a4
      5f80: c016d584 c18b5868 00000000 c1bb5c40 c0035afc c18b5868 c18b5868 c1a55d54
      5fa0: c18b5860 c0155750 00000013 00000000 00000000 00000000 c19e5ff4 c19e5fc8
      5fc0: c0050174 c015575c 00000000 c18b5860 00000000 c19e5fd4 c19e5fd4 c1a55d54
      5fe0: c00500f0 c003b464 00000000 c19e5ff8 c003b464 c00500fc 04000400 04000400
      Backtrace:
      Function entered at [<c016cf50>] from [<c016d5e8>]
      Function entered at [<c016d578>] from [<c01559a4>]
       r8:000001e4 r7:00000171 r6:00000000 r5:c18b5860 r4:c1854400
      Function entered at [<c0155750>] from [<c0050174>]
      Function entered at [<c00500f0>] from [<c003b464>]
       r6:c003b464 r5:c00500f0 r4:c1a55d54
      Code: e59520fc e1a03286 e0433186 e0822003 (e592000c)
      
      >>PC;  c016d1fc <input_handle_event+2ac/5a0>   <=====
      
      Trace; c016cf50 <input_handle_event+0/5a0>
      Trace; c016d5e8 <input_event+70/88>
      Trace; c016d578 <input_event+0/88>
      Trace; c01559a4 <ucb1x00_thread+254/2dc>
      Trace; c0155750 <ucb1x00_thread+0/2dc>
      Trace; c0050174 <kthread+84/8c>
      Trace; c00500f0 <kthread+0/8c>
      Trace; c003b464 <do_exit+0/624>
      Signed-off-by: NJochen Friedrich <jochen@scram.de>
      CC: stable@kernel.org
      Signed-off-by: NSamuel Ortiz <sameo@linux.intel.com>
      9063f1f1
  7. 28 11月, 2009 1 次提交
  8. 30 11月, 2008 1 次提交
    • R
      [ARM] Hide ISA DMA API when ISA_DMA_API is unset · dcea83ad
      Russell King 提交于
      When ISA_DMA_API is unset, we're not implementing the ISA DMA API,
      so there's no point in publishing the prototypes via asm/dma.h, nor
      including the machine dependent parts of that API.
      
      This allows us to remove a lot of mach/dma.h files which don't contain
      any useful code.  Unfortunately though, some platforms put their own
      private non-ISA definitions into mach/dma.h, so we leave these behind
      and fix the appropriate #include statments.
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      dcea83ad
  9. 07 8月, 2008 1 次提交
  10. 28 4月, 2008 1 次提交
  11. 19 4月, 2008 1 次提交
  12. 18 7月, 2007 1 次提交
    • R
      Freezer: make kernel threads nonfreezable by default · 83144186
      Rafael J. Wysocki 提交于
      Currently, the freezer treats all tasks as freezable, except for the kernel
      threads that explicitly set the PF_NOFREEZE flag for themselves.  This
      approach is problematic, since it requires every kernel thread to either
      set PF_NOFREEZE explicitly, or call try_to_freeze(), even if it doesn't
      care for the freezing of tasks at all.
      
      It seems better to only require the kernel threads that want to or need to
      be frozen to use some freezer-related code and to remove any
      freezer-related code from the other (nonfreezable) kernel threads, which is
      done in this patch.
      
      The patch causes all kernel threads to be nonfreezable by default (ie.  to
      have PF_NOFREEZE set by default) and introduces the set_freezable()
      function that should be called by the freezable kernel threads in order to
      unset PF_NOFREEZE.  It also makes all of the currently freezable kernel
      threads call set_freezable(), so it shouldn't cause any (intentional)
      change of behaviour to appear.  Additionally, it updates documentation to
      describe the freezing of tasks more accurately.
      
      [akpm@linux-foundation.org: build fixes]
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Acked-by: NNigel Cunningham <nigel@nigel.suspend2.net>
      Cc: Pavel Machek <pavel@ucw.cz>
      Cc: Oleg Nesterov <oleg@tv-sign.ru>
      Cc: Gautham R Shenoy <ego@in.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      83144186
  13. 04 6月, 2007 1 次提交
  14. 23 5月, 2007 1 次提交
  15. 09 5月, 2007 1 次提交
  16. 08 12月, 2006 1 次提交
  17. 30 9月, 2006 1 次提交
  18. 01 7月, 2006 1 次提交
  19. 09 1月, 2006 1 次提交
  20. 13 12月, 2005 1 次提交
  21. 31 10月, 2005 1 次提交
  22. 29 10月, 2005 1 次提交
  23. 24 9月, 2005 1 次提交
  24. 11 9月, 2005 2 次提交