1. 12 Jun, 2013 9 commits
  2. 11 Jun, 2013 1 commit
  3. 10 Jun, 2013 1 commit
    • Shawn Guo's avatar
      clk: divider: do not propagate rate change request when unnecessary · 081c9025
      Shawn Guo authored
      If the current rate of parent clock is sufficient to provide child a
      requested rate with a proper divider setting, the rate change request
      should not be propagated.  Instead, changing the divider setting is good
      enough to get child clock run at the requested rate.
      
      On an imx6q clock configuration illustrated below,
      
        ahb --> ipg --> ipg_per
        132M    66M     66M
      
      calling clk_set_rate(ipg_per, 22M) with the current
      clk_divider_bestdiv() implementation will result in the rate change up
      to ahb level like the following, because of the unnecessary/incorrect
      rate change propagation.
      
        ahb --> ipg --> ipg_per
        66M     22M     22M
      
      Fix the problem by trying to see if the requested rate can be achieved
      by simply changing the divider value, and in that case return the
      divider immediately from function clk_divider_bestdiv() as the best
      one, so that all those unnecessary rate change propagation can be saved.
      Reported-by: default avatarAnson Huang <b20788@freescale.com>
      Signed-off-by: default avatarShawn Guo <shawn.guo@linaro.org>
      Signed-off-by: default avatarMike Turquette <mturquette@linaro.org>
      081c9025
  4. 07 Jun, 2013 4 commits
  5. 05 Jun, 2013 1 commit
  6. 31 May, 2013 5 commits
  7. 30 May, 2013 1 commit
  8. 29 May, 2013 16 commits
  9. 26 May, 2013 2 commits
    • Linus Torvalds's avatar
      Linux 3.10-rc3 · e4aa937e
      Linus Torvalds authored
      e4aa937e
    • Manfred Spraul's avatar
      ipc/sem.c: Fix missing wakeups in do_smart_update_queue() · ab465df9
      Manfred Spraul authored
      do_smart_update_queue() is called when an operation (semop,
      semctl(SETVAL), semctl(SETALL), ...) modified the array.  It must check
      which of the sleeping tasks can proceed.
      
      do_smart_update_queue() missed a few wakeups:
       - if a sleeping complex op was completed, then all per-semaphore queues
         must be scanned - not only those that were modified by *sops
       - if a sleeping simple op proceeded, then the global queue must be
         scanned again
      
      And:
       - the test for "|sops == NULL) before scanning the global queue is not
         required: If the global queue is empty, then it doesn't need to be
         scanned - regardless of the reason for calling do_smart_update_queue()
      
      The patch is not optimized, i.e.  even completing a wait-for-zero
      operation causes a rescan.  This is done to keep the patch as simple as
      possible.
      Signed-off-by: default avatarManfred Spraul <manfred@colorfullife.com>
      Acked-by: default avatarDavidlohr Bueso <davidlohr.bueso@hp.com>
      Cc: Rik van Riel <riel@redhat.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ab465df9