Commit 54b33352 authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/upstream-linus

* 'upstream' of git://git.linux-mips.org/pub/scm/upstream-linus: (28 commits)
  MIPS: Alchemy: fix xxs1500 build error
  MIPS: Invalidate old TLB mappings when updating huge page PTEs.
  MIPS: Hibernation: Fixes for PAGE_SIZE >= 64kb
  MIPS: JZ4740: Set one-shot feature flag for the clockevent
  MIPS: JZ4740: Export symbols to the watchdog driver module
  MIPS: JZ4740: Fix GCC 4.6.0 build error.
  MIPS: Audit: Fix success success argument pass to audit_syscall_exit
  MIPS: Fix calc_vmlinuz_load_addr build warnings.
  MIPS: Alchemy: Fix GCC 4.6.0 build error.
  MIPS: Document former use of timerfd(2) syscall number.
  MIPS: IP27: Fix GCC 4.6.0 build error.
  MIPS: IP27: Fix GCC 4.6.0 build error.
  MIPS: bcm63xx: Fix header_crc comment in bcm963xx_tag.h
  MIPS: Octeon: Guard the Kconfig body with CPU_CAVIUM_OCTEON
  MIPS: Octeon: Cleanup Kconfig IRQ_CPU* symbols.
  MIPS: Rename .data..mostly and properly handle it in linker script
  MIPS: MSP: Fix build error
  MIPS: MSP71xx: Fix typo in msp_per_irq_controller
  MIPS: Loongson: Fix GCC 2.6.0 build error.
  MIPS: Jazz: Fix GCC 4.6.0 build error
  ...
parents 675badfc 780914c3
...@@ -997,9 +997,6 @@ config IRQ_GT641XX ...@@ -997,9 +997,6 @@ config IRQ_GT641XX
config IRQ_GIC config IRQ_GIC
bool bool
config IRQ_CPU_OCTEON
bool
config MIPS_BOARDS_GEN config MIPS_BOARDS_GEN
bool bool
...@@ -1359,8 +1356,6 @@ config CPU_SB1 ...@@ -1359,8 +1356,6 @@ config CPU_SB1
config CPU_CAVIUM_OCTEON config CPU_CAVIUM_OCTEON
bool "Cavium Octeon processor" bool "Cavium Octeon processor"
depends on SYS_HAS_CPU_CAVIUM_OCTEON depends on SYS_HAS_CPU_CAVIUM_OCTEON
select IRQ_CPU
select IRQ_CPU_OCTEON
select CPU_HAS_PREFETCH select CPU_HAS_PREFETCH
select CPU_SUPPORTS_64BIT_KERNEL select CPU_SUPPORTS_64BIT_KERNEL
select SYS_SUPPORTS_SMP select SYS_SUPPORTS_SMP
......
...@@ -127,13 +127,10 @@ const char *get_system_type(void) ...@@ -127,13 +127,10 @@ const char *get_system_type(void)
void __init board_setup(void) void __init board_setup(void)
{ {
unsigned long bcsr1, bcsr2; unsigned long bcsr1, bcsr2;
u32 pin_func;
bcsr1 = DB1000_BCSR_PHYS_ADDR; bcsr1 = DB1000_BCSR_PHYS_ADDR;
bcsr2 = DB1000_BCSR_PHYS_ADDR + DB1000_BCSR_HEXLED_OFS; bcsr2 = DB1000_BCSR_PHYS_ADDR + DB1000_BCSR_HEXLED_OFS;
pin_func = 0;
#ifdef CONFIG_MIPS_DB1000 #ifdef CONFIG_MIPS_DB1000
printk(KERN_INFO "AMD Alchemy Au1000/Db1000 Board\n"); printk(KERN_INFO "AMD Alchemy Au1000/Db1000 Board\n");
#endif #endif
...@@ -164,12 +161,16 @@ void __init board_setup(void) ...@@ -164,12 +161,16 @@ void __init board_setup(void)
/* Not valid for Au1550 */ /* Not valid for Au1550 */
#if defined(CONFIG_IRDA) && \ #if defined(CONFIG_IRDA) && \
(defined(CONFIG_SOC_AU1000) || defined(CONFIG_SOC_AU1100)) (defined(CONFIG_SOC_AU1000) || defined(CONFIG_SOC_AU1100))
/* Set IRFIRSEL instead of GPIO15 */ {
pin_func = au_readl(SYS_PINFUNC) | SYS_PF_IRF; u32 pin_func;
au_writel(pin_func, SYS_PINFUNC);
/* Power off until the driver is in use */ /* Set IRFIRSEL instead of GPIO15 */
bcsr_mod(BCSR_RESETS, BCSR_RESETS_IRDA_MODE_MASK, pin_func = au_readl(SYS_PINFUNC) | SYS_PF_IRF;
BCSR_RESETS_IRDA_MODE_OFF); au_writel(pin_func, SYS_PINFUNC);
/* Power off until the driver is in use */
bcsr_mod(BCSR_RESETS, BCSR_RESETS_IRDA_MODE_MASK,
BCSR_RESETS_IRDA_MODE_OFF);
}
#endif #endif
bcsr_write(BCSR_PCMCIA, 0); /* turn off PCMCIA power */ bcsr_write(BCSR_PCMCIA, 0); /* turn off PCMCIA power */
...@@ -177,31 +178,35 @@ void __init board_setup(void) ...@@ -177,31 +178,35 @@ void __init board_setup(void)
alchemy_gpio1_input_enable(); alchemy_gpio1_input_enable();
#ifdef CONFIG_MIPS_MIRAGE #ifdef CONFIG_MIPS_MIRAGE
/* GPIO[20] is output */ {
alchemy_gpio_direction_output(20, 0); u32 pin_func;
/* Set GPIO[210:208] instead of SSI_0 */ /* GPIO[20] is output */
pin_func = au_readl(SYS_PINFUNC) | SYS_PF_S0; alchemy_gpio_direction_output(20, 0);
/* Set GPIO[215:211] for LEDs */ /* Set GPIO[210:208] instead of SSI_0 */
pin_func |= 5 << 2; pin_func = au_readl(SYS_PINFUNC) | SYS_PF_S0;
/* Set GPIO[214:213] for more LEDs */ /* Set GPIO[215:211] for LEDs */
pin_func |= 5 << 12; pin_func |= 5 << 2;
/* Set GPIO[207:200] instead of PCMCIA/LCD */ /* Set GPIO[214:213] for more LEDs */
pin_func |= SYS_PF_LCD | SYS_PF_PC; pin_func |= 5 << 12;
au_writel(pin_func, SYS_PINFUNC);
/* /* Set GPIO[207:200] instead of PCMCIA/LCD */
* Enable speaker amplifier. This should pin_func |= SYS_PF_LCD | SYS_PF_PC;
* be part of the audio driver. au_writel(pin_func, SYS_PINFUNC);
*/
alchemy_gpio_direction_output(209, 1);
pm_power_off = mirage_power_off; /*
_machine_halt = mirage_power_off; * Enable speaker amplifier. This should
_machine_restart = (void(*)(char *))mips_softreset; * be part of the audio driver.
*/
alchemy_gpio_direction_output(209, 1);
pm_power_off = mirage_power_off;
_machine_halt = mirage_power_off;
_machine_restart = (void(*)(char *))mips_softreset;
}
#endif #endif
#ifdef CONFIG_MIPS_BOSPORUS #ifdef CONFIG_MIPS_BOSPORUS
......
...@@ -51,10 +51,9 @@ void __init prom_init(void) ...@@ -51,10 +51,9 @@ void __init prom_init(void)
prom_init_cmdline(); prom_init_cmdline();
memsize_str = prom_getenv("memsize"); memsize_str = prom_getenv("memsize");
if (!memsize_str) if (!memsize_str || strict_strtoul(memsize_str, 0, &memsize))
memsize = 0x04000000; memsize = 0x04000000;
else
strict_strtoul(memsize_str, 0, &memsize);
add_memory_region(0, memsize, BOOT_MEM_RAM); add_memory_region(0, memsize, BOOT_MEM_RAM);
} }
......
...@@ -16,8 +16,8 @@ ...@@ -16,8 +16,8 @@
int main(int argc, char *argv[]) int main(int argc, char *argv[])
{ {
unsigned long long vmlinux_size, vmlinux_load_addr, vmlinuz_load_addr;
struct stat sb; struct stat sb;
uint64_t vmlinux_size, vmlinux_load_addr, vmlinuz_load_addr;
if (argc != 3) { if (argc != 3) {
fprintf(stderr, "Usage: %s <pathname> <vmlinux_load_addr>\n", fprintf(stderr, "Usage: %s <pathname> <vmlinux_load_addr>\n",
......
config CAVIUM_OCTEON_SPECIFIC_OPTIONS if CPU_CAVIUM_OCTEON
bool "Enable Octeon specific options"
depends on CPU_CAVIUM_OCTEON
default "y"
config CAVIUM_CN63XXP1 config CAVIUM_CN63XXP1
bool "Enable CN63XXP1 errata worarounds" bool "Enable CN63XXP1 errata worarounds"
depends on CAVIUM_OCTEON_SPECIFIC_OPTIONS
default "n" default "n"
help help
The CN63XXP1 chip requires build time workarounds to The CN63XXP1 chip requires build time workarounds to
...@@ -16,7 +12,6 @@ config CAVIUM_CN63XXP1 ...@@ -16,7 +12,6 @@ config CAVIUM_CN63XXP1
config CAVIUM_OCTEON_2ND_KERNEL config CAVIUM_OCTEON_2ND_KERNEL
bool "Build the kernel to be used as a 2nd kernel on the same chip" bool "Build the kernel to be used as a 2nd kernel on the same chip"
depends on CAVIUM_OCTEON_SPECIFIC_OPTIONS
default "n" default "n"
help help
This option configures this kernel to be linked at a different This option configures this kernel to be linked at a different
...@@ -26,7 +21,6 @@ config CAVIUM_OCTEON_2ND_KERNEL ...@@ -26,7 +21,6 @@ config CAVIUM_OCTEON_2ND_KERNEL
config CAVIUM_OCTEON_HW_FIX_UNALIGNED config CAVIUM_OCTEON_HW_FIX_UNALIGNED
bool "Enable hardware fixups of unaligned loads and stores" bool "Enable hardware fixups of unaligned loads and stores"
depends on CAVIUM_OCTEON_SPECIFIC_OPTIONS
default "y" default "y"
help help
Configure the Octeon hardware to automatically fix unaligned loads Configure the Octeon hardware to automatically fix unaligned loads
...@@ -38,7 +32,6 @@ config CAVIUM_OCTEON_HW_FIX_UNALIGNED ...@@ -38,7 +32,6 @@ config CAVIUM_OCTEON_HW_FIX_UNALIGNED
config CAVIUM_OCTEON_CVMSEG_SIZE config CAVIUM_OCTEON_CVMSEG_SIZE
int "Number of L1 cache lines reserved for CVMSEG memory" int "Number of L1 cache lines reserved for CVMSEG memory"
depends on CAVIUM_OCTEON_SPECIFIC_OPTIONS
range 0 54 range 0 54
default 1 default 1
help help
...@@ -50,7 +43,6 @@ config CAVIUM_OCTEON_CVMSEG_SIZE ...@@ -50,7 +43,6 @@ config CAVIUM_OCTEON_CVMSEG_SIZE
config CAVIUM_OCTEON_LOCK_L2 config CAVIUM_OCTEON_LOCK_L2
bool "Lock often used kernel code in the L2" bool "Lock often used kernel code in the L2"
depends on CAVIUM_OCTEON_SPECIFIC_OPTIONS
default "y" default "y"
help help
Enable locking parts of the kernel into the L2 cache. Enable locking parts of the kernel into the L2 cache.
...@@ -93,7 +85,6 @@ config CAVIUM_OCTEON_LOCK_L2_MEMCPY ...@@ -93,7 +85,6 @@ config CAVIUM_OCTEON_LOCK_L2_MEMCPY
config ARCH_SPARSEMEM_ENABLE config ARCH_SPARSEMEM_ENABLE
def_bool y def_bool y
select SPARSEMEM_STATIC select SPARSEMEM_STATIC
depends on CPU_CAVIUM_OCTEON
config CAVIUM_OCTEON_HELPER config CAVIUM_OCTEON_HELPER
def_bool y def_bool y
...@@ -107,6 +98,8 @@ config NEED_SG_DMA_LENGTH ...@@ -107,6 +98,8 @@ config NEED_SG_DMA_LENGTH
config SWIOTLB config SWIOTLB
def_bool y def_bool y
depends on CPU_CAVIUM_OCTEON
select IOMMU_HELPER select IOMMU_HELPER
select NEED_SG_DMA_LENGTH select NEED_SG_DMA_LENGTH
endif # CPU_CAVIUM_OCTEON
...@@ -17,6 +17,6 @@ ...@@ -17,6 +17,6 @@
#define SMP_CACHE_SHIFT L1_CACHE_SHIFT #define SMP_CACHE_SHIFT L1_CACHE_SHIFT
#define SMP_CACHE_BYTES L1_CACHE_BYTES #define SMP_CACHE_BYTES L1_CACHE_BYTES
#define __read_mostly __attribute__((__section__(".data.read_mostly"))) #define __read_mostly __attribute__((__section__(".data..read_mostly")))
#endif /* _ASM_CACHE_H */ #endif /* _ASM_CACHE_H */
...@@ -14,6 +14,9 @@ ...@@ -14,6 +14,9 @@
#ifndef __ASM_CEVT_R4K_H #ifndef __ASM_CEVT_R4K_H
#define __ASM_CEVT_R4K_H #define __ASM_CEVT_R4K_H
#include <linux/clockchips.h>
#include <asm/time.h>
DECLARE_PER_CPU(struct clock_event_device, mips_clockevent_device); DECLARE_PER_CPU(struct clock_event_device, mips_clockevent_device);
void mips_event_handler(struct clock_event_device *dev); void mips_event_handler(struct clock_event_device *dev);
......
...@@ -70,6 +70,7 @@ static inline pte_t huge_ptep_get_and_clear(struct mm_struct *mm, ...@@ -70,6 +70,7 @@ static inline pte_t huge_ptep_get_and_clear(struct mm_struct *mm,
static inline void huge_ptep_clear_flush(struct vm_area_struct *vma, static inline void huge_ptep_clear_flush(struct vm_area_struct *vma,
unsigned long addr, pte_t *ptep) unsigned long addr, pte_t *ptep)
{ {
flush_tlb_mm(vma->vm_mm);
} }
static inline int huge_pte_none(pte_t pte) static inline int huge_pte_none(pte_t pte)
......
...@@ -88,7 +88,7 @@ struct bcm_tag { ...@@ -88,7 +88,7 @@ struct bcm_tag {
char kernel_crc[CRC_LEN]; char kernel_crc[CRC_LEN];
/* 228-235: Unused at present */ /* 228-235: Unused at present */
char reserved1[8]; char reserved1[8];
/* 236-239: CRC32 of header excluding tagVersion */ /* 236-239: CRC32 of header excluding last 20 bytes */
char header_crc[CRC_LEN]; char header_crc[CRC_LEN];
/* 240-255: Unused at present */ /* 240-255: Unused at present */
char reserved2[16]; char reserved2[16];
......
...@@ -211,7 +211,7 @@ EXPORT_SYMBOL(vdma_free); ...@@ -211,7 +211,7 @@ EXPORT_SYMBOL(vdma_free);
*/ */
int vdma_remap(unsigned long laddr, unsigned long paddr, unsigned long size) int vdma_remap(unsigned long laddr, unsigned long paddr, unsigned long size)
{ {
int first, pages, npages; int first, pages;
if (laddr > 0xffffff) { if (laddr > 0xffffff) {
if (vdma_debug) if (vdma_debug)
...@@ -228,8 +228,7 @@ int vdma_remap(unsigned long laddr, unsigned long paddr, unsigned long size) ...@@ -228,8 +228,7 @@ int vdma_remap(unsigned long laddr, unsigned long paddr, unsigned long size)
return -EINVAL; /* invalid physical address */ return -EINVAL; /* invalid physical address */
} }
npages = pages = pages = (((paddr & (VDMA_PAGESIZE - 1)) + size) >> 12) + 1;
(((paddr & (VDMA_PAGESIZE - 1)) + size) >> 12) + 1;
first = laddr >> 12; first = laddr >> 12;
if (vdma_debug) if (vdma_debug)
printk("vdma_remap: first=%x, pages=%x\n", first, pages); printk("vdma_remap: first=%x, pages=%x\n", first, pages);
......
...@@ -242,9 +242,7 @@ EXPORT_SYMBOL_GPL(jz4740_dma_get_residue); ...@@ -242,9 +242,7 @@ EXPORT_SYMBOL_GPL(jz4740_dma_get_residue);
static void jz4740_dma_chan_irq(struct jz4740_dma_chan *dma) static void jz4740_dma_chan_irq(struct jz4740_dma_chan *dma)
{ {
uint32_t status; (void) jz4740_dma_read(JZ_REG_DMA_STATUS_CTRL(dma->id));
status = jz4740_dma_read(JZ_REG_DMA_STATUS_CTRL(dma->id));
jz4740_dma_write_mask(JZ_REG_DMA_STATUS_CTRL(dma->id), 0, jz4740_dma_write_mask(JZ_REG_DMA_STATUS_CTRL(dma->id), 0,
JZ_DMA_STATUS_CTRL_ENABLE | JZ_DMA_STATUS_CTRL_TRANSFER_DONE); JZ_DMA_STATUS_CTRL_ENABLE | JZ_DMA_STATUS_CTRL_TRANSFER_DONE);
......
...@@ -89,7 +89,7 @@ static int jz4740_clockevent_set_next(unsigned long evt, ...@@ -89,7 +89,7 @@ static int jz4740_clockevent_set_next(unsigned long evt,
static struct clock_event_device jz4740_clockevent = { static struct clock_event_device jz4740_clockevent = {
.name = "jz4740-timer", .name = "jz4740-timer",
.features = CLOCK_EVT_FEAT_PERIODIC, .features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT,
.set_next_event = jz4740_clockevent_set_next, .set_next_event = jz4740_clockevent_set_next,
.set_mode = jz4740_clockevent_set_mode, .set_mode = jz4740_clockevent_set_mode,
.rating = 200, .rating = 200,
......
...@@ -27,11 +27,13 @@ void jz4740_timer_enable_watchdog(void) ...@@ -27,11 +27,13 @@ void jz4740_timer_enable_watchdog(void)
{ {
writel(BIT(16), jz4740_timer_base + JZ_REG_TIMER_STOP_CLEAR); writel(BIT(16), jz4740_timer_base + JZ_REG_TIMER_STOP_CLEAR);
} }
EXPORT_SYMBOL_GPL(jz4740_timer_enable_watchdog);
void jz4740_timer_disable_watchdog(void) void jz4740_timer_disable_watchdog(void)
{ {
writel(BIT(16), jz4740_timer_base + JZ_REG_TIMER_STOP_SET); writel(BIT(16), jz4740_timer_base + JZ_REG_TIMER_STOP_SET);
} }
EXPORT_SYMBOL_GPL(jz4740_timer_disable_watchdog);
void __init jz4740_timer_init(void) void __init jz4740_timer_init(void)
{ {
......
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
#define JAL 0x0c000000 /* jump & link: ip --> ra, jump to target */ #define JAL 0x0c000000 /* jump & link: ip --> ra, jump to target */
#define ADDR_MASK 0x03ffffff /* op_code|addr : 31...26|25 ....0 */ #define ADDR_MASK 0x03ffffff /* op_code|addr : 31...26|25 ....0 */
#define JUMP_RANGE_MASK ((1UL << 28) - 1)
#define INSN_NOP 0x00000000 /* nop */ #define INSN_NOP 0x00000000 /* nop */
#define INSN_JAL(addr) \ #define INSN_JAL(addr) \
...@@ -44,12 +45,12 @@ static inline void ftrace_dyn_arch_init_insns(void) ...@@ -44,12 +45,12 @@ static inline void ftrace_dyn_arch_init_insns(void)
/* jal (ftrace_caller + 8), jump over the first two instruction */ /* jal (ftrace_caller + 8), jump over the first two instruction */
buf = (u32 *)&insn_jal_ftrace_caller; buf = (u32 *)&insn_jal_ftrace_caller;
uasm_i_jal(&buf, (FTRACE_ADDR + 8)); uasm_i_jal(&buf, (FTRACE_ADDR + 8) & JUMP_RANGE_MASK);
#ifdef CONFIG_FUNCTION_GRAPH_TRACER #ifdef CONFIG_FUNCTION_GRAPH_TRACER
/* j ftrace_graph_caller */ /* j ftrace_graph_caller */
buf = (u32 *)&insn_j_ftrace_graph_caller; buf = (u32 *)&insn_j_ftrace_graph_caller;
uasm_i_j(&buf, (unsigned long)ftrace_graph_caller); uasm_i_j(&buf, (unsigned long)ftrace_graph_caller & JUMP_RANGE_MASK);
#endif #endif
} }
......
...@@ -540,8 +540,8 @@ asmlinkage void do_syscall_trace(struct pt_regs *regs, int entryexit) ...@@ -540,8 +540,8 @@ asmlinkage void do_syscall_trace(struct pt_regs *regs, int entryexit)
secure_computing(regs->regs[2]); secure_computing(regs->regs[2]);
if (unlikely(current->audit_context) && entryexit) if (unlikely(current->audit_context) && entryexit)
audit_syscall_exit(AUDITSC_RESULT(regs->regs[2]), audit_syscall_exit(AUDITSC_RESULT(regs->regs[7]),
regs->regs[2]); -regs->regs[2]);
if (!(current->ptrace & PT_PTRACED)) if (!(current->ptrace & PT_PTRACED))
goto out; goto out;
......
...@@ -565,7 +565,7 @@ einval: li v0, -ENOSYS ...@@ -565,7 +565,7 @@ einval: li v0, -ENOSYS
sys sys_ioprio_get 2 /* 4315 */ sys sys_ioprio_get 2 /* 4315 */
sys sys_utimensat 4 sys sys_utimensat 4
sys sys_signalfd 3 sys sys_signalfd 3
sys sys_ni_syscall 0 sys sys_ni_syscall 0 /* was timerfd */
sys sys_eventfd 1 sys sys_eventfd 1
sys sys_fallocate 6 /* 4320 */ sys sys_fallocate 6 /* 4320 */
sys sys_timerfd_create 2 sys sys_timerfd_create 2
......
...@@ -404,7 +404,7 @@ sys_call_table: ...@@ -404,7 +404,7 @@ sys_call_table:
PTR sys_ioprio_get PTR sys_ioprio_get
PTR sys_utimensat /* 5275 */ PTR sys_utimensat /* 5275 */
PTR sys_signalfd PTR sys_signalfd
PTR sys_ni_syscall PTR sys_ni_syscall /* was timerfd */
PTR sys_eventfd PTR sys_eventfd
PTR sys_fallocate PTR sys_fallocate
PTR sys_timerfd_create /* 5280 */ PTR sys_timerfd_create /* 5280 */
......
...@@ -403,7 +403,7 @@ EXPORT(sysn32_call_table) ...@@ -403,7 +403,7 @@ EXPORT(sysn32_call_table)
PTR sys_ioprio_get PTR sys_ioprio_get
PTR compat_sys_utimensat PTR compat_sys_utimensat
PTR compat_sys_signalfd /* 6280 */ PTR compat_sys_signalfd /* 6280 */
PTR sys_ni_syscall PTR sys_ni_syscall /* was timerfd */
PTR sys_eventfd PTR sys_eventfd
PTR sys_fallocate PTR sys_fallocate
PTR sys_timerfd_create PTR sys_timerfd_create
......
...@@ -522,7 +522,7 @@ sys_call_table: ...@@ -522,7 +522,7 @@ sys_call_table:
PTR sys_ioprio_get /* 4315 */ PTR sys_ioprio_get /* 4315 */
PTR compat_sys_utimensat PTR compat_sys_utimensat
PTR compat_sys_signalfd PTR compat_sys_signalfd
PTR sys_ni_syscall PTR sys_ni_syscall /* was timerfd */
PTR sys_eventfd PTR sys_eventfd
PTR sys32_fallocate /* 4320 */ PTR sys32_fallocate /* 4320 */
PTR sys_timerfd_create PTR sys_timerfd_create
......
...@@ -74,6 +74,7 @@ SECTIONS ...@@ -74,6 +74,7 @@ SECTIONS
INIT_TASK_DATA(PAGE_SIZE) INIT_TASK_DATA(PAGE_SIZE)
NOSAVE_DATA NOSAVE_DATA
CACHELINE_ALIGNED_DATA(1 << CONFIG_MIPS_L1_CACHE_SHIFT) CACHELINE_ALIGNED_DATA(1 << CONFIG_MIPS_L1_CACHE_SHIFT)
READ_MOSTLY_DATA(1 << CONFIG_MIPS_L1_CACHE_SHIFT)
DATA_DATA DATA_DATA
CONSTRUCTORS CONSTRUCTORS
} }
......
...@@ -29,9 +29,10 @@ unsigned long memsize, highmemsize; ...@@ -29,9 +29,10 @@ unsigned long memsize, highmemsize;
#define parse_even_earlier(res, option, p) \ #define parse_even_earlier(res, option, p) \
do { \ do { \
int ret; \ unsigned int tmp __maybe_unused; \
\
if (strncmp(option, (char *)p, strlen(option)) == 0) \ if (strncmp(option, (char *)p, strlen(option)) == 0) \
ret = strict_strtol((char *)p + strlen(option"="), 10, &res); \ tmp = strict_strtol((char *)p + strlen(option"="), 10, &res); \
} while (0) } while (0)
void __init prom_init_env(void) void __init prom_init_env(void)
......
...@@ -1075,7 +1075,6 @@ static int __cpuinit probe_scache(void) ...@@ -1075,7 +1075,6 @@ static int __cpuinit probe_scache(void)
unsigned long flags, addr, begin, end, pow2; unsigned long flags, addr, begin, end, pow2;
unsigned int config = read_c0_config(); unsigned int config = read_c0_config();
struct cpuinfo_mips *c = &current_cpu_data; struct cpuinfo_mips *c = &current_cpu_data;
int tmp;
if (config & CONF_SC) if (config & CONF_SC)
return 0; return 0;
...@@ -1108,7 +1107,6 @@ static int __cpuinit probe_scache(void) ...@@ -1108,7 +1107,6 @@ static int __cpuinit probe_scache(void)
/* Now search for the wrap around point. */ /* Now search for the wrap around point. */
pow2 = (128 * 1024); pow2 = (128 * 1024);
tmp = 0;
for (addr = begin + (128 * 1024); addr < end; addr = begin + pow2) { for (addr = begin + (128 * 1024); addr < end; addr = begin + pow2) {
cache_op(Index_Load_Tag_SD, addr); cache_op(Index_Load_Tag_SD, addr);
__asm__ __volatile__("nop; nop; nop; nop;"); /* hazard... */ __asm__ __volatile__("nop; nop; nop; nop;"); /* hazard... */
......
...@@ -1151,8 +1151,8 @@ static void __cpuinit build_r4000_tlb_refill_handler(void) ...@@ -1151,8 +1151,8 @@ static void __cpuinit build_r4000_tlb_refill_handler(void)
struct uasm_reloc *r = relocs; struct uasm_reloc *r = relocs;
u32 *f; u32 *f;
unsigned int final_len; unsigned int final_len;
struct mips_huge_tlb_info htlb_info; struct mips_huge_tlb_info htlb_info __maybe_unused;
enum vmalloc64_mode vmalloc_mode; enum vmalloc64_mode vmalloc_mode __maybe_unused;
memset(tlb_handler, 0, sizeof(tlb_handler)); memset(tlb_handler, 0, sizeof(tlb_handler));
memset(labels, 0, sizeof(labels)); memset(labels, 0, sizeof(labels));
......
...@@ -193,8 +193,6 @@ extern struct plat_smp_ops msmtc_smp_ops; ...@@ -193,8 +193,6 @@ extern struct plat_smp_ops msmtc_smp_ops;
void __init prom_init(void) void __init prom_init(void)
{ {
int result;
prom_argc = fw_arg0; prom_argc = fw_arg0;
_prom_argv = (int *) fw_arg1; _prom_argv = (int *) fw_arg1;
_prom_envp = (int *) fw_arg2; _prom_envp = (int *) fw_arg2;
...@@ -360,20 +358,14 @@ void __init prom_init(void) ...@@ -360,20 +358,14 @@ void __init prom_init(void)
#ifdef CONFIG_SERIAL_8250_CONSOLE #ifdef CONFIG_SERIAL_8250_CONSOLE
console_config(); console_config();
#endif #endif
/* Early detection of CMP support */
result = gcmp_probe(GCMP_BASE_ADDR, GCMP_ADDRSPACE_SZ);
#ifdef CONFIG_MIPS_CMP #ifdef CONFIG_MIPS_CMP
if (result) /* Early detection of CMP support */
if (gcmp_probe(GCMP_BASE_ADDR, GCMP_ADDRSPACE_SZ))
register_smp_ops(&cmp_smp_ops); register_smp_ops(&cmp_smp_ops);
else
#endif #endif
#ifdef CONFIG_MIPS_MT_SMP #ifdef CONFIG_MIPS_MT_SMP
#ifdef CONFIG_MIPS_CMP
if (!result)
register_smp_ops(&vsmp_smp_ops); register_smp_ops(&vsmp_smp_ops);
#else
register_smp_ops(&vsmp_smp_ops);
#endif
#endif #endif
#ifdef CONFIG_MIPS_MT_SMTC #ifdef CONFIG_MIPS_MT_SMTC
register_smp_ops(&msmtc_smp_ops); register_smp_ops(&msmtc_smp_ops);
......
...@@ -56,7 +56,6 @@ static DEFINE_RAW_SPINLOCK(mips_irq_lock); ...@@ -56,7 +56,6 @@ static DEFINE_RAW_SPINLOCK(mips_irq_lock);
static inline int mips_pcibios_iack(void) static inline int mips_pcibios_iack(void)
{ {
int irq; int irq;
u32 dummy;
/* /*
* Determine highest priority pending interrupt by performing * Determine highest priority pending interrupt by performing
...@@ -83,7 +82,7 @@ static inline int mips_pcibios_iack(void) ...@@ -83,7 +82,7 @@ static inline int mips_pcibios_iack(void)
BONITO_PCIMAP_CFG = 0x20000; BONITO_PCIMAP_CFG = 0x20000;
/* Flush Bonito register block */ /* Flush Bonito register block */
dummy = BONITO_PCIMAP_CFG; (void) BONITO_PCIMAP_CFG;
iob(); /* sync */ iob(); /* sync */
irq = __raw_readl((u32 *)_pcictrl_bonito_pcicfg); irq = __raw_readl((u32 *)_pcictrl_bonito_pcicfg);
......
...@@ -97,7 +97,7 @@ static int msp_per_irq_set_affinity(struct irq_data *d, ...@@ -97,7 +97,7 @@ static int msp_per_irq_set_affinity(struct irq_data *d,
static struct irq_chip msp_per_irq_controller = { static struct irq_chip msp_per_irq_controller = {
.name = "MSP_PER", .name = "MSP_PER",
.irq_enable = unmask_per_irq. .irq_enable = unmask_per_irq,
.irq_disable = mask_per_irq, .irq_disable = mask_per_irq,
.irq_ack = msp_per_irq_ack, .irq_ack = msp_per_irq_ack,
#ifdef CONFIG_SMP #ifdef CONFIG_SMP
......
...@@ -35,7 +35,7 @@ LEAF(swsusp_arch_resume) ...@@ -35,7 +35,7 @@ LEAF(swsusp_arch_resume)
0: 0:
PTR_L t1, PBE_ADDRESS(t0) /* source */ PTR_L t1, PBE_ADDRESS(t0) /* source */
PTR_L t2, PBE_ORIG_ADDRESS(t0) /* destination */ PTR_L t2, PBE_ORIG_ADDRESS(t0) /* destination */
PTR_ADDIU t3, t1, PAGE_SIZE PTR_ADDU t3, t1, PAGE_SIZE
1: 1:
REG_L t8, (t1) REG_L t8, (t1)
REG_S t8, (t2) REG_S t8, (t2)
......
...@@ -132,7 +132,7 @@ static struct platform_device eth1_device = { ...@@ -132,7 +132,7 @@ static struct platform_device eth1_device = {
*/ */
static int __init sgiseeq_devinit(void) static int __init sgiseeq_devinit(void)
{ {
unsigned int tmp; unsigned int pbdma __maybe_unused;
int res, i; int res, i;
eth0_pd.hpc = hpc3c0; eth0_pd.hpc = hpc3c0;
...@@ -151,7 +151,7 @@ static int __init sgiseeq_devinit(void) ...@@ -151,7 +151,7 @@ static int __init sgiseeq_devinit(void)
/* Second HPC is missing? */ /* Second HPC is missing? */
if (ip22_is_fullhouse() || if (ip22_is_fullhouse() ||
get_dbe(tmp, (unsigned int *)&hpc3c1->pbdma[1])) get_dbe(pbdma, (unsigned int *)&hpc3c1->pbdma[1]))
return 0; return 0;
sgimc->giopar |= SGIMC_GIOPAR_MASTEREXP1 | SGIMC_GIOPAR_EXP164 | sgimc->giopar |= SGIMC_GIOPAR_MASTEREXP1 | SGIMC_GIOPAR_EXP164 |
......
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
static unsigned long dosample(void) static unsigned long dosample(void)
{ {
u32 ct0, ct1; u32 ct0, ct1;
u8 msb, lsb; u8 msb;
/* Start the counter. */ /* Start the counter. */
sgint->tcword = (SGINT_TCWORD_CNT2 | SGINT_TCWORD_CALL | sgint->tcword = (SGINT_TCWORD_CNT2 | SGINT_TCWORD_CALL |
...@@ -46,7 +46,7 @@ static unsigned long dosample(void) ...@@ -46,7 +46,7 @@ static unsigned long dosample(void)
/* Latch and spin until top byte of counter2 is zero */ /* Latch and spin until top byte of counter2 is zero */
do { do {
writeb(SGINT_TCWORD_CNT2 | SGINT_TCWORD_CLAT, &sgint->tcword); writeb(SGINT_TCWORD_CNT2 | SGINT_TCWORD_CLAT, &sgint->tcword);
lsb = readb(&sgint->tcnt2); (void) readb(&sgint->tcnt2);
msb = readb(&sgint->tcnt2); msb = readb(&sgint->tcnt2);
ct1 = read_c0_count(); ct1 = read_c0_count();
} while (msb); } while (msb);
......
...@@ -29,7 +29,6 @@ unsigned long hub_pio_map(cnodeid_t cnode, xwidgetnum_t widget, ...@@ -29,7 +29,6 @@ unsigned long hub_pio_map(cnodeid_t cnode, xwidgetnum_t widget,
unsigned long xtalk_addr, size_t size) unsigned long xtalk_addr, size_t size)
{ {
nasid_t nasid = COMPACT_TO_NASID_NODEID(cnode); nasid_t nasid = COMPACT_TO_NASID_NODEID(cnode);
volatile hubreg_t junk;
unsigned i; unsigned i;
/* use small-window mapping if possible */ /* use small-window mapping if possible */
...@@ -64,7 +63,7 @@ unsigned long hub_pio_map(cnodeid_t cnode, xwidgetnum_t widget, ...@@ -64,7 +63,7 @@ unsigned long hub_pio_map(cnodeid_t cnode, xwidgetnum_t widget,
* after we write it. * after we write it.
*/ */
IIO_ITTE_PUT(nasid, i, HUB_PIO_MAP_TO_MEM, widget, xtalk_addr); IIO_ITTE_PUT(nasid, i, HUB_PIO_MAP_TO_MEM, widget, xtalk_addr);
junk = HUB_L(IIO_ITTE_GET(nasid, i)); (void) HUB_L(IIO_ITTE_GET(nasid, i));
return NODE_BWIN_BASE(nasid, widget) + (xtalk_addr % BWIN_SIZE); return NODE_BWIN_BASE(nasid, widget) + (xtalk_addr % BWIN_SIZE);
} }
......
...@@ -54,11 +54,8 @@ void __init setup_replication_mask(void) ...@@ -54,11 +54,8 @@ void __init setup_replication_mask(void)
static __init void set_ktext_source(nasid_t client_nasid, nasid_t server_nasid) static __init void set_ktext_source(nasid_t client_nasid, nasid_t server_nasid)
{ {
cnodeid_t client_cnode;
kern_vars_t *kvp; kern_vars_t *kvp;
client_cnode = NASID_TO_COMPACT_NODEID(client_nasid);
kvp = &hub_data(client_nasid)->kern_vars; kvp = &hub_data(client_nasid)->kern_vars;
KERN_VARS_ADDR(client_nasid) = (unsigned long)kvp; KERN_VARS_ADDR(client_nasid) = (unsigned long)kvp;
......
...@@ -95,7 +95,7 @@ static void __init sni_a20r_timer_setup(void) ...@@ -95,7 +95,7 @@ static void __init sni_a20r_timer_setup(void)
static __init unsigned long dosample(void) static __init unsigned long dosample(void)
{ {
u32 ct0, ct1; u32 ct0, ct1;
volatile u8 msb, lsb; volatile u8 msb;
/* Start the counter. */ /* Start the counter. */
outb_p(0x34, 0x43); outb_p(0x34, 0x43);
...@@ -108,7 +108,7 @@ static __init unsigned long dosample(void) ...@@ -108,7 +108,7 @@ static __init unsigned long dosample(void)
/* Latch and spin until top byte of counter0 is zero */ /* Latch and spin until top byte of counter0 is zero */
do { do {
outb(0x00, 0x43); outb(0x00, 0x43);
lsb = inb(0x40); (void) inb(0x40);
msb = inb(0x40); msb = inb(0x40);
ct1 = read_c0_count(); ct1 = read_c0_count();
} while (msb); } while (msb);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment