01 Nov, 2012

1 commit


23 Oct, 2012

2 commits

  • When system enters sleep, non-boot CPUs will be disabled.
    Cpufreq stats sysfs is created when the CPU is up, but it is not
    freed when the CPU is going down. This will cause memory leak.

    Signed-off-by: xiaobing tu
    Signed-off-by: guifang tang
    Signed-off-by: Rafael J. Wysocki

    Tu, Xiaobing
     
  • Commit 6889125b8b4e09c5e53e6ecab3433bed1ce198c9
    (cpufreq/powernow-k8: workqueue user shouldn't migrate the kworker to another CPU)
    causes powernow-k8 to trigger a preempt warning, e.g.:

    BUG: using smp_processor_id() in preemptible [00000000] code: cpufreq/3776
    caller is powernowk8_target+0x20/0x49
    Pid: 3776, comm: cpufreq Not tainted 3.6.0 #9
    Call Trace:
    [] debug_smp_processor_id+0xc7/0xe0
    [] powernowk8_target+0x20/0x49
    [] __cpufreq_driver_target+0x82/0x8a
    [] cpufreq_governor_performance+0x4e/0x54
    [] __cpufreq_governor+0x8c/0xc9
    [] __cpufreq_set_policy+0x1a9/0x21e
    [] store_scaling_governor+0x16f/0x19b
    [] ? cpufreq_update_policy+0x124/0x124
    [] ? _raw_spin_unlock_irqrestore+0x2c/0x49
    [] store+0x60/0x88
    [] sysfs_write_file+0xf4/0x130
    [] vfs_write+0xb5/0x151
    [] sys_write+0x4a/0x71
    [] system_call_fastpath+0x16/0x1b

    Fix this by by always using work_on_cpu().

    Signed-off-by: Andreas Herrmann
    Cc: stable@vger.kernel.org
    Signed-off-by: Rafael J. Wysocki

    Andreas Herrmann
     

09 Oct, 2012

4 commits

  • OMAP PM core code has moved to using the existing, generic CPU devices
    for attaching OPPs, so the CPUfreq driver can now use the generic
    get_cpu_device() API instead of the OMAP-specific omap_device API.

    This allows us to remove the last include from this driver.

    Cc: Paul Walmsley
    Acked-by: Rafael J. Wysocki
    Signed-off-by: Kevin Hilman

    Kevin Hilman
     
  • OMAP core code now has SoC-independent clock alias for the scalable
    CPU clock. Using it means driver is SoC independent and will work for
    AM3xxx SoCs as well as OMAP1/3/4.

    While here, remove some unnecessary plat/ includes that are
    interfering with multi-subarch ARM kernels.

    Signed-off-by: Paul Walmsley
    [tony@atomide.com: updated already changed clock aliases]
    Signed-off-by: Tony Lindgren
    [khilman@ti.com: minor shortlog/changelog updates]
    Acked-by: Rafael J. Wysocki
    Signed-off-by: Kevin Hilman

    Paul Walmsley
     
  • The headers are going away, and this one is not used. remove it.

    Acked-by: Rafael J. Wysocki
    Signed-off-by: Kevin Hilman

    Kevin Hilman
     
  • Ensure the clock rate that will be used is a valid one before
    attempting to scale the voltage. Currently the driver assumes it has
    a valid frequency from the OPP table, but boards using different
    system oscillators might not have exact matches with the OPP table,
    and result in a failing call to clk_set_rate().

    This is particularily bad because the voltage may be scaled even
    though the frequency is not. This will obviously lead to some
    unpredictable behavior, especially if the frequency is high and
    the voltage is dropped.

    Thanks to Joni Lapilainen for reporting crashes seen on 3430/n900.

    Reported-by: Joni Lapilainen
    Acked-by: Rafael J. Wysocki
    Signed-off-by: Kevin Hilman

    Kevin Hilman
     

03 Oct, 2012

2 commits

  • Pull power management updates from Rafael J Wysocki:

    - Improved system suspend/resume and runtime PM handling for the SH
    TMU, CMT and MTU2 clock event devices (also used by ARM/shmobile).

    - Generic PM domains framework extensions related to cpuidle support
    and domain objects lookup using names.

    - ARM/shmobile power management updates including improved support for
    the SH7372's A4S power domain containing the CPU core.

    - cpufreq changes related to AMD CPUs support from Matthew Garrett,
    Andre Przywara and Borislav Petkov.

    - cpu0 cpufreq driver from Shawn Guo.

    - cpufreq governor fixes related to the relaxing of limit from Michal
    Pecio.

    - OMAP cpufreq updates from Axel Lin and Richard Zhao.

    - cpuidle ladder governor fixes related to the disabling of states from
    Carsten Emde and me.

    - Runtime PM core updates related to the interactions with the system
    suspend core from Alan Stern and Kevin Hilman.

    - Wakeup sources modification allowing more helper functions to be
    called from interrupt context from John Stultz and additional
    diagnostic code from Todd Poynor.

    - System suspend error code path fix from Feng Hong.

    Fixed up conflicts in cpufreq/powernow-k8 that stemmed from the
    workqueue fixes conflicting fairly badly with the removal of support for
    hardware P-state chips. The changes were independent but somewhat
    intertwined.

    * tag 'pm-for-3.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (76 commits)
    Revert "PM QoS: Use spinlock in the per-device PM QoS constraints code"
    PM / Runtime: let rpm_resume() succeed if RPM_ACTIVE, even when disabled, v2
    cpuidle: rename function name "__cpuidle_register_driver", v2
    cpufreq: OMAP: Check IS_ERR() instead of NULL for omap_device_get_by_hwmod_name
    cpuidle: remove some empty lines
    PM: Prevent runtime suspend during system resume
    PM QoS: Use spinlock in the per-device PM QoS constraints code
    PM / Sleep: use resume event when call dpm_resume_early
    cpuidle / ACPI : move cpuidle_device field out of the acpi_processor_power structure
    ACPI / processor: remove pointless variable initialization
    ACPI / processor: remove unused function parameter
    cpufreq: OMAP: remove loops_per_jiffy recalculate for smp
    sections: fix section conflicts in drivers/cpufreq
    cpufreq: conservative: update frequency when limits are relaxed
    cpufreq / ondemand: update frequency when limits are relaxed
    properly __init-annotate pm_sysrq_init()
    cpufreq: Add a generic cpufreq-cpu0 driver
    PM / OPP: Initialize OPP table from device tree
    ARM: add cpufreq transiton notifier to adjust loops_per_jiffy for smp
    cpufreq: Remove support for hardware P-state chips from powernow-k8
    ...

    Linus Torvalds
     
  • Pull workqueue changes from Tejun Heo:
    "This is workqueue updates for v3.7-rc1. A lot of activities this
    round including considerable API and behavior cleanups.

    * delayed_work combines a timer and a work item. The handling of the
    timer part has always been a bit clunky leading to confusing
    cancelation API with weird corner-case behaviors. delayed_work is
    updated to use new IRQ safe timer and cancelation now works as
    expected.

    * Another deficiency of delayed_work was lack of the counterpart of
    mod_timer() which led to cancel+queue combinations or open-coded
    timer+work usages. mod_delayed_work[_on]() are added.

    These two delayed_work changes make delayed_work provide interface
    and behave like timer which is executed with process context.

    * A work item could be executed concurrently on multiple CPUs, which
    is rather unintuitive and made flush_work() behavior confusing and
    half-broken under certain circumstances. This problem doesn't
    exist for non-reentrant workqueues. While non-reentrancy check
    isn't free, the overhead is incurred only when a work item bounces
    across different CPUs and even in simulated pathological scenario
    the overhead isn't too high.

    All workqueues are made non-reentrant. This removes the
    distinction between flush_[delayed_]work() and
    flush_[delayed_]_work_sync(). The former is now as strong as the
    latter and the specified work item is guaranteed to have finished
    execution of any previous queueing on return.

    * In addition to the various bug fixes, Lai redid and simplified CPU
    hotplug handling significantly.

    * Joonsoo introduced system_highpri_wq and used it during CPU
    hotplug.

    There are two merge commits - one to pull in IRQ safe timer from
    tip/timers/core and the other to pull in CPU hotplug fixes from
    wq/for-3.6-fixes as Lai's hotplug restructuring depended on them."

    Fixed a number of trivial conflicts, but the more interesting conflicts
    were silent ones where the deprecated interfaces had been used by new
    code in the merge window, and thus didn't cause any real data conflicts.

    Tejun pointed out a few of them, I fixed a couple more.

    * 'for-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq: (46 commits)
    workqueue: remove spurious WARN_ON_ONCE(in_irq()) from try_to_grab_pending()
    workqueue: use cwq_set_max_active() helper for workqueue_set_max_active()
    workqueue: introduce cwq_set_max_active() helper for thaw_workqueues()
    workqueue: remove @delayed from cwq_dec_nr_in_flight()
    workqueue: fix possible stall on try_to_grab_pending() of a delayed work item
    workqueue: use hotcpu_notifier() for workqueue_cpu_down_callback()
    workqueue: use __cpuinit instead of __devinit for cpu callbacks
    workqueue: rename manager_mutex to assoc_mutex
    workqueue: WORKER_REBIND is no longer necessary for idle rebinding
    workqueue: WORKER_REBIND is no longer necessary for busy rebinding
    workqueue: reimplement idle worker rebinding
    workqueue: deprecate __cancel_delayed_work()
    workqueue: reimplement cancel_delayed_work() using try_to_grab_pending()
    workqueue: use mod_delayed_work() instead of __cancel + queue
    workqueue: use irqsafe timer for delayed_work
    workqueue: clean up delayed_work initializers and add missing one
    workqueue: make deferrable delayed_work initializer names consistent
    workqueue: cosmetic whitespace updates for macro definitions
    workqueue: deprecate system_nrt[_freezable]_wq
    workqueue: deprecate flush[_delayed]_work_sync()
    ...

    Linus Torvalds
     

20 Sep, 2012

3 commits

  • omap_device_get_by_hwmod_name() returns ERR_PTR on error.

    Signed-off-by: Axel Lin
    Acked-by: Kevin Hilman
    Signed-off-by: Rafael J. Wysocki

    Axel Lin
     
  • Pull workqueue / powernow-k8 fix from Tejun Heo:
    "This is the fix for the bug where cpufreq/powernow-k8 was tripping
    BUG_ON() in try_to_wake_up_local() by migrating workqueue worker to a
    different CPU.

    https://bugzilla.kernel.org/show_bug.cgi?id=47301

    As discussed, the fix is now two parts - one to reimplement
    work_on_cpu() so that it doesn't create a new kthread each time and
    the actual fix which makes powernow-k8 use work_on_cpu() instead of
    performing manual migration.

    While pretty late in the merge cycle, both changes are on the safer
    side. Jiri and I verified two existing users of work_on_cpu() and
    Duncan confirmed that the powernow-k8 fix survived about 18 hours of
    testing."

    * 'for-3.6-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:
    cpufreq/powernow-k8: workqueue user shouldn't migrate the kworker to another CPU
    workqueue: reimplement work_on_cpu() using system_wq

    Linus Torvalds
     
  • powernowk8_target() runs off a per-cpu work item and if the
    cpufreq_policy->cpu is different from the current one, it migrates the
    kworker to the target CPU by manipulating current->cpus_allowed. The
    function migrates the kworker back to the original CPU but this is
    still broken. Workqueue concurrency management requires the kworkers
    to stay on the same CPU and powernowk8_target() ends up triggerring
    BUG_ON(rq != this_rq()) in try_to_wake_up_local() if it contends on
    fidvid_mutex and sleeps.

    It is unclear why this bug is being reported now. Duncan says it
    appeared to be a regression of 3.6-rc1 and couldn't reproduce it on
    3.5. Bisection seemed to point to 63d95a91 "workqueue: use @pool
    instead of @gcwq or @cpu where applicable" which is an non-functional
    change. Given that the reproduce case sometimes took upto days to
    trigger, it's easy to be misled while bisecting. Maybe something made
    contention on fidvid_mutex more likely? I don't know.

    This patch fixes the bug by using work_on_cpu() instead if @pol->cpu
    isn't the same as the current one. The code assumes that
    cpufreq_policy->cpu is kept online by the caller, which Rafael tells
    me is the case.

    stable: ed48ece27c ("workqueue: reimplement work_on_cpu() using
    system_wq") should be applied before this; otherwise, the
    behavior could be horrible.

    Signed-off-by: Tejun Heo
    Reported-by: Duncan
    Tested-by: Duncan
    Cc: Rafael J. Wysocki
    Cc: Andreas Herrmann
    Cc: stable@vger.kernel.org
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=47301

    Tejun Heo
     

15 Sep, 2012

4 commits


10 Sep, 2012

8 commits

  • It adds a generic cpufreq driver for CPU0 frequency management based on
    clk, regulator, OPP and device tree support. It can support both
    uniprocessor (UP) and those symmetric multiprocessor (SMP) systems which
    share clock and voltage across all CPUs.

    Signed-off-by: Shawn Guo
    Acked-by: Santosh Shilimkar
    Tested-by: AnilKumar Ch
    Signed-off-by: Rafael J. Wysocki

    Shawn Guo
     
  • These chips are now supported by acpi-cpufreq, so we can delete all the
    code handling them.

    Andre: Tighten the deprecation warning message. Trigger load of
    acpi-cpufreq and let the load of the module finally fail.
    This avoids the problem of users ending up without any cpufreq support
    after the transition.

    Signed-off-by: Matthew Garrett
    Signed-off-by: Andre Przywara
    Signed-off-by: Rafael J. Wysocki

    Matthew Garrett
     
  • The powernow-k8 driver supported a sysfs knob called "cpb", which was
    instantiated per CPU, but actually acted globally for the whole
    system. To keep some compatibility with this feature, we re-introduce
    this behavior here, but:
    a) only enable it on AMD CPUs and
    b) protect it with a Kconfig switch

    I'd like to consider this feature obsolete. Lets keep it around for
    some kernel versions and then phase it out.

    Signed-off-by: Andre Przywara
    Signed-off-by: Rafael J. Wysocki

    Andre Przywara
     
  • One feature present in powernow-k8 that isn't present in acpi-cpufreq
    is support for enabling or disabling AMD's core performance boost
    technology. This patch adds support to acpi-cpufreq, but also
    includes support for Intel's dynamic acceleration.

    The original boost disabling sysfs file was per CPU, but acted
    globally. Also the naming (cpb) was at least not intuitive.
    So lets introduce a single file simply called "boost", which sits
    once in /sys/devices/system/cpu/cpufreq.
    This should be the only way of using this feature, so add
    documentation about the rationale and the usage.

    A following patch will re-introduce the cpb knob for compatibility
    reasons on AMD CPUs.

    Per-CPU boost switching is possible, but not trivial and is thus
    postponed to a later patch series.

    Signed-off-by: Andre Przywara
    Signed-off-by: Rafael J. Wysocki

    Andre Przywara
     
  • powernow-k8 is quite prematurely crying Hooray and outputs diagnostic
    messages, although the actual initialization can still fail.
    Since now we may have acpi-cpufreq already loaded, we move the
    messages at the end of the init routine to avoid confusing output
    if the loading of powernow-k8 should not succeed.

    Signed-off-by: Andre Przywara
    Signed-off-by: Rafael J. Wysocki

    Andre Przywara
     
  • cpufreq modules are often loaded from init scripts that assume that
    all recent AMD systems will use powernow-k8.
    To inform the user of the change of support and ease the transition
    to acpi-cpufreq, emit a warning message.

    Signed-off-by: Andre Przywara
    Signed-off-by: Rafael J. Wysocki

    Andre Przywara
     
  • To workaround some Windows specific behavior, the ACPI _PSD table
    on AMD desktop boards advertises all cores as dependent, meaning
    that they all can only use the same P-state. acpi-cpufreq strictly
    obeys this description, instantiating one CPU only and symlinking
    the others. But the hardware can have distinct frequencies for each
    core and powernow-k8 did it that way.
    So, in order to use the hardware to its full potential and keep the
    original powernow-k8 behavior, lets override the _PSD table setting
    on AMD hardware.
    We use the siblings table, as it matches the current hardware
    behavior.

    Signed-off-by: Andre Przywara
    Signed-off-by: Rafael J. Wysocki

    Andre Przywara
     
  • The programming model for P-states on modern AMD CPUs is very similar to
    that of Intel and VIA. It makes sense to consolidate this support into one
    driver rather than duplicating functionality between two of them. This
    patch adds support for AMDs with hardware P-state control to acpi-cpufreq.

    Signed-off-by: Matthew Garrett
    Signed-off-by: Andre Przywara
    Signed-off-by: Rafael J. Wysocki

    Matthew Garrett
     

05 Sep, 2012

1 commit


04 Sep, 2012

1 commit


23 Aug, 2012

1 commit


22 Aug, 2012

1 commit


09 Aug, 2012

2 commits

  • On OMAP4, if the first CPU fails to get a valid frequency table (this
    could happen if the platform does not register any OPP table), the
    subsequent CPU instances end up dealing with a NULL freq_table and
    crash.

    Check for an already existing freq_table, before trying to create one,
    and increment the freq_table_users only if the table is sucessfully
    created.

    Signed-off-by: Rajendra Nayak
    Signed-off-by: Santosh Shilimkar
    Cc:
    Signed-off-by: Kevin Hilman

    Rajendra Nayak
     
  • Convert a 0 error return code to a negative one, as returned elsewhere in the
    function.

    A simplified version of the semantic match that finds this problem is as
    follows: (http://coccinelle.lip6.fr/)

    //
    @@
    identifier ret;
    expression e,e1,e2,e3,e4,x;
    @@

    (
    if (\(ret != 0\|ret < 0\) || ...) { ... return ...; }
    |
    ret = 0
    )
    ... when != ret = e1
    *x = \(kmalloc\|kzalloc\|kcalloc\|devm_kzalloc\|ioremap\|ioremap_nocache\|devm_ioremap\|devm_ioremap_nocache\)(...);
    ... when != x = e2
    when != ret = e3
    *if (x == NULL || ...)
    {
    ... when != ret = e4
    * return ret;
    }
    //

    Signed-off-by: Julia Lawall
    Signed-off-by: Rafael J. Wysocki

    Julia Lawall
     

31 Jul, 2012

1 commit

  • Pull arm-soc soc updates from Olof Johansson:
    "This is the second batch of SoC updates for the 3.6 merge window,
    containing parts that arrived close to the merge window opening and
    thus needed to sit in linux-next for a while.

    Most contents is updates of Renesas shmobile, with a couple of Samsung
    Exynos patches in the mix."

    * tag 'soc2' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (39 commits)
    ARM: S3C64XX: Add header file protection macros in pm-core.h
    [CPUFREQ] EXYNOS5250: Add support max 1.7GHz for EXYNOS5250
    ARM: EXYNOS: Add G2D related clock entries for SMDK4X12
    ARM: EXYNOS: Move G2D clock entries to clock-exynos4210.c file
    ARM: shmobile: Fix build problem in pm-sh7372.c for unusual .config
    ARM: shmobile: Take cpuidle dependencies into account correctly
    ARM: mach-shmobile: sh7377 generic board support via DT
    ARM: mach-shmobile: r8a7740 generic board support via DT
    ARM: shmobile: sh7372: completely switch over to using pm-rmobile API
    ARM: shmobile: ap4evb: switch to using pm-rmobile API
    ARM: shmobile: mackerel: switch to using pm-rmobile API
    ARM: shmobile: sh7372: add pm-rmobile domain support
    ARM: shmobile: r8a7740: add A4LC pm domain support
    ARM: shmobile: r8a7740: add A3SP pm domain support
    ARM: shmobile: r8a7740: add A4S pm domain support
    ARM: shmobile: r8a7740: fixup: MSEL1CR 7bit control
    ARM: shmobile: soc-core: add R-mobile PM domain common APIs
    ARM: shmobile: sh7372 A3SM CPUIdle support
    ARM: shmobile: Use INTCA with sh7372 A3SM power domain
    ARM: mach-shmobile: Convert sh_clk_mstp32_register to sh_clk_mstp_register
    ...

    Linus Torvalds
     

25 Jul, 2012

1 commit

  • Pull trivial tree from Jiri Kosina:
    "Trivial updates all over the place as usual."

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (29 commits)
    Fix typo in include/linux/clk.h .
    pci: hotplug: Fix typo in pci
    iommu: Fix typo in iommu
    video: Fix typo in drivers/video
    Documentation: Add newline at end-of-file to files lacking one
    arm,unicore32: Remove obsolete "select MISC_DEVICES"
    module.c: spelling s/postition/position/g
    cpufreq: Fix typo in cpufreq driver
    trivial: typo in comment in mksysmap
    mach-omap2: Fix typo in debug message and comment
    scsi: aha152x: Fix sparse warning and make printing pointer address more portable.
    Change email address for Steve Glendinning
    Btrfs: fix typo in convert_extent_bit
    via: Remove bogus if check
    netprio_cgroup.c: fix comment typo
    backlight: fix memory leak on obscure error path
    Documentation: asus-laptop.txt references an obsolete Kconfig item
    Documentation: ManagementStyle: fixed typo
    mm/vmscan: cleanup comment error in balance_pgdat
    mm: cleanup on the comments of zone_reclaim_stat
    ...

    Linus Torvalds
     

21 Jul, 2012

1 commit

  • Running one program that continuously hotplugs and replugs a cpu
    concurrently with another program that continuously writes to the
    scaling_setspeed node eventually deadlocks with:

    =============================================
    [ INFO: possible recursive locking detected ]
    3.4.0 #37 Tainted: G W
    ---------------------------------------------
    filemonkey/122 is trying to acquire lock:
    (s_active#13){++++.+}, at: [] sysfs_remove_dir+0x9c/0xb4

    but task is already holding lock:
    (s_active#13){++++.+}, at: [] sysfs_write_file+0xe8/0x140

    other info that might help us debug this:
    Possible unsafe locking scenario:

    CPU0
    ----
    lock(s_active#13);
    lock(s_active#13);

    *** DEADLOCK ***

    May be due to missing lock nesting notation

    2 locks held by filemonkey/122:
    #0: (&buffer->mutex){+.+.+.}, at: [] sysfs_write_file+0x28/0x140
    #1: (s_active#13){++++.+}, at: [] sysfs_write_file+0xe8/0x140

    stack backtrace:
    [] (unwind_backtrace+0x0/0x120) from [] (validate_chain+0x6f8/0x1054)
    [] (validate_chain+0x6f8/0x1054) from [] (__lock_acquire+0x81c/0x8d8)
    [] (__lock_acquire+0x81c/0x8d8) from [] (lock_acquire+0x18c/0x1e8)
    [] (lock_acquire+0x18c/0x1e8) from [] (sysfs_addrm_finish+0xd0/0x180)
    [] (sysfs_addrm_finish+0xd0/0x180) from [] (sysfs_remove_dir+0x9c/0xb4)
    [] (sysfs_remove_dir+0x9c/0xb4) from [] (kobject_del+0x10/0x38)
    [] (kobject_del+0x10/0x38) from [] (kobject_release+0xf0/0x194)
    [] (kobject_release+0xf0/0x194) from [] (cpufreq_cpu_put+0xc/0x24)
    [] (cpufreq_cpu_put+0xc/0x24) from [] (store+0x6c/0x74)
    [] (store+0x6c/0x74) from [] (sysfs_write_file+0x10c/0x140)
    [] (sysfs_write_file+0x10c/0x140) from [] (vfs_write+0xb0/0x128)
    [] (vfs_write+0xb0/0x128) from [] (sys_write+0x3c/0x68)
    [] (sys_write+0x3c/0x68) from [] (ret_fast_syscall+0x0/0x3c)

    This is because store() in cpufreq.c indirectly calls
    kobject_get() via cpufreq_cpu_get() and is the last one to call
    kobject_put() via cpufreq_cpu_put(). Sysfs code should not call
    kobject_get() or kobject_put() directly (see the comment around
    sysfs_schedule_callback() for more information).

    Fix this deadlock by introducing two new functions:

    struct cpufreq_policy *cpufreq_cpu_get_sysfs(unsigned int cpu)
    void cpufreq_cpu_put_sysfs(struct cpufreq_policy *data)

    which do the same thing as cpufreq_cpu_{get,put}() but don't call
    kobject functions.

    To easily trigger this deadlock you can insert an msleep() with a
    reasonably large value right after the fail label at the bottom
    of the store() function in cpufreq.c and then write
    scaling_setspeed in one task and offline the cpu in another. The
    first task will hang and be detected by the hung task detector.

    Signed-off-by: Stephen Boyd
    Signed-off-by: Rafael J. Wysocki

    Stephen Boyd
     

20 Jul, 2012

2 commits

  • The policy might have been changed since last call of target().
    Thus, using cpufreq_frequency_table_target(), which depends on
    policy to find the corresponding index from a frequency, may return
    inconsistent index for freqs.old. Thus, old_index should be
    calculated not based on the current policy.

    We have been observing such issue when scaling_min/max_freq were
    updated and sometimes cuased system lockups deu to incorrectly
    configured voltages.

    Signed-off-by: MyungJoo Ham
    Signed-off-by: Rafael J. Wysocki

    Jonghwa Lee
     
  • Correct spelling typo in cpufreq driver.

    Signed-off-by: Masanari Iida
    Signed-off-by: Jiri Kosina

    Masanari Iida
     

19 Jul, 2012

1 commit


02 May, 2012

1 commit

  • This adds support for the U9540 variant of the U8500 series. This
    is an application processor without internal modem. This is the
    most basic part with ASIC ID, CPU-related fixes, IRQ list, register
    ranges, timer, UART, and L2 cache setup. This is based on a patch
    by Michel Jaouen which was rewritten to fit with the latest 3.3
    kernel.

    ChangeLog v1->v2: deleted the irqs-db9540.h file since we expect to
    migrate to using Device Tree for getting the IRQs to devices.
    ChangeLog v2->v3: introduced a fixed virtual offset for the ROM
    as suggested by Arnd Bergmann.

    Acked-by: Arnd Bergmann
    Signed-off-by: Sebastien Pasdeloup
    Signed-off-by: Michel Jaouen
    Signed-off-by: Linus Walleij

    Linus Walleij
     

14 Apr, 2012

1 commit

  • The OMAP driver needs a 'depends on ARCH_OMAP2PLUS' since it only
    builds for OMAP2+ platforms.

    This 'depends on' was in the original patch from Russell King, but was
    erroneously removed by me when making this option user-selectable in
    commit b09db45c (cpufreq: OMAP driver depends CPUfreq tables.) This
    patch remedies that.

    Apologies to Russell King for breaking his originally working patch.

    Also, thanks to Grazvydas Ignotas for reporting the same problem.

    Cc: Russell King
    Cc: Grazvydas Ignotas
    Signed-off-by: Kevin Hilman
    Signed-off-by: Linus Torvalds

    Kevin Hilman
     

06 Apr, 2012

1 commit

  • Pull "ARM: SoC fixes: from Olof Johansson:
    "A bunch of fixes for regressions (and a few other problems) in
    3.4-rc1:

    - Fix for regression of mach/io.h cleanup on platforms with PCI or
    PCMCIA (adding back the include file on those for now)
    - AT91 fixes for usb and spi
    - smsc911x ethernet fixes for i.MX
    - smsc911x fixes for OMAP
    - gpio fixes for Tegra
    - A handful of build error and warning fixes for various platforms
    - cpufreq kconfig dependencies, build and lowlevel debug fixes for
    Samsung platforms

    In other words, more or less the regular collection of -rc1/2 type
    material. A few of them, in particular the smsc911x for OMAP series,
    aren't technically regressions for 3.4, but they're valid fixes and
    we're still relatively early in the rc cycle so it seems appropriate
    to include them."

    * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (60 commits)
    ARM: fix __io macro for PCMCIA
    ARM: EXYNOS: Fix compiler warning in dma.c file
    ARM: EXYNOS: fix ISO C90 warning
    ARM: OMAP2+: hwmod: Fix wrong SYSC_TYPE1_XXX_MASK bit definitions
    ARM: OMAP2+: hwmod: Make omap_hwmod_softreset wait for reset status
    ARM: OMAP2+: hwmod: Restore sysc after a reset
    ARM: OMAP2+: omap_hwmod: Allow io_ring wakeup configuration for all modules
    ARM: OMAP3: clock data: fill in some missing clockdomains
    ARM: OMAP4: clock data: Force a DPLL clkdm/pwrdm ON before a relock
    ARM: OMAP4: clock data: fix mult and div mask for USB_DPLL
    ARM: OMAP2+: powerdomain: Wait for powerdomain transition in pwrdm_state_switch()
    gpio: tegra: Iterate over the correct number of banks
    gpio: tegra: fix register address calculations for Tegra30
    EXYNOS: fix dependency for EXYNOS_CPUFREQ
    ARM: at91: dt: remove unit-address part for memory nodes
    ARM: at91: fix check of valid GPIO for SPI and USB
    USB: ehci-atmel: add needed of.h header file
    ARM: at91/NAND DT bindings: add comments
    ARM: at91/at91sam9x5.dtsi: fix NAND ale/cle in DT file
    USB: ohci-at91: trivial return code name change
    ...

    Linus Torvalds
     

05 Apr, 2012

1 commit

  • This fixes the CPUFREQ dependency for regarding EXYNOS SoCs
    such as EXYNOS4210, EXYNOS4X12 and EXYNOS5250. Its cpufreq
    driver should be built with selection of SoC arch part.

    Reported-by: Russell King
    Acked-by: Dave Jones
    Signed-off-by: Kukjin Kim

    Kukjin Kim