Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 497c01dd authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull MIPS fixes from Ralf Baechle:
 "Pretty much all across the field so with this we should be in
  reasonable shape for the upcoming -rc2"

* 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus:
  MIPS: OCTEON: make get_system_type() thread-safe
  MIPS: CPS: Initialize EVA before bringing up VPEs from secondary cores
  MIPS: Malta: EVA: Rename 'eva_entry' to 'platform_eva_init'
  MIPS: EVA: Add new EVA header
  MIPS: scall64-o32: Fix indirect syscall detection
  MIPS: syscall: Fix AUDIT value for O32 processes on MIPS64
  MIPS: Loongson: Fix COP2 usage for preemptible kernel
  MIPS: NL: Fix nlm_xlp_defconfig build error
  MIPS: Remove race window in page fault handling
  MIPS: Malta: Improve system memory detection for '{e, }memsize' >= 2G
  MIPS: Alchemy: Fix db1200 PSC clock enablement
  MIPS: BCM47XX: Fix reboot problem on BCM4705/BCM4785
  MIPS: Remove duplicated include from numa.c
  MIPS: Add common plat_irq_dispatch declaration
  MIPS: MSP71xx: remove unused plat_irq_dispatch() argument
  MIPS: GIC: Remove useless parens from GICBIS().
  MIPS: perf: Mark pmu interupt IRQF_NO_THREAD
parents 01e9982a 60830868
Loading
Loading
Loading
Loading
+1 −5
Original line number Diff line number Diff line
@@ -847,6 +847,7 @@ int __init db1200_dev_setup(void)
			pr_warn("DB1200: cant get I2C close to 50MHz\n");
		else
			clk_set_rate(c, pfc);
		clk_prepare_enable(c);
		clk_put(c);
	}

@@ -922,11 +923,6 @@ int __init db1200_dev_setup(void)
	}

	/* Audio PSC clock is supplied externally. (FIXME: platdata!!) */
	c = clk_get(NULL, "psc1_intclk");
	if (!IS_ERR(c)) {
		clk_prepare_enable(c);
		clk_put(c);
	}
	__raw_writel(PSC_SEL_CLK_SERCLK,
	    (void __iomem *)KSEG1ADDR(AU1550_PSC1_PHYS_ADDR) + PSC_SEL_OFFSET);
	wmb();
+11 −2
Original line number Diff line number Diff line
@@ -59,12 +59,21 @@ static void bcm47xx_machine_restart(char *command)
	switch (bcm47xx_bus_type) {
#ifdef CONFIG_BCM47XX_SSB
	case BCM47XX_BUS_TYPE_SSB:
		ssb_watchdog_timer_set(&bcm47xx_bus.ssb, 3);
		if (bcm47xx_bus.ssb.chip_id == 0x4785)
			write_c0_diag4(1 << 22);
		ssb_watchdog_timer_set(&bcm47xx_bus.ssb, 1);
		if (bcm47xx_bus.ssb.chip_id == 0x4785) {
			__asm__ __volatile__(
				".set\tmips3\n\t"
				"sync\n\t"
				"wait\n\t"
				".set\tmips0");
		}
		break;
#endif
#ifdef CONFIG_BCM47XX_BCMA
	case BCM47XX_BUS_TYPE_BCMA:
		bcma_chipco_watchdog_timer_set(&bcm47xx_bus.bcma.bus.drv_cc, 3);
		bcma_chipco_watchdog_timer_set(&bcm47xx_bus.bcma.bus.drv_cc, 1);
		break;
#endif
	}
+13 −6
Original line number Diff line number Diff line
@@ -263,7 +263,6 @@ static uint64_t crashk_size, crashk_base;
static int octeon_uart;

extern asmlinkage void handle_int(void);
extern asmlinkage void plat_irq_dispatch(void);

/**
 * Return non zero if we are currently running in the Octeon simulator
@@ -458,6 +457,18 @@ static void octeon_halt(void)
	octeon_kill_core(NULL);
}

static char __read_mostly octeon_system_type[80];

static int __init init_octeon_system_type(void)
{
	snprintf(octeon_system_type, sizeof(octeon_system_type), "%s (%s)",
		cvmx_board_type_to_string(octeon_bootinfo->board_type),
		octeon_model_get_string(read_c0_prid()));

	return 0;
}
early_initcall(init_octeon_system_type);

/**
 * Return a string representing the system type
 *
@@ -465,11 +476,7 @@ static void octeon_halt(void)
 */
const char *octeon_board_type_string(void)
{
	static char name[80];
	sprintf(name, "%s (%s)",
		cvmx_board_type_to_string(octeon_bootinfo->board_type),
		octeon_model_get_string(read_c0_prid()));
	return name;
	return octeon_system_type;
}

const char *get_system_type(void)
+43 −0
Original line number Diff line number Diff line
/*
 * 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) 2014, Imagination Technologies Ltd.
 *
 * EVA functions for generic code
 */

#ifndef _ASM_EVA_H
#define _ASM_EVA_H

#include <kernel-entry-init.h>

#ifdef __ASSEMBLY__

#ifdef CONFIG_EVA

/*
 * EVA early init code
 *
 * Platforms must define their own 'platform_eva_init' macro in
 * their kernel-entry-init.h header. This macro usually does the
 * platform specific configuration of the segmentation registers,
 * and it is normally called from assembly code.
 *
 */

.macro eva_init
platform_eva_init
.endm

#else

.macro eva_init
.endm

#endif /* CONFIG_EVA */

#endif /* __ASSEMBLY__ */

#endif
+1 −1
Original line number Diff line number Diff line
@@ -49,7 +49,7 @@
#endif
#define GICBIS(reg, mask, bits)			\
	do { u32 data;				\
		GICREAD((reg), data);		\
		GICREAD(reg, data);		\
		data &= ~(mask);		\
		data |= ((bits) & (mask));	\
		GICWRITE((reg), data);		\
Loading