mirror of https://gitee.com/openkylin/linux.git
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6: sparc64: Fix end-of-stack checking in save_stack_trace(). sparc: don't use asm/of_device.h sparc64: Use kernel/uid16.c helpers instead of own copy. of/sparc: remove include of linux/of_platform.h from asm/of_platform.h sparc: i8042-sparcio.h: fix warning
This commit is contained in:
commit
8d659f5e43
|
@ -12,9 +12,9 @@
|
|||
#ifndef _LINUX_IOPORT_H
|
||||
#include <linux/ioport.h>
|
||||
#endif
|
||||
#include <linux/of_device.h>
|
||||
#include <asm/oplib.h>
|
||||
#include <asm/prom.h>
|
||||
#include <asm/of_device.h>
|
||||
|
||||
struct linux_ebus_child {
|
||||
struct linux_ebus_child *next;
|
||||
|
|
|
@ -8,9 +8,10 @@
|
|||
#ifndef __SPARC64_EBUS_H
|
||||
#define __SPARC64_EBUS_H
|
||||
|
||||
#include <linux/of_device.h>
|
||||
|
||||
#include <asm/oplib.h>
|
||||
#include <asm/prom.h>
|
||||
#include <asm/of_device.h>
|
||||
|
||||
struct linux_ebus_child {
|
||||
struct linux_ebus_child *next;
|
||||
|
|
|
@ -13,9 +13,6 @@
|
|||
*
|
||||
*/
|
||||
|
||||
/* This is just here during the transition */
|
||||
#include <linux/of_platform.h>
|
||||
|
||||
extern struct bus_type ebus_bus_type;
|
||||
extern struct bus_type sbus_bus_type;
|
||||
|
||||
|
|
|
@ -6,9 +6,10 @@
|
|||
#ifndef _ASM_SPARC64_PARPORT_H
|
||||
#define _ASM_SPARC64_PARPORT_H 1
|
||||
|
||||
#include <linux/of_device.h>
|
||||
|
||||
#include <asm/ebus.h>
|
||||
#include <asm/ns87303.h>
|
||||
#include <asm/of_device.h>
|
||||
#include <asm/prom.h>
|
||||
|
||||
#define PARPORT_PC_MAX_PORTS PARPORT_MAX
|
||||
|
|
|
@ -9,10 +9,10 @@
|
|||
|
||||
#include <linux/dma-mapping.h>
|
||||
#include <linux/ioport.h>
|
||||
#include <linux/of_device.h>
|
||||
|
||||
#include <asm/oplib.h>
|
||||
#include <asm/prom.h>
|
||||
#include <asm/of_device.h>
|
||||
#include <asm/scatterlist.h>
|
||||
|
||||
/* We scan which devices are on the SBus using the PROM node device
|
||||
|
|
|
@ -8,10 +8,10 @@
|
|||
|
||||
#include <linux/dma-mapping.h>
|
||||
#include <linux/ioport.h>
|
||||
#include <linux/of_device.h>
|
||||
|
||||
#include <asm/oplib.h>
|
||||
#include <asm/prom.h>
|
||||
#include <asm/of_device.h>
|
||||
#include <asm/iommu.h>
|
||||
#include <asm/scatterlist.h>
|
||||
|
||||
|
|
|
@ -36,12 +36,12 @@
|
|||
#include <linux/pci.h> /* struct pci_dev */
|
||||
#include <linux/proc_fs.h>
|
||||
#include <linux/scatterlist.h>
|
||||
#include <linux/of_device.h>
|
||||
|
||||
#include <asm/io.h>
|
||||
#include <asm/vaddrs.h>
|
||||
#include <asm/oplib.h>
|
||||
#include <asm/prom.h>
|
||||
#include <asm/of_device.h>
|
||||
#include <asm/sbus.h>
|
||||
#include <asm/page.h>
|
||||
#include <asm/pgalloc.h>
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
#include <linux/pci.h>
|
||||
#include <linux/ioport.h>
|
||||
#include <linux/profile.h>
|
||||
#include <linux/of_device.h>
|
||||
|
||||
#include <asm/oplib.h>
|
||||
#include <asm/timer.h>
|
||||
|
@ -40,7 +41,6 @@
|
|||
#include <asm/sun4paddr.h>
|
||||
#include <asm/page.h>
|
||||
#include <asm/pcic.h>
|
||||
#include <asm/of_device.h>
|
||||
#include <asm/irq_regs.h>
|
||||
|
||||
#include "irq.h"
|
||||
|
|
|
@ -9,9 +9,9 @@
|
|||
#include <linux/kernel.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/ioport.h>
|
||||
#include <linux/of_device.h>
|
||||
|
||||
#include <asm/prom.h>
|
||||
#include <asm/of_device.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/auxio.h>
|
||||
|
||||
|
|
|
@ -14,13 +14,13 @@
|
|||
#include <linux/interrupt.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/pci.h>
|
||||
#include <linux/of_device.h>
|
||||
|
||||
#include <asm/system.h>
|
||||
#include <asm/page.h>
|
||||
#include <asm/ebus.h>
|
||||
#include <asm/oplib.h>
|
||||
#include <asm/prom.h>
|
||||
#include <asm/of_device.h>
|
||||
#include <asm/bpp.h>
|
||||
#include <asm/irq.h>
|
||||
#include <asm/io.h>
|
||||
|
|
|
@ -8,9 +8,9 @@
|
|||
#include <linux/init.h>
|
||||
#include <linux/pci.h>
|
||||
#include <linux/device.h>
|
||||
#include <linux/of_device.h>
|
||||
|
||||
#include <asm/prom.h>
|
||||
#include <asm/of_device.h>
|
||||
#include <asm/oplib.h>
|
||||
|
||||
#include "pci_impl.h"
|
||||
|
|
|
@ -11,12 +11,12 @@
|
|||
#include <linux/init.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/of_device.h>
|
||||
|
||||
#include <asm/iommu.h>
|
||||
#include <asm/irq.h>
|
||||
#include <asm/starfire.h>
|
||||
#include <asm/prom.h>
|
||||
#include <asm/of_device.h>
|
||||
#include <asm/oplib.h>
|
||||
|
||||
#include "pci_impl.h"
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
#include <linux/init.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/of_device.h>
|
||||
|
||||
#include <asm/apb.h>
|
||||
#include <asm/iommu.h>
|
||||
|
@ -18,7 +19,6 @@
|
|||
#include <asm/smp.h>
|
||||
#include <asm/oplib.h>
|
||||
#include <asm/prom.h>
|
||||
#include <asm/of_device.h>
|
||||
|
||||
#include "pci_impl.h"
|
||||
#include "iommu_common.h"
|
||||
|
|
|
@ -9,13 +9,13 @@
|
|||
#include <linux/init.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/of_device.h>
|
||||
|
||||
#include <asm/iommu.h>
|
||||
#include <asm/irq.h>
|
||||
#include <asm/upa.h>
|
||||
#include <asm/pstate.h>
|
||||
#include <asm/prom.h>
|
||||
#include <asm/of_device.h>
|
||||
#include <asm/oplib.h>
|
||||
|
||||
#include "pci_impl.h"
|
||||
|
|
|
@ -13,11 +13,11 @@
|
|||
#include <linux/pm.h>
|
||||
#include <linux/syscalls.h>
|
||||
#include <linux/reboot.h>
|
||||
#include <linux/of_device.h>
|
||||
|
||||
#include <asm/system.h>
|
||||
#include <asm/auxio.h>
|
||||
#include <asm/prom.h>
|
||||
#include <asm/of_device.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/sstate.h>
|
||||
#include <asm/reboot.h>
|
||||
|
|
|
@ -21,9 +21,9 @@
|
|||
#include <linux/mm.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/lmb.h>
|
||||
#include <linux/of_device.h>
|
||||
|
||||
#include <asm/prom.h>
|
||||
#include <asm/of_device.h>
|
||||
#include <asm/oplib.h>
|
||||
#include <asm/irq.h>
|
||||
#include <asm/asi.h>
|
||||
|
|
|
@ -26,13 +26,15 @@ void save_stack_trace(struct stack_trace *trace)
|
|||
|
||||
/* Bogus frame pointer? */
|
||||
if (fp < (thread_base + sizeof(struct thread_info)) ||
|
||||
fp >= (thread_base + THREAD_SIZE))
|
||||
fp > (thread_base + THREAD_SIZE - sizeof(struct sparc_stackf)))
|
||||
break;
|
||||
|
||||
sf = (struct sparc_stackf *) fp;
|
||||
regs = (struct pt_regs *) (sf + 1);
|
||||
|
||||
if ((regs->magic & ~0x1ff) == PT_REGS_MAGIC) {
|
||||
if (((unsigned long)regs <=
|
||||
(thread_base + THREAD_SIZE - sizeof(*regs))) &&
|
||||
(regs->magic & ~0x1ff) == PT_REGS_MAGIC) {
|
||||
if (!(regs->tstate & TSTATE_PRIV))
|
||||
break;
|
||||
pc = regs->tpc;
|
||||
|
|
|
@ -58,182 +58,6 @@
|
|||
#include <asm/mmu_context.h>
|
||||
#include <asm/compat_signal.h>
|
||||
|
||||
asmlinkage long sys32_chown16(const char __user * filename, u16 user, u16 group)
|
||||
{
|
||||
return sys_chown(filename, low2highuid(user), low2highgid(group));
|
||||
}
|
||||
|
||||
asmlinkage long sys32_lchown16(const char __user * filename, u16 user, u16 group)
|
||||
{
|
||||
return sys_lchown(filename, low2highuid(user), low2highgid(group));
|
||||
}
|
||||
|
||||
asmlinkage long sys32_fchown16(unsigned int fd, u16 user, u16 group)
|
||||
{
|
||||
return sys_fchown(fd, low2highuid(user), low2highgid(group));
|
||||
}
|
||||
|
||||
asmlinkage long sys32_setregid16(u16 rgid, u16 egid)
|
||||
{
|
||||
return sys_setregid(low2highgid(rgid), low2highgid(egid));
|
||||
}
|
||||
|
||||
asmlinkage long sys32_setgid16(u16 gid)
|
||||
{
|
||||
return sys_setgid((gid_t)gid);
|
||||
}
|
||||
|
||||
asmlinkage long sys32_setreuid16(u16 ruid, u16 euid)
|
||||
{
|
||||
return sys_setreuid(low2highuid(ruid), low2highuid(euid));
|
||||
}
|
||||
|
||||
asmlinkage long sys32_setuid16(u16 uid)
|
||||
{
|
||||
return sys_setuid((uid_t)uid);
|
||||
}
|
||||
|
||||
asmlinkage long sys32_setresuid16(u16 ruid, u16 euid, u16 suid)
|
||||
{
|
||||
return sys_setresuid(low2highuid(ruid), low2highuid(euid),
|
||||
low2highuid(suid));
|
||||
}
|
||||
|
||||
asmlinkage long sys32_getresuid16(u16 __user *ruid, u16 __user *euid, u16 __user *suid)
|
||||
{
|
||||
int retval;
|
||||
|
||||
if (!(retval = put_user(high2lowuid(current->uid), ruid)) &&
|
||||
!(retval = put_user(high2lowuid(current->euid), euid)))
|
||||
retval = put_user(high2lowuid(current->suid), suid);
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
||||
asmlinkage long sys32_setresgid16(u16 rgid, u16 egid, u16 sgid)
|
||||
{
|
||||
return sys_setresgid(low2highgid(rgid), low2highgid(egid),
|
||||
low2highgid(sgid));
|
||||
}
|
||||
|
||||
asmlinkage long sys32_getresgid16(u16 __user *rgid, u16 __user *egid, u16 __user *sgid)
|
||||
{
|
||||
int retval;
|
||||
|
||||
if (!(retval = put_user(high2lowgid(current->gid), rgid)) &&
|
||||
!(retval = put_user(high2lowgid(current->egid), egid)))
|
||||
retval = put_user(high2lowgid(current->sgid), sgid);
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
||||
asmlinkage long sys32_setfsuid16(u16 uid)
|
||||
{
|
||||
return sys_setfsuid((uid_t)uid);
|
||||
}
|
||||
|
||||
asmlinkage long sys32_setfsgid16(u16 gid)
|
||||
{
|
||||
return sys_setfsgid((gid_t)gid);
|
||||
}
|
||||
|
||||
static int groups16_to_user(u16 __user *grouplist, struct group_info *group_info)
|
||||
{
|
||||
int i;
|
||||
u16 group;
|
||||
|
||||
for (i = 0; i < group_info->ngroups; i++) {
|
||||
group = (u16)GROUP_AT(group_info, i);
|
||||
if (put_user(group, grouplist+i))
|
||||
return -EFAULT;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int groups16_from_user(struct group_info *group_info, u16 __user *grouplist)
|
||||
{
|
||||
int i;
|
||||
u16 group;
|
||||
|
||||
for (i = 0; i < group_info->ngroups; i++) {
|
||||
if (get_user(group, grouplist+i))
|
||||
return -EFAULT;
|
||||
GROUP_AT(group_info, i) = (gid_t)group;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
asmlinkage long sys32_getgroups16(int gidsetsize, u16 __user *grouplist)
|
||||
{
|
||||
int i;
|
||||
|
||||
if (gidsetsize < 0)
|
||||
return -EINVAL;
|
||||
|
||||
get_group_info(current->group_info);
|
||||
i = current->group_info->ngroups;
|
||||
if (gidsetsize) {
|
||||
if (i > gidsetsize) {
|
||||
i = -EINVAL;
|
||||
goto out;
|
||||
}
|
||||
if (groups16_to_user(grouplist, current->group_info)) {
|
||||
i = -EFAULT;
|
||||
goto out;
|
||||
}
|
||||
}
|
||||
out:
|
||||
put_group_info(current->group_info);
|
||||
return i;
|
||||
}
|
||||
|
||||
asmlinkage long sys32_setgroups16(int gidsetsize, u16 __user *grouplist)
|
||||
{
|
||||
struct group_info *group_info;
|
||||
int retval;
|
||||
|
||||
if (!capable(CAP_SETGID))
|
||||
return -EPERM;
|
||||
if ((unsigned)gidsetsize > NGROUPS_MAX)
|
||||
return -EINVAL;
|
||||
|
||||
group_info = groups_alloc(gidsetsize);
|
||||
if (!group_info)
|
||||
return -ENOMEM;
|
||||
retval = groups16_from_user(group_info, grouplist);
|
||||
if (retval) {
|
||||
put_group_info(group_info);
|
||||
return retval;
|
||||
}
|
||||
|
||||
retval = set_current_groups(group_info);
|
||||
put_group_info(group_info);
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
||||
asmlinkage long sys32_getuid16(void)
|
||||
{
|
||||
return high2lowuid(current->uid);
|
||||
}
|
||||
|
||||
asmlinkage long sys32_geteuid16(void)
|
||||
{
|
||||
return high2lowuid(current->euid);
|
||||
}
|
||||
|
||||
asmlinkage long sys32_getgid16(void)
|
||||
{
|
||||
return high2lowgid(current->gid);
|
||||
}
|
||||
|
||||
asmlinkage long sys32_getegid16(void)
|
||||
{
|
||||
return high2lowgid(current->egid);
|
||||
}
|
||||
|
||||
/* 32-bit timeval and related flotsam. */
|
||||
|
||||
static inline long put_tv32(struct compat_timeval __user *o, struct timeval *i)
|
||||
|
|
|
@ -20,21 +20,21 @@
|
|||
sys_call_table32:
|
||||
/*0*/ .word sys_restart_syscall, sys32_exit, sys_fork, sys_read, sys_write
|
||||
/*5*/ .word sys32_open, sys_close, sys32_wait4, sys32_creat, sys_link
|
||||
/*10*/ .word sys_unlink, sunos_execv, sys_chdir, sys32_chown16, sys32_mknod
|
||||
/*15*/ .word sys_chmod, sys32_lchown16, sparc_brk, sys32_perfctr, sys32_lseek
|
||||
/*20*/ .word sys_getpid, sys_capget, sys_capset, sys32_setuid16, sys32_getuid16
|
||||
/*10*/ .word sys_unlink, sunos_execv, sys_chdir, sys_chown16, sys32_mknod
|
||||
/*15*/ .word sys_chmod, sys_lchown16, sparc_brk, sys32_perfctr, sys32_lseek
|
||||
/*20*/ .word sys_getpid, sys_capget, sys_capset, sys_setuid16, sys_getuid16
|
||||
/*25*/ .word sys32_vmsplice, compat_sys_ptrace, sys_alarm, sys32_sigaltstack, sys32_pause
|
||||
/*30*/ .word compat_sys_utime, sys_lchown, sys_fchown, sys32_access, sys32_nice
|
||||
.word sys_chown, sys_sync, sys32_kill, compat_sys_newstat, sys32_sendfile
|
||||
/*40*/ .word compat_sys_newlstat, sys_dup, sys_pipe, compat_sys_times, sys_getuid
|
||||
.word sys32_umount, sys32_setgid16, sys32_getgid16, sys32_signal, sys32_geteuid16
|
||||
/*50*/ .word sys32_getegid16, sys_acct, sys_nis_syscall, sys_getgid, compat_sys_ioctl
|
||||
.word sys32_umount, sys_setgid16, sys_getgid16, sys32_signal, sys_geteuid16
|
||||
/*50*/ .word sys_getegid16, sys_acct, sys_nis_syscall, sys_getgid, compat_sys_ioctl
|
||||
.word sys32_reboot, sys32_mmap2, sys_symlink, sys32_readlink, sys32_execve
|
||||
/*60*/ .word sys32_umask, sys_chroot, compat_sys_newfstat, compat_sys_fstat64, sys_getpagesize
|
||||
.word sys32_msync, sys_vfork, sys32_pread64, sys32_pwrite64, sys_geteuid
|
||||
/*70*/ .word sys_getegid, sys_mmap, sys_setreuid, sys_munmap, sys_mprotect
|
||||
.word sys_madvise, sys_vhangup, sys32_truncate64, sys_mincore, sys32_getgroups16
|
||||
/*80*/ .word sys32_setgroups16, sys_getpgrp, sys32_setgroups, sys32_setitimer, sys32_ftruncate64
|
||||
.word sys_madvise, sys_vhangup, sys32_truncate64, sys_mincore, sys_getgroups16
|
||||
/*80*/ .word sys_setgroups16, sys_getpgrp, sys32_setgroups, sys32_setitimer, sys32_ftruncate64
|
||||
.word sys32_swapon, sys32_getitimer, sys_setuid, sys32_sethostname, sys_setgid
|
||||
/*90*/ .word sys_dup2, sys_setfsuid, compat_sys_fcntl, sys32_select, sys_setfsgid
|
||||
.word sys_fsync, sys32_setpriority, sys_nis_syscall, sys_nis_syscall, sys_nis_syscall
|
||||
|
@ -42,8 +42,8 @@ sys_call_table32:
|
|||
.word compat_sys_rt_sigtimedwait, sys32_rt_sigqueueinfo, compat_sys_rt_sigsuspend, sys_setresuid, sys_getresuid
|
||||
/*110*/ .word sys_setresgid, sys_getresgid, sys_setregid, sys_nis_syscall, sys_nis_syscall
|
||||
.word sys32_getgroups, sys32_gettimeofday, sys32_getrusage, sys_nis_syscall, sys_getcwd
|
||||
/*120*/ .word compat_sys_readv, compat_sys_writev, sys32_settimeofday, sys32_fchown16, sys_fchmod
|
||||
.word sys_nis_syscall, sys32_setreuid16, sys32_setregid16, sys_rename, sys_truncate
|
||||
/*120*/ .word compat_sys_readv, compat_sys_writev, sys32_settimeofday, sys_fchown16, sys_fchmod
|
||||
.word sys_nis_syscall, sys_setreuid16, sys_setregid16, sys_rename, sys_truncate
|
||||
/*130*/ .word sys_ftruncate, sys_flock, compat_sys_lstat64, sys_nis_syscall, sys_nis_syscall
|
||||
.word sys_nis_syscall, sys32_mkdir, sys_rmdir, compat_sys_utimes, compat_sys_stat64
|
||||
/*140*/ .word sys32_sendfile64, sys_nis_syscall, sys32_futex, sys_gettid, compat_sys_getrlimit
|
||||
|
@ -63,7 +63,7 @@ sys_call_table32:
|
|||
/*210*/ .word sys32_fadvise64_64, sys32_tgkill, sys32_waitpid, sys_swapoff, compat_sys_sysinfo
|
||||
.word compat_sys_ipc, sys32_sigreturn, sys_clone, sys32_ioprio_get, compat_sys_adjtimex
|
||||
/*220*/ .word sys32_sigprocmask, sys_ni_syscall, sys32_delete_module, sys_ni_syscall, sys32_getpgid
|
||||
.word sys32_bdflush, sys32_sysfs, sys_nis_syscall, sys32_setfsuid16, sys32_setfsgid16
|
||||
.word sys32_bdflush, sys32_sysfs, sys_nis_syscall, sys_setfsuid16, sys_setfsgid16
|
||||
/*230*/ .word sys32_select, compat_sys_time, sys32_splice, compat_sys_stime, compat_sys_statfs64
|
||||
.word compat_sys_fstatfs64, sys_llseek, sys_mlock, sys_munlock, sys32_mlockall
|
||||
/*240*/ .word sys_munlockall, sys32_sched_setparam, sys32_sched_getparam, sys32_sched_setscheduler, sys32_sched_getscheduler
|
||||
|
|
|
@ -33,6 +33,7 @@
|
|||
#include <linux/kernel_stat.h>
|
||||
#include <linux/clockchips.h>
|
||||
#include <linux/clocksource.h>
|
||||
#include <linux/of_device.h>
|
||||
|
||||
#include <asm/oplib.h>
|
||||
#include <asm/mostek.h>
|
||||
|
@ -40,7 +41,6 @@
|
|||
#include <asm/irq.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/prom.h>
|
||||
#include <asm/of_device.h>
|
||||
#include <asm/starfire.h>
|
||||
#include <asm/smp.h>
|
||||
#include <asm/sections.h>
|
||||
|
|
|
@ -41,6 +41,8 @@ static inline void i8042_write_command(int val)
|
|||
writeb(val, kbd_iobase + 0x64UL);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PCI
|
||||
|
||||
#define OBP_PS2KBD_NAME1 "kb_ps2"
|
||||
#define OBP_PS2KBD_NAME2 "keyboard"
|
||||
#define OBP_PS2MS_NAME1 "kdmouse"
|
||||
|
@ -101,9 +103,6 @@ static struct of_platform_driver sparc_i8042_driver = {
|
|||
|
||||
static int __init i8042_platform_init(void)
|
||||
{
|
||||
#ifndef CONFIG_PCI
|
||||
return -ENODEV;
|
||||
#else
|
||||
struct device_node *root = of_find_node_by_path("/");
|
||||
|
||||
if (!strcmp(root->name, "SUNW,JavaStation-1")) {
|
||||
|
@ -131,17 +130,25 @@ static int __init i8042_platform_init(void)
|
|||
i8042_reset = 1;
|
||||
|
||||
return 0;
|
||||
#endif /* CONFIG_PCI */
|
||||
}
|
||||
|
||||
static inline void i8042_platform_exit(void)
|
||||
{
|
||||
#ifdef CONFIG_PCI
|
||||
struct device_node *root = of_find_node_by_path("/");
|
||||
|
||||
if (strcmp(root->name, "SUNW,JavaStation-1"))
|
||||
of_unregister_driver(&sparc_i8042_driver);
|
||||
#endif
|
||||
}
|
||||
|
||||
#else /* !CONFIG_PCI */
|
||||
static int __init i8042_platform_init(void)
|
||||
{
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
static inline void i8042_platform_exit(void)
|
||||
{
|
||||
}
|
||||
#endif /* !CONFIG_PCI */
|
||||
|
||||
#endif /* _I8042_SPARCIO_H */
|
||||
|
|
Loading…
Reference in New Issue