10 Jan, 2009
5 commits
-
The of_find_i2c_device_by_node function allows you to follow a
reference in the device tree to an i2c device node and then locate
the linux device instantiated by the device tree. Example use: an I2S
bus driver finding the i2c_device instance for a codec described by
a device tree node.This was waiting for Anton's i2c patches that were just added.
Signed-off-by: Jon Smirl
Signed-off-by: Grant Likely -
Add "xlnx,sysace" compatible string to the of_platform binding
table. Platforms which have the SysACE chip on board (e.g.
Katmai) instead of via a Xilinx generated IP core will use
this value in their device tree.Signed-off-by: Yuri Tikhonov
Signed-off-by: Grant Likely -
Eliminate duplicate return statements
Signed-off-by: Wolfram Sang
Signed-off-by: Grant Likely -
The MPC5200 PIC driver doesn't correctly update the .status field of
the irq_desc structure when the set_type hook is called. This patch
adds the required code.Also cleans up the external IRQ typename field to be something easier
to read (very minor).Signed-off-by: Grant Likely
-
strcmp on NULL results in a segmentation fault, also, remove the second,
redundant test on devSigned-off-by: Roel Kluin
Signed-off-by: Grant Likely
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 -
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 -
Signed-off-by: Stephen Rothwell
Acked-by: Arnd Bergmann
Signed-off-by: Benjamin Herrenschmidt -
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 -
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 -
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 -
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
-
[Split from a larger patch - sfr]
Signed-off-by: Ingo Molnar
Signed-off-by: Stephen Rothwell
Signed-off-by: Benjamin Herrenschmidt -
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 -
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 -
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 -
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
-
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 -
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 -
Replace the use of stdint.h types with kernel types
in the ps3vram driver.Signed-off-by: Geoff Levand
Signed-off-by: Benjamin Herrenschmidt -
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 -
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 -
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 -
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 -
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 -
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 -
Signed-off-by: Dave Liu
Acked-by: Benjamin Herrenschmidt
Signed-off-by: Benjamin Herrenschmidt -
Signed-off-by: Stephen Rothwell
Acked-by: Arnd Bergmann
Signed-off-by: Benjamin Herrenschmidt -
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 -
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 -
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 -
SPIN_LOCK_UNLOCKED is deprecated. The following makes the change suggested
in Documentation/spinlocks.txtThe 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 -
SPIN_LOCK_UNLOCKED is deprecated. The following makes the change suggested
in Documentation/spinlocks.txtThe 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 -
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 cacheAlso, 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 -
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 -
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 -
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 -
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 -
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 -
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