Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus
* 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus: [MIPS] Fix marge error due to conflict in arch/mips/kernel/head.S [MIPS] ARC: Remove unused arch/mips/arc/console.c [MIPS] SNI: sniprom [MIPS] Jazz: remove unneeded reset functions [MIPS] Whitespace cleanup. [MIPS] Make resources for ds1742 "static __initdata" [MIPS] Replace __attribute_used__ with __used [MIPS] Jazz: Remove unused arch/mips/jazz/io.c [MIPS] Mark prom_free_prom_memory as __init_refok [MIPS] MIPSsim: Fix cflags
This commit is contained in:
commit
2f66b529d9
|
@ -328,7 +328,7 @@ load-$(CONFIG_MIPS_SEAD) += 0xffffffff80100000
|
||||||
# MIPS SIM
|
# MIPS SIM
|
||||||
#
|
#
|
||||||
core-$(CONFIG_MIPS_SIM) += arch/mips/mipssim/
|
core-$(CONFIG_MIPS_SIM) += arch/mips/mipssim/
|
||||||
cflags-$(CONFIG_MIPS_SIM) += -Iinclude/asm-mips/mach-sim
|
cflags-$(CONFIG_MIPS_SIM) += -Iinclude/asm-mips/mach-mipssim
|
||||||
load-$(CONFIG_MIPS_SIM) += 0x80100000
|
load-$(CONFIG_MIPS_SIM) += 0x80100000
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|
|
@ -1,31 +0,0 @@
|
||||||
/*
|
|
||||||
* This file is subject to the terms and conditions of the GNU General Public
|
|
||||||
* License. See the file "COPYING" in the main directory of this archive
|
|
||||||
* for more details.
|
|
||||||
*
|
|
||||||
* Copyright (C) 1996 David S. Miller (dm@sgi.com)
|
|
||||||
* Compability with board caches, Ulf Carlsson
|
|
||||||
*/
|
|
||||||
#include <linux/kernel.h>
|
|
||||||
#include <asm/sgialib.h>
|
|
||||||
#include <asm/bcache.h>
|
|
||||||
|
|
||||||
/*
|
|
||||||
* IP22 boardcache is not compatible with board caches. Thus we disable it
|
|
||||||
* during romvec action. Since r4xx0.c is always compiled and linked with your
|
|
||||||
* kernel, this shouldn't cause any harm regardless what MIPS processor you
|
|
||||||
* have.
|
|
||||||
*
|
|
||||||
* The ARC write and read functions seem to interfere with the serial lines
|
|
||||||
* in some way. You should be careful with them.
|
|
||||||
*/
|
|
||||||
|
|
||||||
void prom_putchar(char c)
|
|
||||||
{
|
|
||||||
ULONG cnt;
|
|
||||||
CHAR it = c;
|
|
||||||
|
|
||||||
bc_disable();
|
|
||||||
ArcWrite(1, &it, 1, &cnt);
|
|
||||||
bc_enable();
|
|
||||||
}
|
|
|
@ -1,135 +0,0 @@
|
||||||
/*
|
|
||||||
* This file is subject to the terms and conditions of the GNU General Public
|
|
||||||
* License. See the file "COPYING" in the main directory of this archive
|
|
||||||
* for more details.
|
|
||||||
*
|
|
||||||
* Low level I/O functions for Jazz family machines.
|
|
||||||
*
|
|
||||||
* Copyright (C) 1997 by Ralf Baechle.
|
|
||||||
*/
|
|
||||||
#include <linux/string.h>
|
|
||||||
#include <linux/spinlock.h>
|
|
||||||
#include <asm/addrspace.h>
|
|
||||||
#include <asm/system.h>
|
|
||||||
#include <asm/jazz.h>
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Map an 16mb segment of the EISA address space to 0xe3000000;
|
|
||||||
*/
|
|
||||||
static inline void map_eisa_address(unsigned long address)
|
|
||||||
{
|
|
||||||
/* XXX */
|
|
||||||
/* We've got an wired entry in the TLB. We just need to modify it.
|
|
||||||
fast and clean. But since we want to get rid of wired entries
|
|
||||||
things are a little bit more complicated ... */
|
|
||||||
}
|
|
||||||
|
|
||||||
static unsigned char jazz_readb(unsigned long addr)
|
|
||||||
{
|
|
||||||
unsigned char res;
|
|
||||||
|
|
||||||
map_eisa_address(addr);
|
|
||||||
addr &= 0xffffff;
|
|
||||||
res = *(volatile unsigned char *) (JAZZ_EISA_BASE + addr);
|
|
||||||
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
|
|
||||||
static unsigned short jazz_readw(unsigned long addr)
|
|
||||||
{
|
|
||||||
unsigned short res;
|
|
||||||
|
|
||||||
map_eisa_address(addr);
|
|
||||||
addr &= 0xffffff;
|
|
||||||
res = *(volatile unsigned char *) (JAZZ_EISA_BASE + addr);
|
|
||||||
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
|
|
||||||
static unsigned int jazz_readl(unsigned long addr)
|
|
||||||
{
|
|
||||||
unsigned int res;
|
|
||||||
|
|
||||||
map_eisa_address(addr);
|
|
||||||
addr &= 0xffffff;
|
|
||||||
res = *(volatile unsigned char *) (JAZZ_EISA_BASE + addr);
|
|
||||||
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void jazz_writeb(unsigned char val, unsigned long addr)
|
|
||||||
{
|
|
||||||
map_eisa_address(addr);
|
|
||||||
addr &= 0xffffff;
|
|
||||||
*(volatile unsigned char *) (JAZZ_EISA_BASE + addr) = val;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void jazz_writew(unsigned short val, unsigned long addr)
|
|
||||||
{
|
|
||||||
map_eisa_address(addr);
|
|
||||||
addr &= 0xffffff;
|
|
||||||
*(volatile unsigned char *) (JAZZ_EISA_BASE + addr) = val;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void jazz_writel(unsigned int val, unsigned long addr)
|
|
||||||
{
|
|
||||||
map_eisa_address(addr);
|
|
||||||
addr &= 0xffffff;
|
|
||||||
*(volatile unsigned char *) (JAZZ_EISA_BASE + addr) = val;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void jazz_memset_io(unsigned long addr, int val, unsigned long len)
|
|
||||||
{
|
|
||||||
unsigned long waddr;
|
|
||||||
|
|
||||||
waddr = JAZZ_EISA_BASE | (addr & 0xffffff);
|
|
||||||
while(len) {
|
|
||||||
unsigned long fraglen;
|
|
||||||
|
|
||||||
fraglen = (~addr + 1) & 0xffffff;
|
|
||||||
fraglen = (fraglen < len) ? fraglen : len;
|
|
||||||
map_eisa_address(addr);
|
|
||||||
memset((char *)waddr, val, fraglen);
|
|
||||||
addr += fraglen;
|
|
||||||
waddr = waddr + fraglen - 0x1000000;
|
|
||||||
len -= fraglen;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void jazz_memcpy_fromio(unsigned long to, unsigned long from, unsigned long len)
|
|
||||||
{
|
|
||||||
unsigned long waddr;
|
|
||||||
|
|
||||||
waddr = JAZZ_EISA_BASE | (from & 0xffffff);
|
|
||||||
while(len) {
|
|
||||||
unsigned long fraglen;
|
|
||||||
|
|
||||||
fraglen = (~from + 1) & 0xffffff;
|
|
||||||
fraglen = (fraglen < len) ? fraglen : len;
|
|
||||||
map_eisa_address(from);
|
|
||||||
memcpy((void *)to, (void *)waddr, fraglen);
|
|
||||||
to += fraglen;
|
|
||||||
from += fraglen;
|
|
||||||
waddr = waddr + fraglen - 0x1000000;
|
|
||||||
len -= fraglen;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void jazz_memcpy_toio(unsigned long to, unsigned long from, unsigned long len)
|
|
||||||
{
|
|
||||||
unsigned long waddr;
|
|
||||||
|
|
||||||
waddr = JAZZ_EISA_BASE | (to & 0xffffff);
|
|
||||||
while(len) {
|
|
||||||
unsigned long fraglen;
|
|
||||||
|
|
||||||
fraglen = (~to + 1) & 0xffffff;
|
|
||||||
fraglen = (fraglen < len) ? fraglen : len;
|
|
||||||
map_eisa_address(to);
|
|
||||||
memcpy((char *)to + JAZZ_EISA_BASE, (void *)from, fraglen);
|
|
||||||
to += fraglen;
|
|
||||||
from += fraglen;
|
|
||||||
waddr = waddr + fraglen - 0x1000000;
|
|
||||||
len -= fraglen;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -6,10 +6,6 @@
|
||||||
*/
|
*/
|
||||||
#include <linux/jiffies.h>
|
#include <linux/jiffies.h>
|
||||||
#include <asm/jazz.h>
|
#include <asm/jazz.h>
|
||||||
#include <asm/io.h>
|
|
||||||
#include <asm/system.h>
|
|
||||||
#include <asm/reboot.h>
|
|
||||||
#include <asm/delay.h>
|
|
||||||
|
|
||||||
#define KBD_STAT_IBF 0x02 /* Keyboard input buffer full */
|
#define KBD_STAT_IBF 0x02 /* Keyboard input buffer full */
|
||||||
|
|
||||||
|
@ -58,12 +54,3 @@ void jazz_machine_restart(char *command)
|
||||||
jazz_write_output (0x00);
|
jazz_write_output (0x00);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void jazz_machine_halt(void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void jazz_machine_power_off(void)
|
|
||||||
{
|
|
||||||
/* Jazz machines don't have a software power switch */
|
|
||||||
}
|
|
||||||
|
|
|
@ -34,8 +34,6 @@
|
||||||
extern asmlinkage void jazz_handle_int(void);
|
extern asmlinkage void jazz_handle_int(void);
|
||||||
|
|
||||||
extern void jazz_machine_restart(char *command);
|
extern void jazz_machine_restart(char *command);
|
||||||
extern void jazz_machine_halt(void);
|
|
||||||
extern void jazz_machine_power_off(void);
|
|
||||||
|
|
||||||
void __init plat_timer_setup(struct irqaction *irq)
|
void __init plat_timer_setup(struct irqaction *irq)
|
||||||
{
|
{
|
||||||
|
@ -95,8 +93,6 @@ void __init plat_mem_setup(void)
|
||||||
/* The RTC is outside the port address space */
|
/* The RTC is outside the port address space */
|
||||||
|
|
||||||
_machine_restart = jazz_machine_restart;
|
_machine_restart = jazz_machine_restart;
|
||||||
_machine_halt = jazz_machine_halt;
|
|
||||||
pm_power_off = jazz_machine_power_off;
|
|
||||||
|
|
||||||
screen_info = (struct screen_info) {
|
screen_info = (struct screen_info) {
|
||||||
0, 0, /* orig-x, orig-y */
|
0, 0, /* orig-x, orig-y */
|
||||||
|
|
|
@ -434,7 +434,7 @@ EXPORT_SYMBOL(__swizzle_addr_b);
|
||||||
|
|
||||||
static int __init jmr3927_rtc_init(void)
|
static int __init jmr3927_rtc_init(void)
|
||||||
{
|
{
|
||||||
struct resource res = {
|
static struct resource __initdata res = {
|
||||||
.start = JMR3927_IOC_NVRAMB_ADDR - IO_BASE,
|
.start = JMR3927_IOC_NVRAMB_ADDR - IO_BASE,
|
||||||
.end = JMR3927_IOC_NVRAMB_ADDR - IO_BASE + 0x800 - 1,
|
.end = JMR3927_IOC_NVRAMB_ADDR - IO_BASE + 0x800 - 1,
|
||||||
.flags = IORESOURCE_MEM,
|
.flags = IORESOURCE_MEM,
|
||||||
|
|
|
@ -1099,12 +1099,12 @@ void adel(void)
|
||||||
* malloc is needed by gdb client in "call func()", even a private one
|
* malloc is needed by gdb client in "call func()", even a private one
|
||||||
* will make gdb happy
|
* will make gdb happy
|
||||||
*/
|
*/
|
||||||
static void * __attribute_used__ malloc(size_t size)
|
static void __used *malloc(size_t size)
|
||||||
{
|
{
|
||||||
return kmalloc(size, GFP_ATOMIC);
|
return kmalloc(size, GFP_ATOMIC);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void __attribute_used__ free (void *where)
|
static void __used free(void *where)
|
||||||
{
|
{
|
||||||
kfree(where);
|
kfree(where);
|
||||||
}
|
}
|
||||||
|
|
|
@ -141,7 +141,7 @@
|
||||||
EXPORT(stext) # used for profiling
|
EXPORT(stext) # used for profiling
|
||||||
EXPORT(_stext)
|
EXPORT(_stext)
|
||||||
|
|
||||||
#ifdef CONFIG_BOOT_RAW
|
#ifndef CONFIG_BOOT_RAW
|
||||||
/*
|
/*
|
||||||
* Give us a fighting chance of running if execution beings at the
|
* Give us a fighting chance of running if execution beings at the
|
||||||
* kernel load address. This is needed because this platform does
|
* kernel load address. This is needed because this platform does
|
||||||
|
|
|
@ -567,7 +567,7 @@ asmlinkage long sys32_fadvise64_64(int fd, int __pad,
|
||||||
}
|
}
|
||||||
|
|
||||||
save_static_function(sys32_clone);
|
save_static_function(sys32_clone);
|
||||||
__attribute_used__ noinline static int
|
static int noinline __used
|
||||||
_sys32_clone(nabi_no_regargs struct pt_regs regs)
|
_sys32_clone(nabi_no_regargs struct pt_regs regs)
|
||||||
{
|
{
|
||||||
unsigned long clone_flags;
|
unsigned long clone_flags;
|
||||||
|
|
|
@ -85,7 +85,7 @@ static irqreturn_t rtlx_interrupt(int irq, void *dev_id)
|
||||||
return IRQ_HANDLED;
|
return IRQ_HANDLED;
|
||||||
}
|
}
|
||||||
|
|
||||||
static __attribute_used__ void dump_rtlx(void)
|
static void __used dump_rtlx(void)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
|
|
@ -167,14 +167,14 @@ sys_mmap2(unsigned long addr, unsigned long len, unsigned long prot,
|
||||||
}
|
}
|
||||||
|
|
||||||
save_static_function(sys_fork);
|
save_static_function(sys_fork);
|
||||||
__attribute_used__ noinline static int
|
static int __used noinline
|
||||||
_sys_fork(nabi_no_regargs struct pt_regs regs)
|
_sys_fork(nabi_no_regargs struct pt_regs regs)
|
||||||
{
|
{
|
||||||
return do_fork(SIGCHLD, regs.regs[29], ®s, 0, NULL, NULL);
|
return do_fork(SIGCHLD, regs.regs[29], ®s, 0, NULL, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
save_static_function(sys_clone);
|
save_static_function(sys_clone);
|
||||||
__attribute_used__ noinline static int
|
static int __used noinline
|
||||||
_sys_clone(nabi_no_regargs struct pt_regs regs)
|
_sys_clone(nabi_no_regargs struct pt_regs regs)
|
||||||
{
|
{
|
||||||
unsigned long clone_flags;
|
unsigned long clone_flags;
|
||||||
|
|
|
@ -154,7 +154,6 @@ struct {
|
||||||
};
|
};
|
||||||
|
|
||||||
static void release_progmem(void *ptr);
|
static void release_progmem(void *ptr);
|
||||||
/* static __attribute_used__ void dump_vpe(struct vpe * v); */
|
|
||||||
extern void save_gp_address(unsigned int secbase, unsigned int rel);
|
extern void save_gp_address(unsigned int secbase, unsigned int rel);
|
||||||
|
|
||||||
/* get the vpe associated with this minor */
|
/* get the vpe associated with this minor */
|
||||||
|
@ -1024,7 +1023,7 @@ static int vpe_elfload(struct vpe * v)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
__attribute_used__ void dump_vpe(struct vpe * v)
|
void __used dump_vpe(struct vpe * v)
|
||||||
{
|
{
|
||||||
struct tc *t;
|
struct tc *t;
|
||||||
|
|
||||||
|
|
|
@ -272,7 +272,7 @@ void sb1_flush_cache_data_page(unsigned long)
|
||||||
/*
|
/*
|
||||||
* Invalidate all caches on this CPU
|
* Invalidate all caches on this CPU
|
||||||
*/
|
*/
|
||||||
static void __attribute_used__ local_sb1___flush_cache_all(void)
|
static void __used local_sb1___flush_cache_all(void)
|
||||||
{
|
{
|
||||||
__sb1_writeback_inv_dcache_all();
|
__sb1_writeback_inv_dcache_all();
|
||||||
__sb1_flush_icache_all();
|
__sb1_flush_icache_all();
|
||||||
|
|
|
@ -484,7 +484,7 @@ void free_initrd_mem(unsigned long start, unsigned long end)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void free_initmem(void)
|
void __init_refok free_initmem(void)
|
||||||
{
|
{
|
||||||
prom_free_prom_memory();
|
prom_free_prom_memory();
|
||||||
free_init_pages("unused kernel memory",
|
free_init_pages("unused kernel memory",
|
||||||
|
|
|
@ -19,6 +19,7 @@
|
||||||
#include <asm/addrspace.h>
|
#include <asm/addrspace.h>
|
||||||
#include <asm/sni.h>
|
#include <asm/sni.h>
|
||||||
#include <asm/mipsprom.h>
|
#include <asm/mipsprom.h>
|
||||||
|
#include <asm/mipsregs.h>
|
||||||
#include <asm/bootinfo.h>
|
#include <asm/bootinfo.h>
|
||||||
|
|
||||||
/* special SNI prom calls */
|
/* special SNI prom calls */
|
||||||
|
@ -71,7 +72,7 @@ const char *get_system_type(void)
|
||||||
#define SNI_IDPROM_SIZE 0x1000
|
#define SNI_IDPROM_SIZE 0x1000
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
static void sni_idprom_dump(void)
|
static void __init sni_idprom_dump(void)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
@ -88,7 +89,7 @@ static void sni_idprom_dump(void)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static void sni_mem_init(void )
|
static void __init sni_mem_init(void )
|
||||||
{
|
{
|
||||||
int i, memsize;
|
int i, memsize;
|
||||||
struct membank {
|
struct membank {
|
||||||
|
|
|
@ -1020,7 +1020,7 @@ void __init toshiba_rbtx4927_timer_setup(struct irqaction *irq)
|
||||||
|
|
||||||
static int __init toshiba_rbtx4927_rtc_init(void)
|
static int __init toshiba_rbtx4927_rtc_init(void)
|
||||||
{
|
{
|
||||||
struct resource res = {
|
static struct resource __initdata res = {
|
||||||
.start = 0x1c010000,
|
.start = 0x1c010000,
|
||||||
.end = 0x1c010000 + 0x800 - 1,
|
.end = 0x1c010000 + 0x800 - 1,
|
||||||
.flags = IORESOURCE_MEM,
|
.flags = IORESOURCE_MEM,
|
||||||
|
|
|
@ -188,7 +188,6 @@
|
||||||
#define ICACHE_REFILLS_WORKAROUND_WAR 1
|
#define ICACHE_REFILLS_WORKAROUND_WAR 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* On the R10000 upto version 2.6 (not sure about 2.7) there is a bug that
|
* On the R10000 upto version 2.6 (not sure about 2.7) there is a bug that
|
||||||
* may cause ll / sc and lld / scd sequences to execute non-atomically.
|
* may cause ll / sc and lld / scd sequences to execute non-atomically.
|
||||||
|
|
Loading…
Reference in New Issue