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

Commit 912708c2 authored by Markos Chandras's avatar Markos Chandras Committed by Ralf Baechle
Browse files

MIPS: Add default case for the FTLB enable/disable code



Add a default case for the FTLB enable/disable code. This will be used
to detect that something went wrong in the set_ftlb_enable() function
either because that function knows nothing about the running core, or
simply because the core can't turn its FTLB on/off.

Signed-off-by: default avatarMarkos Chandras <markos.chandras@imgtec.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/10650/


Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
parent c982c6d6
Loading
Loading
Loading
Loading
+10 −3
Original line number Original line Diff line number Diff line
@@ -188,7 +188,7 @@ __setup("nohtw", htw_disable);
static int mips_ftlb_disabled;
static int mips_ftlb_disabled;
static int mips_has_ftlb_configured;
static int mips_has_ftlb_configured;


static void set_ftlb_enable(struct cpuinfo_mips *c, int enable);
static int set_ftlb_enable(struct cpuinfo_mips *c, int enable);


static int __init ftlb_disable(char *s)
static int __init ftlb_disable(char *s)
{
{
@@ -202,7 +202,10 @@ static int __init ftlb_disable(char *s)
		return 1;
		return 1;


	/* Disable it in the boot cpu */
	/* Disable it in the boot cpu */
	set_ftlb_enable(&cpu_data[0], 0);
	if (set_ftlb_enable(&cpu_data[0], 0)) {
		pr_warn("Can't turn FTLB off\n");
		return 1;
	}


	back_to_back_c0_hazard();
	back_to_back_c0_hazard();


@@ -364,7 +367,7 @@ static unsigned int calculate_ftlb_probability(struct cpuinfo_mips *c)
		return 3;
		return 3;
}
}


static void set_ftlb_enable(struct cpuinfo_mips *c, int enable)
static int set_ftlb_enable(struct cpuinfo_mips *c, int enable)
{
{
	unsigned int config6;
	unsigned int config6;


@@ -386,7 +389,11 @@ static void set_ftlb_enable(struct cpuinfo_mips *c, int enable)
			/* Disable FTLB */
			/* Disable FTLB */
			write_c0_config6(config6 &  ~MIPS_CONF6_FTLBEN);
			write_c0_config6(config6 &  ~MIPS_CONF6_FTLBEN);
		break;
		break;
	default:
		return 1;
	}
	}

	return 0;
}
}


static inline unsigned int decode_config0(struct cpuinfo_mips *c)
static inline unsigned int decode_config0(struct cpuinfo_mips *c)