diff options
-rw-r--r-- | arch/parisc/Kconfig | 2 | ||||
-rw-r--r-- | arch/parisc/include/asm/Kbuild (renamed from include/asm-parisc/Kbuild) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/a.out.h | 20 | ||||
-rw-r--r-- | arch/parisc/include/asm/agp.h (renamed from include/asm-parisc/agp.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/asmregs.h (renamed from include/asm-parisc/asmregs.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/assembly.h (renamed from include/asm-parisc/assembly.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/atomic.h (renamed from include/asm-parisc/atomic.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/auxvec.h (renamed from include/asm-parisc/auxvec.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/bitops.h (renamed from include/asm-parisc/bitops.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/bug.h (renamed from include/asm-parisc/bug.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/bugs.h (renamed from include/asm-parisc/bugs.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/byteorder.h (renamed from include/asm-parisc/byteorder.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/cache.h (renamed from include/asm-parisc/cache.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/cacheflush.h (renamed from include/asm-parisc/cacheflush.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/checksum.h (renamed from include/asm-parisc/checksum.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/compat.h (renamed from include/asm-parisc/compat.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/compat_rt_sigframe.h (renamed from include/asm-parisc/compat_rt_sigframe.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/compat_signal.h (renamed from include/asm-parisc/compat_signal.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/compat_ucontext.h (renamed from include/asm-parisc/compat_ucontext.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/cputime.h (renamed from include/asm-parisc/cputime.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/current.h (renamed from include/asm-parisc/current.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/delay.h (renamed from include/asm-parisc/delay.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/device.h (renamed from include/asm-parisc/device.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/div64.h (renamed from include/asm-parisc/div64.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/dma-mapping.h (renamed from include/asm-parisc/dma-mapping.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/dma.h (renamed from include/asm-parisc/dma.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/eisa_bus.h (renamed from include/asm-parisc/eisa_bus.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/eisa_eeprom.h (renamed from include/asm-parisc/eisa_eeprom.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/elf.h (renamed from include/asm-parisc/elf.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/emergency-restart.h (renamed from include/asm-parisc/emergency-restart.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/errno.h (renamed from include/asm-parisc/errno.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/fb.h (renamed from include/asm-parisc/fb.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/fcntl.h (renamed from include/asm-parisc/fcntl.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/fixmap.h (renamed from include/asm-parisc/fixmap.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/floppy.h (renamed from include/asm-parisc/floppy.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/futex.h (renamed from include/asm-parisc/futex.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/grfioctl.h (renamed from include/asm-parisc/grfioctl.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/hardirq.h (renamed from include/asm-parisc/hardirq.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/hardware.h (renamed from include/asm-parisc/hardware.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/hw_irq.h (renamed from include/asm-parisc/hw_irq.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/ide.h (renamed from include/asm-parisc/ide.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/io.h (renamed from include/asm-parisc/io.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/ioctl.h (renamed from include/asm-parisc/ioctl.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/ioctls.h (renamed from include/asm-parisc/ioctls.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/ipcbuf.h (renamed from include/asm-parisc/ipcbuf.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/irq.h (renamed from include/asm-parisc/irq.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/irq_regs.h (renamed from include/asm-parisc/irq_regs.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/kdebug.h (renamed from include/asm-parisc/kdebug.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/kmap_types.h (renamed from include/asm-parisc/kmap_types.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/led.h (renamed from include/asm-parisc/led.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/linkage.h (renamed from include/asm-parisc/linkage.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/local.h (renamed from include/asm-parisc/local.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/machdep.h (renamed from include/asm-parisc/machdep.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/mc146818rtc.h (renamed from include/asm-parisc/mc146818rtc.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/mckinley.h (renamed from include/asm-parisc/mckinley.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/mman.h (renamed from include/asm-parisc/mman.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/mmu.h (renamed from include/asm-parisc/mmu.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/mmu_context.h (renamed from include/asm-parisc/mmu_context.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/mmzone.h (renamed from include/asm-parisc/mmzone.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/module.h (renamed from include/asm-parisc/module.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/msgbuf.h (renamed from include/asm-parisc/msgbuf.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/mutex.h (renamed from include/asm-parisc/mutex.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/page.h (renamed from include/asm-parisc/page.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/param.h (renamed from include/asm-parisc/param.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/parisc-device.h (renamed from include/asm-parisc/parisc-device.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/parport.h (renamed from include/asm-parisc/parport.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/pci.h (renamed from include/asm-parisc/pci.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/pdc.h (renamed from include/asm-parisc/pdc.h) | 5 | ||||
-rw-r--r-- | arch/parisc/include/asm/pdc_chassis.h (renamed from include/asm-parisc/pdc_chassis.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/pdcpat.h (renamed from include/asm-parisc/pdcpat.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/percpu.h (renamed from include/asm-parisc/percpu.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/perf.h (renamed from include/asm-parisc/perf.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/pgalloc.h (renamed from include/asm-parisc/pgalloc.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/pgtable.h (renamed from include/asm-parisc/pgtable.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/poll.h (renamed from include/asm-parisc/poll.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/posix_types.h (renamed from include/asm-parisc/posix_types.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/prefetch.h (renamed from include/asm-parisc/prefetch.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/processor.h (renamed from include/asm-parisc/processor.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/psw.h (renamed from include/asm-parisc/psw.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/ptrace.h (renamed from include/asm-parisc/ptrace.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/real.h (renamed from include/asm-parisc/real.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/resource.h (renamed from include/asm-parisc/resource.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/ropes.h (renamed from include/asm-parisc/ropes.h) | 2 | ||||
-rw-r--r-- | arch/parisc/include/asm/rt_sigframe.h (renamed from include/asm-parisc/rt_sigframe.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/rtc.h (renamed from include/asm-parisc/rtc.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/runway.h (renamed from include/asm-parisc/runway.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/scatterlist.h (renamed from include/asm-parisc/scatterlist.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/sections.h (renamed from include/asm-parisc/sections.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/segment.h (renamed from include/asm-parisc/segment.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/sembuf.h (renamed from include/asm-parisc/sembuf.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/serial.h (renamed from include/asm-parisc/serial.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/setup.h (renamed from include/asm-parisc/setup.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/shmbuf.h (renamed from include/asm-parisc/shmbuf.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/shmparam.h (renamed from include/asm-parisc/shmparam.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/sigcontext.h (renamed from include/asm-parisc/sigcontext.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/siginfo.h (renamed from include/asm-parisc/siginfo.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/signal.h (renamed from include/asm-parisc/signal.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/smp.h (renamed from include/asm-parisc/smp.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/socket.h (renamed from include/asm-parisc/socket.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/sockios.h (renamed from include/asm-parisc/sockios.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/spinlock.h (renamed from include/asm-parisc/spinlock.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/spinlock_types.h (renamed from include/asm-parisc/spinlock_types.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/stat.h (renamed from include/asm-parisc/stat.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/statfs.h (renamed from include/asm-parisc/statfs.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/string.h (renamed from include/asm-parisc/string.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/superio.h (renamed from include/asm-parisc/superio.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/system.h (renamed from include/asm-parisc/system.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/termbits.h (renamed from include/asm-parisc/termbits.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/termios.h (renamed from include/asm-parisc/termios.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/thread_info.h (renamed from include/asm-parisc/thread_info.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/timex.h (renamed from include/asm-parisc/timex.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/tlb.h (renamed from include/asm-parisc/tlb.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/tlbflush.h (renamed from include/asm-parisc/tlbflush.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/topology.h (renamed from include/asm-parisc/topology.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/traps.h (renamed from include/asm-parisc/traps.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/types.h (renamed from include/asm-parisc/types.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/uaccess.h (renamed from include/asm-parisc/uaccess.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/ucontext.h (renamed from include/asm-parisc/ucontext.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/unaligned.h (renamed from include/asm-parisc/unaligned.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/unistd.h (renamed from include/asm-parisc/unistd.h) | 10 | ||||
-rw-r--r-- | arch/parisc/include/asm/unwind.h (renamed from include/asm-parisc/unwind.h) | 2 | ||||
-rw-r--r-- | arch/parisc/include/asm/user.h (renamed from include/asm-parisc/user.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/vga.h (renamed from include/asm-parisc/vga.h) | 0 | ||||
-rw-r--r-- | arch/parisc/include/asm/xor.h (renamed from include/asm-parisc/xor.h) | 0 | ||||
-rw-r--r-- | arch/parisc/kernel/.gitignore | 1 | ||||
-rw-r--r-- | arch/parisc/kernel/asm-offsets.c | 3 | ||||
-rw-r--r-- | arch/parisc/kernel/firmware.c | 69 | ||||
-rw-r--r-- | arch/parisc/kernel/head.S | 2 | ||||
-rw-r--r-- | arch/parisc/kernel/real2.S | 12 | ||||
-rw-r--r-- | arch/parisc/kernel/setup.c | 29 | ||||
-rw-r--r-- | arch/parisc/kernel/syscall_table.S | 6 | ||||
-rw-r--r-- | arch/parisc/kernel/time.c | 20 | ||||
-rw-r--r-- | arch/parisc/kernel/unwind.c | 4 | ||||
-rw-r--r-- | drivers/char/agp/parisc-agp.c | 4 | ||||
-rw-r--r-- | drivers/parisc/ccio-dma.c | 43 | ||||
-rw-r--r-- | drivers/rtc/Kconfig | 8 | ||||
-rw-r--r-- | drivers/rtc/Makefile | 1 | ||||
-rw-r--r-- | drivers/rtc/rtc-parisc.c | 111 |
138 files changed, 294 insertions, 60 deletions
diff --git a/arch/parisc/Kconfig b/arch/parisc/Kconfig index 8313fccced5e..af122b113b6b 100644 --- a/arch/parisc/Kconfig +++ b/arch/parisc/Kconfig @@ -9,6 +9,8 @@ config PARISC def_bool y select HAVE_IDE select HAVE_OPROFILE + select RTC_CLASS + select RTC_DRV_PARISC help The PA-RISC microprocessor is designed by Hewlett-Packard and used in many of their workstations & servers (HP9000 700 and 800 series, diff --git a/include/asm-parisc/Kbuild b/arch/parisc/include/asm/Kbuild index f88b252e419c..f88b252e419c 100644 --- a/include/asm-parisc/Kbuild +++ b/arch/parisc/include/asm/Kbuild diff --git a/arch/parisc/include/asm/a.out.h b/arch/parisc/include/asm/a.out.h new file mode 100644 index 000000000000..eb04e34c5bb1 --- /dev/null +++ b/arch/parisc/include/asm/a.out.h @@ -0,0 +1,20 @@ +#ifndef __PARISC_A_OUT_H__ +#define __PARISC_A_OUT_H__ + +struct exec +{ + unsigned int a_info; /* Use macros N_MAGIC, etc for access */ + unsigned a_text; /* length of text, in bytes */ + unsigned a_data; /* length of data, in bytes */ + unsigned a_bss; /* length of uninitialized data area for file, in bytes */ + unsigned a_syms; /* length of symbol table data in file, in bytes */ + unsigned a_entry; /* start address */ + unsigned a_trsize; /* length of relocation info for text, in bytes */ + unsigned a_drsize; /* length of relocation info for data, in bytes */ +}; + +#define N_TRSIZE(a) ((a).a_trsize) +#define N_DRSIZE(a) ((a).a_drsize) +#define N_SYMSIZE(a) ((a).a_syms) + +#endif /* __A_OUT_GNU_H__ */ diff --git a/include/asm-parisc/agp.h b/arch/parisc/include/asm/agp.h index 9651660da639..9651660da639 100644 --- a/include/asm-parisc/agp.h +++ b/arch/parisc/include/asm/agp.h diff --git a/include/asm-parisc/asmregs.h b/arch/parisc/include/asm/asmregs.h index d93c646e1887..d93c646e1887 100644 --- a/include/asm-parisc/asmregs.h +++ b/arch/parisc/include/asm/asmregs.h diff --git a/include/asm-parisc/assembly.h b/arch/parisc/include/asm/assembly.h index ffb208840ecc..ffb208840ecc 100644 --- a/include/asm-parisc/assembly.h +++ b/arch/parisc/include/asm/assembly.h diff --git a/include/asm-parisc/atomic.h b/arch/parisc/include/asm/atomic.h index 57fcc4a5ebb4..57fcc4a5ebb4 100644 --- a/include/asm-parisc/atomic.h +++ b/arch/parisc/include/asm/atomic.h diff --git a/include/asm-parisc/auxvec.h b/arch/parisc/include/asm/auxvec.h index 9c3ac4b89dc9..9c3ac4b89dc9 100644 --- a/include/asm-parisc/auxvec.h +++ b/arch/parisc/include/asm/auxvec.h diff --git a/include/asm-parisc/bitops.h b/arch/parisc/include/asm/bitops.h index 7a6ea10bd231..7a6ea10bd231 100644 --- a/include/asm-parisc/bitops.h +++ b/arch/parisc/include/asm/bitops.h diff --git a/include/asm-parisc/bug.h b/arch/parisc/include/asm/bug.h index 8cfc553fc837..8cfc553fc837 100644 --- a/include/asm-parisc/bug.h +++ b/arch/parisc/include/asm/bug.h diff --git a/include/asm-parisc/bugs.h b/arch/parisc/include/asm/bugs.h index 9e6284342a5f..9e6284342a5f 100644 --- a/include/asm-parisc/bugs.h +++ b/arch/parisc/include/asm/bugs.h diff --git a/include/asm-parisc/byteorder.h b/arch/parisc/include/asm/byteorder.h index db148313de5d..db148313de5d 100644 --- a/include/asm-parisc/byteorder.h +++ b/arch/parisc/include/asm/byteorder.h diff --git a/include/asm-parisc/cache.h b/arch/parisc/include/asm/cache.h index 32c2cca74345..32c2cca74345 100644 --- a/include/asm-parisc/cache.h +++ b/arch/parisc/include/asm/cache.h diff --git a/include/asm-parisc/cacheflush.h b/arch/parisc/include/asm/cacheflush.h index b7ca6dc7fddc..b7ca6dc7fddc 100644 --- a/include/asm-parisc/cacheflush.h +++ b/arch/parisc/include/asm/cacheflush.h diff --git a/include/asm-parisc/checksum.h b/arch/parisc/include/asm/checksum.h index e9639ccc3fce..e9639ccc3fce 100644 --- a/include/asm-parisc/checksum.h +++ b/arch/parisc/include/asm/checksum.h diff --git a/include/asm-parisc/compat.h b/arch/parisc/include/asm/compat.h index 7f32611a7a5e..7f32611a7a5e 100644 --- a/include/asm-parisc/compat.h +++ b/arch/parisc/include/asm/compat.h diff --git a/include/asm-parisc/compat_rt_sigframe.h b/arch/parisc/include/asm/compat_rt_sigframe.h index 81bec28bdc48..81bec28bdc48 100644 --- a/include/asm-parisc/compat_rt_sigframe.h +++ b/arch/parisc/include/asm/compat_rt_sigframe.h diff --git a/include/asm-parisc/compat_signal.h b/arch/parisc/include/asm/compat_signal.h index 6ad02c360b21..6ad02c360b21 100644 --- a/include/asm-parisc/compat_signal.h +++ b/arch/parisc/include/asm/compat_signal.h diff --git a/include/asm-parisc/compat_ucontext.h b/arch/parisc/include/asm/compat_ucontext.h index 2f7292afde3c..2f7292afde3c 100644 --- a/include/asm-parisc/compat_ucontext.h +++ b/arch/parisc/include/asm/compat_ucontext.h diff --git a/include/asm-parisc/cputime.h b/arch/parisc/include/asm/cputime.h index dcdf2fbd7e72..dcdf2fbd7e72 100644 --- a/include/asm-parisc/cputime.h +++ b/arch/parisc/include/asm/cputime.h diff --git a/include/asm-parisc/current.h b/arch/parisc/include/asm/current.h index 0fb9338e3bf2..0fb9338e3bf2 100644 --- a/include/asm-parisc/current.h +++ b/arch/parisc/include/asm/current.h diff --git a/include/asm-parisc/delay.h b/arch/parisc/include/asm/delay.h index 7a75e984674b..7a75e984674b 100644 --- a/include/asm-parisc/delay.h +++ b/arch/parisc/include/asm/delay.h diff --git a/include/asm-parisc/device.h b/arch/parisc/include/asm/device.h index d8f9872b0e2d..d8f9872b0e2d 100644 --- a/include/asm-parisc/device.h +++ b/arch/parisc/include/asm/device.h diff --git a/include/asm-parisc/div64.h b/arch/parisc/include/asm/div64.h index 6cd978cefb28..6cd978cefb28 100644 --- a/include/asm-parisc/div64.h +++ b/arch/parisc/include/asm/div64.h diff --git a/include/asm-parisc/dma-mapping.h b/arch/parisc/include/asm/dma-mapping.h index 53af696f23d2..53af696f23d2 100644 --- a/include/asm-parisc/dma-mapping.h +++ b/arch/parisc/include/asm/dma-mapping.h diff --git a/include/asm-parisc/dma.h b/arch/parisc/include/asm/dma.h index 31ad0f05af3d..31ad0f05af3d 100644 --- a/include/asm-parisc/dma.h +++ b/arch/parisc/include/asm/dma.h diff --git a/include/asm-parisc/eisa_bus.h b/arch/parisc/include/asm/eisa_bus.h index 201085f83dd5..201085f83dd5 100644 --- a/include/asm-parisc/eisa_bus.h +++ b/arch/parisc/include/asm/eisa_bus.h diff --git a/include/asm-parisc/eisa_eeprom.h b/arch/parisc/include/asm/eisa_eeprom.h index 9c9da980402a..9c9da980402a 100644 --- a/include/asm-parisc/eisa_eeprom.h +++ b/arch/parisc/include/asm/eisa_eeprom.h diff --git a/include/asm-parisc/elf.h b/arch/parisc/include/asm/elf.h index d0a4a8262818..d0a4a8262818 100644 --- a/include/asm-parisc/elf.h +++ b/arch/parisc/include/asm/elf.h diff --git a/include/asm-parisc/emergency-restart.h b/arch/parisc/include/asm/emergency-restart.h index 108d8c48e42e..108d8c48e42e 100644 --- a/include/asm-parisc/emergency-restart.h +++ b/arch/parisc/include/asm/emergency-restart.h diff --git a/include/asm-parisc/errno.h b/arch/parisc/include/asm/errno.h index e2f3ddc796be..e2f3ddc796be 100644 --- a/include/asm-parisc/errno.h +++ b/arch/parisc/include/asm/errno.h diff --git a/include/asm-parisc/fb.h b/arch/parisc/include/asm/fb.h index 4d503a023ab2..4d503a023ab2 100644 --- a/include/asm-parisc/fb.h +++ b/arch/parisc/include/asm/fb.h diff --git a/include/asm-parisc/fcntl.h b/arch/parisc/include/asm/fcntl.h index 1e1c824764ee..1e1c824764ee 100644 --- a/include/asm-parisc/fcntl.h +++ b/arch/parisc/include/asm/fcntl.h diff --git a/include/asm-parisc/fixmap.h b/arch/parisc/include/asm/fixmap.h index de3fe3a18229..de3fe3a18229 100644 --- a/include/asm-parisc/fixmap.h +++ b/arch/parisc/include/asm/fixmap.h diff --git a/include/asm-parisc/floppy.h b/arch/parisc/include/asm/floppy.h index 4ca69f558fae..4ca69f558fae 100644 --- a/include/asm-parisc/floppy.h +++ b/arch/parisc/include/asm/floppy.h diff --git a/include/asm-parisc/futex.h b/arch/parisc/include/asm/futex.h index 0c705c3a55ef..0c705c3a55ef 100644 --- a/include/asm-parisc/futex.h +++ b/arch/parisc/include/asm/futex.h diff --git a/include/asm-parisc/grfioctl.h b/arch/parisc/include/asm/grfioctl.h index 671e06042b40..671e06042b40 100644 --- a/include/asm-parisc/grfioctl.h +++ b/arch/parisc/include/asm/grfioctl.h diff --git a/include/asm-parisc/hardirq.h b/arch/parisc/include/asm/hardirq.h index ce93133d5112..ce93133d5112 100644 --- a/include/asm-parisc/hardirq.h +++ b/arch/parisc/include/asm/hardirq.h diff --git a/include/asm-parisc/hardware.h b/arch/parisc/include/asm/hardware.h index 4e9626836bab..4e9626836bab 100644 --- a/include/asm-parisc/hardware.h +++ b/arch/parisc/include/asm/hardware.h diff --git a/include/asm-parisc/hw_irq.h b/arch/parisc/include/asm/hw_irq.h index 6707f7df3921..6707f7df3921 100644 --- a/include/asm-parisc/hw_irq.h +++ b/arch/parisc/include/asm/hw_irq.h diff --git a/include/asm-parisc/ide.h b/arch/parisc/include/asm/ide.h index c246ef75017d..c246ef75017d 100644 --- a/include/asm-parisc/ide.h +++ b/arch/parisc/include/asm/ide.h diff --git a/include/asm-parisc/io.h b/arch/parisc/include/asm/io.h index 55ddb1842107..55ddb1842107 100644 --- a/include/asm-parisc/io.h +++ b/arch/parisc/include/asm/io.h diff --git a/include/asm-parisc/ioctl.h b/arch/parisc/include/asm/ioctl.h index ec8efa02beda..ec8efa02beda 100644 --- a/include/asm-parisc/ioctl.h +++ b/arch/parisc/include/asm/ioctl.h diff --git a/include/asm-parisc/ioctls.h b/arch/parisc/include/asm/ioctls.h index 6747fad07a3e..6747fad07a3e 100644 --- a/include/asm-parisc/ioctls.h +++ b/arch/parisc/include/asm/ioctls.h diff --git a/include/asm-parisc/ipcbuf.h b/arch/parisc/include/asm/ipcbuf.h index bd956c425785..bd956c425785 100644 --- a/include/asm-parisc/ipcbuf.h +++ b/arch/parisc/include/asm/ipcbuf.h diff --git a/include/asm-parisc/irq.h b/arch/parisc/include/asm/irq.h index 399c81981ed5..399c81981ed5 100644 --- a/include/asm-parisc/irq.h +++ b/arch/parisc/include/asm/irq.h diff --git a/include/asm-parisc/irq_regs.h b/arch/parisc/include/asm/irq_regs.h index 3dd9c0b70270..3dd9c0b70270 100644 --- a/include/asm-parisc/irq_regs.h +++ b/arch/parisc/include/asm/irq_regs.h diff --git a/include/asm-parisc/kdebug.h b/arch/parisc/include/asm/kdebug.h index 6ece1b037665..6ece1b037665 100644 --- a/include/asm-parisc/kdebug.h +++ b/arch/parisc/include/asm/kdebug.h diff --git a/include/asm-parisc/kmap_types.h b/arch/parisc/include/asm/kmap_types.h index 806aae3c5338..806aae3c5338 100644 --- a/include/asm-parisc/kmap_types.h +++ b/arch/parisc/include/asm/kmap_types.h diff --git a/include/asm-parisc/led.h b/arch/parisc/include/asm/led.h index c3405ab9d60a..c3405ab9d60a 100644 --- a/include/asm-parisc/led.h +++ b/arch/parisc/include/asm/led.h diff --git a/include/asm-parisc/linkage.h b/arch/parisc/include/asm/linkage.h index 0b19a7242d0c..0b19a7242d0c 100644 --- a/include/asm-parisc/linkage.h +++ b/arch/parisc/include/asm/linkage.h diff --git a/include/asm-parisc/local.h b/arch/parisc/include/asm/local.h index c11c530f74d0..c11c530f74d0 100644 --- a/include/asm-parisc/local.h +++ b/arch/parisc/include/asm/local.h diff --git a/include/asm-parisc/machdep.h b/arch/parisc/include/asm/machdep.h index a231c97d703e..a231c97d703e 100644 --- a/include/asm-parisc/machdep.h +++ b/arch/parisc/include/asm/machdep.h diff --git a/include/asm-parisc/mc146818rtc.h b/arch/parisc/include/asm/mc146818rtc.h index adf41631449f..adf41631449f 100644 --- a/include/asm-parisc/mc146818rtc.h +++ b/arch/parisc/include/asm/mc146818rtc.h diff --git a/include/asm-parisc/mckinley.h b/arch/parisc/include/asm/mckinley.h index d1ea6f12915e..d1ea6f12915e 100644 --- a/include/asm-parisc/mckinley.h +++ b/arch/parisc/include/asm/mckinley.h diff --git a/include/asm-parisc/mman.h b/arch/parisc/include/asm/mman.h index defe752cc996..defe752cc996 100644 --- a/include/asm-parisc/mman.h +++ b/arch/parisc/include/asm/mman.h diff --git a/include/asm-parisc/mmu.h b/arch/parisc/include/asm/mmu.h index 6a310cf8b734..6a310cf8b734 100644 --- a/include/asm-parisc/mmu.h +++ b/arch/parisc/include/asm/mmu.h diff --git a/include/asm-parisc/mmu_context.h b/arch/parisc/include/asm/mmu_context.h index 85856c74ad1d..85856c74ad1d 100644 --- a/include/asm-parisc/mmu_context.h +++ b/arch/parisc/include/asm/mmu_context.h diff --git a/include/asm-parisc/mmzone.h b/arch/parisc/include/asm/mmzone.h index 9608d2cf214a..9608d2cf214a 100644 --- a/include/asm-parisc/mmzone.h +++ b/arch/parisc/include/asm/mmzone.h diff --git a/include/asm-parisc/module.h b/arch/parisc/include/asm/module.h index c2cb49e934c1..c2cb49e934c1 100644 --- a/include/asm-parisc/module.h +++ b/arch/parisc/include/asm/module.h diff --git a/include/asm-parisc/msgbuf.h b/arch/parisc/include/asm/msgbuf.h index fe88f2649418..fe88f2649418 100644 --- a/include/asm-parisc/msgbuf.h +++ b/arch/parisc/include/asm/msgbuf.h diff --git a/include/asm-parisc/mutex.h b/arch/parisc/include/asm/mutex.h index 458c1f7fbc18..458c1f7fbc18 100644 --- a/include/asm-parisc/mutex.h +++ b/arch/parisc/include/asm/mutex.h diff --git a/include/asm-parisc/page.h b/arch/parisc/include/asm/page.h index c3941f09a878..c3941f09a878 100644 --- a/include/asm-parisc/page.h +++ b/arch/parisc/include/asm/page.h diff --git a/include/asm-parisc/param.h b/arch/parisc/include/asm/param.h index 32e03d877858..32e03d877858 100644 --- a/include/asm-parisc/param.h +++ b/arch/parisc/include/asm/param.h diff --git a/include/asm-parisc/parisc-device.h b/arch/parisc/include/asm/parisc-device.h index 7aa13f2add7a..7aa13f2add7a 100644 --- a/include/asm-parisc/parisc-device.h +++ b/arch/parisc/include/asm/parisc-device.h diff --git a/include/asm-parisc/parport.h b/arch/parisc/include/asm/parport.h index 00d9cc3e7b97..00d9cc3e7b97 100644 --- a/include/asm-parisc/parport.h +++ b/arch/parisc/include/asm/parport.h diff --git a/include/asm-parisc/pci.h b/arch/parisc/include/asm/pci.h index 4ba868f44a5e..4ba868f44a5e 100644 --- a/include/asm-parisc/pci.h +++ b/arch/parisc/include/asm/pci.h diff --git a/include/asm-parisc/pdc.h b/arch/parisc/include/asm/pdc.h index 9eaa794c3e4a..c584b00c6074 100644 --- a/include/asm-parisc/pdc.h +++ b/arch/parisc/include/asm/pdc.h @@ -332,6 +332,9 @@ #define BOOT_CONSOLE_SPA_OFFSET 0x3c4 #define BOOT_CONSOLE_PATH_OFFSET 0x3a8 +/* size of the pdc_result buffer for firmware.c */ +#define NUM_PDC_RESULT 32 + #if !defined(__ASSEMBLY__) #ifdef __KERNEL__ @@ -600,6 +603,7 @@ int pdc_chassis_info(struct pdc_chassis_info *chassis_info, void *led_info, unsi int pdc_chassis_disp(unsigned long disp); int pdc_chassis_warn(unsigned long *warn); int pdc_coproc_cfg(struct pdc_coproc_cfg *pdc_coproc_info); +int pdc_coproc_cfg_unlocked(struct pdc_coproc_cfg *pdc_coproc_info); int pdc_iodc_read(unsigned long *actcnt, unsigned long hpa, unsigned int index, void *iodc_data, unsigned int iodc_data_size); int pdc_system_map_find_mods(struct pdc_system_map_mod_info *pdc_mod_info, @@ -638,6 +642,7 @@ int pdc_mem_mem_table(struct pdc_memory_table_raddr *r_addr, #endif void set_firmware_width(void); +void set_firmware_width_unlocked(void); int pdc_do_firm_test_reset(unsigned long ftc_bitmap); int pdc_do_reset(void); int pdc_soft_power_info(unsigned long *power_reg); diff --git a/include/asm-parisc/pdc_chassis.h b/arch/parisc/include/asm/pdc_chassis.h index a609273dc6bf..a609273dc6bf 100644 --- a/include/asm-parisc/pdc_chassis.h +++ b/arch/parisc/include/asm/pdc_chassis.h diff --git a/include/asm-parisc/pdcpat.h b/arch/parisc/include/asm/pdcpat.h index 47539f117958..47539f117958 100644 --- a/include/asm-parisc/pdcpat.h +++ b/arch/parisc/include/asm/pdcpat.h diff --git a/include/asm-parisc/percpu.h b/arch/parisc/include/asm/percpu.h index a0dcd1970128..a0dcd1970128 100644 --- a/include/asm-parisc/percpu.h +++ b/arch/parisc/include/asm/percpu.h diff --git a/include/asm-parisc/perf.h b/arch/parisc/include/asm/perf.h index a18e11972c09..a18e11972c09 100644 --- a/include/asm-parisc/perf.h +++ b/arch/parisc/include/asm/perf.h diff --git a/include/asm-parisc/pgalloc.h b/arch/parisc/include/asm/pgalloc.h index fc987a1c12a8..fc987a1c12a8 100644 --- a/include/asm-parisc/pgalloc.h +++ b/arch/parisc/include/asm/pgalloc.h diff --git a/include/asm-parisc/pgtable.h b/arch/parisc/include/asm/pgtable.h index 470a4b88124d..470a4b88124d 100644 --- a/include/asm-parisc/pgtable.h +++ b/arch/parisc/include/asm/pgtable.h diff --git a/include/asm-parisc/poll.h b/arch/parisc/include/asm/poll.h index c98509d3149e..c98509d3149e 100644 --- a/include/asm-parisc/poll.h +++ b/arch/parisc/include/asm/poll.h diff --git a/include/asm-parisc/posix_types.h b/arch/parisc/include/asm/posix_types.h index bb725a6630bb..bb725a6630bb 100644 --- a/include/asm-parisc/posix_types.h +++ b/arch/parisc/include/asm/posix_types.h diff --git a/include/asm-parisc/prefetch.h b/arch/parisc/include/asm/prefetch.h index c5edc60c059f..c5edc60c059f 100644 --- a/include/asm-parisc/prefetch.h +++ b/arch/parisc/include/asm/prefetch.h diff --git a/include/asm-parisc/processor.h b/arch/parisc/include/asm/processor.h index 3c9d34844c83..3c9d34844c83 100644 --- a/include/asm-parisc/processor.h +++ b/arch/parisc/include/asm/processor.h diff --git a/include/asm-parisc/psw.h b/arch/parisc/include/asm/psw.h index 5a3e23c9ce63..5a3e23c9ce63 100644 --- a/include/asm-parisc/psw.h +++ b/arch/parisc/include/asm/psw.h diff --git a/include/asm-parisc/ptrace.h b/arch/parisc/include/asm/ptrace.h index 3e94c5d85ff5..3e94c5d85ff5 100644 --- a/include/asm-parisc/ptrace.h +++ b/arch/parisc/include/asm/ptrace.h diff --git a/include/asm-parisc/real.h b/arch/parisc/include/asm/real.h index 82acb25db395..82acb25db395 100644 --- a/include/asm-parisc/real.h +++ b/arch/parisc/include/asm/real.h diff --git a/include/asm-parisc/resource.h b/arch/parisc/include/asm/resource.h index 8b06343b62ed..8b06343b62ed 100644 --- a/include/asm-parisc/resource.h +++ b/arch/parisc/include/asm/resource.h diff --git a/include/asm-parisc/ropes.h b/arch/parisc/include/asm/ropes.h index 007a880615eb..09f51d5ab57c 100644 --- a/include/asm-parisc/ropes.h +++ b/arch/parisc/include/asm/ropes.h @@ -1,7 +1,7 @@ #ifndef _ASM_PARISC_ROPES_H_ #define _ASM_PARISC_ROPES_H_ -#include <asm-parisc/parisc-device.h> +#include <asm/parisc-device.h> #ifdef CONFIG_64BIT /* "low end" PA8800 machines use ZX1 chipset: PAT PDC and only run 64-bit */ diff --git a/include/asm-parisc/rt_sigframe.h b/arch/parisc/include/asm/rt_sigframe.h index f0dd3b30f6c4..f0dd3b30f6c4 100644 --- a/include/asm-parisc/rt_sigframe.h +++ b/arch/parisc/include/asm/rt_sigframe.h diff --git a/include/asm-parisc/rtc.h b/arch/parisc/include/asm/rtc.h index 099d641a42c2..099d641a42c2 100644 --- a/include/asm-parisc/rtc.h +++ b/arch/parisc/include/asm/rtc.h diff --git a/include/asm-parisc/runway.h b/arch/parisc/include/asm/runway.h index 5bea02da7e22..5bea02da7e22 100644 --- a/include/asm-parisc/runway.h +++ b/arch/parisc/include/asm/runway.h diff --git a/include/asm-parisc/scatterlist.h b/arch/parisc/include/asm/scatterlist.h index 62269b31ebf4..62269b31ebf4 100644 --- a/include/asm-parisc/scatterlist.h +++ b/arch/parisc/include/asm/scatterlist.h diff --git a/include/asm-parisc/sections.h b/arch/parisc/include/asm/sections.h index 9d13c3507ad6..9d13c3507ad6 100644 --- a/include/asm-parisc/sections.h +++ b/arch/parisc/include/asm/sections.h diff --git a/include/asm-parisc/segment.h b/arch/parisc/include/asm/segment.h index 26794ddb6524..26794ddb6524 100644 --- a/include/asm-parisc/segment.h +++ b/arch/parisc/include/asm/segment.h diff --git a/include/asm-parisc/sembuf.h b/arch/parisc/include/asm/sembuf.h index 1e59ffd3bd1e..1e59ffd3bd1e 100644 --- a/include/asm-parisc/sembuf.h +++ b/arch/parisc/include/asm/sembuf.h diff --git a/include/asm-parisc/serial.h b/arch/parisc/include/asm/serial.h index d7e3cc60dbc3..d7e3cc60dbc3 100644 --- a/include/asm-parisc/serial.h +++ b/arch/parisc/include/asm/serial.h diff --git a/include/asm-parisc/setup.h b/arch/parisc/include/asm/setup.h index 7da2e5b8747e..7da2e5b8747e 100644 --- a/include/asm-parisc/setup.h +++ b/arch/parisc/include/asm/setup.h diff --git a/include/asm-parisc/shmbuf.h b/arch/parisc/include/asm/shmbuf.h index 0a3eada1863b..0a3eada1863b 100644 --- a/include/asm-parisc/shmbuf.h +++ b/arch/parisc/include/asm/shmbuf.h diff --git a/include/asm-parisc/shmparam.h b/arch/parisc/include/asm/shmparam.h index 628ddc22faa8..628ddc22faa8 100644 --- a/include/asm-parisc/shmparam.h +++ b/arch/parisc/include/asm/shmparam.h diff --git a/include/asm-parisc/sigcontext.h b/arch/parisc/include/asm/sigcontext.h index 27ef31bb3b6e..27ef31bb3b6e 100644 --- a/include/asm-parisc/sigcontext.h +++ b/arch/parisc/include/asm/sigcontext.h diff --git a/include/asm-parisc/siginfo.h b/arch/parisc/include/asm/siginfo.h index d4909f55fe35..d4909f55fe35 100644 --- a/include/asm-parisc/siginfo.h +++ b/arch/parisc/include/asm/siginfo.h diff --git a/include/asm-parisc/signal.h b/arch/parisc/include/asm/signal.h index c20356375d1d..c20356375d1d 100644 --- a/include/asm-parisc/signal.h +++ b/arch/parisc/include/asm/signal.h diff --git a/include/asm-parisc/smp.h b/arch/parisc/include/asm/smp.h index 398cdbaf4e54..398cdbaf4e54 100644 --- a/include/asm-parisc/smp.h +++ b/arch/parisc/include/asm/smp.h diff --git a/include/asm-parisc/socket.h b/arch/parisc/include/asm/socket.h index fba402c95ac2..fba402c95ac2 100644 --- a/include/asm-parisc/socket.h +++ b/arch/parisc/include/asm/socket.h diff --git a/include/asm-parisc/sockios.h b/arch/parisc/include/asm/sockios.h index dabfbc7483f6..dabfbc7483f6 100644 --- a/include/asm-parisc/sockios.h +++ b/arch/parisc/include/asm/sockios.h diff --git a/include/asm-parisc/spinlock.h b/arch/parisc/include/asm/spinlock.h index f3d2090a18dc..f3d2090a18dc 100644 --- a/include/asm-parisc/spinlock.h +++ b/arch/parisc/include/asm/spinlock.h diff --git a/include/asm-parisc/spinlock_types.h b/arch/parisc/include/asm/spinlock_types.h index 3f72f47cf4b2..3f72f47cf4b2 100644 --- a/include/asm-parisc/spinlock_types.h +++ b/arch/parisc/include/asm/spinlock_types.h diff --git a/include/asm-parisc/stat.h b/arch/parisc/include/asm/stat.h index 9d5fbbc5c31f..9d5fbbc5c31f 100644 --- a/include/asm-parisc/stat.h +++ b/arch/parisc/include/asm/stat.h diff --git a/include/asm-parisc/statfs.h b/arch/parisc/include/asm/statfs.h index 324bea905dc6..324bea905dc6 100644 --- a/include/asm-parisc/statfs.h +++ b/arch/parisc/include/asm/statfs.h diff --git a/include/asm-parisc/string.h b/arch/parisc/include/asm/string.h index eda01be65e35..eda01be65e35 100644 --- a/include/asm-parisc/string.h +++ b/arch/parisc/include/asm/string.h diff --git a/include/asm-parisc/superio.h b/arch/parisc/include/asm/superio.h index 6598acb4d46d..6598acb4d46d 100644 --- a/include/asm-parisc/superio.h +++ b/arch/parisc/include/asm/superio.h diff --git a/include/asm-parisc/system.h b/arch/parisc/include/asm/system.h index ee80c920b464..ee80c920b464 100644 --- a/include/asm-parisc/system.h +++ b/arch/parisc/include/asm/system.h diff --git a/include/asm-parisc/termbits.h b/arch/parisc/include/asm/termbits.h index d8bbc73b16b7..d8bbc73b16b7 100644 --- a/include/asm-parisc/termbits.h +++ b/arch/parisc/include/asm/termbits.h diff --git a/include/asm-parisc/termios.h b/arch/parisc/include/asm/termios.h index a2a57a4548af..a2a57a4548af 100644 --- a/include/asm-parisc/termios.h +++ b/arch/parisc/include/asm/termios.h diff --git a/include/asm-parisc/thread_info.h b/arch/parisc/include/asm/thread_info.h index 9f812741c355..9f812741c355 100644 --- a/include/asm-parisc/thread_info.h +++ b/arch/parisc/include/asm/thread_info.h diff --git a/include/asm-parisc/timex.h b/arch/parisc/include/asm/timex.h index 3b68d77273d9..3b68d77273d9 100644 --- a/include/asm-parisc/timex.h +++ b/arch/parisc/include/asm/timex.h diff --git a/include/asm-parisc/tlb.h b/arch/parisc/include/asm/tlb.h index 383b1db310ee..383b1db310ee 100644 --- a/include/asm-parisc/tlb.h +++ b/arch/parisc/include/asm/tlb.h diff --git a/include/asm-parisc/tlbflush.h b/arch/parisc/include/asm/tlbflush.h index b72ec66db699..b72ec66db699 100644 --- a/include/asm-parisc/tlbflush.h +++ b/arch/parisc/include/asm/tlbflush.h diff --git a/include/asm-parisc/topology.h b/arch/parisc/include/asm/topology.h index d8133eb0b1e7..d8133eb0b1e7 100644 --- a/include/asm-parisc/topology.h +++ b/arch/parisc/include/asm/topology.h diff --git a/include/asm-parisc/traps.h b/arch/parisc/include/asm/traps.h index 1945f995f2df..1945f995f2df 100644 --- a/include/asm-parisc/traps.h +++ b/arch/parisc/include/asm/traps.h diff --git a/include/asm-parisc/types.h b/arch/parisc/include/asm/types.h index 7f5a39bfb4ce..7f5a39bfb4ce 100644 --- a/include/asm-parisc/types.h +++ b/arch/parisc/include/asm/types.h diff --git a/include/asm-parisc/uaccess.h b/arch/parisc/include/asm/uaccess.h index 4878b9501f24..4878b9501f24 100644 --- a/include/asm-parisc/uaccess.h +++ b/arch/parisc/include/asm/uaccess.h diff --git a/include/asm-parisc/ucontext.h b/arch/parisc/include/asm/ucontext.h index 6c8883e4b0bd..6c8883e4b0bd 100644 --- a/include/asm-parisc/ucontext.h +++ b/arch/parisc/include/asm/ucontext.h diff --git a/include/asm-parisc/unaligned.h b/arch/parisc/include/asm/unaligned.h index dfc5d3321a54..dfc5d3321a54 100644 --- a/include/asm-parisc/unaligned.h +++ b/arch/parisc/include/asm/unaligned.h diff --git a/include/asm-parisc/unistd.h b/arch/parisc/include/asm/unistd.h index a7d857f0e4f4..ef26b009dc5d 100644 --- a/include/asm-parisc/unistd.h +++ b/arch/parisc/include/asm/unistd.h @@ -801,8 +801,14 @@ #define __NR_timerfd_create (__NR_Linux + 306) #define __NR_timerfd_settime (__NR_Linux + 307) #define __NR_timerfd_gettime (__NR_Linux + 308) - -#define __NR_Linux_syscalls (__NR_timerfd_gettime + 1) +#define __NR_signalfd4 (__NR_Linux + 309) +#define __NR_eventfd2 (__NR_Linux + 310) +#define __NR_epoll_create1 (__NR_Linux + 311) +#define __NR_dup3 (__NR_Linux + 312) +#define __NR_pipe2 (__NR_Linux + 313) +#define __NR_inotify_init1 (__NR_Linux + 314) + +#define __NR_Linux_syscalls (__NR_inotify_init1 + 1) #define __IGNORE_select /* newselect */ diff --git a/include/asm-parisc/unwind.h b/arch/parisc/include/asm/unwind.h index 2f7e6e50a158..52482e4fc20d 100644 --- a/include/asm-parisc/unwind.h +++ b/arch/parisc/include/asm/unwind.h @@ -74,4 +74,6 @@ void unwind_frame_init_running(struct unwind_frame_info *info, struct pt_regs *r int unwind_once(struct unwind_frame_info *info); int unwind_to_user(struct unwind_frame_info *info); +int unwind_init(void); + #endif diff --git a/include/asm-parisc/user.h b/arch/parisc/include/asm/user.h index 80224753e508..80224753e508 100644 --- a/include/asm-parisc/user.h +++ b/arch/parisc/include/asm/user.h diff --git a/include/asm-parisc/vga.h b/arch/parisc/include/asm/vga.h index 171399a88ca6..171399a88ca6 100644 --- a/include/asm-parisc/vga.h +++ b/arch/parisc/include/asm/vga.h diff --git a/include/asm-parisc/xor.h b/arch/parisc/include/asm/xor.h index c82eb12a5b18..c82eb12a5b18 100644 --- a/include/asm-parisc/xor.h +++ b/arch/parisc/include/asm/xor.h diff --git a/arch/parisc/kernel/.gitignore b/arch/parisc/kernel/.gitignore new file mode 100644 index 000000000000..c5f676c3c224 --- /dev/null +++ b/arch/parisc/kernel/.gitignore @@ -0,0 +1 @@ +vmlinux.lds diff --git a/arch/parisc/kernel/asm-offsets.c b/arch/parisc/kernel/asm-offsets.c index 3efc0b73e4ff..699cf8ef2118 100644 --- a/arch/parisc/kernel/asm-offsets.c +++ b/arch/parisc/kernel/asm-offsets.c @@ -290,5 +290,8 @@ int main(void) DEFINE(EXCDATA_IP, offsetof(struct exception_data, fault_ip)); DEFINE(EXCDATA_SPACE, offsetof(struct exception_data, fault_space)); DEFINE(EXCDATA_ADDR, offsetof(struct exception_data, fault_addr)); + BLANK(); + DEFINE(ASM_PDC_RESULT_SIZE, NUM_PDC_RESULT * sizeof(unsigned long)); + BLANK(); return 0; } diff --git a/arch/parisc/kernel/firmware.c b/arch/parisc/kernel/firmware.c index 7177a6cd1b7f..03f26bd75bd8 100644 --- a/arch/parisc/kernel/firmware.c +++ b/arch/parisc/kernel/firmware.c @@ -71,8 +71,8 @@ #include <asm/processor.h> /* for boot_cpu_data */ static DEFINE_SPINLOCK(pdc_lock); -static unsigned long pdc_result[32] __attribute__ ((aligned (8))); -static unsigned long pdc_result2[32] __attribute__ ((aligned (8))); +extern unsigned long pdc_result[NUM_PDC_RESULT]; +extern unsigned long pdc_result2[NUM_PDC_RESULT]; #ifdef CONFIG_64BIT #define WIDE_FIRMWARE 0x1 @@ -150,26 +150,40 @@ static void convert_to_wide(unsigned long *addr) #endif } +#ifdef CONFIG_64BIT +void __init set_firmware_width_unlocked(void) +{ + int ret; + + ret = mem_pdc_call(PDC_MODEL, PDC_MODEL_CAPABILITIES, + __pa(pdc_result), 0); + convert_to_wide(pdc_result); + if (pdc_result[0] != NARROW_FIRMWARE) + parisc_narrow_firmware = 0; +} + /** * set_firmware_width - Determine if the firmware is wide or narrow. * - * This function must be called before any pdc_* function that uses the convert_to_wide - * function. + * This function must be called before any pdc_* function that uses the + * convert_to_wide function. */ void __init set_firmware_width(void) { -#ifdef CONFIG_64BIT - int retval; unsigned long flags; + spin_lock_irqsave(&pdc_lock, flags); + set_firmware_width_unlocked(); + spin_unlock_irqrestore(&pdc_lock, flags); +} +#else +void __init set_firmware_width_unlocked(void) { + return; +} - spin_lock_irqsave(&pdc_lock, flags); - retval = mem_pdc_call(PDC_MODEL, PDC_MODEL_CAPABILITIES, __pa(pdc_result), 0); - convert_to_wide(pdc_result); - if(pdc_result[0] != NARROW_FIRMWARE) - parisc_narrow_firmware = 0; - spin_unlock_irqrestore(&pdc_lock, flags); -#endif +void __init set_firmware_width(void) { + return; } +#endif /*CONFIG_64BIT*/ /** * pdc_emergency_unlock - Unlock the linux pdc lock @@ -288,6 +302,20 @@ int pdc_chassis_warn(unsigned long *warn) return retval; } +int __init pdc_coproc_cfg_unlocked(struct pdc_coproc_cfg *pdc_coproc_info) +{ + int ret; + + ret = mem_pdc_call(PDC_COPROC, PDC_COPROC_CFG, __pa(pdc_result)); + convert_to_wide(pdc_result); + pdc_coproc_info->ccr_functional = pdc_result[0]; + pdc_coproc_info->ccr_present = pdc_result[1]; + pdc_coproc_info->revision = pdc_result[17]; + pdc_coproc_info->model = pdc_result[18]; + + return ret; +} + /** * pdc_coproc_cfg - To identify coprocessors attached to the processor. * @pdc_coproc_info: Return buffer address. @@ -297,19 +325,14 @@ int pdc_chassis_warn(unsigned long *warn) */ int __init pdc_coproc_cfg(struct pdc_coproc_cfg *pdc_coproc_info) { - int retval; + int ret; unsigned long flags; - spin_lock_irqsave(&pdc_lock, flags); - retval = mem_pdc_call(PDC_COPROC, PDC_COPROC_CFG, __pa(pdc_result)); - convert_to_wide(pdc_result); - pdc_coproc_info->ccr_functional = pdc_result[0]; - pdc_coproc_info->ccr_present = pdc_result[1]; - pdc_coproc_info->revision = pdc_result[17]; - pdc_coproc_info->model = pdc_result[18]; - spin_unlock_irqrestore(&pdc_lock, flags); + spin_lock_irqsave(&pdc_lock, flags); + ret = pdc_coproc_cfg_unlocked(pdc_coproc_info); + spin_unlock_irqrestore(&pdc_lock, flags); - return retval; + return ret; } /** diff --git a/arch/parisc/kernel/head.S b/arch/parisc/kernel/head.S index a84e31e82876..0e3d9f9b9e33 100644 --- a/arch/parisc/kernel/head.S +++ b/arch/parisc/kernel/head.S @@ -121,7 +121,7 @@ $pgt_fill_loop: copy %r0,%r2 /* And the RFI Target address too */ - load32 start_kernel,%r11 + load32 start_parisc,%r11 /* And the initial task pointer */ load32 init_thread_union,%r6 diff --git a/arch/parisc/kernel/real2.S b/arch/parisc/kernel/real2.S index 7a92695d95a6..5f3d3a1f9037 100644 --- a/arch/parisc/kernel/real2.S +++ b/arch/parisc/kernel/real2.S @@ -8,12 +8,24 @@ * */ +#include <asm/pdc.h> #include <asm/psw.h> #include <asm/assembly.h> +#include <asm/asm-offsets.h> #include <linux/linkage.h> + .section .bss + + .export pdc_result + .export pdc_result2 + .align 8 +pdc_result: + .block ASM_PDC_RESULT_SIZE +pdc_result2: + .block ASM_PDC_RESULT_SIZE + .export real_stack .export real32_stack .export real64_stack diff --git a/arch/parisc/kernel/setup.c b/arch/parisc/kernel/setup.c index 39e7c5a5946a..7d27853ff8c8 100644 --- a/arch/parisc/kernel/setup.c +++ b/arch/parisc/kernel/setup.c @@ -44,6 +44,7 @@ #include <asm/pdc_chassis.h> #include <asm/io.h> #include <asm/setup.h> +#include <asm/unwind.h> static char __initdata command_line[COMMAND_LINE_SIZE]; @@ -123,6 +124,7 @@ void __init setup_arch(char **cmdline_p) #ifdef CONFIG_64BIT extern int parisc_narrow_firmware; #endif + unwind_init(); init_per_cpu(smp_processor_id()); /* Set Modes & Enable FP */ @@ -368,6 +370,31 @@ static int __init parisc_init(void) return 0; } - arch_initcall(parisc_init); +void start_parisc(void) +{ + extern void start_kernel(void); + + int ret, cpunum; + struct pdc_coproc_cfg coproc_cfg; + + cpunum = smp_processor_id(); + + set_firmware_width_unlocked(); + + ret = pdc_coproc_cfg_unlocked(&coproc_cfg); + if (ret >= 0 && coproc_cfg.ccr_functional) { + mtctl(coproc_cfg.ccr_functional, 10); + + cpu_data[cpunum].fp_rev = coproc_cfg.revision; + cpu_data[cpunum].fp_model = coproc_cfg.model; + + asm volatile ("fstd %fr0,8(%sp)"); + } else { + panic("must have an fpu to boot linux"); + } + + start_kernel(); + // not reached +} diff --git a/arch/parisc/kernel/syscall_table.S b/arch/parisc/kernel/syscall_table.S index 6b5ac38f5a99..6084667eacf9 100644 --- a/arch/parisc/kernel/syscall_table.S +++ b/arch/parisc/kernel/syscall_table.S @@ -407,6 +407,12 @@ ENTRY_SAME(timerfd_create) ENTRY_COMP(timerfd_settime) ENTRY_COMP(timerfd_gettime) + ENTRY_COMP(signalfd4) + ENTRY_SAME(eventfd2) /* 310 */ + ENTRY_SAME(epoll_create1) + ENTRY_SAME(dup3) + ENTRY_SAME(pipe2) + ENTRY_SAME(inotify_init1) /* Nothing yet */ diff --git a/arch/parisc/kernel/time.c b/arch/parisc/kernel/time.c index 24be86bba94d..4d09203bc693 100644 --- a/arch/parisc/kernel/time.c +++ b/arch/parisc/kernel/time.c @@ -23,6 +23,7 @@ #include <linux/smp.h> #include <linux/profile.h> #include <linux/clocksource.h> +#include <linux/platform_device.h> #include <asm/uaccess.h> #include <asm/io.h> @@ -215,6 +216,24 @@ void __init start_cpu_itimer(void) cpu_data[cpu].it_value = next_tick; } +struct platform_device rtc_parisc_dev = { + .name = "rtc-parisc", + .id = -1, +}; + +static int __init rtc_init(void) +{ + int ret; + + ret = platform_device_register(&rtc_parisc_dev); + if (ret < 0) + printk(KERN_ERR "unable to register rtc device...\n"); + + /* not necessarily an error */ + return 0; +} +module_init(rtc_init); + void __init time_init(void) { static struct pdc_tod tod_data; @@ -245,4 +264,3 @@ void __init time_init(void) xtime.tv_nsec = 0; } } - diff --git a/arch/parisc/kernel/unwind.c b/arch/parisc/kernel/unwind.c index 701b2d2d8882..6773c582e457 100644 --- a/arch/parisc/kernel/unwind.c +++ b/arch/parisc/kernel/unwind.c @@ -170,7 +170,7 @@ void unwind_table_remove(struct unwind_table *table) } /* Called from setup_arch to import the kernel unwind info */ -static int unwind_init(void) +int unwind_init(void) { long start, stop; register unsigned long gp __asm__ ("r27"); @@ -417,5 +417,3 @@ int unwind_to_user(struct unwind_frame_info *info) return ret; } - -module_init(unwind_init); diff --git a/drivers/char/agp/parisc-agp.c b/drivers/char/agp/parisc-agp.c index 8c42dcc5958c..f4bbcb273208 100644 --- a/drivers/char/agp/parisc-agp.c +++ b/drivers/char/agp/parisc-agp.c @@ -20,8 +20,8 @@ #include <linux/agp_backend.h> #include <linux/log2.h> -#include <asm-parisc/parisc-device.h> -#include <asm-parisc/ropes.h> +#include <asm/parisc-device.h> +#include <asm/ropes.h> #include "agp.h" diff --git a/drivers/parisc/ccio-dma.c b/drivers/parisc/ccio-dma.c index b30e38f3a50d..dcc1e9958d2f 100644 --- a/drivers/parisc/ccio-dma.c +++ b/drivers/parisc/ccio-dma.c @@ -66,15 +66,8 @@ #undef DEBUG_CCIO_RUN_SG #ifdef CONFIG_PROC_FS -/* - * CCIO_SEARCH_TIME can help measure how fast the bitmap search is. - * impacts performance though - ditch it if you don't use it. - */ -#define CCIO_SEARCH_TIME -#undef CCIO_MAP_STATS -#else -#undef CCIO_SEARCH_TIME -#undef CCIO_MAP_STATS +/* depends on proc fs support. But costs CPU performance. */ +#undef CCIO_COLLECT_STATS #endif #include <linux/proc_fs.h> @@ -239,12 +232,10 @@ struct ioc { u32 res_size; /* size of resource map in bytes */ spinlock_t res_lock; -#ifdef CCIO_SEARCH_TIME +#ifdef CCIO_COLLECT_STATS #define CCIO_SEARCH_SAMPLE 0x100 unsigned long avg_search[CCIO_SEARCH_SAMPLE]; unsigned long avg_idx; /* current index into avg_search */ -#endif -#ifdef CCIO_MAP_STATS unsigned long used_pages; unsigned long msingle_calls; unsigned long msingle_pages; @@ -351,7 +342,7 @@ ccio_alloc_range(struct ioc *ioc, struct device *dev, size_t size) unsigned int pages_needed = size >> IOVP_SHIFT; unsigned int res_idx; unsigned long boundary_size; -#ifdef CCIO_SEARCH_TIME +#ifdef CCIO_COLLECT_STATS unsigned long cr_start = mfctl(16); #endif @@ -406,7 +397,7 @@ resource_found: DBG_RES("%s() res_idx %d res_hint: %d\n", __func__, res_idx, ioc->res_hint); -#ifdef CCIO_SEARCH_TIME +#ifdef CCIO_COLLECT_STATS { unsigned long cr_end = mfctl(16); unsigned long tmp = cr_end - cr_start; @@ -416,7 +407,7 @@ resource_found: ioc->avg_search[ioc->avg_idx++] = cr_start; ioc->avg_idx &= CCIO_SEARCH_SAMPLE - 1; #endif -#ifdef CCIO_MAP_STATS +#ifdef CCIO_COLLECT_STATS ioc->used_pages += pages_needed; #endif /* @@ -452,7 +443,7 @@ ccio_free_range(struct ioc *ioc, dma_addr_t iova, unsigned long pages_mapped) DBG_RES("%s(): res_idx: %d pages_mapped %d\n", __func__, res_idx, pages_mapped); -#ifdef CCIO_MAP_STATS +#ifdef CCIO_COLLECT_STATS ioc->used_pages -= pages_mapped; #endif @@ -764,7 +755,7 @@ ccio_map_single(struct device *dev, void *addr, size_t size, size = ALIGN(size + offset, IOVP_SIZE); spin_lock_irqsave(&ioc->res_lock, flags); -#ifdef CCIO_MAP_STATS +#ifdef CCIO_COLLECT_STATS ioc->msingle_calls++; ioc->msingle_pages += size >> IOVP_SHIFT; #endif @@ -828,7 +819,7 @@ ccio_unmap_single(struct device *dev, dma_addr_t iova, size_t size, spin_lock_irqsave(&ioc->res_lock, flags); -#ifdef CCIO_MAP_STATS +#ifdef CCIO_COLLECT_STATS ioc->usingle_calls++; ioc->usingle_pages += size >> IOVP_SHIFT; #endif @@ -894,7 +885,7 @@ ccio_free_consistent(struct device *dev, size_t size, void *cpu_addr, */ #define PIDE_FLAG 0x80000000UL -#ifdef CCIO_MAP_STATS +#ifdef CCIO_COLLECT_STATS #define IOMMU_MAP_STATS #endif #include "iommu-helpers.h" @@ -938,7 +929,7 @@ ccio_map_sg(struct device *dev, struct scatterlist *sglist, int nents, spin_lock_irqsave(&ioc->res_lock, flags); -#ifdef CCIO_MAP_STATS +#ifdef CCIO_COLLECT_STATS ioc->msg_calls++; #endif @@ -997,13 +988,13 @@ ccio_unmap_sg(struct device *dev, struct scatterlist *sglist, int nents, DBG_RUN_SG("%s() START %d entries, %08lx,%x\n", __func__, nents, sg_virt_addr(sglist), sglist->length); -#ifdef CCIO_MAP_STATS +#ifdef CCIO_COLLECT_STATS ioc->usg_calls++; #endif while(sg_dma_len(sglist) && nents--) { -#ifdef CCIO_MAP_STATS +#ifdef CCIO_COLLECT_STATS ioc->usg_pages += sg_dma_len(sglist) >> PAGE_SHIFT; #endif ccio_unmap_single(dev, sg_dma_address(sglist), @@ -1048,7 +1039,7 @@ static int ccio_proc_info(struct seq_file *m, void *p) len += seq_printf(m, "IO PDIR size : %d bytes (%d entries)\n", total_pages * 8, total_pages); -#ifdef CCIO_MAP_STATS +#ifdef CCIO_COLLECT_STATS len += seq_printf(m, "IO PDIR entries : %ld free %ld used (%d%%)\n", total_pages - ioc->used_pages, ioc->used_pages, (int)(ioc->used_pages * 100 / total_pages)); @@ -1057,7 +1048,7 @@ static int ccio_proc_info(struct seq_file *m, void *p) len += seq_printf(m, "Resource bitmap : %d bytes (%d pages)\n", ioc->res_size, total_pages); -#ifdef CCIO_SEARCH_TIME +#ifdef CCIO_COLLECT_STATS min = max = ioc->avg_search[0]; for(j = 0; j < CCIO_SEARCH_SAMPLE; ++j) { avg += ioc->avg_search[j]; @@ -1070,7 +1061,7 @@ static int ccio_proc_info(struct seq_file *m, void *p) len += seq_printf(m, " Bitmap search : %ld/%ld/%ld (min/avg/max CPU Cycles)\n", min, avg, max); #endif -#ifdef CCIO_MAP_STATS +#ifdef CCIO_COLLECT_STATS len += seq_printf(m, "pci_map_single(): %8ld calls %8ld pages (avg %d/1000)\n", ioc->msingle_calls, ioc->msingle_pages, (int)((ioc->msingle_pages * 1000)/ioc->msingle_calls)); @@ -1088,7 +1079,7 @@ static int ccio_proc_info(struct seq_file *m, void *p) len += seq_printf(m, "pci_unmap_sg() : %8ld calls %8ld pages (avg %d/1000)\n\n\n", ioc->usg_calls, ioc->usg_pages, (int)((ioc->usg_pages * 1000)/ioc->usg_calls)); -#endif /* CCIO_MAP_STATS */ +#endif /* CCIO_COLLECT_STATS */ ioc = ioc->next; } diff --git a/drivers/rtc/Kconfig b/drivers/rtc/Kconfig index 9a9755c92fad..30d40fe194a8 100644 --- a/drivers/rtc/Kconfig +++ b/drivers/rtc/Kconfig @@ -575,6 +575,14 @@ config RTC_DRV_RS5C313 help If you say yes here you get support for the Ricoh RS5C313 RTC chips. +config RTC_DRV_PARISC + tristate "PA-RISC firmware RTC support" + depends on PARISC + help + Say Y or M here to enable RTC support on PA-RISC systems using + firmware calls. If you do not know what you are doing, you should + just say Y. + config RTC_DRV_PPC tristate "PowerPC machine dependent RTC support" depends on PPC_MERGE diff --git a/drivers/rtc/Makefile b/drivers/rtc/Makefile index 18622ef84cab..180ddacde730 100644 --- a/drivers/rtc/Makefile +++ b/drivers/rtc/Makefile @@ -45,6 +45,7 @@ obj-$(CONFIG_RTC_DRV_PCF8563) += rtc-pcf8563.o obj-$(CONFIG_RTC_DRV_PCF8583) += rtc-pcf8583.o obj-$(CONFIG_RTC_DRV_PL030) += rtc-pl030.o obj-$(CONFIG_RTC_DRV_PL031) += rtc-pl031.o +obj-$(CONFIG_RTC_DRV_PARISC) += rtc-parisc.o obj-$(CONFIG_RTC_DRV_PPC) += rtc-ppc.o obj-$(CONFIG_RTC_DRV_R9701) += rtc-r9701.o obj-$(CONFIG_RTC_DRV_RS5C313) += rtc-rs5c313.o diff --git a/drivers/rtc/rtc-parisc.c b/drivers/rtc/rtc-parisc.c new file mode 100644 index 000000000000..346d633655e7 --- /dev/null +++ b/drivers/rtc/rtc-parisc.c @@ -0,0 +1,111 @@ +/* rtc-parisc: RTC for HP PA-RISC firmware + * + * Copyright (C) 2008 Kyle McMartin <kyle@mcmartin.ca> + */ + +#include <linux/kernel.h> +#include <linux/module.h> +#include <linux/time.h> +#include <linux/platform_device.h> + +#include <asm/rtc.h> + +/* as simple as can be, and no simpler. */ +struct parisc_rtc { + struct rtc_device *rtc; + spinlock_t lock; +}; + +static int parisc_get_time(struct device *dev, struct rtc_time *tm) +{ + struct parisc_rtc *p = dev_get_drvdata(dev); + unsigned long flags, ret; + + spin_lock_irqsave(&p->lock, flags); + ret = get_rtc_time(tm); + spin_unlock_irqrestore(&p->lock, flags); + + if (ret & RTC_BATT_BAD) + return -EOPNOTSUPP; + + return 0; +} + +static int parisc_set_time(struct device *dev, struct rtc_time *tm) +{ + struct parisc_rtc *p = dev_get_drvdata(dev); + unsigned long flags, ret; + + spin_lock_irqsave(&p->lock, flags); + ret = set_rtc_time(tm); + spin_unlock_irqrestore(&p->lock, flags); + + if (ret < 0) + return -EOPNOTSUPP; + + return 0; +} + +static const struct rtc_class_ops parisc_rtc_ops = { + .read_time = parisc_get_time, + .set_time = parisc_set_time, +}; + +static int __devinit parisc_rtc_probe(struct platform_device *dev) +{ + struct parisc_rtc *p; + + p = kzalloc(sizeof (*p), GFP_KERNEL); + if (!p) + return -ENOMEM; + + spin_lock_init(&p->lock); + + p->rtc = rtc_device_register("rtc-parisc", &dev->dev, &parisc_rtc_ops, + THIS_MODULE); + if (IS_ERR(p->rtc)) { + int err = PTR_ERR(p->rtc); + kfree(p); + return err; + } + + platform_set_drvdata(dev, p); + + return 0; +} + +static int __devexit parisc_rtc_remove(struct platform_device *dev) +{ + struct parisc_rtc *p = platform_get_drvdata(dev); + + rtc_device_unregister(p->rtc); + kfree(p); + + return 0; +} + +static struct platform_driver parisc_rtc_driver = { + .driver = { + .name = "rtc-parisc", + .owner = THIS_MODULE, + }, + .probe = parisc_rtc_probe, + .remove = __devexit_p(parisc_rtc_remove), +}; + +static int __init parisc_rtc_init(void) +{ + return platform_driver_register(&parisc_rtc_driver); +} + +static void __exit parisc_rtc_fini(void) +{ + platform_driver_unregister(&parisc_rtc_driver); +} + +module_init(parisc_rtc_init); +module_exit(parisc_rtc_fini); + +MODULE_AUTHOR("Kyle McMartin <kyle@mcmartin.ca>"); +MODULE_LICENSE("GPL"); +MODULE_DESCRIPTION("HP PA-RISC RTC driver"); |