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

Commit cdc2652e authored by Benjamin Herrenschmidt's avatar Benjamin Herrenschmidt
Browse files

Merge branch 'merge' into next

Bring in some important fixes from the 3.16 branch
parents c49f6353 396a3434
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -447,6 +447,7 @@ extern const char *powerpc_base_platform;
	    CPU_FTR_DBELL | CPU_FTR_HAS_PPR | CPU_FTR_DAWR | \
	    CPU_FTR_ARCH_207S | CPU_FTR_TM_COMP)
#define CPU_FTRS_POWER8E (CPU_FTRS_POWER8 | CPU_FTR_PMAO_BUG)
#define CPU_FTRS_POWER8_DD1 (CPU_FTRS_POWER8 & ~CPU_FTR_DBELL)
#define CPU_FTRS_CELL	(CPU_FTR_USE_TB | CPU_FTR_LWSYNC | \
	    CPU_FTR_PPCAS_ARCH_V2 | CPU_FTR_CTRL | \
	    CPU_FTR_ALTIVEC_COMP | CPU_FTR_MMCRA | CPU_FTR_SMT | \
+2 −1
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@
 */
#include <asm/pgtable-ppc64.h>
#include <asm/bug.h>
#include <asm/processor.h>

/*
 * Segment table
@@ -496,7 +497,7 @@ extern void slb_set_size(u16 size);
 */
struct subpage_prot_table {
	unsigned long maxaddr;	/* only addresses < this are protected */
	unsigned int **protptrs[2];
	unsigned int **protptrs[(TASK_SIZE_USER64 >> 43)];
	unsigned int *low_prot[4];
};

+20 −0
Original line number Diff line number Diff line
@@ -527,6 +527,26 @@ static struct cpu_spec __initdata cpu_specs[] = {
		.machine_check_early	= __machine_check_early_realmode_p8,
		.platform		= "power8",
	},
	{	/* Power8 DD1: Does not support doorbell IPIs */
		.pvr_mask		= 0xffffff00,
		.pvr_value		= 0x004d0100,
		.cpu_name		= "POWER8 (raw)",
		.cpu_features		= CPU_FTRS_POWER8_DD1,
		.cpu_user_features	= COMMON_USER_POWER8,
		.cpu_user_features2	= COMMON_USER2_POWER8,
		.mmu_features		= MMU_FTRS_POWER8,
		.icache_bsize		= 128,
		.dcache_bsize		= 128,
		.num_pmcs		= 6,
		.pmc_type		= PPC_PMC_IBM,
		.oprofile_cpu_type	= "ppc64/power8",
		.oprofile_type		= PPC_OPROFILE_INVALID,
		.cpu_setup		= __setup_cpu_power8,
		.cpu_restore		= __restore_cpu_power8,
		.flush_tlb		= __flush_tlb_power8,
		.machine_check_early	= __machine_check_early_realmode_p8,
		.platform		= "power8",
	},
	{	/* Power8 */
		.pvr_mask		= 0xffff0000,
		.pvr_value		= 0x004d0000,
+4 −2
Original line number Diff line number Diff line
@@ -611,17 +611,19 @@ static void rtas_flash_firmware(int reboot_type)
	for (f = flist; f; f = next) {
		/* Translate data addrs to absolute */
		for (i = 0; i < f->num_blocks; i++) {
			f->blocks[i].data = (char *)__pa(f->blocks[i].data);
			f->blocks[i].data = (char *)cpu_to_be64(__pa(f->blocks[i].data));
			image_size += f->blocks[i].length;
			f->blocks[i].length = cpu_to_be64(f->blocks[i].length);
		}
		next = f->next;
		/* Don't translate NULL pointer for last entry */
		if (f->next)
			f->next = (struct flash_block_list *)__pa(f->next);
			f->next = (struct flash_block_list *)cpu_to_be64(__pa(f->next));
		else
			f->next = NULL;
		/* make num_blocks into the version/length field */
		f->num_blocks = (FLASH_BLOCK_LIST_VERSION << 56) | ((f->num_blocks+1)*16);
		f->num_blocks = cpu_to_be64(f->num_blocks);
	}

	printk(KERN_ALERT "FLASH: flash image is %ld bytes\n", image_size);
+1 −1
Original line number Diff line number Diff line
@@ -77,7 +77,7 @@ _GLOBAL(memset)
	stb	r4,0(r6)
	blr

_GLOBAL(memmove)
_GLOBAL_TOC(memmove)
	cmplw	0,r3,r4
	bgt	backwards_memcpy
	b	memcpy
Loading