diff options
| author | Arnd Bergmann <arnd@arndb.de> | 2014-03-17 15:17:07 +0100 | 
|---|---|---|
| committer | Arnd Bergmann <arnd@arndb.de> | 2014-03-17 15:17:07 +0100 | 
| commit | 38edc2da5014e70e46a724d97c3ef3dde106331b (patch) | |
| tree | 590499bacd062e8dd74c6f05a7d811dd714a2d70 /arch/x86/kernel/tsc_msr.c | |
| parent | 937b5991ca7717ceba99014f2ad3f51c85cdb9ad (diff) | |
| parent | 28b191118c11719bb27db621425a70be28a40e08 (diff) | |
Merge tag 'omap-for-v3.15/dt-overo-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/dt
Updates to the .dts files to support more Gumstix boards.
These are sent separately from the rest of the .dts changes
as these depend on the fixes merged into v3.14-rc4, and
needed a bit more time to get updated on the fixes.
* tag 'omap-for-v3.15/dt-overo-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
  ARM: dts: Add support for the Overo Summit
  ARM: dts: Add support for the Overo Chestnut43
  ARM: dts: Add support for the Overo Alto35
  ARM: dts: Add support for the Overo Gallop43
  ARM: dts: Add support for the Overo Palo43
  ARM: dts: overo: Add LIS33DE accelerometer
  ARM: dts: overo: Create a file for common Gumstix peripherals
  ARM: dts: overo: Push uart3 pinmux down to expansion board
  ARM: dts: omap3-tobi: Add AT24C01 EEPROM
  ARM: dts: omap3-tobi: Use include file omap-gpmc-smsc9221
  ARM: dts: omap: Add common file for SMSC9221
  ARM: dts: omap3-overo: Add HSUSB PHY
  ARM: dts: omap3-overo: Enable WiFi/BT combo
  ARM: dts: omap3-overo: Add missing pinctrl
  ARM: dts: omap3-tobi: Add missing pinctrl
  ARM: dts: overo: reorganize include files
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Conflicts:
	arch/arm/boot/dts/omap3-overo.dtsi
Diffstat (limited to 'arch/x86/kernel/tsc_msr.c')
| -rw-r--r-- | arch/x86/kernel/tsc_msr.c | 30 | 
1 files changed, 15 insertions, 15 deletions
diff --git a/arch/x86/kernel/tsc_msr.c b/arch/x86/kernel/tsc_msr.c index 8b5434f4389f..92ae6acac8a7 100644 --- a/arch/x86/kernel/tsc_msr.c +++ b/arch/x86/kernel/tsc_msr.c @@ -53,7 +53,7 @@ static struct freq_desc freq_desc_tables[] = {  	/* TNG */  	{ 6, 0x4a, 1, { 0, FREQ_100, FREQ_133, 0, 0, 0, 0, 0 } },  	/* VLV2 */ -	{ 6, 0x37, 1, { 0, FREQ_100, FREQ_133, FREQ_166, 0, 0, 0, 0 } }, +	{ 6, 0x37, 1, { FREQ_83, FREQ_100, FREQ_133, FREQ_166, 0, 0, 0, 0 } },  	/* ANN */  	{ 6, 0x5a, 1, { FREQ_83, FREQ_100, FREQ_133, FREQ_100, 0, 0, 0, 0 } },  }; @@ -77,21 +77,18 @@ static int match_cpu(u8 family, u8 model)  /*   * Do MSR calibration only for known/supported CPUs. - * Return values: - * -1: CPU is unknown/unsupported for MSR based calibration - *  0: CPU is known/supported, but calibration failed - *  1: CPU is known/supported, and calibration succeeded + * + * Returns the calibration value or 0 if MSR calibration failed.   */ -int try_msr_calibrate_tsc(unsigned long *fast_calibrate) +unsigned long try_msr_calibrate_tsc(void)  { -	int cpu_index;  	u32 lo, hi, ratio, freq_id, freq; +	unsigned long res; +	int cpu_index;  	cpu_index = match_cpu(boot_cpu_data.x86, boot_cpu_data.x86_model);  	if (cpu_index < 0) -		return -1; - -	*fast_calibrate = 0; +		return 0;  	if (freq_desc_tables[cpu_index].msr_plat) {  		rdmsr(MSR_PLATFORM_INFO, lo, hi); @@ -103,7 +100,7 @@ int try_msr_calibrate_tsc(unsigned long *fast_calibrate)  	pr_info("Maximum core-clock to bus-clock ratio: 0x%x\n", ratio);  	if (!ratio) -		return 0; +		goto fail;  	/* Get FSB FREQ ID */  	rdmsr(MSR_FSB_FREQ, lo, hi); @@ -112,16 +109,19 @@ int try_msr_calibrate_tsc(unsigned long *fast_calibrate)  	pr_info("Resolved frequency ID: %u, frequency: %u KHz\n",  				freq_id, freq);  	if (!freq) -		return 0; +		goto fail;  	/* TSC frequency = maximum resolved freq * maximum resolved bus ratio */ -	*fast_calibrate = freq * ratio; -	pr_info("TSC runs at %lu KHz\n", *fast_calibrate); +	res = freq * ratio; +	pr_info("TSC runs at %lu KHz\n", res);  #ifdef CONFIG_X86_LOCAL_APIC  	lapic_timer_frequency = (freq * 1000) / HZ;  	pr_info("lapic_timer_frequency = %d\n", lapic_timer_frequency);  #endif +	return res; -	return 1; +fail: +	pr_warn("Fast TSC calibration using MSR failed\n"); +	return 0;  }  | 
