1. 30 Sep, 2014 1 commit
    • Viresh Kumar's avatar
      cpufreq: update 'cpufreq_suspended' after stopping governors · b1b12bab
      Viresh Kumar authored
      Commit 8e30444e ("cpufreq: fix cpufreq suspend/resume for intel_pstate")
      introduced a bug where the governors wouldn't be stopped anymore for
      ->target{_index}() drivers during suspend. This happens because
      'cpufreq_suspended' is updated before stopping the governors during suspend
      and due to this __cpufreq_governor() would return early due to this check:
      
      	/* Don't start any governor operations if we are entering suspend */
      	if (cpufreq_suspended)
      		return 0;
      
      Fixes: 8e30444e ("cpufreq: fix cpufreq suspend/resume for intel_pstate")
      Cc: 3.15+ <stable@vger.kernel.org> # 3.15+: 8e30444e "cpufreq: fix cpufreq suspend/resume for intel_pstate"
      Signed-off-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      b1b12bab
  2. 29 Sep, 2014 2 commits
    • Arnd Bergmann's avatar
      cpufreq: integrator: fix integrator_cpufreq_remove return type · d62dbf77
      Arnd Bergmann authored
      When building this driver as a module, we get a helpful warning
      about the return type:
      
      drivers/cpufreq/integrator-cpufreq.c:232:2: warning: initialization from incompatible pointer type
        .remove = __exit_p(integrator_cpufreq_remove),
      
      If the remove callback returns void, the caller gets an undefined
      value as it expects an integer to be returned. This fixes the
      problem by passing down the value from cpufreq_unregister_driver.
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Cc: All applicable <stable@vger.kernel.org>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      d62dbf77
    • Rafael J. Wysocki's avatar
      cpufreq: pcc-cpufreq: Fix wait_event() under spinlock · e65b5ddb
      Rafael J. Wysocki authored
      Fix the following bug introduced by commit 8fec051e (cpufreq:
      Convert existing drivers to use cpufreq_freq_transition_{begin|end})
      that forgot to move the spin_lock() in pcc_cpufreq_target() past
      cpufreq_freq_transition_begin() which calls wait_event():
      
      BUG: sleeping function called from invalid context at drivers/cpufreq/cpufreq.c:370
      in_atomic(): 1, irqs_disabled(): 0, pid: 2636, name: modprobe
      Preemption disabled at:[<ffffffffa04d74d7>] pcc_cpufreq_target+0x27/0x200 [pcc_cpufreq]
      [   51.025044]
      CPU: 57 PID: 2636 Comm: modprobe Tainted: G            E  3.17.0-default #7
      Hardware name: Hewlett-Packard ProLiant DL980 G7, BIOS P66 07/07/2010
       00000000ffffffff ffff88026c46b828 ffffffff81589dbd 0000000000000000
       ffff880037978090 ffff88026c46b848 ffffffff8108e1df ffff880037978090
       0000000000000000 ffff88026c46b878 ffffffff8108e298 ffff88026d73ec00
      Call Trace:
       [<ffffffff81589dbd>] dump_stack+0x4d/0x90
       [<ffffffff8108e1df>] ___might_sleep+0x10f/0x180
       [<ffffffff8108e298>] __might_sleep+0x48/0xd0
       [<ffffffff8145b905>] cpufreq_freq_transition_begin+0x75/0x140 drivers/cpufreq/cpufreq.c:370 wait_event(policy->transition_wait, !policy->transition_ongoing);
       [<ffffffff8108fc99>] ? preempt_count_add+0xb9/0xc0
       [<ffffffffa04d7513>] pcc_cpufreq_target+0x63/0x200 [pcc_cpufreq] drivers/cpufreq/pcc-cpufreq.c:207 spin_lock(&pcc_lock);
       [<ffffffff810e0d0f>] ? update_ts_time_stats+0x7f/0xb0
       [<ffffffff8145be55>] __cpufreq_driver_target+0x85/0x170
       [<ffffffff8145e4c8>] od_check_cpu+0xa8/0xb0
       [<ffffffff8145ef10>] dbs_check_cpu+0x180/0x1d0
       [<ffffffff8145f310>] cpufreq_governor_dbs+0x3b0/0x720
       [<ffffffff8145ebe3>] od_cpufreq_governor_dbs+0x33/0xe0
       [<ffffffff814593d9>] __cpufreq_governor+0xa9/0x210
       [<ffffffff81459fb2>] cpufreq_set_policy+0x1e2/0x2e0
       [<ffffffff8145a6cc>] cpufreq_init_policy+0x8c/0x110
       [<ffffffff8145c9a0>] ? cpufreq_update_policy+0x1b0/0x1b0
       [<ffffffff8108fb99>] ? preempt_count_sub+0xb9/0x100
       [<ffffffff8145c6c6>] __cpufreq_add_dev+0x596/0x6b0
       [<ffffffffa016c608>] ? pcc_cpufreq_probe+0x4b4/0x4b4 [pcc_cpufreq]
       [<ffffffff8145c7ee>] cpufreq_add_dev+0xe/0x10
       [<ffffffff81408e81>] subsys_interface_register+0xc1/0xf0
       [<ffffffff8108fb99>] ? preempt_count_sub+0xb9/0x100
       [<ffffffff8145b3d7>] cpufreq_register_driver+0x117/0x2a0
       [<ffffffffa016c65d>] pcc_cpufreq_init+0x55/0x9f8 [pcc_cpufreq]
       [<ffffffffa016c608>] ? pcc_cpufreq_probe+0x4b4/0x4b4 [pcc_cpufreq]
       [<ffffffff81000298>] do_one_initcall+0xc8/0x1f0
       [<ffffffff811a731d>] ? __vunmap+0x9d/0x100
       [<ffffffff810eb9a0>] do_init_module+0x30/0x1b0
       [<ffffffff810edfa6>] load_module+0x686/0x710
       [<ffffffff810ebb20>] ? do_init_module+0x1b0/0x1b0
       [<ffffffff810ee1db>] SyS_init_module+0x9b/0xc0
       [<ffffffff8158f7a9>] system_call_fastpath+0x16/0x1b
      
      Fixes: 8fec051e (cpufreq: Convert existing drivers to use cpufreq_freq_transition_{begin|end})
      Reported-and-tested-by: default avatarMike Galbraith <umgwanakikbuti@gmail.com>
      Cc: 3.15+ <stable@vger.kernel.org> # 3.15+
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      e65b5ddb
  3. 28 Sep, 2014 3 commits
  4. 27 Sep, 2014 15 commits
  5. 26 Sep, 2014 14 commits
  6. 25 Sep, 2014 5 commits
    • Linus Torvalds's avatar
      Merge tag 'pm+acpi-3.17-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · f4cb707e
      Linus Torvalds authored
      Pull ACPI and power management fixes from Rafael Wysocki:
       "These are regression fixes (ACPI hotplug, cpufreq, hibernation, ACPI
        LPSS driver), fixes for stuff that never worked correctly (ACPI GPIO
        support in some cases and a wrong sign of an error code in the ACPI
        core in one place), and one blacklist item for ACPI backlight
        handling.
      
        Specifics:
      
         - Revert of a recent hibernation core commit that introduced a NULL
           pointer dereference during resume for at least one user (Rafael J
           Wysocki).
      
         - Fix for the ACPI LPSS (Low-Power Subsystem) driver to disable
           asynchronous PM callback execution for LPSS devices during system
           suspend/resume (introduced in 3.16) which turns out to break
           ordering expectations on some systems.  From Fu Zhonghui.
      
         - cpufreq core fix related to the handling of sysfs nodes during
           system suspend/resume that has been broken for intel_pstate since
           3.15 from Lan Tianyu.
      
         - Restore the generation of "online" uevents for ACPI container
           devices that was removed in 3.14, but some user space utilities
           turn out to need them (Rafael J Wysocki).
      
         - The cpufreq core fails to release a lock in an error code path
           after changes made in 3.14.  Fix from Prarit Bhargava.
      
         - ACPICA and ACPI/GPIO fixes to make the handling of ACPI GPIO
           operation regions (which means AML using GPIOs) work correctly in
           all cases from Bob Moore and Srinivas Pandruvada.
      
         - Fix for a wrong sign of the ACPI core's create_modalias() return
           value in case of an error from Mika Westerberg.
      
         - ACPI backlight blacklist entry for ThinkPad X201s from Aaron Lu"
      
      * tag 'pm+acpi-3.17-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        Revert "PM / Hibernate: Iterate over set bits instead of PFNs in swsusp_free()"
        gpio / ACPI: Use pin index and bit length
        ACPICA: Update to GPIO region handler interface.
        ACPI / platform / LPSS: disable async suspend/resume of LPSS devices
        cpufreq: release policy->rwsem on error
        cpufreq: fix cpufreq suspend/resume for intel_pstate
        ACPI / scan: Correct error return value of create_modalias()
        ACPI / video: disable native backlight for ThinkPad X201s
        ACPI / hotplug: Generate online uevents for ACPI containers
      f4cb707e
    • Linus Torvalds's avatar
      Merge branch 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · 12df9f37
      Linus Torvalds authored
      Pull i2c fixes from Wolfram Sang:
       "This is probably not the kind of pull request you want to see that
        late in the cycle.  Yet, the ACPI refactorization was problematic
        again and caused another two issues which need fixing.  My holidays
        with limited internet (plus travelling) and the developer's illness
        didn't help either :(
      
        The details:
      
         - ACPI code was refactored out into a seperate file and as a
           side-effect, the i2c-core module got renamed.  Jean Delvare
           rightfully complained about the rename being problematic for
           distributions.  So, Mika and I thought the least problematic way to
           deal with it is to move all the code back into the main i2c core
           source file.  This is mainly a huge code move with some #ifdeffery
           applied.  No functional code changes.  Our personal tests and the
           testbots did not find problems.  (I was thinking about reverting,
           too, yet that would also have ~800 lines changed)
      
         - The new ACPI code also had a NULL pointer exception, thanks to
           Peter for finding and fixing it.
      
         - Mikko fixed a locking problem by decoupling clock_prepare and
           clock_enable.
      
         - Addy learnt that the datasheet was wrong and reimplemented the
           frequency setup according to the new algorithm.
      
        - Fan fixed an off-by-one error when copying data
      
        - Janusz fixed a copy'n'paste bug which gave a wrong error message
      
        - Sergei made sure that "don't touch" bits are not accessed"
      
      * 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
        i2c: acpi: Fix NULL Pointer dereference
        i2c: move acpi code back into the core
        i2c: rk3x: fix divisor calculation for SCL frequency
        i2c: mxs: fix error message in pio transfer
        i2c: ismt: use correct length when copy buffer
        i2c: rcar: fix RCAR_IRQ_ACK_{RECV|SEND}
        i2c: tegra: Move clk_prepare/clk_set_rate to probe
      12df9f37
    • Randy Dunlap's avatar
      MAINTAINERS: new Documentation maintainer · d671e424
      Randy Dunlap authored
      Transfer Documentation maintainership to Jiri Kosina.
      Thanks, Jiri.
      
      I'll still be reviewing and working on documentation.
      Signed-off-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Acked-by: default avatarJiri Kosina <jkosina@suse.cz>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      d671e424
    • Rafael J. Wysocki's avatar
      Merge branches 'pm-cpufreq' and 'pm-sleep' · 381e63da
      Rafael J. Wysocki authored
      * pm-cpufreq:
        cpufreq: release policy->rwsem on error
        cpufreq: fix cpufreq suspend/resume for intel_pstate
      
      * pm-sleep:
        Revert "PM / Hibernate: Iterate over set bits instead of PFNs in swsusp_free()"
      381e63da
    • Rafael J. Wysocki's avatar
      Merge branches 'acpi-hotplug', 'acpi-scan', 'acpi-lpss', 'acpi-gpio' and 'acpi-video' · 9ef5a306
      Rafael J. Wysocki authored
      * acpi-hotplug:
        ACPI / hotplug: Generate online uevents for ACPI containers
      
      * acpi-scan:
        ACPI / scan: Correct error return value of create_modalias()
      
      * acpi-lpss:
        ACPI / platform / LPSS: disable async suspend/resume of LPSS devices
      
      * acpi-gpio:
        gpio / ACPI: Use pin index and bit length
        ACPICA: Update to GPIO region handler interface.
      
      * acpi-video:
        ACPI / video: disable native backlight for ThinkPad X201s
      9ef5a306