mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH v2 7/10] x86/tsc: enable APB timer based calibration
@ 2009-07-16 10:55 Pan, Jacob jun
  2009-08-19 15:51 ` Thomas Gleixner
  0 siblings, 1 reply; 2+ messages in thread
From: Pan, Jacob jun @ 2009-07-16 10:55 UTC (permalink / raw)
  To: linux-kernel, x86

>From e9264a1e5f8662d64f7d042544a03504b325bac9 Mon Sep 17 00:00:00 2001
From: Jacob Pan <jacob.jun.pan@intel.com>
Date: Wed, 15 Jul 2009 14:20:02 -0700
Subject: [PATCH] x86/tsc: enable APB timer based calibration

for platform that do not have PIT, we can use APB timer (if available)
to calibrate TSC by counting the two. APB timer frequency is known to
the system by SFI table provided by FW.

Signed-off-by: Jacob Pan <jacob.jun.pan@intel.com>
---
 arch/x86/kernel/tsc.c |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index 6e1a368..8b38a9d 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -18,6 +18,9 @@
 #include <asm/delay.h>
 #include <asm/hypervisor.h>
 
+#include <asm/platform_feature.h>
+#include <asm/apb_timer.h>
+
 unsigned int __read_mostly cpu_khz;	/* TSC clocks / usec, not used here */
 EXPORT_SYMBOL(cpu_khz);
 
@@ -394,6 +397,14 @@ unsigned long native_calibrate_tsc(void)
 		return hv_tsc_khz;
 	}
 
+	/* first check if apb timer exist and is usable */
+	if (platform_has(X86_PLATFORM_FEATURE_APBT)) {
+		local_irq_save(flags);
+		fast_calibrate = apbt_quick_calibrate();
+		local_irq_restore(flags);
+		if (fast_calibrate)
+			return fast_calibrate;
+	}
 	local_irq_save(flags);
 	fast_calibrate = quick_pit_calibrate();
 	local_irq_restore(flags);
-- 
1.5.6.5


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH v2 7/10] x86/tsc: enable APB timer based calibration
  2009-07-16 10:55 [PATCH v2 7/10] x86/tsc: enable APB timer based calibration Pan, Jacob jun
@ 2009-08-19 15:51 ` Thomas Gleixner
  0 siblings, 0 replies; 2+ messages in thread
From: Thomas Gleixner @ 2009-08-19 15:51 UTC (permalink / raw)
  To: Pan, Jacob jun; +Cc: linux-kernel, x86

On Thu, 16 Jul 2009, Pan, Jacob jun wrote:

> >From e9264a1e5f8662d64f7d042544a03504b325bac9 Mon Sep 17 00:00:00 2001
> From: Jacob Pan <jacob.jun.pan@intel.com>
> Date: Wed, 15 Jul 2009 14:20:02 -0700
> Subject: [PATCH] x86/tsc: enable APB timer based calibration
> 
> for platform that do not have PIT, we can use APB timer (if available)
> to calibrate TSC by counting the two. APB timer frequency is known to
> the system by SFI table provided by FW.
> 
> Signed-off-by: Jacob Pan <jacob.jun.pan@intel.com>
> ---
>  arch/x86/kernel/tsc.c |   11 +++++++++++
>  1 files changed, 11 insertions(+), 0 deletions(-)
> 
> diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
> index 6e1a368..8b38a9d 100644
> --- a/arch/x86/kernel/tsc.c
> +++ b/arch/x86/kernel/tsc.c
> @@ -18,6 +18,9 @@
>  #include <asm/delay.h>
>  #include <asm/hypervisor.h>
>  
> +#include <asm/platform_feature.h>
> +#include <asm/apb_timer.h>
> +
>  unsigned int __read_mostly cpu_khz;	/* TSC clocks / usec, not used here */
>  EXPORT_SYMBOL(cpu_khz);
>  
> @@ -394,6 +397,14 @@ unsigned long native_calibrate_tsc(void)
>  		return hv_tsc_khz;
>  	}
>  
> +	/* first check if apb timer exist and is usable */
> +	if (platform_has(X86_PLATFORM_FEATURE_APBT)) {
> +		local_irq_save(flags);
> +		fast_calibrate = apbt_quick_calibrate();
> +		local_irq_restore(flags);
> +		if (fast_calibrate)
> +			return fast_calibrate;

  And what is calibrating the TSC here. There is not PIT or comes that
  magically when the APBT thing fails ?

> +	}
>  	local_irq_save(flags);
>  	fast_calibrate = quick_pit_calibrate();
>  	local_irq_restore(flags);
> -- 
> 1.5.6.5
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
> 

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2009-08-19 15:52 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-07-16 10:55 [PATCH v2 7/10] x86/tsc: enable APB timer based calibration Pan, Jacob jun
2009-08-19 15:51 ` Thomas Gleixner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®