12 Nov, 2011

1 commit

  • The variable i is removed by commit ded8433
    "[CPUFREQ] db8500: remove unneeded for loop iteration over freq_table",
    but current code to print available frequencies still uses the i variable.
    Thus add the i variable back to fix below buld error:

    CC drivers/cpufreq/db8500-cpufreq.o
    drivers/cpufreq/db8500-cpufreq.c: In function 'db8500_cpufreq_init':
    drivers/cpufreq/db8500-cpufreq.c:123: error: 'i' undeclared (first use in this function)
    drivers/cpufreq/db8500-cpufreq.c:123: error: (Each undeclared identifier is reported only once
    drivers/cpufreq/db8500-cpufreq.c:123: error: for each function it appears in.)
    make[2]: *** [drivers/cpufreq/db8500-cpufreq.o] Error 1
    make[1]: *** [drivers/cpufreq] Error 2
    make: *** [drivers] Error 2

    This patch also fixes using uninitialized i variable as array index.

    Signed-off-by: Axel Lin
    Acked-by: Linus Walleij
    Signed-off-by: Dave Jones

    Axel Lin
     

07 Nov, 2011

1 commit

  • * 'modsplit-Oct31_2011' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux: (230 commits)
    Revert "tracing: Include module.h in define_trace.h"
    irq: don't put module.h into irq.h for tracking irqgen modules.
    bluetooth: macroize two small inlines to avoid module.h
    ip_vs.h: fix implicit use of module_get/module_put from module.h
    nf_conntrack.h: fix up fallout from implicit moduleparam.h presence
    include: replace linux/module.h with "struct module" wherever possible
    include: convert various register fcns to macros to avoid include chaining
    crypto.h: remove unused crypto_tfm_alg_modname() inline
    uwb.h: fix implicit use of asm/page.h for PAGE_SIZE
    pm_runtime.h: explicitly requires notifier.h
    linux/dmaengine.h: fix implicit use of bitmap.h and asm/page.h
    miscdevice.h: fix up implicit use of lists and types
    stop_machine.h: fix implicit use of smp.h for smp_processor_id
    of: fix implicit use of errno.h in include/linux/of.h
    of_platform.h: delete needless include
    acpi: remove module.h include from platform/aclinux.h
    miscdevice.h: delete unnecessary inclusion of module.h
    device_cgroup.h: delete needless include
    net: sch_generic remove redundant use of
    net: inet_timewait_sock doesnt need
    ...

    Fix up trivial conflicts (other header files, and removal of the ab3550 mfd driver) in
    - drivers/media/dvb/frontends/dibx000_common.c
    - drivers/media/video/{mt9m111.c,ov6650.c}
    - drivers/mfd/ab3550-core.c
    - include/linux/dmaengine.h

    Linus Torvalds
     

04 Nov, 2011

2 commits

  • * 'next' of git://github.com/kernelslacker/cpufreq:
    [CPUFREQ] db8500: support all frequencies
    [CPUFREQ] db8500: remove unneeded for loop iteration over freq_table
    [CPUFREQ] ARM Exynos4210 PM/Suspend compatibility with different bootloaders
    [CPUFREQ] ARM: ux500: send cpufreq notification for all cpus
    [CPUFREQ] e_powersaver: Allow user to lower maximum voltage
    [CPUFREQ] e_powersaver: Check BIOS limit for CPU frequency
    [CPUFREQ] e_powersaver: Additional checks
    [CPUFREQ] exynos4210: Show list of available frequencies

    Linus Torvalds
     
  • * 'for-next' of git://git.infradead.org/users/sameo/mfd-2.6: (80 commits)
    mfd: Fix missing abx500 header file updates
    mfd: Add missing include to intel_msic
    x86, mrst: add platform support for MSIC MFD driver
    mfd: Expose TurnOnStatus in ab8500 sysfs
    mfd: Remove support for early drop ab8500 chip
    mfd: Add support for ab8500 v3.3
    mfd: Add ab8500 interrupt disable hook
    mfd: Convert db8500-prcmu panic() into pr_crit()
    mfd: Refactor db8500-prcmu request_clock() function
    mfd: Rename db8500-prcmu init function
    mfd: Fix db5500-prcmu defines
    mfd: db8500-prcmu voltage domain consumers additions
    mfd: db8500-prcmu reset code retrieval
    mfd: db8500-prcmu tweak for modem wakeup
    mfd: Add db8500-pcmu watchdog accessor functions for watchdog
    mfd: hwacc power state db8500-prcmu accessor
    mfd: Add db8500-prcmu accessors for PLL and SGA clock
    mfd: Move to the new db500 PRCMU API
    mfd: Create a common interface for dbx500 PRCMU drivers
    mfd: Initialize DB8500 PRCMU regs
    ...

    Fix up trivial conflicts in
    arch/arm/mach-imx/mach-mx31moboard.c
    arch/arm/mach-omap2/board-omap3beagle.c
    arch/arm/mach-u300/include/mach/irqs.h
    drivers/mfd/wm831x-spi.c

    Linus Torvalds
     

01 Nov, 2011

2 commits


27 Oct, 2011

8 commits

  • This adds support for the 200 MHz frequency mode of the
    DB8500 SoC, and prints the available frequencies at init
    time.

    Cc: Vincent Guittot
    Signed-off-by: Linus Walleij
    Signed-off-by: Dave Jones

    Linus Walleij
     
  • Don't know why to do the loop iteration here. It looks unneeded.

    Signed-off-by: Axel Lin
    Signed-off-by: Dave Jones

    Axel Lin
     
  • We have various bootloaders for Exynos4210 machines. Some of they
    set the ARM core frequency at boot time even when the boot is a resume
    from suspend-to-RAM. Such changes may create inconsistency in the
    data of CPUFREQ driver and have incurred hang issues with suspend-to-RAM.

    This patch enables to save and restore CPU frequencies with pm-notifier and
    sets the frequency at the initial (boot-time) value so that there wouldn't
    be any inconsistency between bootloader and kernel. This patch does not
    use CPUFREQ's suspend/resume callbacks because they are syscore-ops, which
    do not allow to use mutex that is being used by regulators that are used by
    the target function.

    This also prevents any CPUFREQ transitions during suspend-resume context,
    which could be dangerous at noirq-context along with regulator framework.

    Signed-off-by: MyungJoo Ham
    Signed-off-by: Kyungmin Park
    Signed-off-by: Dave Jones

    MyungJoo Ham
     
  • The same clock is used for all cpus so we must notify the frequency change
    for each one in order to update the configuration of all twd clockevents.

    change since V1:
    * use policy->cpus instead of cpu_online_mask

    Signed-off-by: Vincent Guittot
    Signed-off-by: Dave Jones

    Vincent Guittot
     
  • Add new module option "set_max_voltage".
    One of the lessons learned from Adaptive Powersaver is that voltage values
    returned by processor are for worst case scenario. But required voltage
    is changing with CPU temperature. And even processors produced in the same
    batch can have different minimum voltage necessary for stable work at
    specified frequency.
    On Elonex Webbook, once system starts, temperature never drops below
    48 deg. C. Loading module after systems start allows user to lower CPU
    voltage and still have stable system.
    Sadly C7 doesn't allow code to set frequency or voltage from outside limits.
    If you ask it to set voltage lower then minimum it will ignore you. Thats
    why it isn't possible to change minimum voltage for minimum frequency too.
    Changing maximum voltage on Elonex Webbook leads to very good results. Looks
    like VIA C7 1.6GHz 1084mV can safetly run at 892mV. This means 83% of
    orginal value. If same percentage applies to power generated it means 12.5W
    in the place of 15W. Not much, but it is better then nothing.
    Only C7-M makes it possible.
    If voltage is too low by 16mV or more you will experience kernel panic.
    If voltage is too low by 32mV or more you will experience system freeze.

    Signed-off-by: Rafał Bilski
    Signed-off-by: Dave Jones

    Rafał Bilski
     
  • Call ACPI function to get BIOS limit for CPU frequency.
    Fail if processor would like to run at higher frequency.
    Allow user to ignore BIOS limit.

    eps: Detected VIA Model D C7-M
    eps: Current voltage = 1084mV
    eps: Current multiplier = 16
    eps: Highest voltage = 1084mV
    eps: Highest multiplier = 16
    eps: Lowest voltage = 844mV
    eps: Lowest multiplier = 4
    eps: ACPI limit 1.60GHz

    Signed-off-by: Rafał Bilski
    Signed-off-by: Dave Jones

    Rafał Bilski
     
  • Some systems are using 1,2Ghz@844mV processors running at 600MHz@796mV.
    Try to detect such systems and don't touch anything on it. If CPU doesn't have
    P-States in BIOS it should run at maximum frequency.
    Allow user to bypass checks by means of two new options.
    Don't set frequency to maximum on module unloading to avoid bada boom.
    It is also possible that some processors may have incorrect values in min/max
    registers caused by error in manufacturing process. Probably it would be BIOS
    job to set them to right frequency and P-States tables would have correct
    values inside.
    Two additional sanity checks for voltage.

    Signed-off-by: Rafał Bilski
    Signed-off-by: Dave Jones

    Rafał Bilski
     
  • This patch enables 'scaling_available_frequencies' attribute
    showing list of available frequencies.

    Signed-off-by: Donggeun Kim
    Signed-off-by: MyungJoo Ham
    Signed-off-by: KyungMin Park
    Signed-off-by: Dave Jones

    Donggeun Kim
     

26 Oct, 2011

1 commit

  • * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (23 commits)
    time, s390: Get rid of compile warning
    dw_apb_timer: constify clocksource name
    time: Cleanup old CONFIG_GENERIC_TIME references that snuck in
    time: Change jiffies_to_clock_t() argument type to unsigned long
    alarmtimers: Fix error handling
    clocksource: Make watchdog reset lockless
    posix-cpu-timers: Cure SMP accounting oddities
    s390: Use direct ktime path for s390 clockevent device
    clockevents: Add direct ktime programming function
    clockevents: Make minimum delay adjustments configurable
    nohz: Remove "Switched to NOHz mode" debugging messages
    proc: Consider NO_HZ when printing idle and iowait times
    nohz: Make idle/iowait counter update conditional
    nohz: Fix update_ts_time_stat idle accounting
    cputime: Clean up cputime_to_usecs and usecs_to_cputime macros
    alarmtimers: Rework RTC device selection using class interface
    alarmtimers: Add try_to_cancel functionality
    alarmtimers: Add more refined alarm state tracking
    alarmtimers: Remove period from alarm structure
    alarmtimers: Remove interval cap limit hack
    ...

    Linus Torvalds
     

24 Oct, 2011

1 commit

  • Now that we have a shared API between the DB8500 and DB5500
    PRCMU's, switch to using this neutral API instead. We delete the
    parts of db8500-prcmu.h that is now PRCMU-neutral, and calls will
    be diverted to respective driver. Common registers are in
    dbx500-prcmu-regs.h and common accessors and defines in
    This way we get a a lot more
    abstraction and code reuse.

    Signed-off-by: Mattias Nilsson
    Signed-off-by: Linus Walleij
    Signed-off-by: Samuel Ortiz

    Mattias Nilsson
     

15 Sep, 2011

2 commits


08 Sep, 2011

1 commit

  • update_ts_time_stat currently updates idle time even if we are in
    iowait loop at the moment. The only real users of the idle counter
    (via get_cpu_idle_time_us) are CPU governors and they expect to get
    cumulative time for both idle and iowait times.
    The value (idle_sleeptime) is also printed to userspace by print_cpu
    but it prints both idle and iowait times so the idle part is misleading.

    Let's clean this up and fix update_ts_time_stat to account both counters
    properly and update consumers of idle to consider iowait time as well.
    If we do this we might use get_cpu_{idle,iowait}_time_us from other
    contexts as well and we will get expected values.

    Signed-off-by: Michal Hocko
    Cc: Dave Jones
    Cc: Arnd Bergmann
    Cc: Alexey Dobriyan
    Link: http://lkml.kernel.org/r/e9c909c221a8da402c4da07e4cd968c3218f8eb1.1314172057.git.mhocko@suse.cz
    Signed-off-by: Thomas Gleixner

    Michal Hocko
     

09 Aug, 2011

1 commit


27 Jul, 2011

1 commit

  • * 'drm-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6: (135 commits)
    drm/radeon/kms: fix DP training for DPEncoderService revision bigger than 1.1
    drm/radeon/kms: add missing vddci setting on NI+
    drm/radeon: Add a rmb() in IH processing
    drm/radeon: ATOM Endian fix for atombios_crtc_program_pll()
    drm/radeon: Fix the definition of RADEON_BUF_SWAP_32BIT
    drm/radeon: Do an MMIO read on interrupts when not uisng MSIs
    drm/radeon: Writeback endian fixes
    drm/radeon: Remove a bunch of useless _iomem casts
    drm/gem: add support for private objects
    DRM: clean up and document parsing of video= parameter
    DRM: Radeon: Fix section mismatch.
    drm: really make debug levels match in edid failure code
    drm/radeon/kms: fix i2c map for rv250/280
    drm/nouveau/gr: disable fifo access and idle before suspend ctx unload
    drm/nouveau: pass flag to engine fini() method on suspend
    drm/nouveau: replace nv04_graph_fifo_access() use with direct reg bashing
    drm/nv40/gr: rewrite/split context takedown functions
    drm/nouveau: detect disabled device in irq handler and return IRQ_NONE
    drm/nouveau: ignore connector type when deciding digital/analog on DVI-I
    drm/nouveau: Add a quirk for Gigabyte NX86T
    ...

    Linus Torvalds
     

26 Jul, 2011

1 commit

  • * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (99 commits)
    drivers/virt: add missing linux/interrupt.h to fsl_hypervisor.c
    powerpc/85xx: fix mpic configuration in CAMP mode
    powerpc: Copy back TIF flags on return from softirq stack
    powerpc/64: Make server perfmon only built on ppc64 server devices
    powerpc/pseries: Fix hvc_vio.c build due to recent changes
    powerpc: Exporting boot_cpuid_phys
    powerpc: Add CFAR to oops output
    hvc_console: Add kdb support
    powerpc/pseries: Fix hvterm_raw_get_chars to accept < 16 chars, fixing xmon
    powerpc/irq: Quieten irq mapping printks
    powerpc: Enable lockup and hung task detectors in pseries and ppc64 defeconfigs
    powerpc: Add mpt2sas driver to pseries and ppc64 defconfig
    powerpc: Disable IRQs off tracer in ppc64 defconfig
    powerpc: Sync pseries and ppc64 defconfigs
    powerpc/pseries/hvconsole: Fix dropped console output
    hvc_console: Improve tty/console put_chars handling
    powerpc/kdump: Fix timeout in crash_kexec_wait_realmode
    powerpc/mm: Fix output of total_ram.
    powerpc/cpufreq: Add cpufreq driver for Momentum Maple boards
    powerpc: Correct annotations of pmu registration functions
    ...

    Fix up trivial Kconfig/Makefile conflicts in arch/powerpc, drivers, and
    drivers/cpufreq

    Linus Torvalds
     

19 Jul, 2011

1 commit


14 Jul, 2011

17 commits

  • …t/keithp/linux-2.6 into drm-core-next

    * 'drm-intel-next' of ssh://master.kernel.org/pub/scm/linux/kernel/git/keithp/linux-2.6: (52 commits)
    drm/i915: provide module parameter description
    drm/i915: add module parameter compiler hints
    drm/i915/bios: Avoid temporary allocation whilst searching for downclock
    drm/i915: Cache GT fifo count for SandyBridge
    i915: Fix opregion notifications
    drm/i915: TVDAC_STATE_CHG does not indicate successful load-detect
    drm/i915: Select correct pipe during TV detect
    drm/i915/ringbuffer: Idling requires waiting for the ring to be empty
    Revert "drm/i915: enable rc6 by default"
    drm/i915: Clean up i915_driver_load failure path
    drm/i915: Enable i915 frame buffer compression by default
    drm/i915: Share the common work of disabling active FBC before updating
    drm/i915: Perform intel_enable_fbc() from a delayed task
    drm/i915: Disable FBC across page-flipping
    drm/i915: Set persistent-mode for ILK/SNB framebuffer compression
    drm/i915: Use of a CPU fence is mandatory to update FBC regions upon CPU writes
    drm/i915: Remove vestigial pitch from post-gen2 FBC control routines
    drm/i915: Replace direct calls to vfunc.disable_fbc with intel_disable_fbc()
    drm/i915: Only export the generic intel_disable_fbc() interface
    drm/i915: Enable GPU reset on Ivybridge.
    ...

    Dave Airlie
     
  • The following symbols are needlessly defined global:
    s5pv210_verify_speed
    s5pv210_getspeed

    Make them static.

    Signed-off-by: Axel Lin
    Acked-by: Kukjin Kim
    Signed-off-by: Dave Jones

    Axel Lin
     
  • The following symbols are needlessly defined global:
    exynos4_verify_speed
    exynos4_getspeed
    exynos4_set_clkdiv

    Make them static.

    Signed-off-by: Axel Lin
    Acked-by: Kukjin Kim
    Signed-off-by: Dave Jones

    Axel Lin
     
  • By extension from the 667MHz based clocks currently supported add 100MHz
    and 200MHz operating points. Due to a lack of documentation these have not
    been confirmed as supported but by extension from the existing frequencies
    they should be OK, and I've given them quite a bit of runtime testing.

    The major risk is synchronization with the non-ARM clocks but as we
    can't currently scale the ARM PLL the risk should be relatively low.

    Signed-off-by: Mark Brown
    Acked-by: Kukjin Kim
    Signed-off-by: Dave Jones

    Mark Brown
     
  • When system reboot, the CPUFREQ level should be 800MHz to prevent
    system lockup.

    Signed-off-by: Huisung Kang
    Signed-off-by: Jonghwan Choi
    Signed-off-by: Kukjin Kim
    Signed-off-by: Dave Jones

    Huisung Kang
     
  • Voltage scaling accesses the MAX8998 regulators over bit-banged I2C
    with lots of udelays. In the case of decreasing CPU speed, the
    number of loops per us for udelay needs to be adjusted prior to
    decreasing voltage to avoid delaying for up to 10X too long.

    Signed-off-by: Todd Poynor
    Signed-off-by: Jonghwan Choi
    Signed-off-by: Kukjin Kim
    Signed-off-by: Dave Jones

    Todd Poynor
     
  • Without this lock the call to change the frequency for suspend could
    switch to a new frequency while another thread was still changing the
    cpu voltage.

    Signed-off-by: Arve Hjønnevåg
    Signed-off-by: Jonghwan Choi
    Signed-off-by: Kukjin Kim
    Signed-off-by: Dave Jones

    Arve Hjønnevåg
     
  • Minimum 800MHz is needed to enter/exit suspend mode due to voltage mismatch.

    Signed-off-by: Huisung Kang
    Signed-off-by: Jonghwan Choi
    Signed-off-by: Kukjin Kim
    Signed-off-by: Dave Jones

    Huisung Kang
     
  • Signed-off-by: Jonghwan Choi
    Signed-off-by: Kukjin Kim
    Signed-off-by: Dave Jones

    Jonghwan Choi
     
  • Relation has an additional symantics other than standard.
    s5pv310_target funtion have below additional relation.
    - DISABLE_FURTHER_CPUFREQ : disable further access to target
    - ENABLE_FURTHER_CPUFRER : enable access to target

    Signed-off-by: Huisung Kang
    Signed-off-by: Jonghwan Choi
    Signed-off-by: Kukjin Kim
    Signed-off-by: Dave Jones

    Huisung Kang
     
  • The CPUFREQ_POSTCHANGE notification is used to update things that depend on
    the system clock rates. Since this may include the interfaces used to talk
    to the regulators do the notification before we try to update regulators
    to reflect lowered system clock rate.

    The voltage scaling is just a power optimisation and may not happen at all
    so there's no concern about it not having completed.

    Signed-off-by: Mark Brown
    Acked-by: Kukjin Kim
    Signed-off-by: Dave Jones

    Mark Brown
     
  • At least some newer S3C6410 silicon supports operation up to 800MHz rather
    than just 667MHz. Unfortunately I don't have access to any of documentation
    of this other than some running systems, add a new cpufreq table entry for
    this based on the behaviour of those systems.

    Signed-off-by: Mark Brown
    Acked-by: Kukjin Kim
    Signed-off-by: Dave Jones

    Mark Brown
     
  • The successive calls to clk_get each call clk_put in the case of failure,
    but this is not done for subsequent error handling code. The calls to
    clk_get are moved to the end of the function, and appropriate gotos are
    added.

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

    //
    @r exists@
    expression e1,e2;
    statement S;
    @@

    e1 = clk_get@p1(...);
    ... when != e1 = e2
    when != clk_put(e1)
    when any
    if (...) { ... when != clk_put(e1)
    when != if (...) { ... clk_put(e1) ... }
    * return@p3 ...;
    } else S
    //

    Signed-off-by: Julia Lawall
    Signed-off-by: Kukjin Kim
    Signed-off-by: Dave Jones

    Julia Lawall
     
  • Cc: Mark Brown
    Signed-off-by: Kukjin Kim
    Signed-off-by: Dave Jones

    Kukjin Kim
     
  • Dave Jones
     
  • According to discussion of the ARM arch subsystem migration,
    ARM cpufreq drivers move to drivers/cpufreq. So this patch
    adds Kconfig.arm for ARM like x86 and adds Samsung S5PV210
    and EXYNOS4210 cpufreq driver compile in there.
    As a note, otherw will be moved.

    Cc: Dave Jones
    Signed-off-by: Kukjin Kim
    Signed-off-by: Dave Jones

    Kukjin Kim
     
  • This is a straight code motion patch, there are no changes to the driver
    itself. The Kconfig is left untouched as the ARM CPUfreq Kconfig is all
    in one big block in arm/Kconfig and should be moved en masse rather than
    being done piecemeal.

    Signed-off-by: Mark Brown
    Signed-off-by: Dave Jones

    Mark Brown