提交 bd1d23a8 编写于 作者: L Linus Torvalds

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 initrd regression.
  usb: Sparc build fix, make USB_ISP1760_OF depend on PPC_OF
  sparc64: remove online_page()
  sparc64: use compat_sys_utimes instead of home-grown local copy.
  sbus: Fix bpp driver build.
  sparc video: make blank use proper constant
  Revert "[SPARC64]: Wrap SMP IPIs with irq_enter()/irq_exit()."
  sparc: tcx.c remove unnecessary function
...@@ -865,21 +865,14 @@ void smp_call_function_client(int irq, struct pt_regs *regs) ...@@ -865,21 +865,14 @@ void smp_call_function_client(int irq, struct pt_regs *regs)
void *info = call_data->info; void *info = call_data->info;
clear_softint(1 << irq); clear_softint(1 << irq);
irq_enter();
if (!call_data->wait) {
/* let initiator proceed after getting data */
atomic_inc(&call_data->finished);
}
func(info);
irq_exit();
if (call_data->wait) { if (call_data->wait) {
/* let initiator proceed only after completion */ /* let initiator proceed only after completion */
func(info);
atomic_inc(&call_data->finished); atomic_inc(&call_data->finished);
} else {
/* let initiator proceed after getting data */
atomic_inc(&call_data->finished);
func(info);
} }
} }
...@@ -1041,9 +1034,7 @@ void smp_receive_signal(int cpu) ...@@ -1041,9 +1034,7 @@ void smp_receive_signal(int cpu)
void smp_receive_signal_client(int irq, struct pt_regs *regs) void smp_receive_signal_client(int irq, struct pt_regs *regs)
{ {
irq_enter();
clear_softint(1 << irq); clear_softint(1 << irq);
irq_exit();
} }
void smp_new_mmu_context_version_client(int irq, struct pt_regs *regs) void smp_new_mmu_context_version_client(int irq, struct pt_regs *regs)
...@@ -1051,8 +1042,6 @@ void smp_new_mmu_context_version_client(int irq, struct pt_regs *regs) ...@@ -1051,8 +1042,6 @@ void smp_new_mmu_context_version_client(int irq, struct pt_regs *regs)
struct mm_struct *mm; struct mm_struct *mm;
unsigned long flags; unsigned long flags;
irq_enter();
clear_softint(1 << irq); clear_softint(1 << irq);
/* See if we need to allocate a new TLB context because /* See if we need to allocate a new TLB context because
...@@ -1072,8 +1061,6 @@ void smp_new_mmu_context_version_client(int irq, struct pt_regs *regs) ...@@ -1072,8 +1061,6 @@ void smp_new_mmu_context_version_client(int irq, struct pt_regs *regs)
load_secondary_context(mm); load_secondary_context(mm);
__flush_tlb_mm(CTX_HWBITS(mm->context), __flush_tlb_mm(CTX_HWBITS(mm->context),
SECONDARY_CONTEXT); SECONDARY_CONTEXT);
irq_exit();
} }
void smp_new_mmu_context_version(void) void smp_new_mmu_context_version(void)
...@@ -1239,8 +1226,6 @@ void smp_penguin_jailcell(int irq, struct pt_regs *regs) ...@@ -1239,8 +1226,6 @@ void smp_penguin_jailcell(int irq, struct pt_regs *regs)
{ {
clear_softint(1 << irq); clear_softint(1 << irq);
irq_enter();
preempt_disable(); preempt_disable();
__asm__ __volatile__("flushw"); __asm__ __volatile__("flushw");
...@@ -1253,8 +1238,6 @@ void smp_penguin_jailcell(int irq, struct pt_regs *regs) ...@@ -1253,8 +1238,6 @@ void smp_penguin_jailcell(int irq, struct pt_regs *regs)
prom_world(0); prom_world(0);
preempt_enable(); preempt_enable();
irq_exit();
} }
/* /proc/profile writes can call this, don't __init it please. */ /* /proc/profile writes can call this, don't __init it please. */
......
...@@ -236,13 +236,6 @@ asmlinkage long sys32_getegid16(void) ...@@ -236,13 +236,6 @@ asmlinkage long sys32_getegid16(void)
/* 32-bit timeval and related flotsam. */ /* 32-bit timeval and related flotsam. */
static long get_tv32(struct timeval *o, struct compat_timeval __user *i)
{
return (!access_ok(VERIFY_READ, i, sizeof(*i)) ||
(__get_user(o->tv_sec, &i->tv_sec) |
__get_user(o->tv_usec, &i->tv_usec)));
}
static inline long put_tv32(struct compat_timeval __user *o, struct timeval *i) static inline long put_tv32(struct compat_timeval __user *o, struct timeval *i)
{ {
return (!access_ok(VERIFY_WRITE, o, sizeof(*o)) || return (!access_ok(VERIFY_WRITE, o, sizeof(*o)) ||
...@@ -757,30 +750,6 @@ asmlinkage long sys32_settimeofday(struct compat_timeval __user *tv, ...@@ -757,30 +750,6 @@ asmlinkage long sys32_settimeofday(struct compat_timeval __user *tv,
return do_sys_settimeofday(tv ? &kts : NULL, tz ? &ktz : NULL); return do_sys_settimeofday(tv ? &kts : NULL, tz ? &ktz : NULL);
} }
asmlinkage long sys32_utimes(char __user *filename,
struct compat_timeval __user *tvs)
{
struct timespec tv[2];
if (tvs) {
struct timeval ktvs[2];
if (get_tv32(&ktvs[0], tvs) ||
get_tv32(&ktvs[1], 1+tvs))
return -EFAULT;
if (ktvs[0].tv_usec < 0 || ktvs[0].tv_usec >= 1000000 ||
ktvs[1].tv_usec < 0 || ktvs[1].tv_usec >= 1000000)
return -EINVAL;
tv[0].tv_sec = ktvs[0].tv_sec;
tv[0].tv_nsec = 1000 * ktvs[0].tv_usec;
tv[1].tv_sec = ktvs[1].tv_sec;
tv[1].tv_nsec = 1000 * ktvs[1].tv_usec;
}
return do_utimes(AT_FDCWD, filename, tvs ? tv : NULL, 0);
}
/* These are here just in case some old sparc32 binary calls it. */ /* These are here just in case some old sparc32 binary calls it. */
asmlinkage long sys32_pause(void) asmlinkage long sys32_pause(void)
{ {
......
...@@ -45,7 +45,7 @@ sys_call_table32: ...@@ -45,7 +45,7 @@ sys_call_table32:
/*120*/ .word compat_sys_readv, compat_sys_writev, sys32_settimeofday, sys32_fchown16, sys_fchmod /*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 .word sys_nis_syscall, sys32_setreuid16, sys32_setregid16, sys_rename, sys_truncate
/*130*/ .word sys_ftruncate, sys_flock, compat_sys_lstat64, sys_nis_syscall, sys_nis_syscall /*130*/ .word sys_ftruncate, sys_flock, compat_sys_lstat64, sys_nis_syscall, sys_nis_syscall
.word sys_nis_syscall, sys32_mkdir, sys_rmdir, sys32_utimes, compat_sys_stat64 .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 /*140*/ .word sys32_sendfile64, sys_nis_syscall, sys32_futex, sys_gettid, compat_sys_getrlimit
.word compat_sys_setrlimit, sys_pivot_root, sys32_prctl, sys_pciconfig_read, sys_pciconfig_write .word compat_sys_setrlimit, sys_pivot_root, sys32_prctl, sys_pciconfig_read, sys_pciconfig_write
/*150*/ .word sys_nis_syscall, sys_inotify_init, sys_inotify_add_watch, sys_poll, sys_getdents64 /*150*/ .word sys_nis_syscall, sys_inotify_init, sys_inotify_add_watch, sys_poll, sys_getdents64
......
...@@ -771,6 +771,9 @@ static void __init find_ramdisk(unsigned long phys_base) ...@@ -771,6 +771,9 @@ static void __init find_ramdisk(unsigned long phys_base)
initrd_end = ramdisk_image + sparc_ramdisk_size; initrd_end = ramdisk_image + sparc_ramdisk_size;
lmb_reserve(initrd_start, initrd_end); lmb_reserve(initrd_start, initrd_end);
initrd_start += PAGE_OFFSET;
initrd_end += PAGE_OFFSET;
} }
#endif #endif
} }
...@@ -2362,16 +2365,3 @@ void __flush_tlb_all(void) ...@@ -2362,16 +2365,3 @@ void __flush_tlb_all(void)
__asm__ __volatile__("wrpr %0, 0, %%pstate" __asm__ __volatile__("wrpr %0, 0, %%pstate"
: : "r" (pstate)); : : "r" (pstate));
} }
#ifdef CONFIG_MEMORY_HOTPLUG
void online_page(struct page *page)
{
ClearPageReserved(page);
init_page_count(page);
__free_page(page);
totalram_pages++;
num_physpages++;
}
#endif /* CONFIG_MEMORY_HOTPLUG */
...@@ -41,7 +41,7 @@ ...@@ -41,7 +41,7 @@
#define BPP_DELAY 100 #define BPP_DELAY 100
static const unsigned BPP_MAJOR = LP_MAJOR; static const unsigned BPP_MAJOR = LP_MAJOR;
static const char* dev_name = "bpp"; static const char *bpp_dev_name = "bpp";
/* When switching from compatibility to a mode where I can read, try /* When switching from compatibility to a mode where I can read, try
the following mode first. */ the following mode first. */
......
...@@ -129,7 +129,7 @@ config USB_ISP1760_PCI ...@@ -129,7 +129,7 @@ config USB_ISP1760_PCI
config USB_ISP1760_OF config USB_ISP1760_OF
bool "Support for the OF platform bus" bool "Support for the OF platform bus"
depends on USB_ISP1760_HCD && OF depends on USB_ISP1760_HCD && PPC_OF
---help--- ---help---
Enables support for the device present on the PowerPC Enables support for the device present on the PowerPC
OpenFirmware platform bus. OpenFirmware platform bus.
......
...@@ -329,7 +329,7 @@ static int __devinit bw2_probe(struct of_device *op, const struct of_device_id * ...@@ -329,7 +329,7 @@ static int __devinit bw2_probe(struct of_device *op, const struct of_device_id *
if (!info->screen_base) if (!info->screen_base)
goto out_unmap_regs; goto out_unmap_regs;
bw2_blank(0, info); bw2_blank(FB_BLANK_UNBLANK, info);
bw2_init_fix(info, linebytes); bw2_init_fix(info, linebytes);
......
...@@ -398,7 +398,7 @@ static int __devinit cg3_probe(struct of_device *op, ...@@ -398,7 +398,7 @@ static int __devinit cg3_probe(struct of_device *op,
if (!info->screen_base) if (!info->screen_base)
goto out_unmap_regs; goto out_unmap_regs;
cg3_blank(0, info); cg3_blank(FB_BLANK_UNBLANK, info);
if (!of_find_property(dp, "width", NULL)) { if (!of_find_property(dp, "width", NULL)) {
err = cg3_do_default_mode(par); err = cg3_do_default_mode(par);
......
...@@ -767,7 +767,7 @@ static int __devinit cg6_probe(struct of_device *op, ...@@ -767,7 +767,7 @@ static int __devinit cg6_probe(struct of_device *op,
cg6_bt_init(par); cg6_bt_init(par);
cg6_chip_init(info); cg6_chip_init(info);
cg6_blank(0, info); cg6_blank(FB_BLANK_UNBLANK, info);
if (fb_alloc_cmap(&info->cmap, 256, 0)) if (fb_alloc_cmap(&info->cmap, 256, 0))
goto out_unmap_regs; goto out_unmap_regs;
......
...@@ -987,7 +987,7 @@ static int __devinit ffb_probe(struct of_device *op, ...@@ -987,7 +987,7 @@ static int __devinit ffb_probe(struct of_device *op,
* chosen console, it will have video outputs off in * chosen console, it will have video outputs off in
* the DAC. * the DAC.
*/ */
ffb_blank(0, info); ffb_blank(FB_BLANK_UNBLANK, info);
if (fb_alloc_cmap(&info->cmap, 256, 0)) if (fb_alloc_cmap(&info->cmap, 256, 0))
goto out_unmap_dac; goto out_unmap_dac;
......
...@@ -601,7 +601,7 @@ static int __devinit leo_probe(struct of_device *op, const struct of_device_id * ...@@ -601,7 +601,7 @@ static int __devinit leo_probe(struct of_device *op, const struct of_device_id *
leo_init_wids(info); leo_init_wids(info);
leo_init_hw(info); leo_init_hw(info);
leo_blank(0, info); leo_blank(FB_BLANK_UNBLANK, info);
if (fb_alloc_cmap(&info->cmap, 256, 0)) if (fb_alloc_cmap(&info->cmap, 256, 0))
goto out_unmap_regs; goto out_unmap_regs;
......
...@@ -295,7 +295,7 @@ static int __devinit p9100_probe(struct of_device *op, const struct of_device_id ...@@ -295,7 +295,7 @@ static int __devinit p9100_probe(struct of_device *op, const struct of_device_id
if (!info->screen_base) if (!info->screen_base)
goto out_unmap_regs; goto out_unmap_regs;
p9100_blank(0, info); p9100_blank(FB_BLANK_UNBLANK, info);
if (fb_alloc_cmap(&info->cmap, 256, 0)) if (fb_alloc_cmap(&info->cmap, 256, 0))
goto out_unmap_screen; goto out_unmap_screen;
......
...@@ -84,7 +84,7 @@ struct tcx_tec { ...@@ -84,7 +84,7 @@ struct tcx_tec {
struct tcx_thc { struct tcx_thc {
u32 thc_rev; u32 thc_rev;
u32 thc_pad0[511]; u32 thc_pad0[511];
u32 thc_hs; /* hsync timing */ u32 thc_hs; /* hsync timing */
u32 thc_hsdvs; u32 thc_hsdvs;
u32 thc_hd; u32 thc_hd;
...@@ -126,10 +126,10 @@ struct tcx_par { ...@@ -126,10 +126,10 @@ struct tcx_par {
}; };
/* Reset control plane so that WID is 8-bit plane. */ /* Reset control plane so that WID is 8-bit plane. */
static void __tcx_set_control_plane (struct tcx_par *par) static void __tcx_set_control_plane(struct tcx_par *par)
{ {
u32 __iomem *p, *pend; u32 __iomem *p, *pend;
if (par->lowdepth) if (par->lowdepth)
return; return;
...@@ -143,8 +143,8 @@ static void __tcx_set_control_plane (struct tcx_par *par) ...@@ -143,8 +143,8 @@ static void __tcx_set_control_plane (struct tcx_par *par)
sbus_writel(tmp, p); sbus_writel(tmp, p);
} }
} }
static void tcx_reset (struct fb_info *info) static void tcx_reset(struct fb_info *info)
{ {
struct tcx_par *par = (struct tcx_par *) info->par; struct tcx_par *par = (struct tcx_par *) info->par;
unsigned long flags; unsigned long flags;
...@@ -365,7 +365,8 @@ static void tcx_unmap_regs(struct of_device *op, struct fb_info *info, ...@@ -365,7 +365,8 @@ static void tcx_unmap_regs(struct of_device *op, struct fb_info *info,
info->screen_base, par->fbsize); info->screen_base, par->fbsize);
} }
static int __devinit tcx_init_one(struct of_device *op) static int __devinit tcx_probe(struct of_device *op,
const struct of_device_id *match)
{ {
struct device_node *dp = op->node; struct device_node *dp = op->node;
struct fb_info *info; struct fb_info *info;
...@@ -488,13 +489,6 @@ static int __devinit tcx_init_one(struct of_device *op) ...@@ -488,13 +489,6 @@ static int __devinit tcx_init_one(struct of_device *op)
return err; return err;
} }
static int __devinit tcx_probe(struct of_device *dev, const struct of_device_id *match)
{
struct of_device *op = to_of_device(&dev->dev);
return tcx_init_one(op);
}
static int __devexit tcx_remove(struct of_device *op) static int __devexit tcx_remove(struct of_device *op)
{ {
struct fb_info *info = dev_get_drvdata(&op->dev); struct fb_info *info = dev_get_drvdata(&op->dev);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册