10 Jan, 2009

5 commits


08 Jan, 2009

35 commits

  • Add support for the nwp serial device which is connected to a DCR bus. It
    uses the of_serial device driver to determine necessary properties from
    the device tree. The supported device is added as serial port number 85.

    NWP stands for network processor and it is part of the QPACE - Quantum
    Chromodynamics Parallel Computing on the Cell Broadband Engine project.
    The implementation is a lightweight uart implementation with the focus
    to consume as little resources as possible and it is connected to a
    DCR bus.

    Signed-off-by: Benjamin Krill
    Signed-off-by: Arnd Bergmann
    Signed-off-by: Andrew Morton
    Signed-off-by: Benjamin Herrenschmidt

    Benjamin Krill
     
  • This patch enables dynamic ftrace. The PowerPC port was dependent on
    other code not yet in mainline. Now that the code is, we can now
    let PowerPC compile with dynamic ftrace.

    Signed-off-by: Steven Rostedt
    Signed-off-by: Benjamin Herrenschmidt

    Steven Rostedt
     
  • Signed-off-by: Stephen Rothwell
    Acked-by: Arnd Bergmann
    Signed-off-by: Benjamin Herrenschmidt

    Stephen Rothwell
     
  • The clear_fixmap() routine issues map_page() with flags set to 0.
    Currently this causes a BUG_ON() inside the map_page(), as it assumes
    that a PTE should be clear before mapping.

    This patch makes the map_page() to trigger the BUG_ON() only if the
    flags were set.

    Signed-off-by: Anton Vorontsov
    Acked-by: Kumar Gala
    Signed-off-by: Benjamin Herrenschmidt

    Anton Vorontsov
     
  • The patch replaces internal registers dump implementation with
    ppc_save_regs(). From now on PPC64 and PPC32 are using the same
    code for crash_setup_regs().

    NOTE: The old regs dump implementation was capturing SP (r1) directly
    as is, so you could see crash_kexec() function on top of the back-trace.
    But ppc_save_regs() goes up one stack frame, so you'll not see it
    anymore, at the top-level you'll see who actually triggered the crash
    dump instead.

    Signed-off-by: Anton Vorontsov
    Signed-off-by: Benjamin Herrenschmidt

    Anton Vorontsov
     
  • The Freescale PowerPC specific gianfar driver (gig-e) uses
    cacheable_memzero for performance reasons we need to export
    the symbol to allow the driver to be built as a module.

    Signed-off-by: Kumar Gala
    Signed-off-by: Benjamin Herrenschmidt

    Kumar Gala
     
  • This is a brown paper bag from one of my earlier patches that
    breaks build on 40x and 8xx.

    And yes, I've now added 40x and 8xx to my list of test configs :-)

    Signed-off-by: Benjamin Herrenschmidt

    Benjamin Herrenschmidt
     
  • [Split from a larger patch - sfr]
    Signed-off-by: Ingo Molnar
    Signed-off-by: Stephen Rothwell
    Signed-off-by: Benjamin Herrenschmidt

    Ingo Molnar
     
  • in/out_be64() work on u64s.

    The first parameter to ppc_md.ioremap is a phys_addr_t.

    Signed-off-by: Ingo Molnar
    Signed-off-by: Stephen Rothwell
    Acked-by: Arnd Bergmann
    Signed-off-by: Benjamin Herrenschmidt

    Ingo Molnar
     
  • Only pass the address of a u64 if that is what the function requires.

    [Split out of a larger patch - sfr]
    [update comment - sfr]
    Signed-off-by: Ingo Molnar
    Signed-off-by: Stephen Rothwell
    Signed-off-by: Benjamin Herrenschmidt

    Ingo Molnar
     
  • tce_entryp is a "u64 *" not an "unsigned long *".

    [Split from a large patch -sfr]
    Signed-off-by: Ingo Molnar
    Signed-off-by: Stephen Rothwell
    Signed-off-by: Benjamin Herrenschmidt

    Ingo Molnar
     
  • of_get_flat_dt_prop() returns a "void *", so we don't need to cast when
    assigning its result to a pointer variable.

    Signed-off-by: Benjamin Herrenschmidt

    Stephen Rothwell
     
  • Use _PAGE_NO_CACHE for gpu memory ioremap. Also,
    add __iomem attribute to gpu memory pointer and
    change use of memset() to memset_io().

    Signed-off-by: Geoff Levand
    Signed-off-by: Benjamin Herrenschmidt

    Geoff Levand
     
  • Replace the use of udelay() with msleep() in the looping wait routines
    ps3vram_notifier_wait() and ps3vram_wait_ring().

    Signed-off-by: Geoff Levand
    Signed-off-by: Benjamin Herrenschmidt

    Geoff Levand
     
  • Replace the use of stdint.h types with kernel types
    in the ps3vram driver.

    Signed-off-by: Geoff Levand
    Signed-off-by: Benjamin Herrenschmidt

    Geoff Levand
     
  • Cleanup the ps3vram driver messages. Add a new struct device pointer
    variable dev to struct ps3vram_priv and use dev_dbg(), pr_dbg(), etc.
    where appropriate.

    Signed-off-by: Geoff Levand
    Signed-off-by: Benjamin Herrenschmidt

    Geoff Levand
     
  • Remove the ps3vram debug routines ps3vram_dump_ring() and
    ps3vram_dump_reports(). These routines are not needed.

    Signed-off-by: Geoff Levand
    Signed-off-by: Benjamin Herrenschmidt

    Geoff Levand
     
  • Update ps3vram driver to use the new ps3 three id modalias support.

    Signed-off-by: Geert Uytterhoeven
    Signed-off-by: Geoff Levand
    Signed-off-by: Benjamin Herrenschmidt

    Geert Uytterhoeven
     
  • Add ps3vram driver, which exposes unused video RAM on the PS3 as a MTD
    device suitable for storage or swap. Fast data transfer is achieved
    using a local cache in system RAM and DMA transfers via the GPU.

    Signed-off-by: Vivien Chappelier
    Signed-off-by: Jim Paris
    Acked-by: Geoff Levand
    Acked-by: David Woodhouse
    Signed-off-by: Benjamin Herrenschmidt

    Jim Paris
     
  • iSeries dependent drivers fail to build, when CONFIG_VIOPATH is disabled.

    Fix the problem by making those drivers select it.

    Signed-off-by: Kamalesh Babulal
    Signed-off-by: Benjamin Herrenschmidt

    Kamalesh Babulal
     
  • Enable RELOCATABLE option if user selects CRASH_DUMP option. Without this
    patch user has to first select RELOCATABLE option and then has to enable
    CRASH_DUMP option.

    Signed-off-by: M. Mohan Kumar
    Signed-off-by: Benjamin Herrenschmidt

    Mohan Kumar M
     
  • Signed-off-by: Dave Liu
    Acked-by: Benjamin Herrenschmidt
    Signed-off-by: Benjamin Herrenschmidt

    Dave Liu
     
  • Signed-off-by: Stephen Rothwell
    Acked-by: Arnd Bergmann
    Signed-off-by: Benjamin Herrenschmidt

    Stephen Rothwell
     
  • So change the flags member of struct spu from u64 to unsigned long.
    This change will also prevent some warnings when we change u64 to unsigned
    long long.

    Signed-off-by: Stephen Rothwell
    Acked-by: Arnd Bergmann
    Signed-off-by: Benjamin Herrenschmidt

    Stephen Rothwell
     
  • These ioctls take a struct serial_rs485
    (see linux/serial.h) as argument. They are already available
    on x86. This patch adds them for the powerpc architecture.

    Signed-off-by: Matthias Fuchs
    Signed-off-by: Benjamin Herrenschmidt

    Matthias Fuchs
     
  • X has been failing to start on my quad G5 powermac since commit
    1fd0f52583a85b21a394201b007bc1ee104b235d ("powerpc: Fix domain numbers
    in /proc on 64-bit") went in. The reason is that the change allows X
    to see the PCI-PCI bridge above the video card (previously it was
    obscured by the fact that there were two "00" directories in
    /proc/bus/pci), and the pciconfig_iobase system call on the bridge is
    failing because of a hack that we have to return information about the
    AGP bus when X asks about bus 0. This machine doesn't have an AGP bus
    (it has PCI Express) and so the pciconfig_iobase call is returning -1,
    which ultimately causes X to fail to start.

    This fixes it by checking that we have an AGP bridge before
    redirecting the pciconfig_iobase call to return information about the
    AGP bus. With this, X starts successfully both on a quad G5 with
    PCI Express and on an older dual G5 with AGP.

    Signed-off-by: Paul Mackerras
    Acked-by: Benjamin Herrenschmidt
    Signed-off-by: Benjamin Herrenschmidt

    Paul Mackerras
     
  • SPIN_LOCK_UNLOCKED is deprecated. The following makes the change suggested
    in Documentation/spinlocks.txt

    The semantic patch that makes this change is as follows:
    (http://www.emn.fr/x-info/coccinelle/)

    //
    @@
    declarer name DEFINE_SPINLOCK;
    identifier xxx_lock;
    @@

    - spinlock_t xxx_lock = SPIN_LOCK_UNLOCKED;
    + DEFINE_SPINLOCK(xxx_lock);
    //

    Signed-off-by: Julia Lawall
    Signed-off-by: Benjamin Herrenschmidt

    Julia Lawall
     
  • SPIN_LOCK_UNLOCKED is deprecated. The following makes the change suggested
    in Documentation/spinlocks.txt

    The semantic patch that makes this change is as follows:
    (http://www.emn.fr/x-info/coccinelle/)

    //
    @@
    declarer name DEFINE_SPINLOCK;
    identifier xxx_lock;
    @@

    - spinlock_t xxx_lock = SPIN_LOCK_UNLOCKED;
    + DEFINE_SPINLOCK(xxx_lock);
    //

    Signed-off-by: Julia Lawall
    Signed-off-by: Benjamin Herrenschmidt

    Julia Lawall
     
  • The current code for providing processor cache information in sysfs
    has the following deficiencies:
    - several complex functions that are hard to understand
    - implicit recursion (cache_desc_release -> kobject_put -> cache_desc_release)
    - explicit recursion (create_cache_index_info)
    - use of two per-cpu arrays when one would suffice
    - duplication of work on systems where CPUs share cache

    Also, when I looked at implementing support for a shared_cpu_map
    attribute, it was pretty much impossible to handle hotplug without
    checking every single online CPU's cache_desc list and fixing things
    up... not that this is a hot path, but it would have introduced
    O(n^2)-ish behavior during boot. Addressing this involved rethinking
    the core data structures used, which didn't lend itself to an
    incremental approach.

    This implementation maintains a "forest" (potentially more than one
    tree) of cache objects which reflects the system's cache topology.
    Cache objects are instantiated as needed as CPUs come online. A
    per-cpu array is used mainly for sysfs-related bookkeeping; the
    objects in the array just point to the appropriate points in the
    forest.

    This maintains compatibility with the existing code and includes some
    enhancements:
    - Implement the shared_cpu_map attribute, which is essential for
    enabling userspace to discover the system's overall cache topology.
    - Use cache-block-size properties if cache-line-size is not available.

    I chose to place this implementation in a new file since it would have
    roughly doubled the size of sysfs.c, which is already kind of messy.

    Signed-off-by: Nathan Lynch
    Signed-off-by: Benjamin Herrenschmidt

    Nathan Lynch
     
  • The non-zero return from the prepare callback is returned by sys_kexec_load()
    to userspace, indicating that kexec is not supported on the machine.

    Signed-off-by: Michael Ellerman
    Signed-off-by: Benjamin Herrenschmidt

    Michael Ellerman
     
  • This patch makes the default install script (arch/powerpc/boot/install.sh)
    copy the bootable image files into the install directory. Before this
    patch only the vmlinux image file was copied.

    This patch makes the default 'make install' command useful for embedded
    development when $(INSTALL_PATH) is set in the environment.

    As a side effect, this patch changes the calling convention of the
    install.sh script. Instead of a single 5th parameter, the script is now
    passed a list of all the target images stored in the $(image-y) Makefile
    variable. This should be backwards compatible with existing install scripts
    since it just adds additional arguments and does not change existing ones.

    Signed-off-by: Grant Likely
    Acked-by: Josh Boyer
    Signed-off-by: Benjamin Herrenschmidt

    Grant Likely
     
  • Both users of careful_allocation() immediately memset() the
    result. So, just do it in one place.

    Also give careful_allocation() a 'z' prefix to bring it in
    line with kzmalloc() and friends.

    Signed-off-by: Dave Hansen
    Signed-off-by: Benjamin Herrenschmidt

    Dave Hansen
     
  • Since we memset() the result in both of the uses here,
    just make careful_alloc() return a virtual address.
    Also, add a separate variable to store the physial
    address that comes back from the lmb_alloc() functions.
    This makes it less likely that someone will screw it up
    forgetting to convert before returning since the vaddr
    is always in a void* and the paddr is always in an
    unsigned long.

    I admit this is arbitrary since one of its users needs
    a paddr and one a vaddr, but it does remove a good
    number of casts.

    Signed-off-by: Dave Hansen
    Signed-off-by: Benjamin Herrenschmidt

    Dave Hansen
     
  • If we fail a bootmem allocation, the bootmem code itself
    panics. No need to redo it here.

    Also change the wording of the other panic. We don't
    strictly have to allocate memory on the specified node.
    It is just a hint and that node may not even *have* any
    memory on it. In that case we can and do fall back to
    other nodes.

    Signed-off-by: Dave Hansen
    Signed-off-by: Benjamin Herrenschmidt

    Dave Hansen
     
  • The behavior in careful_allocation() really confused me
    at first. Add a comment to hopefully make it easier
    on the next doofus that looks at it.

    Signed-off-by: Dave Hansen
    Signed-off-by: Benjamin Herrenschmidt

    Dave Hansen