21 Jul, 2010

1 commit

  • My Collabora address is no longer enabled - update the MODULE_AUTHOR
    fields of drivers to my current email address.

    Signed-off-by: Andres Salomon
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andres Salomon
     

22 Jun, 2010

1 commit


02 Jun, 2010

2 commits

  • Based on the sh_tmu change in 66f49121ffa41a19c59965b31b046d8368fec3c7
    ("clocksource: sh_tmu: compute mult and shift before registration").
    The same issues impact the sh_cmt driver, so we take the same approach
    here.

    Cc: stable@kernel.org
    Signed-off-by: Paul Mundt

    Paul Mundt
     
  • Since commit 98962465ed9e6ea99c38e0af63fe1dcb5a79dc25 ("nohz: Prevent
    clocksource wrapping during idle"), the CPU of an R2D board never goes
    to idle. This commit assumes that mult and shift are assigned before
    the clocksource is registered. As a consequence the safe maximum sleep
    time is negative and the CPU never goes into idle.

    This patch fixes the problem by moving mult and shift initialization
    from sh_tmu_clocksource_enable() to sh_tmu_register_clocksource().

    Signed-off-by: Aurelien Jarno
    Cc: stable@kernel.org
    Signed-off-by: Paul Mundt

    Aurelien Jarno
     

20 May, 2010

1 commit


26 Apr, 2010

1 commit


15 Apr, 2010

1 commit


30 Mar, 2010

1 commit

  • …it slab.h inclusion from percpu.h

    percpu.h is included by sched.h and module.h and thus ends up being
    included when building most .c files. percpu.h includes slab.h which
    in turn includes gfp.h making everything defined by the two files
    universally available and complicating inclusion dependencies.

    percpu.h -> slab.h dependency is about to be removed. Prepare for
    this change by updating users of gfp and slab facilities include those
    headers directly instead of assuming availability. As this conversion
    needs to touch large number of source files, the following script is
    used as the basis of conversion.

    http://userweb.kernel.org/~tj/misc/slabh-sweep.py

    The script does the followings.

    * Scan files for gfp and slab usages and update includes such that
    only the necessary includes are there. ie. if only gfp is used,
    gfp.h, if slab is used, slab.h.

    * When the script inserts a new include, it looks at the include
    blocks and try to put the new include such that its order conforms
    to its surrounding. It's put in the include block which contains
    core kernel includes, in the same order that the rest are ordered -
    alphabetical, Christmas tree, rev-Xmas-tree or at the end if there
    doesn't seem to be any matching order.

    * If the script can't find a place to put a new include (mostly
    because the file doesn't have fitting include block), it prints out
    an error message indicating which .h file needs to be added to the
    file.

    The conversion was done in the following steps.

    1. The initial automatic conversion of all .c files updated slightly
    over 4000 files, deleting around 700 includes and adding ~480 gfp.h
    and ~3000 slab.h inclusions. The script emitted errors for ~400
    files.

    2. Each error was manually checked. Some didn't need the inclusion,
    some needed manual addition while adding it to implementation .h or
    embedding .c file was more appropriate for others. This step added
    inclusions to around 150 files.

    3. The script was run again and the output was compared to the edits
    from #2 to make sure no file was left behind.

    4. Several build tests were done and a couple of problems were fixed.
    e.g. lib/decompress_*.c used malloc/free() wrappers around slab
    APIs requiring slab.h to be added manually.

    5. The script was run on all .h files but without automatically
    editing them as sprinkling gfp.h and slab.h inclusions around .h
    files could easily lead to inclusion dependency hell. Most gfp.h
    inclusion directives were ignored as stuff from gfp.h was usually
    wildly available and often used in preprocessor macros. Each
    slab.h inclusion directive was examined and added manually as
    necessary.

    6. percpu.h was updated not to include slab.h.

    7. Build test were done on the following configurations and failures
    were fixed. CONFIG_GCOV_KERNEL was turned off for all tests (as my
    distributed build env didn't work with gcov compiles) and a few
    more options had to be turned off depending on archs to make things
    build (like ipr on powerpc/64 which failed due to missing writeq).

    * x86 and x86_64 UP and SMP allmodconfig and a custom test config.
    * powerpc and powerpc64 SMP allmodconfig
    * sparc and sparc64 SMP allmodconfig
    * ia64 SMP allmodconfig
    * s390 SMP allmodconfig
    * alpha SMP allmodconfig
    * um on x86_64 SMP allmodconfig

    8. percpu.h modifications were reverted so that it could be applied as
    a separate patch and serve as bisection point.

    Given the fact that I had only a couple of failures from tests on step
    6, I'm fairly confident about the coverage of this conversion patch.
    If there is a breakage, it's likely to be something in one of the arch
    headers which should be easily discoverable easily on most builds of
    the specific arch.

    Signed-off-by: Tejun Heo <tj@kernel.org>
    Guess-its-ok-by: Christoph Lameter <cl@linux-foundation.org>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Lee Schermerhorn <Lee.Schermerhorn@hp.com>

    Tejun Heo
     

29 Mar, 2010

1 commit

  • We want to get rid of the clock string from platform data entirely,
    depending on the clkdev-based clock lookup to do the right thing for us
    instead.

    This converts all of the SH drivers to request their associated function
    clocks directly, and if there is no match for that then we fall back on
    the legacy lookup while warning about it. After all of the outstanding
    CPUs have been converted to clkdev lookups the clock string will be
    killed off completely.

    Signed-off-by: Paul Mundt

    Paul Mundt
     

13 Mar, 2010

1 commit

  • Due to a hardware limitation cs5535_mfgpt_free_timer() cannot actually
    release the timer hardware, but it will at least free the now unreferenced
    struct associated with it so calling it is the cleaner thing to do.

    Signed-off-by: Jens Rottmann
    Acked-by: Andres Salomon
    Cc: Jordan Crouse
    Cc: Ingo Molnar
    Cc: john stultz
    Signed-off-by: Andrew Morton
    Signed-off-by: Thomas Gleixner

    Jens Rottmann
     

10 Mar, 2010

1 commit


07 Mar, 2010

1 commit

  • Move the CS5535 MFGPT hrtimer kconfig option to be with the other MFGPT
    options. This makes it easier to find and also removes it from the main
    "Device Drivers" menu, where it should not have been.

    Signed-off-by: Randy Dunlap
    Acked-by: Andres Salomon
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     

02 Mar, 2010

1 commit


27 Feb, 2010

1 commit

  • * git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6: (187 commits)
    sh: remove dead LED code for migo-r and ms7724se
    sh: ecovec build fix for CONFIG_I2C=n
    sh: ecovec r-standby support
    sh: ms7724se r-standby support
    sh: SH-Mobile R-standby register save/restore
    clocksource: Fix up a registration/IRQ race in the sh drivers.
    sh: ms7724: modify scan_timing for KEYSC
    sh: ms7724: Add sh_sir support
    sh: mach-ecovec24: Add sh_sir support
    sh: wire up SET/GET_UNALIGN_CTL.
    sh: allow alignment fault mode to be configured at kernel boot.
    sh: sh7724: Update FSI/SPU2 clock
    sh: always enable sh7724 vpu_clk and set to 166MHz on Ecovec
    sh: add sh7724 kick callback to clk_div4_table
    sh: introduce struct clk_div4_table
    sh: clock-cpg div4 set_rate() shift fix
    sh: Turn on speculative return for SH7785 and SH7786
    sh: Merge legacy and dynamic PMB modes.
    sh: Use uncached I/O helpers in PMB setup.
    sh: Provide uncached I/O helpers.
    ...

    Linus Torvalds
     

25 Feb, 2010

1 commit

  • All of the SH clocksource drivers follow the scheme that the IRQ is setup
    prior to registering the clockevent. The interrupt handler in the
    clockevent cases looks to the event handler function pointer being filled
    in by the registration code, permitting us to get in to situations where
    asserted IRQs step in to the handler before registration has had a chance
    to complete and hitting a NULL pointer deref.

    In practice this is not an issue for most platforms, but some of them
    with fairly special loaders (or that are chain-loading from another
    kernel) may enter in to this situation. This fixes up the oops reported
    by Rafael on hp6xx.

    Reported-and-tested-by: Rafael Ignacio Zurita
    Cc: stable@kernel.org
    Signed-off-by: Paul Mundt

    Paul Mundt
     

23 Feb, 2010

1 commit

  • geode-mfgpt: restore previous behavior for selecting IRQ

    The MFGPT IRQ used to be, in order of decreasing priority,
    * IRQ supplied by the user as a boot-time parameter,
    * IRQ previously set by the BIOS or another driver,
    * default IRQ given at compile time.

    Return to this behavior, which got broken when splitting the
    MFGPT/clocksource driver for 2.6.33-rc1.

    Signed-off-by: Jens Rottmann
    Acked-by: Andres Salomon
    Cc: Jordan Crouse
    Cc: Ingo Molnar
    Cc: john stultz
    Acked-by: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jens Rottmann
     

05 Feb, 2010

1 commit

  • Add code to start the CMT timer on clocksource resume. While at it handle
    the suspend case as well. Remove the platform device specific suspend
    calls.

    This makes sure the timer is started during sysdev_resume(). Without this
    patch the clocksource may be read as suspended, this after sysdev resume
    but before platform device resume.

    Signed-off-by: Magnus Damm
    Cc: john stultz
    Cc: Paul Mundt
    Signed-off-by: Andrew Morton
    Signed-off-by: Thomas Gleixner

    Magnus Damm
     

16 Dec, 2009

1 commit

  • This is based on the old code in arch/x86/kernel/mfgpt_32.c, but is
    modular and not Geode-specific. There's no reason why the clock event
    device needs to be registered so early at boot; the clockevent code is
    perfectly capable of dynamic switching.

    [akpm@linux-foundation.org: add linux/irq.h include]
    Signed-off-by: Andres Salomon
    Cc: Jordan Crouse
    Cc: Ingo Molnar
    Cc: Thomas Gleixner
    Cc: john stultz
    Cc: Chris Ball
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andres Salomon
     

15 Aug, 2009

1 commit

  • This patch updates the SuperH CMT driver with suspend and resume
    callbacks for the suspend-to-ram case. This patch stops the CMT
    channel at suspend time to avoid unwanted wake up events.

    Signed-off-by: Magnus Damm
    Signed-off-by: Paul Mundt

    Magnus Damm
     

24 Jun, 2009

1 commit


17 Jun, 2009

3 commits

  • …tes' and 'sh/perf_counter'

    Paul Mundt
     
  • Modify the CMT and TMU drivers to disable interrupts when
    disabling the timer. Only using start/stop bits is not
    enough.

    This fixes a bootup hang on Migo-R when the CMT is replaced
    by TMU for clockevents but the CMT keeps on delivering irqs
    even though the timer start bit is off.

    Signed-off-by: Magnus Damm
    Signed-off-by: Paul Mundt

    Magnus Damm
     
  • PIT_TICK_RATE is currently defined in four architectures, but in three
    different places. While linux/timex.h is not the perfect place for it, it
    is still a reasonable replacement for those drivers that traditionally use
    asm/timex.h to get CLOCK_TICK_RATE and expect it to be the PIT frequency.

    Note that for Alpha, the actual value changed from 1193182UL to 1193180UL.
    This is unlikely to make a difference, and probably can only improve
    accuracy. There was a discussion on the correct value of CLOCK_TICK_RATE
    a few years ago, after which every existing instance was getting changed
    to 1193182. According to the specification, it should be
    1193181.818181...

    Signed-off-by: Arnd Bergmann
    Cc: Richard Henderson
    Cc: Ivan Kokshaysky
    Cc: Ralf Baechle
    Cc: Benjamin Herrenschmidt
    Cc: Ingo Molnar
    Cc: Thomas Gleixner
    Cc: "H. Peter Anvin"
    Cc: Len Brown
    Cc: john stultz
    Cc: Dmitry Torokhov
    Cc: Takashi Iwai
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Arnd Bergmann
     

14 Jun, 2009

1 commit


03 May, 2009

4 commits

  • Neither of these need to be exported, so just make them static.

    Signed-off-by: Paul Mundt

    Paul Mundt
     
  • All of the SH timers use a roughly identical structure for platform data,
    which presently is broken out for each block. Consolidate all of these
    definitions, as there is no reason for them to be broken out in the first
    place.

    Signed-off-by: Paul Mundt

    Paul Mundt
     
  • This patch adds a TMU driver for the SuperH architecture.

    The TMU driver is a platform driver with early platform
    support to allow using a TMU channel as clockevent or
    clocksource during system bootup or later.

    Clocksource or clockevent can be selected.
    Both periodic and oneshot clockevents are supported.

    Signed-off-by: Magnus Damm
    Signed-off-by: Paul Mundt

    Magnus Damm
     
  • This patch adds a MTU2 driver for the SuperH architecture.

    The MTU2 driver is a platform driver with early platform
    support to allow using a MTU2 channel as only clockevent
    during system bootup.

    Clocksource on sh2a is currently unsupported due to code
    generation issues with 64-bit math, so at this point only
    periodic clockevent support is in place.

    Signed-off-by: Magnus Damm
    Signed-off-by: Paul Mundt

    Magnus Damm
     

30 Apr, 2009

1 commit


28 Apr, 2009

2 commits

  • This patch moves the SuperH timer setup code from time_init()
    to late_time_init(). Good things about this change:
    - interrupts: they are enabled at late_time_init()
    - mm: regular kmalloc() can be used at late_time_init()

    Together with moving to late_time_init() this patch changes
    the sh_cmt driver to always allocate with kmalloc(). This
    simplifies the code a bit and also fixes section mismatches.

    Signed-off-by: Magnus Damm
    Signed-off-by: Paul Mundt

    Magnus Damm
     
  • This patch improves the sh_cmt clocksource handling.

    Currently the counter value is ignored in the case of
    overflow. With this patch the overflow flag is read
    before and after reading the counter, removing any
    counter value and overflow flag mismatch issues.

    Signed-off-by: Magnus Damm
    Signed-off-by: Paul Mundt

    Magnus Damm
     

22 Apr, 2009

3 commits


19 Apr, 2009

1 commit


02 Apr, 2009

1 commit


28 Mar, 2009

1 commit


29 Jan, 2009

2 commits

  • We are getting rid of subarchitecture support - move the hook files
    to asm/. (These are now stale and should be replaced with more explicit
    runtime mechanisms - but the transition is simpler this way.)

    Signed-off-by: Ingo Molnar

    Ingo Molnar
     
  • SuperH CMT clockevent driver.

    Both 16-bit and 32-bit CMT versions are supported, but only 32-bit
    is tested. This driver contains support for both clockevents and
    clocksources, but no unregistration is supported at this point.

    Works fine as clock source and/or event in periodic or oneshot mode.
    Tested on sh7722 and sh7723, but should work with any cpu/architecture.

    This version is lacking clocksource and early platform driver support
    for now - this to minimize the amount of dependencies.

    Signed-off-by: Magnus Damm
    Signed-off-by: Paul Mundt

    Magnus Damm
     

03 Jan, 2009

1 commit

  • …/git/tip/linux-2.6-tip

    * 'cpus4096-for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (66 commits)
    x86: export vector_used_by_percpu_irq
    x86: use logical apicid in x2apic_cluster's x2apic_cpu_mask_to_apicid_and()
    sched: nominate preferred wakeup cpu, fix
    x86: fix lguest used_vectors breakage, -v2
    x86: fix warning in arch/x86/kernel/io_apic.c
    sched: fix warning in kernel/sched.c
    sched: move test_sd_parent() to an SMP section of sched.h
    sched: add SD_BALANCE_NEWIDLE at MC and CPU level for sched_mc>0
    sched: activate active load balancing in new idle cpus
    sched: bias task wakeups to preferred semi-idle packages
    sched: nominate preferred wakeup cpu
    sched: favour lower logical cpu number for sched_mc balance
    sched: framework for sched_mc/smt_power_savings=N
    sched: convert BALANCE_FOR_xx_POWER to inline functions
    x86: use possible_cpus=NUM to extend the possible cpus allowed
    x86: fix cpu_mask_to_apicid_and to include cpu_online_mask
    x86: update io_apic.c to the new cpumask code
    x86: Introduce topology_core_cpumask()/topology_thread_cpumask()
    x86: xen: use smp_call_function_many()
    x86: use work_on_cpu in x86/kernel/cpu/mcheck/mce_amd_64.c
    ...

    Fixed up trivial conflict in kernel/time/tick-sched.c manually

    Linus Torvalds