Date: Fri, 2 Sep 2016 10:13:52 +0000 (UTC) From: Andrew Turner <andrew@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r305285 - in head/sys/arm64: arm64 include Message-ID: <201609021013.u82ADqGZ057984@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201609021013.u82ADqGZ057984>