Author: andrew
Date: Fri Sep  2 10:13:51 2016
New Revision: 305285
URL: https://svnweb.freebsd.org/changeset/base/305285

Log:
  Add a pc_clock pcpu field and use it to implement cpu_est_clockrate. This
  will allow drivers that manage the clock frequency to communicate this with
  the reset of the kernel.
  
  Reported by:  jmcneill
  MFC after:    1 week
  Sponsored by: ABT Systems Ltd

Modified:
  head/sys/arm64/arm64/machdep.c
  head/sys/arm64/include/pcpu.h

Modified: head/sys/arm64/arm64/machdep.c
==============================================================================
--- head/sys/arm64/arm64/machdep.c      Fri Sep  2 08:44:14 2016        
(r305284)
+++ head/sys/arm64/arm64/machdep.c      Fri Sep  2 10:13:51 2016        
(r305285)
@@ -416,8 +416,17 @@ cpu_flush_dcache(void *ptr, size_t len)
 int
 cpu_est_clockrate(int cpu_id, uint64_t *rate)
 {
+       struct pcpu *pc;
 
-       panic("ARM64TODO: cpu_est_clockrate");
+       pc = pcpu_find(cpu_id);
+       if (pc == NULL || rate == NULL)
+               return (EINVAL);
+
+       if (pc->pc_clock == 0)
+               return (EOPNOTSUPP);
+
+       *rate = pc->pc_clock;
+       return (0);
 }
 
 void

Modified: head/sys/arm64/include/pcpu.h
==============================================================================
--- head/sys/arm64/include/pcpu.h       Fri Sep  2 08:44:14 2016        
(r305284)
+++ head/sys/arm64/include/pcpu.h       Fri Sep  2 10:13:51 2016        
(r305285)
@@ -38,7 +38,8 @@
 #define        PCPU_MD_FIELDS                                                  
\
        u_int   pc_acpi_id;     /* ACPI CPU id */               \
        u_int   pc_midr;        /* stored MIDR value */ \
-       char __pad[121]
+       uint64_t pc_clock;                                              \
+       char __pad[113]
 
 #ifdef _KERNEL
 
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to