14 Jan, 2009

1 commit


13 Jan, 2009

23 commits

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

    * 'core-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    sparc64: Fix cpumask related build failure
    smp_call_function_single(): be slightly less stupid, fix
    smp_call_function_single(): be slightly less stupid
    rcu: fix bug in rcutorture system-shutdown code

    Linus Torvalds
     
  • * 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus: (37 commits)
    MIPS: Only write c0_framemask on CPUs which have this register.
    MIPS: Alchemy: new userspace suspend interface for development boards.
    MIPS: Alchemy: dbdma suspend/resume support.
    MIPS: Alchemy: Fix up PM code on Au1550/Au1200
    MIPS: Alchemy: move calc_clock function.
    MIPS: Alchemy: RTC counter clocksource / clockevent support.
    MIPS: make cp0 counter clocksource/event usable as fallback.
    MIPS: Alchemy: remove cpu_table.
    MIPS: Alchemy: remove get/set_au1x00_lcd_clock().
    MIPS: Print irq handler description
    MIPS: Alchemy: pb1200: update CPLD cascade irq handler.
    MIPS: Alchemy: update core interrupt code.
    MIPS: Alchemy: move commandline mangling out of common code
    MIPS: Alchemy: devboards: consolidate files
    MIPS: Alchemy: Move development board code to common subdirectory
    MIPS: Add Cavium OCTEON to arch/mips/Kconfig
    MIPS: Add defconfig for Cavium OCTEON.
    MIPS: Adjust the dma-common.c platform hooks.
    MIPS: Add Cavium OCTEON slot into proper tlb category.
    MIPS: Compute branch returns for Cavium OCTEON specific branch instructions.
    ...

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6:
    sparc: Fix asm/signal.h for 32-bit.
    sparc: Eliminate PROMLIB_INTERNAL as it does nothing
    sparc: Kill exports of prom internal functions
    sparc64: move EXPORT_SYMBOL to the symbols definition
    sparc: move EXPORT_SYMBOL to the symbols definition
    sparc: Create a new file lib/ksyms.c and add export of all symbols defined in assembler in lib/ to this file.
    sparc: Most unaligned_64.c tweaks for branch tracer warnings.
    sparc: Fix sun4d_irq.c build.
    sparc: Update 32-bit defconfig.
    sparc64: fix warnings in psycho_common after ull conversion

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog:
    [WATCHDOG] Pika Warp appliance watchdog timer
    [WATCHDOG] Enable watchdog timer on GE Fanuc's SBC610
    [WATCHDOG] Basic support for GE Fanuc's FPGA based watchdog timer
    [WATCHDOG] wm8350: Fix section annotations

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k: (30 commits)
    m68k: Fix --build-id breakage for sun3
    m68k: Wire up sys_restart_syscall
    fbdev: Kill Atari vblank cursor blinking
    m68k: zorro - Use %pR to print resources
    m68k: dio - Kill resource_size_t format warnings
    m68k: dmasound - Kill warn_unused_result warnings
    m68k: zorro - Kill warn_unused_result warnings
    m68k: dio - Kill warn_unused_result warnings
    m68k: atafb - Kill warn_unused_result warnings
    m68k: amiserial - Kill warn_unused_result warnings
    m68k: ser_a2232 - Kill warn_unused_result warnings
    m68k: vme_scc - Kill warn_unused_result warnings
    m68k: sun3 core - Kill warn_unused_result warnings
    m68k: mvme147 core - Kill warn_unused_result warnings
    m68k: mac core - Kill warn_unused_result warnings
    m68k: hp300 core - Kill warn_unused_result warnings
    m68k: atari core - Kill warn_unused_result warnings
    m68k: apollo core - Kill warn_unused_result warnings
    m68k: amiga core - Kill warn_unused_result warnings
    m68k: Kill several external declarations in source files
    ...

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

    * 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    Revert "cpumask: use work_on_cpu in acpi-cpufreq.c for drv_read and drv_write"
    x86: fix apic.c build error on latest git
    x86: fix mpparse.c build error on latest git
    x86: avoid theoretical vmalloc fault loop
    x86, mtrr: fix types used in userspace exported header

    Linus Torvalds
     
  • Support for the FPGA based watchdog timer on GE Fanuc's SBC610.

    This patch enables one of the watchdog timers found on the SBC610. There are
    two identical watchdog timers at different offsets in the above mentioned
    boards, however the current driver is only capable of supporting one of them.

    The watchdog timers are also capable of generating interrupts at a
    user-configurable threshold, though support for this operation is currently
    not supported by the driver.

    Signed-off-by: Martyn Welch
    Signed-off-by: Wim Van Sebroeck

    Martyn Welch
     
  • Counterpart of commit 08a3db94f2a36c28278922732bc281c1722ceb18 ("m68k: Add
    NOTES to init data so its discarded at boot") for sun3 build.

    Signed-off-by: Al Viro
    Signed-off-by: Geert Uytterhoeven

    Al Viro
     
  • Make restart blocks working, required for proper syscall restarting.

    Signed-off-by: Andreas Schwab
    Signed-off-by: Geert Uytterhoeven

    Andreas Schwab
     
  • warning: ignoring return value of 'request_irq', declared with attribute
    warn_unused_result

    Signed-off-by: Geert Uytterhoeven

    Geert Uytterhoeven
     
  • warning: ignoring return value of 'request_irq', declared with attribute
    warn_unused_result

    Signed-off-by: Geert Uytterhoeven

    Geert Uytterhoeven
     
  • warning: ignoring return value of 'request_irq', declared with attribute
    warn_unused_result

    Signed-off-by: Geert Uytterhoeven

    Geert Uytterhoeven
     
  • warning: ignoring return value of 'request_irq', declared with attribute
    warn_unused_result

    Signed-off-by: Geert Uytterhoeven

    Geert Uytterhoeven
     
  • warning: ignoring return value of 'request_irq', declared with attribute
    warn_unused_result

    Signed-off-by: Geert Uytterhoeven

    Geert Uytterhoeven
     
  • warning: ignoring return value of 'request_irq', declared with attribute
    warn_unused_result

    Signed-off-by: Geert Uytterhoeven

    Geert Uytterhoeven
     
  • warning: ignoring return value of 'request_irq', declared with attribute
    warn_unused_result

    Signed-off-by: Geert Uytterhoeven

    Geert Uytterhoeven
     
  • - Replace external declarations by proper includes where availiable.
    The accesses to some symbols had to be modified, as before they were
    declared using e.g. "extern int _end", while asm-generic/sections.h uses
    e.g. "extern char _end[]"
    - Remove unused or superfluous external declarations

    Signed-off-by: Geert Uytterhoeven

    Geert Uytterhoeven
     
  • arch/m68k/kernel/.gitignore: Added vmlinux.lds to .gitignore file because it
    shouldn't be tracked.

    Signed-off-by: Kars de Jong
    Signed-off-by: Geert Uytterhoeven

    Kars de Jong
     
  • This reverts commit e0c7317557c8fc8eacf611e30c2a80f4e24e47a3.

    This patch was wrong, as lockdep (and thus the irq state tracer)
    aren't nmi safe. People are already seeing lockdep warnings due
    to this.

    Signed-off-by: Ingo Molnar

    Ingo Molnar
     
  • This reverts commit 7503bfbae89eba07b46441a5d1594647f6b8ab7d.

    Dieter Ries reported bootup soft-hangs and bisected it back to
    this commit, and reverting this commit gave him a working system.

    The commit introduces work_on_cpu() use into the cpufreq code,
    but that is subtly problematic from a lock hierarchy POV: the
    hotplug-cpu lock is an highlevel lock that is taken before
    lowlevel locks, and in this codepath we are called with the
    policy lock taken.

    Dieter did not have lockdep enabled so we dont have a nice stack
    trace proof for this, but using work_on_cpu() in such a lowlevel
    place certainly looks wrong, so we revert the patch.

    work_on_cpu() needs to be reworked to be more generally usable.

    Reported-by: Dieter Ries
    Tested-by: Dieter Ries
    Signed-off-by: Ingo Molnar

    Ingo Molnar
     
  • Fix this by reintroducing asm/smp.h include in apic.c - later on
    I will fix this by removing non-smp data from smp.h

    Also fix the __inquire_remote_apic() prototype/inline.

    Signed-off-by: Jaswinder Singh Rajput
    Signed-off-by: Ingo Molnar

    Jaswinder Singh Rajput
     
  • Fix this by reintroducing asm/smp.h include in mpparse.c - later on
    I will fix this by removing non-smp data from smp.h.

    Reported-by: Petr Titera
    Signed-off-by: Jaswinder Singh Rajput
    Signed-off-by: Ingo Molnar

    Jaswinder Singh Rajput
     
  • Ajith Kumar noticed:

    I was going through the vmalloc fault handling for x86_64 and am unclear
    about the following lines in the vmalloc_fault() function.

    pgd = pgd_offset(current->mm ?: &init_mm, address);
    pgd_ref = pgd_offset_k(address);

    Here the intention is to get the pgd corresponding to the current process
    and sync it up with the pgd in init_mm(obtained from pgd_offset_k).
    However, for kernel threads current->mm is NULL and hence pgd =
    pgd_offset(init_mm, address) = pgd_ref which means the fault handler
    returns without setting the pgd entry in the MM structure in the context
    of which the kernel thread has faulted. This could lead to never-ending
    faults and busy looping of kernel threads like pdflush. So, shouldn't the
    pgd = pgd_offset(current->mm ?: &init_mm, address); be pgd =
    pgd_offset(current->active_mm ?: &init_mm, address);

    We can use active_mm unconditionally because it should be always set.

    Signed-off-by: Andi Kleen
    Signed-off-by: Andrew Morton
    Signed-off-by: Ingo Molnar

    Andi Kleen
     

12 Jan, 2009

1 commit


11 Jan, 2009

15 commits

  • cpumask_of_pcibus() was missing - this triggers on NUMA builds.

    Signed-off-by: David S. Miller
    Signed-off-by: Ingo Molnar

    David Miller
     
  • Signed-off-by: Ralf Baechle

    Ralf Baechle
     
  • Replace the current sysctl-based suspend interface with a new sysfs-
    based one which also uses the Linux-2.6 suspend model.

    To configure wakeup sources, a subtree for the demoboards is created
    under /sys/power/db1x:

    sys/
    `-- power
    `-- db1x
    |-- gpio0
    |-- gpio1
    |-- gpio2
    |-- gpio3
    |-- gpio4
    |-- gpio5
    |-- gpio6
    |-- gpio7
    |-- timer
    |-- timer_timeout
    |-- wakemsk
    `-- wakesrc

    The nodes 'gpio[0-7]' and 'timer' configure the GPIO0..7 and M2
    bits of the SYS_WAKEMSK (wakeup source enable) register. Writing '1'
    enables a wakesource, 0 disables it.

    The 'timer_timeout' node holds the timeout in seconds after which the
    TOYMATCH2 event should wake the system.

    The 'wakesrc' node holds the SYS_WAKESRC register after wakeup (in hex),
    the 'wakemsk' node can be used to get/set the wakeup mask directly.

    For example, to have the timer wake the system after 10 seconds of sleep,
    the following must be done in userspace:

    echo 10 > /sys/power/db1x/timer_timeout
    echo 1 > /sys/power/db1x/timer
    echo mem > /sys/power/sleep

    This patch also removes the homebrew CPU frequency switching code. I don't
    understand how it could have ever worked reliably; it does not communicate
    the clock changes to peripheral devices other than uarts.

    Signed-off-by: Manuel Lauss
    Signed-off-by: Ralf Baechle

    create mode 100644 arch/mips/alchemy/devboards/pm.c

    Manuel Lauss
     
  • Implement suspend/resume for DBDMA controller and its channels.

    Signed-off-by: Manuel Lauss
    Signed-off-by: Ralf Baechle

    Manuel Lauss
     
  • Au1550/Au1200 have a different memory controller which requires additi-
    onal code to properly put memory to sleep (code taken from AMD/RMI's
    Linux-2.6.11 source package).

    Also fix up the remaining pm-related paths to compile on Au1200/Au1550
    platforms.

    Signed-off-by: Manuel Lauss
    Signed-off-by: Ralf Baechle

    Manuel Lauss
     
  • Now that nothing in time.c depends on calc_clock, it can
    be moved to clocks.c where it belongs.
    While at it, give it a better non-generic name and call it
    as soon as possible in plat_mem_init.

    Signed-off-by: Manuel Lauss
    Signed-off-by: Ralf Baechle

    Manuel Lauss
     
  • Add support for the 32 kHz counter1 (RTC) as clocksource / clockevent
    device. As a nice side effect, this also enables use of the 'wait'
    instruction for runtime idle power savings.

    If the counters aren't enabled/working properly, fall back on the
    cp0 counter clock code.

    Signed-off-by: Manuel Lauss
    Signed-off-by: Ralf Baechle

    Manuel Lauss
     
  • The current mips clock build infrastructure lets a system only use
    either the MIPS cp0 counter or a SoC specific timer as a clocksource /
    clockevent device.

    This patch renames the core cp0 counter clocksource / clockevent functions
    from mips_* to r4k_* and updates the wrappers in asm-mips/time.h to
    call these renamed functions instead.

    Chips which can detect whether it is safe to use a chip-specific timer
    can now fall back on the cp0 counter if necessary and possible
    (e.g. Alchemy with a follow-on patch).

    Existing behaviour is not changed in any way.

    Signed-off-by: Manuel Lauss
    Signed-off-by: Ralf Baechle

    Manuel Lauss
     
  • Remove the cpu_table:
    - move detection of whether c0_config[OD] is read-only and should be set
    to fix various chip errata to au1000 headers.
    - move detection of write-only sys_cpupll to au1000 headers.
    - remove the BCLK switching code: Activation of this features should be
    left to the boards using the chips since it also affects external devices
    tied to BCLK, and only the board designers know whether it is safe to
    enable.

    Signed-off-by: Manuel Lauss
    Signed-off-by: Ralf Baechle

    delete mode 100644 arch/mips/alchemy/common/cputable.c

    Manuel Lauss
     
  • There are no in-tree users, so remove them.

    Signed-off-by: Manuel Lauss
    Signed-off-by: Ralf Baechle

    Manuel Lauss
     
  • Add the name set by set_irq_chip_and_handler_name() to the output of
    /proc/interrupts, like so:

    db1200 ~ # cat /proc/interrupts
    CPU0
    8: 52 Alchemy-IC0-hilevel serial
    10: 171 Alchemy-IC0-hilevel au1xxx-mmc
    11: 47 Alchemy-IC0-hilevel Au1xxx dbdma
    18: 1 Alchemy-IC0-hilevel au1550-spi
    29: 1250997 Alchemy-IC0-riseedge timer
    37: 211 Alchemy-IC0-hilevel ehci_hcd:usb1, ohci_hcd:usb2
    38: 0 Alchemy-IC0-hilevel lcd
    72: 2623 DB1200 CPLD-level ide0
    73: 257 DB1200 CPLD-level eth0
    84: 1 DB1200 CPLD-level sd_insert
    85: 0 DB1200 CPLD-level sd_eject

    ERR: 0

    Signed-off-by: Manuel Lauss
    Signed-off-by: Ralf Baechle

    Manuel Lauss
     
  • Tested on Db1200.

    Signed-off-by: Manuel Lauss
    Signed-off-by: Ralf Baechle

    Manuel Lauss
     
  • This patch attempts to modernize core Alchemy interrupt handling code.

    - add irq_chips for irq controllers instead of irq type,
    - add a set_type() hook to change irq trigger type during runtime,
    - add a set_wake() hook to control GPIO0..7 based wakeup,
    - use linux' IRQF_TRIGGER_ constants instead of homebrew ones,
    - enable GENERIC_HARDIRQS_NO__DO_IRQ.
    - simplify plat_irq_dispatch
    - merge au1xxx_irqmap into irq.c file, the only place where its
    contents are referenced.
    - board_init_irq() is now mandatory for every board; use it to register
    the remaining (gpio-based) interrupt sources; update all boards
    accordingly.

    Run-tested on Db1200 and other Au1200 based platforms.

    Signed-off-by: Manuel Lauss
    Signed-off-by: Ralf Baechle

    delete mode 100644 arch/mips/alchemy/common/au1xxx_irqmap.c

    Manuel Lauss
     
  • Not every alchemy-based board might want these options forced on it,
    and most of this stuff seems to be intended for devboard code anyway.
    Remove commandline mangling code out of common chip code and instead
    add relevant sections to all in-tree boards to not change existing
    behaviour.

    Signed-off-by: Manuel Lauss
    Signed-off-by: Ralf Baechle

    Manuel Lauss
     
  • Share some code and merge small files:
    - Extract the prom init code from all devboard files (they only differ in
    memory configuration).
    - Merge the irq configuration into board setup code.
    - Merge smaller files into board setup code.

    Signed-off-by: Manuel Lauss
    Signed-off-by: Ralf Baechle

    delete mode 100644 arch/mips/alchemy/devboards/db1x00/init.c
    delete mode 100644 arch/mips/alchemy/devboards/pb1000/init.c
    delete mode 100644 arch/mips/alchemy/devboards/pb1000/irqmap.c
    delete mode 100644 arch/mips/alchemy/devboards/pb1100/init.c
    delete mode 100644 arch/mips/alchemy/devboards/pb1100/irqmap.c
    delete mode 100644 arch/mips/alchemy/devboards/pb1200/init.c
    delete mode 100644 arch/mips/alchemy/devboards/pb1500/init.c
    delete mode 100644 arch/mips/alchemy/devboards/pb1500/irqmap.c
    delete mode 100644 arch/mips/alchemy/devboards/pb1550/init.c
    delete mode 100644 arch/mips/alchemy/devboards/pb1550/irqmap.c
    create mode 100644 arch/mips/alchemy/devboards/prom.c

    Manuel Lauss