Commit 6e51b4b5 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'mips_6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux

Pull MIPS updates from Thomas Bogendoerfer:
 "Just cleanups and fixes"

* tag 'mips_6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux: (24 commits)
  MIPS: Take in account load hazards for HI/LO restoring
  MIPS: SGI-IP27: use WARN_ON() output
  MIPS: SGI-IP27: fix -Wunused-variable in arch_init_irq()
  MIPS: SGI-IP27: micro-optimize arch_init_irq()
  mips: dts: ralink: mt7621: reorder the attributes of the root node
  mips: dts: ralink: mt7621: reorder pci?_phy attributes
  mips: dts: ralink: mt7621: reorder pcie node attributes and children
  mips: dts: ralink: mt7621: reorder ethernet node attributes and kids
  mips: dts: ralink: mt7621: reorder gic node attributes
  mips: dts: ralink: mt7621: reorder mmc node attributes
  mips: dts: ralink: mt7621: move pinctrl and sort its children
  mips: dts: ralink: mt7621: reorder spi0 node attributes
  mips: dts: ralink: mt7621: reorder i2c node attributes
  mips: dts: ralink: mt7621: reorder gpio node attributes
  mips: dts: ralink: mt7621: reorder sysc node attributes
  mips: dts: ralink: mt7621: reorder mmc regulator attributes
  mips: dts: ralink: mt7621: reorder cpuintc node attributes
  mips: dts: ralink: mt7621: reorder cpu node attributes
  MIPS: Add prototypes for plat_post_relocation() and relocate_kernel()
  MIPS: Octeon: Add PCIe link status check
  ...
parents 80f9d902 07e6a6d7
...@@ -35,6 +35,7 @@ ...@@ -35,6 +35,7 @@
#include <asm/bootinfo.h> #include <asm/bootinfo.h>
#include <bcm47xx.h> #include <bcm47xx.h>
#include <bcm47xx_board.h> #include <bcm47xx_board.h>
#include "bcm47xx_private.h"
static char bcm47xx_system_type[20] = "Broadcom BCM47XX"; static char bcm47xx_system_type[20] = "Broadcom BCM47XX";
...@@ -123,7 +124,7 @@ void __init prom_init(void) ...@@ -123,7 +124,7 @@ void __init prom_init(void)
/* Stripped version of tlb_init, with the call to build_tlb_refill_handler /* Stripped version of tlb_init, with the call to build_tlb_refill_handler
* dropped. Calling it at this stage causes a hang. * dropped. Calling it at this stage causes a hang.
*/ */
void early_tlb_init(void) static void early_tlb_init(void)
{ {
write_c0_pagemask(PM_DEFAULT_MASK); write_c0_pagemask(PM_DEFAULT_MASK);
write_c0_wired(0); write_c0_wired(0);
......
This diff is collapsed.
...@@ -37,6 +37,7 @@ ...@@ -37,6 +37,7 @@
#define CFI_SECTIONS #define CFI_SECTIONS
#endif #endif
#ifdef __ASSEMBLY__
/* /*
* LEAF - declare leaf routine * LEAF - declare leaf routine
*/ */
...@@ -122,6 +123,8 @@ symbol = value ...@@ -122,6 +123,8 @@ symbol = value
#define ASM_PRINT(string) #define ASM_PRINT(string)
#endif #endif
#endif /* __ASSEMBLY__ */
/* /*
* Stack alignment * Stack alignment
*/ */
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
#ifndef _MIPS_SETUP_H #ifndef _MIPS_SETUP_H
#define _MIPS_SETUP_H #define _MIPS_SETUP_H
#include <linux/init.h>
#include <linux/types.h> #include <linux/types.h>
#include <uapi/asm/setup.h> #include <uapi/asm/setup.h>
...@@ -29,4 +30,9 @@ extern void per_cpu_trap_init(bool); ...@@ -29,4 +30,9 @@ extern void per_cpu_trap_init(bool);
extern void cpu_cache_init(void); extern void cpu_cache_init(void);
extern void tlb_init(void); extern void tlb_init(void);
#ifdef CONFIG_RELOCATABLE
extern void * __init relocate_kernel(void);
extern int plat_post_relocation(long);
#endif
#endif /* __SETUP_H */ #endif /* __SETUP_H */
...@@ -308,17 +308,12 @@ ...@@ -308,17 +308,12 @@
jal octeon_mult_restore jal octeon_mult_restore
#endif #endif
#ifdef CONFIG_CPU_HAS_SMARTMIPS #ifdef CONFIG_CPU_HAS_SMARTMIPS
LONG_L $24, PT_ACX(sp) LONG_L $14, PT_ACX(sp)
mtlhx $24
LONG_L $24, PT_HI(sp)
mtlhx $24
LONG_L $24, PT_LO(sp) LONG_L $24, PT_LO(sp)
mtlhx $24 LONG_L $15, PT_HI(sp)
#elif !defined(CONFIG_CPU_MIPSR6) #elif !defined(CONFIG_CPU_MIPSR6)
LONG_L $24, PT_LO(sp) LONG_L $24, PT_LO(sp)
mtlo $24 LONG_L $15, PT_HI(sp)
LONG_L $24, PT_HI(sp)
mthi $24
#endif #endif
#ifdef CONFIG_32BIT #ifdef CONFIG_32BIT
cfi_ld $8, PT_R8, \docfi cfi_ld $8, PT_R8, \docfi
...@@ -327,6 +322,14 @@ ...@@ -327,6 +322,14 @@
cfi_ld $10, PT_R10, \docfi cfi_ld $10, PT_R10, \docfi
cfi_ld $11, PT_R11, \docfi cfi_ld $11, PT_R11, \docfi
cfi_ld $12, PT_R12, \docfi cfi_ld $12, PT_R12, \docfi
#ifdef CONFIG_CPU_HAS_SMARTMIPS
mtlhx $14
mtlhx $15
mtlhx $24
#elif !defined(CONFIG_CPU_MIPSR6)
mtlo $24
mthi $15
#endif
cfi_ld $13, PT_R13, \docfi cfi_ld $13, PT_R13, \docfi
cfi_ld $14, PT_R14, \docfi cfi_ld $14, PT_R14, \docfi
cfi_ld $15, PT_R15, \docfi cfi_ld $15, PT_R15, \docfi
......
...@@ -230,12 +230,18 @@ static inline uint64_t __cvmx_pcie_build_config_addr(int pcie_port, int bus, ...@@ -230,12 +230,18 @@ static inline uint64_t __cvmx_pcie_build_config_addr(int pcie_port, int bus,
{ {
union cvmx_pcie_address pcie_addr; union cvmx_pcie_address pcie_addr;
union cvmx_pciercx_cfg006 pciercx_cfg006; union cvmx_pciercx_cfg006 pciercx_cfg006;
union cvmx_pciercx_cfg032 pciercx_cfg032;
pciercx_cfg006.u32 = pciercx_cfg006.u32 =
cvmx_pcie_cfgx_read(pcie_port, CVMX_PCIERCX_CFG006(pcie_port)); cvmx_pcie_cfgx_read(pcie_port, CVMX_PCIERCX_CFG006(pcie_port));
if ((bus <= pciercx_cfg006.s.pbnum) && (dev != 0)) if ((bus <= pciercx_cfg006.s.pbnum) && (dev != 0))
return 0; return 0;
pciercx_cfg032.u32 =
cvmx_pcie_cfgx_read(pcie_port, CVMX_PCIERCX_CFG032(pcie_port));
if ((pciercx_cfg032.s.dlla == 0) || (pciercx_cfg032.s.lt == 1))
return 0;
pcie_addr.u64 = 0; pcie_addr.u64 = 0;
pcie_addr.config.upper = 2; pcie_addr.config.upper = 2;
pcie_addr.config.io = 1; pcie_addr.config.io = 1;
......
...@@ -197,7 +197,7 @@ void rb532_gpio_set_func(unsigned gpio) ...@@ -197,7 +197,7 @@ void rb532_gpio_set_func(unsigned gpio)
} }
EXPORT_SYMBOL(rb532_gpio_set_func); EXPORT_SYMBOL(rb532_gpio_set_func);
int __init rb532_gpio_init(void) static int __init rb532_gpio_init(void)
{ {
struct resource *r; struct resource *r;
......
...@@ -46,7 +46,7 @@ static inline unsigned long tag2ul(char *arg, const char *tag) ...@@ -46,7 +46,7 @@ static inline unsigned long tag2ul(char *arg, const char *tag)
return simple_strtoul(num, 0, 10); return simple_strtoul(num, 0, 10);
} }
void __init prom_setup_cmdline(void) static void __init prom_setup_cmdline(void)
{ {
static char cmd_line[COMMAND_LINE_SIZE] __initdata; static char cmd_line[COMMAND_LINE_SIZE] __initdata;
char *cp, *board; char *cp, *board;
......
...@@ -277,7 +277,6 @@ void __init arch_init_irq(void) ...@@ -277,7 +277,6 @@ void __init arch_init_irq(void)
{ {
struct irq_domain *domain; struct irq_domain *domain;
struct fwnode_handle *fn; struct fwnode_handle *fn;
int i;
mips_cpu_irq_init(); mips_cpu_irq_init();
...@@ -286,20 +285,16 @@ void __init arch_init_irq(void) ...@@ -286,20 +285,16 @@ void __init arch_init_irq(void)
* Mark these as reserved right away so they won't be used accidentally * Mark these as reserved right away so they won't be used accidentally
* later. * later.
*/ */
for (i = 0; i <= CPU_CALL_B_IRQ; i++) bitmap_set(hub_irq_map, 0, CPU_CALL_B_IRQ + 1);
set_bit(i, hub_irq_map); bitmap_set(hub_irq_map, NI_BRDCAST_ERR_A, MSC_PANIC_INTR - NI_BRDCAST_ERR_A + 1);
for (i = NI_BRDCAST_ERR_A; i <= MSC_PANIC_INTR; i++)
set_bit(i, hub_irq_map);
fn = irq_domain_alloc_named_fwnode("HUB"); fn = irq_domain_alloc_named_fwnode("HUB");
WARN_ON(fn == NULL); if (WARN_ON(fn == NULL))
if (!fn)
return; return;
domain = irq_domain_create_linear(fn, IP27_HUB_IRQ_COUNT, domain = irq_domain_create_linear(fn, IP27_HUB_IRQ_COUNT,
&hub_domain_ops, NULL); &hub_domain_ops, NULL);
WARN_ON(domain == NULL); if (WARN_ON(domain == NULL))
if (!domain)
return; return;
irq_set_default_host(domain); irq_set_default_host(domain);
......
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