1. 13 Mar, 2012 1 commit
    • Rafael J. Wysocki's avatar
      PM / QoS: Make it possible to expose PM QoS latency constraints · 85dc0b8a
      Rafael J. Wysocki authored
      A runtime suspend of a device (e.g. an MMC controller) belonging to
      a power domain or, in a more complicated scenario, a runtime suspend
      of another device in the same power domain, may cause power to be
      removed from the entire domain.  In that case, the amount of time
      necessary to runtime-resume the given device (e.g. the MMC
      controller) is often substantially greater than the time needed to
      run its driver's runtime resume callback.  That may hurt performance
      in some situations, because user data may need to wait for the
      device to become operational, so we should make it possible to
      prevent that from happening.
      
      For this reason, introduce a new sysfs attribute for devices,
      power/pm_qos_resume_latency_us, allowing user space to specify the
      upper bound of the time necessary to bring the (runtime-suspended)
      device up after the resume of it has been requested.  However, make
      that attribute appear only for the devices whose drivers declare
      support for it by calling the (new) dev_pm_qos_expose_latency_limit()
      helper function with the appropriate initial value of the attribute.
      Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
      Reviewed-by: default avatarKevin Hilman <khilman@ti.com>
      Reviewed-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
      Acked-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      85dc0b8a
  2. 13 Feb, 2012 2 commits
  3. 04 Feb, 2012 2 commits
    • Venkatesh Pallipadi's avatar
      PM / QoS: CPU C-state breakage with PM Qos change · d020283d
      Venkatesh Pallipadi authored
      Looks like change "PM QoS: Move and rename the implementation files"
      merged during the 3.2 development cycle made PM QoS depend on
      CONFIG_PM which depends on (PM_SLEEP || PM_RUNTIME).
      
      That breaks CPU C-states with kernels not having these CONFIGs, causing CPUs
      to spend time in Polling loop idle instead of going into deep C-states,
      consuming way way more power. This is with either acpi idle or intel idle
      enabled.
      
      Either CONFIG_PM should be enabled with any pm_qos users or
      the !CONFIG_PM pm_qos_request() should return sane defaults not to break
      the existing users. Here's is the patch for the latter option.
      
      [rjw: Modified the changelog slightly.]
      Signed-off-by: default avatarVenkatesh Pallipadi <venki@google.com>
      Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
      Cc: stable@vger.kernel.org
      d020283d
    • Srivatsa S. Bhat's avatar
      PM / Freezer: Thaw only kernel threads if freezing of kernel threads fails · 379e0be8
      Srivatsa S. Bhat authored
      If freezing of kernel threads fails, we are expected to automatically
      thaw tasks in the error recovery path. However, at times, we encounter
      situations in which we would like the automatic error recovery path
      to thaw only the kernel threads, because we want to be able to do
      some more cleanup before we thaw userspace. Something like:
      
      error = freeze_kernel_threads();
      if (error) {
      	/* Do some cleanup */
      
      	/* Only then thaw userspace tasks*/
      	thaw_processes();
      }
      
      An example of such a situation is where we freeze/thaw filesystems
      during suspend/hibernation. There, if freezing of kernel threads
      fails, we would like to thaw the frozen filesystems before thawing
      the userspace tasks.
      
      So, modify freeze_kernel_threads() to thaw only kernel threads in
      case of freezing failure. And change suspend_freeze_processes()
      accordingly. (At the same time, let us also get rid of the rather
      cryptic usage of the conditional operator (:?) in that function.)
      
      [rjw: In fact, this patch fixes a regression introduced during the
       3.3 merge window, because without it thaw_processes() may be called
       before swsusp_free() in some situations and that may lead to massive
       memory allocation failures.]
      Signed-off-by: default avatarSrivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
      Acked-by: default avatarTejun Heo <tj@kernel.org>
      Acked-by: default avatarNigel Cunningham <nigel@tuxonice.net>
      Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
      379e0be8
  4. 01 Feb, 2012 1 commit
  5. 31 Jan, 2012 4 commits
    • Linus Torvalds's avatar
      Linux 3.3-rc2 · 62aa2b53
      Linus Torvalds authored
      62aa2b53
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://github.com/prasad-joshi/logfs_upstream · d3712b9d
      Linus Torvalds authored
      There are few important bug fixes for LogFS
      
      * tag 'for-linus' of git://github.com/prasad-joshi/logfs_upstream:
        Logfs: Allow NULL block_isbad() methods
        logfs: Grow inode in delete path
        logfs: Free areas before calling generic_shutdown_super()
        logfs: remove useless BUG_ON
        MAINTAINERS: Add Prasad Joshi in LogFS maintiners
        logfs: Propagate page parameter to __logfs_write_inode
        logfs: set superblock shutdown flag after generic sb shutdown
        logfs: take write mutex lock during fsync and sync
        logfs: Prevent memory corruption
        logfs: update page reference count for pined pages
      
      Fix up conflict in fs/logfs/dev_mtd.c due to semantic change in what
      "mtd->block_isbad" means in commit f2933e86: "Logfs: Allow NULL
      block_isbad() methods" clashing with the abstraction changes in the
      commits 7086c19d: "mtd: introduce mtd_block_isbad interface" and
      d58b27ed: "logfs: do not use 'mtd->block_isbad' directly".
      
      This resolution takes the semantics from commit f2933e86, and just
      makes mtd_block_isbad() return zero (false) if the 'block_isbad'
      function is NULL.  But that also means that now "mtd_can_have_bb()"
      always returns 0.
      
      Now, "mtd_block_markbad()" will obviously return an error if the
      low-level driver doesn't support bad blocks, so this is somewhat
      non-symmetric, but it actually makes sense if a NULL "block_isbad"
      function is considered to mean "I assume that all my blocks are always
      good".
      d3712b9d
    • Linus Torvalds's avatar
      Merge branch 'hwmon-for-linus' of... · c5d2bc11
      Linus Torvalds authored
      Merge branch 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
      
      * 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
        hwmon: (w83627ehf) Disable setting DC mode for pwm2, pwm3 on NCT6776F
        hwmon: (sht15) fix bad error code
        MAINTAINERS: Drop maintainer for MAX1668 hwmon driver
        MAINTAINERS: Add hwmon entries for Wolfson
        hwmon: (f71805f) Fix clamping of temperature limits
      c5d2bc11
    • Linus Torvalds's avatar
      Merge branch 'for-torvalds' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl · 8e2a2880
      Linus Torvalds authored
      Here are some fixes to the pin control system that has accumulated since
      -rc1.  Mainly Tony Lindgren fixed the module load/unload logic and the
      rest are minor fixes and documentation.
      
      * 'for-torvalds' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl:
        pinctrl: add checks for empty function names
        pinctrl: fix pinmux_hog_maps when ctrl_dev_name is not set
        pinctrl: fix some pinmux typos
        pinctrl: free debugfs entries when unloading a pinmux driver
        pinctrl: unbreak error messages
        Documentation/pinctrl: fix a few syntax errors in code examples
        pinctrl: fix pinconf_pins_show iteration
      8e2a2880
  6. 30 Jan, 2012 16 commits
  7. 29 Jan, 2012 12 commits
  8. 28 Jan, 2012 2 commits
    • Linus Torvalds's avatar
      Merge branch 'fixes' of git://git.linaro.org/people/rmk/linux-arm · deb9b4ce
      Linus Torvalds authored
      * 'fixes' of git://git.linaro.org/people/rmk/linux-arm: (31 commits)
        ARM: 7304/1: ioremap: fix boundary check when reusing static mapping
        ARM: 7301/1: Rename the T() macro to TUSER() to avoid namespace conflicts
        ARM: 7299/1: ftrace: clear zero bit in reported IPs for Thumb-2
        ARM: 7298/1: realview: fix mapping of MPCore private memory region
        PCMCIA: fix sa1111 oops on remove
        ARM: 7288/1: mach-sa1100: add missing module_init() call
        ARM: 7297/1: smp_twd: make sure timer is stopped before registering it
        ARM: 7296/1: proc-v7.S: remove HARVARD_CACHE preprocessor guards
        ARM: 7295/1: cortex-a7: move proc_info out of !CONFIG_ARM_LPAE block
        ARM: 7293/1: logical_cpu_map: decouple CPU mapping from SMP
        ARM: 7291/1: cache: assume 64-byte L1 cachelines for ARMv7 CPUs
        ARM: 7290/1: vmlinux.lds.S: align the exception fixup table to a 4-byte boundary
        ARM: 7289/1: vmlinux.lds.S: do not hardcode cacheline size as 32 bytes
        MFD: ucb1x00-ts: fix resume failure
        MFD: ucb1x00-core: fix gpiolib direction_output handling
        MFD: ucb1x00-core: fix missing restore of io output data on resume
        MFD: mcp-core: fix mcp_priv() to be more type safe
        MFD: mcp-core: fix complaints from the genirq layer
        Revert "ARM: sa11x0: Implement autoloading of codec and codec pdata for mcp bus."
        Revert "ARM: sa1100: Refactor mcp-sa11x0 to use platform resources."
        ...
      
      Fix up conflict due to arch/arm/mach-mx5/Kconfig having been merged into
      mach-imx5 (commit 784a90c0: "ARM i.MX: Merge i.MX5 support into
      mach-imx"), but the ARM_L1_CACHE_SHIFT_6 entry was moved to be driven by
      the CPU_V7 logic from it in the old location in rmk's branch (commit
      a092f2b1: "ARM: 7291/1: cache: assume 64-byte L1 cachelines for
      ARMv7 CPUs").
      deb9b4ce
    • Linus Torvalds's avatar
      Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 81bc3009
      Linus Torvalds authored
      arm-soc fixes for 3.3-rc:
      
      AT91 needed reset fixes which resulted in some minor code refactoring,
      it also adds a feature-removal for one of their platforms for 3.4.
      The USB patches have been acked by Greg K-H.
      
      i.MX and ux500 both have some minor fixes, nothing controversial.
      
      * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
        arch/arm/mach-imx/mach-mx53_ard.c: add missing iounmap
        ARM: imx: iomux-v1.h: Fix build error due to __init annotation
        ARM: at91: Fix at91sam9g45 and at91cap9 reset
        ARM: at91: make rstc soc independent
        ARM: at91: introduce AT91_SAM9_ALT_RESET to select the at91sam9 alternative reset
        ARM: at91: merge at91cap9_ddrsdr.h in at91sam9_ddrsdr.h
        ARM: at91: fix cap9 ddrsdr register
        ARM/USB: at91/ohci-at91: rename vbus_pin_inverted to vbus_pin_active_low
        USB: at91: fix clk_get error handling
        ARM: at91: removal of CAP9 SoC family
        ARM: at91: fix at91rm9200 soc subtype handling
        mach-ux500: no MMC_CAP_SD_HIGHSPEED on Snowball
        mach-ux500: enable ARM errata 764369
        mach-ux500: do not override outer.inv_all
        mach-ux500: musb: now musb is always in OTG mode
        ARM: imx6: add missing twd_clk for imx6q clock
      81bc3009