diff -Nru cpufrequtils-007/.gitignore cpufrequtils-008/.gitignore --- cpufrequtils-007/.gitignore 2010-01-16 13:47:44.000000000 +0000 +++ cpufrequtils-008/.gitignore 2012-05-05 23:17:18.000000000 +0000 @@ -1,4 +1,7 @@ .libs +libcpufreq.so +libcpufreq.so.0 +libcpufreq.so.0.0.0 build/ccdv cpufreq-info cpufreq-set diff -Nru cpufrequtils-007/Makefile cpufrequtils-008/Makefile --- cpufrequtils-007/Makefile 2010-01-16 13:47:44.000000000 +0000 +++ cpufrequtils-008/Makefile 2012-05-05 23:17:18.000000000 +0000 @@ -54,8 +54,10 @@ # Package-related definitions. Distributions can modify the version # and _should_ modify the PACKAGE_BUGREPORT definition -VERSION = 007 -LIB_VERSION = 0:0:0 +VERSION = 008 +LIB_MAJ= 0.0.0 +LIB_MIN= 0 + PACKAGE = cpufrequtils PACKAGE_BUGREPORT = cpufreq@vger.kernel.org LANGUAGES = de fr it cs pt @@ -76,11 +78,11 @@ # Toolchain: what tools do we use, and what options do they need: +CP = cp -fpR INSTALL = /usr/bin/install -c INSTALL_PROGRAM = ${INSTALL} INSTALL_DATA = ${INSTALL} -m 644 INSTALL_SCRIPT = ${INSTALL_PROGRAM} -LIBTOOL = /usr/bin/libtool # If you are running a cross compiler, you may want to set this # to something more interesting, like "arm-linux-". If you want @@ -116,20 +118,22 @@ CPPFLAGS += -DVERSION=\"$(VERSION)\" -DPACKAGE=\"$(PACKAGE)\" \ -DPACKAGE_BUGREPORT=\"$(PACKAGE_BUGREPORT)\" -D_GNU_SOURCE -UTIL_OBJS = utils/info.c utils/set.c +UTIL_SRC = utils/info.c utils/set.c utils/aperf.c utils/cpuid.h LIB_HEADERS = lib/cpufreq.h lib/interfaces.h -LIB_OBJS = lib/cpufreq.c lib/proc.c lib/sysfs.c -LIB_PARTS = lib/cpufreq.lo +LIB_SRC = lib/cpufreq.c +LIB_OBJS = lib/cpufreq.o CFLAGS += -pipe ifeq ($(strip $(PROC)),true) - LIB_PARTS += lib/proc.lo + LIB_OBJS += lib/proc.o + LIB_SRC += lib/proc.c CPPFLAGS += -DINTERFACE_PROC endif ifeq ($(strip $(SYSFS)),true) - LIB_PARTS += lib/sysfs.lo + LIB_OBJS += lib/sysfs.o + LIB_SRC += lib/sysfs.c CPPFLAGS += -DINTERFACE_SYSFS endif @@ -147,11 +151,9 @@ ifeq ($(strip $(V)),false) QUIET=@$(PWD)/build/ccdv - LIBTOOL_OPT=--silent HOST_PROGS=build/ccdv else QUIET= - LIBTOOL_OPT= HOST_PROGS= endif @@ -175,31 +177,33 @@ ccdv: build/ccdv build/ccdv: build/ccdv.c @echo "Building ccdv" - @$(HOSTCC) -O1 -O1 $< -o $@ + @$(HOSTCC) -O1 $< -o $@ -%.lo: $(LIB_OBJS) $(LIB_HEADERS) ccdv - $(QUIET) $(LIBTOOL) $(LIBTOOL_OPT) --mode=compile $(CC) $(CPPFLAGS) $(CFLAGS) -o $@ -c $*.c +lib/%.o: $(LIB_SRC) $(LIB_HEADERS) build/ccdv + $(QUIET) $(CC) $(CPPFLAGS) $(CFLAGS) -fPIC -o $@ -c lib/$*.c -libcpufreq.la: $(LIB_OBJS) $(LIB_HEADERS) $(LIB_PARTS) Makefile +libcpufreq.so.$(LIB_MAJ): $(LIB_OBJS) @if [ $(strip $(SYSFS)) != true -a $(strip $(PROC)) != true ]; then \ echo '*** At least one of /sys support or /proc support MUST be enabled ***'; \ exit -1; \ fi; - $(QUIET) $(LIBTOOL) $(LIBTOOL_OPT) --mode=link $(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -o libcpufreq.la -rpath \ - ${libdir} -version-info $(LIB_VERSION) $(LIB_PARTS) + $(QUIET) $(CC) -shared $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ \ + -Wl,-soname,libcpufreq.so.$(LIB_MIN) $(LIB_OBJS) + @ln -sf $@ libcpufreq.so + @ln -sf $@ libcpufreq.so.$(LIB_MIN) -libcpufreq: libcpufreq.la +libcpufreq: libcpufreq.so.$(LIB_MAJ) -cpufreq-%: libcpufreq.la $(UTIL_OBJS) +cpufreq-%: libcpufreq.so.$(LIB_MAJ) $(UTIL_SRC) $(QUIET) $(CC) $(CPPFLAGS) $(CFLAGS) -I. -I./lib/ -c -o utils/$@.o utils/$*.c - $(QUIET) $(CC) $(CFLAGS) $(LDFLAGS) -L. -L./.libs/ -o $@ utils/$@.o -lcpufreq + $(QUIET) $(CC) $(CFLAGS) $(LDFLAGS) -L. -o $@ utils/$@.o -lcpufreq $(QUIET) $(STRIPCMD) $@ utils: cpufreq-info cpufreq-set cpufreq-aperf -po/$(PACKAGE).pot: $(UTIL_OBJS) +po/$(PACKAGE).pot: $(UTIL_SRC) @xgettext --default-domain=$(PACKAGE) --add-comments \ - --keyword=_ --keyword=N_ $(UTIL_OBJS) && \ + --keyword=_ --keyword=N_ $(UTIL_SRC) && \ test -f $(PACKAGE).po && \ mv -f $(PACKAGE).po po/$(PACKAGE).pot @@ -217,22 +221,21 @@ done; compile-bench: libcpufreq - @V=$(V) confdir=$(confdir) make -C bench + @V=$(V) confdir=$(confdir) $(MAKE) -C bench clean: - -find . \( -not -type d \) -and \( -name '*~' -o -name '*.[oas]' -o -name '*.l[oas]' \) -type f -print \ + -find . \( -not -type d \) -and \( -name '*~' -o -name '*.[oas]' \) -type f -print \ | xargs rm -f - -rm -rf lib/.libs - -rm -rf .libs -rm -f cpufreq-info cpufreq-set cpufreq-aperf + -rm -f libcpufreq.so* -rm -f build/ccdv -rm -rf po/*.gmo po/*.pot - make -C bench clean + $(MAKE) -C bench clean install-lib: $(INSTALL) -d $(DESTDIR)${libdir} - $(LIBTOOL) --mode=install $(INSTALL) libcpufreq.la $(DESTDIR)${libdir}/libcpufreq.la + $(CP) libcpufreq.so* $(DESTDIR)${libdir}/ $(INSTALL) -d $(DESTDIR)${includedir} $(INSTALL_DATA) lib/cpufreq.h $(DESTDIR)${includedir}/cpufreq.h @@ -255,9 +258,9 @@ install-bench: @#DESTDIR must be set from outside to survive - @sbindir=$(sbindir) bindir=$(bindir) docdir=$(docdir) confdir=$(confdir) make -C bench install + @sbindir=$(sbindir) bindir=$(bindir) docdir=$(docdir) confdir=$(confdir) $(MAKE) -C bench install -install: install-lib install-tools install-man $(INSTALL_NLS) $(INSTALL_BENCH) +install: all install-lib install-tools install-man $(INSTALL_NLS) $(INSTALL_BENCH) uninstall: - rm -f $(DESTDIR)${libdir}/libcpufreq.* @@ -271,5 +274,5 @@ rm -f $(DESTDIR)${localedir}/$$HLANG/LC_MESSAGES/cpufrequtils.mo; \ done; -.PHONY: all utils libcpufreq update-po update-gmo install-lib install-tools install-man install-gmo install uninstall \ +.PHONY: all utils libcpufreq ccdv update-po update-gmo install-lib install-tools install-man install-gmo install uninstall \ clean diff -Nru cpufrequtils-007/bench/Makefile cpufrequtils-008/bench/Makefile --- cpufrequtils-007/bench/Makefile 2010-01-16 13:47:44.000000000 +0000 +++ cpufrequtils-008/bench/Makefile 2012-05-05 23:17:18.000000000 +0000 @@ -1,4 +1,4 @@ -LIBS = -L../.libs/ -lm -lcpufreq +LIBS = -L../ -lm -lcpufreq OBJS = main.o parse.o system.o benchmark.o CFLAGS += -D_GNU_SOURCE -I../lib -DDEFAULT_CONFIG_FILE=\"$(confdir)/cpufreq-bench.conf\" diff -Nru cpufrequtils-007/debian/changelog cpufrequtils-008/debian/changelog --- cpufrequtils-007/debian/changelog 2011-08-03 11:50:31.000000000 +0000 +++ cpufrequtils-008/debian/changelog 2012-09-09 05:32:02.000000000 +0000 @@ -1,3 +1,22 @@ +cpufrequtils (008-1linaro1) precise; urgency=low + + * Backport for Precise + + -- Ricardo Salveti de Araujo Sun, 09 Sep 2012 02:31:30 -0300 + +cpufrequtils (008-1) unstable; urgency=low + + * Package the last available upstream vesion of cpufrequtils. Anything + after this should really be cpupowerutils (closes: 639454). + * Include all the work also pending the in the git repository as patches + on top of version 008. + * Upstream fixed po.DE (closes: #633307). + * Enable static library building as upstream disabled it. + * Load powernow-k8 for AMD Bulldozer (21) and Llano (18) (closes: #654957). + * Do not update po files upon building (closes: #651415). + + -- Mattia Dongili Sun, 06 May 2012 08:23:44 +0900 + cpufrequtils (007-2) unstable; urgency=low * Bulk load only helper modules. Linux 3.0 shuffled cpufreq modules diff -Nru cpufrequtils-007/debian/control cpufrequtils-008/debian/control --- cpufrequtils-007/debian/control 2011-08-03 11:50:31.000000000 +0000 +++ cpufrequtils-008/debian/control 2012-05-06 06:43:59.000000000 +0000 @@ -2,8 +2,8 @@ Section: admin Priority: optional Maintainer: Mattia Dongili -Build-Depends: debhelper (>= 6), libtool -Standards-Version: 3.8.4 +Build-Depends: debhelper (>= 6) +Standards-Version: 3.9.3 Homepage: http://kernel.org/pub/linux/utils/kernel/cpufreq/cpufrequtils.html Package: cpufrequtils diff -Nru cpufrequtils-007/debian/cpufrequtils.loadcpufreq.init cpufrequtils-008/debian/cpufrequtils.loadcpufreq.init --- cpufrequtils-007/debian/cpufrequtils.loadcpufreq.init 2011-08-03 11:50:31.000000000 +0000 +++ cpufrequtils-008/debian/cpufrequtils.loadcpufreq.init 2012-05-06 06:43:59.000000000 +0000 @@ -119,7 +119,7 @@ # K7 MODULE=powernow-k7 ;; - 15|16|17|20) + 15|16|17|18|20|21) # K8 MODULE=powernow-k8 ;; diff -Nru cpufrequtils-007/debian/libcpufreq-dev.install cpufrequtils-008/debian/libcpufreq-dev.install --- cpufrequtils-007/debian/libcpufreq-dev.install 2011-08-03 11:50:31.000000000 +0000 +++ cpufrequtils-008/debian/libcpufreq-dev.install 2012-05-06 06:43:59.000000000 +0000 @@ -1,4 +1,3 @@ usr/include/* usr/lib/lib*.a usr/lib/lib*.so -usr/lib/*.la diff -Nru cpufrequtils-007/debian/patches/0001-Only-x86-has-cpuid-instruction.patch cpufrequtils-008/debian/patches/0001-Only-x86-has-cpuid-instruction.patch --- cpufrequtils-007/debian/patches/0001-Only-x86-has-cpuid-instruction.patch 1970-01-01 00:00:00.000000000 +0000 +++ cpufrequtils-008/debian/patches/0001-Only-x86-has-cpuid-instruction.patch 2012-05-06 06:43:59.000000000 +0000 @@ -0,0 +1,34 @@ +From f1b6bccf08f53295b2f7f448f28bbd37533c14a2 Mon Sep 17 00:00:00 2001 +From: Zhang Le +Date: Sun, 18 Jul 2010 02:05:28 +0800 +Subject: [PATCH 1/8] Only x86 has cpuid instruction + +Signed-off-by: Zhang Le +Signed-off-by: Dominik Brodowski +--- + utils/aperf.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/utils/aperf.c b/utils/aperf.c +index 627fb17..1c64501 100644 +--- a/utils/aperf.c ++++ b/utils/aperf.c +@@ -68,11 +68,15 @@ struct avg_perf_cpu_info + + static int cpu_has_effective_freq() + { ++#if defined(__i386__) || defined(__x86_64__) + /* largest base level */ + if (cpuid_eax(0) < 6) + return 0; + + return cpuid_ecx(6) & 0x1; ++#else ++ return 0; ++#endif + } + + /* +-- +1.7.10 + diff -Nru cpufrequtils-007/debian/patches/0002-cpufrequtils-Remove-proc-compile-option-and-interfac.patch cpufrequtils-008/debian/patches/0002-cpufrequtils-Remove-proc-compile-option-and-interfac.patch --- cpufrequtils-007/debian/patches/0002-cpufrequtils-Remove-proc-compile-option-and-interfac.patch 1970-01-01 00:00:00.000000000 +0000 +++ cpufrequtils-008/debian/patches/0002-cpufrequtils-Remove-proc-compile-option-and-interfac.patch 2012-05-06 06:43:59.000000000 +0000 @@ -0,0 +1,1511 @@ +From adb7e044755aa06b12212d05c4acbcccb023d2cd Mon Sep 17 00:00:00 2001 +From: Thomas Renninger +Date: Wed, 1 Sep 2010 02:18:00 +0200 +Subject: [PATCH 2/8] cpufrequtils: Remove proc compile option and interfaces + +proc cpufreq kernel support is deprecated since the beginning of 2.6?) +If someone still likes to have support for the 2.4 cpufreq proc +interface one has to pick out an old cpufrequtils version +from now on... + +Signed-off-by: Thomas Renninger +Signed-off-by: Dominik Brodowski +--- + Makefile | 29 +------- + lib/cpufreq.c | 99 +++++-------------------- + lib/interfaces.h | 76 ------------------- + lib/proc.c | 216 ------------------------------------------------------ + lib/sysfs.h | 18 +++++ + po/cs.po | 186 +++++++++++++++++++++++++++------------------- + po/de.po | 2 +- + po/fr.po | 187 +++++++++++++++++++++++++++------------------- + po/it.po | 2 +- + po/pt.po | 2 +- + 10 files changed, 264 insertions(+), 553 deletions(-) + delete mode 100644 lib/interfaces.h + delete mode 100644 lib/proc.c + create mode 100644 lib/sysfs.h + +diff --git a/Makefile b/Makefile +index 3ef2af7..e23c644 100644 +--- a/Makefile ++++ b/Makefile +@@ -37,13 +37,6 @@ NLS ?= true + # cpufreq-bench benchmarking tool + CPUFRQ_BENCH ?= false + +-# Use the sysfs-based interface which is included in all 2.6 kernels +-# built with cpufreq support +-SYSFS ?= true +- +-# Use the proc-based interface which is used in the 2.4 patch for cpufreq +-PROC ?= true +- + # Prefix to the directories we're installing to + DESTDIR ?= + +@@ -119,24 +112,12 @@ CPPFLAGS += -DVERSION=\"$(VERSION)\" -DPACKAGE=\"$(PACKAGE)\" \ + -DPACKAGE_BUGREPORT=\"$(PACKAGE_BUGREPORT)\" -D_GNU_SOURCE + + UTIL_SRC = utils/info.c utils/set.c utils/aperf.c utils/cpuid.h +-LIB_HEADERS = lib/cpufreq.h lib/interfaces.h +-LIB_SRC = lib/cpufreq.c +-LIB_OBJS = lib/cpufreq.o ++LIB_HEADERS = lib/cpufreq.h lib/sysfs.h ++LIB_SRC = lib/cpufreq.c lib/sysfs.c ++LIB_OBJS = lib/cpufreq.o lib/sysfs.o + + CFLAGS += -pipe + +-ifeq ($(strip $(PROC)),true) +- LIB_OBJS += lib/proc.o +- LIB_SRC += lib/proc.c +- CPPFLAGS += -DINTERFACE_PROC +-endif +- +-ifeq ($(strip $(SYSFS)),true) +- LIB_OBJS += lib/sysfs.o +- LIB_SRC += lib/sysfs.c +- CPPFLAGS += -DINTERFACE_SYSFS +-endif +- + ifeq ($(strip $(NLS)),true) + INSTALL_NLS += install-gmo + COMPILE_NLS += update-gmo +@@ -183,10 +164,6 @@ lib/%.o: $(LIB_SRC) $(LIB_HEADERS) build/ccdv + $(QUIET) $(CC) $(CPPFLAGS) $(CFLAGS) -fPIC -o $@ -c lib/$*.c + + libcpufreq.so.$(LIB_MAJ): $(LIB_OBJS) +- @if [ $(strip $(SYSFS)) != true -a $(strip $(PROC)) != true ]; then \ +- echo '*** At least one of /sys support or /proc support MUST be enabled ***'; \ +- exit -1; \ +- fi; + $(QUIET) $(CC) -shared $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ \ + -Wl,-soname,libcpufreq.so.$(LIB_MIN) $(LIB_OBJS) + @ln -sf $@ libcpufreq.so +diff --git a/lib/cpufreq.c b/lib/cpufreq.c +index 0c9f28e..603dbf8 100644 +--- a/lib/cpufreq.c ++++ b/lib/cpufreq.c +@@ -11,60 +11,39 @@ + #include + + #include "cpufreq.h" +-#include "interfaces.h" ++#include "sysfs.h" + + int cpufreq_cpu_exists(unsigned int cpu) + { +- int ret = sysfs_cpu_exists(cpu); +- if (ret == -ENOSYS) +- ret = proc_cpu_exists(cpu); +- return (ret); ++ return sysfs_cpu_exists(cpu); + } + + unsigned long cpufreq_get_freq_kernel(unsigned int cpu) + { +- unsigned long ret = sysfs_get_freq_kernel(cpu); +- if (!ret) +- ret = proc_get_freq_kernel(cpu); +- return (ret); ++ return sysfs_get_freq_kernel(cpu); + } + + unsigned long cpufreq_get_freq_hardware(unsigned int cpu) + { +- unsigned long ret = sysfs_get_freq_hardware(cpu); +- if (!ret) +- ret = proc_get_freq_hardware(cpu); +- return (ret); ++ return sysfs_get_freq_hardware(cpu); + } + + unsigned long cpufreq_get_transition_latency(unsigned int cpu) + { +- unsigned long ret = sysfs_get_transition_latency(cpu); +- if (!ret) +- ret = proc_get_transition_latency(cpu); +- return (ret); ++ return sysfs_get_transition_latency(cpu); + } + + int cpufreq_get_hardware_limits(unsigned int cpu, + unsigned long *min, + unsigned long *max) + { +- int ret; + if ((!min) || (!max)) + return -EINVAL; +- ret = sysfs_get_hardware_limits(cpu, min, max); +- if (ret) +- ret = proc_get_hardware_limits(cpu, min, max); +- return (ret); ++ return sysfs_get_hardware_limits(cpu, min, max); + } + + char * cpufreq_get_driver(unsigned int cpu) { +- char * ret; +- ret = sysfs_get_driver(cpu); +- if (!ret) { +- ret = proc_get_driver(cpu); +- } +- return (ret); ++ return sysfs_get_driver(cpu); + } + + void cpufreq_put_driver(char * ptr) { +@@ -74,11 +53,7 @@ void cpufreq_put_driver(char * ptr) { + } + + struct cpufreq_policy * cpufreq_get_policy(unsigned int cpu) { +- struct cpufreq_policy * ret; +- ret = sysfs_get_policy(cpu); +- if (!ret) +- ret = proc_get_policy(cpu); +- return (ret); ++ return sysfs_get_policy(cpu); + } + + void cpufreq_put_policy(struct cpufreq_policy *policy) { +@@ -91,11 +66,7 @@ void cpufreq_put_policy(struct cpufreq_policy *policy) { + } + + struct cpufreq_available_governors * cpufreq_get_available_governors(unsigned int cpu) { +- struct cpufreq_available_governors *ret; +- ret = sysfs_get_available_governors(cpu); +- if (!ret) +- ret = proc_get_available_governors(cpu); +- return (ret); ++ return sysfs_get_available_governors(cpu); + } + + void cpufreq_put_available_governors(struct cpufreq_available_governors *any) { +@@ -116,11 +87,7 @@ void cpufreq_put_available_governors(struct cpufreq_available_governors *any) { + + + struct cpufreq_available_frequencies * cpufreq_get_available_frequencies(unsigned int cpu) { +- struct cpufreq_available_frequencies * ret; +- ret = sysfs_get_available_frequencies(cpu); +- if (!ret) +- ret = proc_get_available_frequencies(cpu); +- return (ret); ++ return sysfs_get_available_frequencies(cpu); + } + + void cpufreq_put_available_frequencies(struct cpufreq_available_frequencies *any) { +@@ -139,11 +106,7 @@ void cpufreq_put_available_frequencies(struct cpufreq_available_frequencies *any + + + struct cpufreq_affected_cpus * cpufreq_get_affected_cpus(unsigned int cpu) { +- struct cpufreq_affected_cpus * ret; +- ret = sysfs_get_affected_cpus(cpu); +- if (!ret) +- ret = proc_get_affected_cpus(cpu); +- return (ret); ++ return sysfs_get_affected_cpus(cpu); + } + + void cpufreq_put_affected_cpus(struct cpufreq_affected_cpus *any) { +@@ -162,11 +125,7 @@ void cpufreq_put_affected_cpus(struct cpufreq_affected_cpus *any) { + + + struct cpufreq_affected_cpus * cpufreq_get_related_cpus(unsigned int cpu) { +- struct cpufreq_affected_cpus * ret; +- ret = sysfs_get_related_cpus(cpu); +- if (!ret) +- ret = proc_get_related_cpus(cpu); +- return (ret); ++ return sysfs_get_related_cpus(cpu); + } + + void cpufreq_put_related_cpus(struct cpufreq_affected_cpus *any) { +@@ -175,56 +134,32 @@ void cpufreq_put_related_cpus(struct cpufreq_affected_cpus *any) { + + + int cpufreq_set_policy(unsigned int cpu, struct cpufreq_policy *policy) { +- int ret; + if (!policy || !(policy->governor)) + return -EINVAL; + +- ret = sysfs_set_policy(cpu, policy); +- if (ret) +- ret = proc_set_policy(cpu, policy); +- return (ret); ++ return sysfs_set_policy(cpu, policy); + } + + + int cpufreq_modify_policy_min(unsigned int cpu, unsigned long min_freq) { +- int ret; +- +- ret = sysfs_modify_policy_min(cpu, min_freq); +- if (ret) +- ret = proc_modify_policy_min(cpu, min_freq); +- return (ret); ++ return sysfs_modify_policy_min(cpu, min_freq); + } + + + int cpufreq_modify_policy_max(unsigned int cpu, unsigned long max_freq) { +- int ret; +- +- ret = sysfs_modify_policy_max(cpu, max_freq); +- if (ret) +- ret = proc_modify_policy_max(cpu, max_freq); +- return (ret); ++ return sysfs_modify_policy_max(cpu, max_freq); + } + + + int cpufreq_modify_policy_governor(unsigned int cpu, char *governor) { +- int ret; +- + if ((!governor) || (strlen(governor) > 19)) + return -EINVAL; + +- ret = sysfs_modify_policy_governor(cpu, governor); +- if (ret) +- ret = proc_modify_policy_governor(cpu, governor); +- return (ret); ++ return sysfs_modify_policy_governor(cpu, governor); + } + + int cpufreq_set_frequency(unsigned int cpu, unsigned long target_frequency) { +- int ret; +- +- ret = sysfs_set_frequency(cpu, target_frequency); +- if (ret) +- ret = proc_set_frequency(cpu, target_frequency); +- return (ret); ++ return sysfs_set_frequency(cpu, target_frequency); + } + + struct cpufreq_stats * cpufreq_get_stats(unsigned int cpu, unsigned long long *total_time) { +diff --git a/lib/interfaces.h b/lib/interfaces.h +deleted file mode 100644 +index 67ee131..0000000 +--- a/lib/interfaces.h ++++ /dev/null +@@ -1,76 +0,0 @@ +-#ifdef INTERFACE_SYSFS +- +-extern unsigned int sysfs_cpu_exists(unsigned int cpu); +-extern unsigned long sysfs_get_freq_kernel(unsigned int cpu); +-extern unsigned long sysfs_get_freq_hardware(unsigned int cpu); +-extern unsigned long sysfs_get_transition_latency(unsigned int cpu); +-extern int sysfs_get_hardware_limits(unsigned int cpu, unsigned long *min, unsigned long *max); +-extern char * sysfs_get_driver(unsigned int cpu); +-extern struct cpufreq_policy * sysfs_get_policy(unsigned int cpu); +-extern struct cpufreq_available_governors * sysfs_get_available_governors(unsigned int cpu); +-extern struct cpufreq_available_frequencies * sysfs_get_available_frequencies(unsigned int cpu); +-extern struct cpufreq_affected_cpus * sysfs_get_affected_cpus(unsigned int cpu); +-extern struct cpufreq_affected_cpus * sysfs_get_related_cpus(unsigned int cpu); +-extern struct cpufreq_stats * sysfs_get_stats(unsigned int cpu, unsigned long long *total_time); +-extern unsigned long sysfs_get_transitions(unsigned int cpu); +-extern int sysfs_set_policy(unsigned int cpu, struct cpufreq_policy *policy); +-extern int sysfs_modify_policy_min(unsigned int cpu, unsigned long min_freq); +-extern int sysfs_modify_policy_max(unsigned int cpu, unsigned long max_freq); +-extern int sysfs_modify_policy_governor(unsigned int cpu, char *governor); +-extern int sysfs_set_frequency(unsigned int cpu, unsigned long target_frequency); +- +-#else +- +-static inline unsigned int sysfs_cpu_exists(unsigned int cpu) { return -ENOSYS; } +-static inline unsigned long sysfs_get_freq_kernel(unsigned int cpu) { return 0; } +-static inline unsigned long sysfs_get_freq_hardware(unsigned int cpu) { return 0; } +-static inline unsigned long sysfs_get_transition_latency(unsigned int cpu) { return 0; } +-static inline int sysfs_get_hardware_limits(unsigned int cpu, unsigned long *min, unsigned long *max) { return -ENOSYS; } +-static inline char * sysfs_get_driver(unsigned int cpu) { return NULL; } +-static inline struct cpufreq_policy * sysfs_get_policy(unsigned int cpu) { return NULL; } +-static inline struct cpufreq_available_governors * sysfs_get_available_governors(unsigned int cpu) { return NULL; } +-static inline struct cpufreq_available_frequencies * sysfs_get_available_frequencies(unsigned int cpu) { return NULL; } +-static inline struct cpufreq_affected_cpus * sysfs_get_affected_cpus(unsigned int cpu) { return NULL; } +-static inline struct cpufreq_related_cpus * sysfs_get_affected_cpus(unsigned int cpu) { return NULL; } +-static inline struct cpufreq_stats * sysfs_get_stats(unsigned int cpu, unsigned long long *total_time) { return NULL; } +-static inline unsigned long sysfs_get_transitions(unsigned int cpu) { return 0; } +-static inline int sysfs_set_policy(unsigned int cpu, struct cpufreq_policy *policy) { return -ENOSYS; } +-static inline int sysfs_modify_policy_min(unsigned int cpu, unsigned long min_freq) { return -ENOSYS; } +-static inline int sysfs_modify_policy_max(unsigned int cpu, unsigned long max_freq) { return -ENOSYS; } +-static inline int sysfs_modify_policy_governor(unsigned int cpu, char *governor) { return -ENOSYS; } +-static inline int sysfs_set_frequency(unsigned int cpu, unsigned long target_frequency) { return -ENOSYS; } +- +-#endif +- +- +-#ifdef INTERFACE_PROC +- +-extern int proc_cpu_exists(unsigned int cpu); +-extern unsigned long proc_get_freq_kernel(unsigned int cpu); +-extern struct cpufreq_policy * proc_get_policy(unsigned int cpu); +-extern int proc_set_policy(unsigned int cpu, struct cpufreq_policy *policy); +-extern int proc_set_frequency(unsigned int cpu, unsigned long target_frequency); +-#else +- +-static inline int proc_cpu_exists(unsigned int cpu) {return -ENOSYS; } +-static inline unsigned long proc_get_freq_kernel(unsigned int cpu) { return 0; } +-static inline struct cpufreq_policy * proc_get_policy(unsigned int cpu) { return NULL; } +-static inline int proc_set_policy(unsigned int cpu, struct cpufreq_policy *policy) { return -ENOSYS; } +-static inline int proc_set_frequency(unsigned int cpu, unsigned long target_frequency) { return -ENOSYS; } +- +-#endif +- +-/* these aren't implemented in /proc, and probably never will...*/ +- +-static inline unsigned long proc_get_freq_hardware(unsigned int cpu) { return 0; } +-static inline unsigned long proc_get_transition_latency(unsigned int cpu) { return -ENOSYS; } +-static inline int proc_get_hardware_limits(unsigned int cpu, unsigned long *min, unsigned long *max) { return -ENOSYS; } +-static inline char * proc_get_driver(unsigned int cpu) {return NULL; } +-static inline struct cpufreq_available_governors * proc_get_available_governors(unsigned int cpu) { return NULL; } +-static inline struct cpufreq_available_frequencies * proc_get_available_frequencies(unsigned int cpu) { return NULL; } +-static inline struct cpufreq_affected_cpus * proc_get_affected_cpus(unsigned int cpu) { return NULL; } +-static inline struct cpufreq_affected_cpus * proc_get_related_cpus(unsigned int cpu) { return NULL; } +-static inline int proc_modify_policy_min(unsigned int cpu, unsigned long min_freq) { return -ENOSYS; } +-static inline int proc_modify_policy_max(unsigned int cpu, unsigned long max_freq) { return -ENOSYS; } +-static inline int proc_modify_policy_governor(unsigned int cpu, char *governor) { return -ENOSYS; } +- +diff --git a/lib/proc.c b/lib/proc.c +deleted file mode 100644 +index 38d8483..0000000 +--- a/lib/proc.c ++++ /dev/null +@@ -1,216 +0,0 @@ +-/* +- * (C) 2004 Dominik Brodowski +- * +- * Licensed under the terms of the GNU GPL License version 2. +- */ +- +-#include +-#include +-#include +-#include +- +-#include "cpufreq.h" +- +-#define MAX_LINE_LEN 255 +- +-static int readout_proc_cpufreq(unsigned int cpu, unsigned long *min, unsigned long *max, char **governor) +-{ +- FILE *fp; +- char value[MAX_LINE_LEN]; +- char gov_value[MAX_LINE_LEN]; +- int ret = -ENODEV; +- unsigned int cpu_read; +- unsigned int tmp1, tmp2; +- +- if ((!min) || (!max) || (!governor)) +- return -EINVAL; +- +- fp = fopen("/proc/cpufreq","r"); +- if (!fp) +- return -ENODEV; +- +- +- if (!fgets(value, MAX_LINE_LEN, fp)) { +- ret = -EIO; +- goto error; +- } +- +- if (strlen(value) > (MAX_LINE_LEN - 10)) { +- ret = -EIO; +- goto error; +- } +- +- while(!feof(fp)) { +- if (!fgets(value, MAX_LINE_LEN, fp)) { +- ret = -EIO; +- goto error; +- } +- +- if (strlen(value) > (MAX_LINE_LEN - 10)) { +- ret = -EIO; +- goto error; +- } +- +- ret = sscanf(value, "CPU%3d %9lu kHz (%3d %%) - %9lu kHz (%3d %%) - %s", +- &cpu_read , min, &tmp1, max, &tmp2, gov_value); +- if (ret != 6) { +- ret = -EIO; +- goto error; +- } +- +- if (cpu_read != cpu) +- continue; +- +- if ((tmp2 < tmp1) || (tmp2 > 100) || (*max < *min)) { +- ret = -ENOSYS; +- goto error; +- } +- +- tmp1 = strlen(gov_value); +- if (tmp1 > 20) { +- ret = -ENOSYS; +- goto error; +- } +- +- *governor = malloc(sizeof(char) * (tmp1 + 2)); +- if (!*governor) { +- ret = -ENOMEM; +- goto error; +- } +- +- strncpy(*governor, gov_value, tmp1); +- (*governor)[tmp1] = '\0'; +- +- ret = 0; +- +- break; +- } +- +- error: +- fclose(fp); +- return (ret); +-} +- +-int proc_cpu_exists(unsigned int cpu) { +- unsigned long tmp1, tmp2; +- char *tmp3; +- int ret; +- +- ret = readout_proc_cpufreq(cpu, &tmp1, &tmp2, &tmp3); +- if (ret) +- return -ENODEV; +- +- free(tmp3); +- return 0; +-} +- +-struct cpufreq_policy * proc_get_policy(unsigned int cpu) { +- struct cpufreq_policy tmp; +- struct cpufreq_policy *ret; +- int err; +- +- err = readout_proc_cpufreq(cpu, &tmp.min, &tmp.max, &tmp.governor); +- if (err) +- return NULL; +- +- ret = malloc(sizeof(struct cpufreq_policy)); +- if (!ret) +- return NULL; +- +- ret->min = tmp.min; +- ret->max = tmp.max; +- ret->governor = tmp.governor; +- +- return (ret); +-} +- +-unsigned long proc_get_freq_kernel(unsigned int cpu) { +- FILE *fp; +- char value[MAX_LINE_LEN]; +- char file[MAX_LINE_LEN]; +- unsigned long value2; +- +- snprintf(file, MAX_LINE_LEN, "/proc/sys/cpu/%u/speed", cpu); +- +- fp = fopen(file,"r"); +- if (!fp) +- return 0; +- +- if (!fgets(value, MAX_LINE_LEN, fp)) { +- fclose(fp); +- return 0; +- } +- +- fclose(fp); +- +- if (strlen(value) > (MAX_LINE_LEN - 10)) { +- return 0; +- } +- +- if (sscanf(value, "%lu", &value2) != 1) +- return 0; +- +- return value2; +-} +- +-int proc_set_policy(unsigned int cpu, struct cpufreq_policy *policy) { +- FILE *fp; +- char value[MAX_LINE_LEN]; +- int ret = -ENODEV; +- +- if ((!policy) || (!policy->governor) || (strlen(policy->governor) > 15)) +- return -EINVAL; +- +- snprintf(value, MAX_LINE_LEN, "%d:%lu:%lu:%s", cpu, policy->min, policy->max, policy->governor); +- +- value[MAX_LINE_LEN - 1]='\0'; +- +- fp = fopen("/proc/cpufreq","r+"); +- if (!fp) +- return -ENODEV; +- ret = fputs(value, fp); +- fclose(fp); +- +- if (ret < 0) +- return (ret); +- +- return 0; +-} +- +-int proc_set_frequency(unsigned int cpu, unsigned long target_frequency) { +- struct cpufreq_policy *pol = proc_get_policy(cpu); +- struct cpufreq_policy new_pol; +- char userspace_gov[] = "userspace"; +- FILE *fp; +- char value[MAX_LINE_LEN]; +- char file[MAX_LINE_LEN]; +- int ret = 0; +- +- if (!pol) +- return -ENODEV; +- +- if (strncmp(pol->governor, userspace_gov, 9) != 0) { +- cpufreq_put_policy(pol); +- new_pol.min = pol->min; +- new_pol.max = pol->max; +- new_pol.governor = userspace_gov; +- ret = proc_set_policy(cpu, &new_pol); +- if (ret) +- return (ret); +- } +- +- +- snprintf(file, MAX_LINE_LEN, "/proc/sys/cpu/%u/speed", cpu); +- snprintf(value, MAX_LINE_LEN, "%lu", target_frequency); +- +- fp = fopen(file,"r+"); +- if (!fp) +- return -EINVAL; +- ret = fputs(value, fp); +- fclose(fp); +- +- if (ret < 0) +- return (ret); +- +- return 0; +-} +diff --git a/lib/sysfs.h b/lib/sysfs.h +new file mode 100644 +index 0000000..99619d5 +--- /dev/null ++++ b/lib/sysfs.h +@@ -0,0 +1,18 @@ ++extern unsigned int sysfs_cpu_exists(unsigned int cpu); ++extern unsigned long sysfs_get_freq_kernel(unsigned int cpu); ++extern unsigned long sysfs_get_freq_hardware(unsigned int cpu); ++extern unsigned long sysfs_get_transition_latency(unsigned int cpu); ++extern int sysfs_get_hardware_limits(unsigned int cpu, unsigned long *min, unsigned long *max); ++extern char * sysfs_get_driver(unsigned int cpu); ++extern struct cpufreq_policy * sysfs_get_policy(unsigned int cpu); ++extern struct cpufreq_available_governors * sysfs_get_available_governors(unsigned int cpu); ++extern struct cpufreq_available_frequencies * sysfs_get_available_frequencies(unsigned int cpu); ++extern struct cpufreq_affected_cpus * sysfs_get_affected_cpus(unsigned int cpu); ++extern struct cpufreq_affected_cpus * sysfs_get_related_cpus(unsigned int cpu); ++extern struct cpufreq_stats * sysfs_get_stats(unsigned int cpu, unsigned long long *total_time); ++extern unsigned long sysfs_get_transitions(unsigned int cpu); ++extern int sysfs_set_policy(unsigned int cpu, struct cpufreq_policy *policy); ++extern int sysfs_modify_policy_min(unsigned int cpu, unsigned long min_freq); ++extern int sysfs_modify_policy_max(unsigned int cpu, unsigned long max_freq); ++extern int sysfs_modify_policy_governor(unsigned int cpu, char *governor); ++extern int sysfs_set_frequency(unsigned int cpu, unsigned long target_frequency); +diff --git a/po/cs.po b/po/cs.po +index a4c14a7..4fdfffb 100644 +--- a/po/cs.po ++++ b/po/cs.po +@@ -9,7 +9,7 @@ msgid "" + msgstr "" + "Project-Id-Version: cs\n" + "Report-Msgid-Bugs-To: \n" +-"POT-Creation-Date: 2008-07-17 11:29+0200\n" ++"POT-Creation-Date: 2010-09-01 01:20+0200\n" + "PO-Revision-Date: 2008-06-11 16:26+0200\n" + "Last-Translator: Karel Volný \n" + "Language-Team: Czech \n" +@@ -24,64 +24,74 @@ msgstr "" + msgid "Couldn't count the number of CPUs (%s: %s), assuming 1\n" + msgstr "Nelze zjistit počet CPU (%s: %s), předpokládá se 1.\n" + +-#: utils/info.c:67 ++#: utils/info.c:68 + #, c-format + msgid "" + " minimum CPU frequency - maximum CPU frequency - governor\n" + msgstr "" + " minimální frekvence CPU - maximální frekvence CPU - regulátor\n" + +-#: utils/info.c:128 ++#: utils/info.c:156 + #, c-format + msgid "couldn't analyze CPU %d as it doesn't seem to be present\n" + msgstr "nelze analyzovat CPU %d, vypadá to, že není přítomen\n" + +-#: utils/info.c:132 ++#: utils/info.c:160 + #, c-format + msgid "analyzing CPU %d:\n" + msgstr "analyzuji CPU %d:\n" + +-#: utils/info.c:139 ++#: utils/info.c:167 + #, c-format + msgid " no or unknown cpufreq driver is active on this CPU\n" + msgstr " pro tento CPU není aktivní žádný známý ovladač cpufreq\n" + +-#: utils/info.c:141 ++#: utils/info.c:169 + #, c-format + msgid " driver: %s\n" + msgstr " ovladač: %s\n" + +-#: utils/info.c:147 +-#, c-format +-msgid " CPUs which need to switch frequency at the same time: " ++#: utils/info.c:175 ++#, fuzzy, c-format ++msgid " CPUs which run at the same hardware frequency: " ++msgstr " CPU, které musí měnit frekvenci zároveň: " ++ ++#: utils/info.c:186 ++#, fuzzy, c-format ++msgid " CPUs which need to have their frequency coordinated by software: " + msgstr " CPU, které musí měnit frekvenci zároveň: " + +-#: utils/info.c:157 ++#: utils/info.c:197 ++#, c-format ++msgid " maximum transition latency: " ++msgstr "" ++ ++#: utils/info.c:203 + #, c-format + msgid " hardware limits: " + msgstr " hardwarové meze: " + +-#: utils/info.c:166 ++#: utils/info.c:212 + #, c-format + msgid " available frequency steps: " + msgstr " dostupné frekvence: " + +-#: utils/info.c:179 ++#: utils/info.c:225 + #, c-format + msgid " available cpufreq governors: " + msgstr " dostupné regulátory: " + +-#: utils/info.c:190 ++#: utils/info.c:236 + #, c-format + msgid " current policy: frequency should be within " + msgstr " současná taktika: frekvence by měla být mezi " + +-#: utils/info.c:192 ++#: utils/info.c:238 + #, c-format + msgid " and " + msgstr " a " + +-#: utils/info.c:196 ++#: utils/info.c:242 + #, c-format + msgid "" + "The governor \"%s\" may decide which speed to use\n" +@@ -90,51 +100,51 @@ msgstr "" + " Regulátor \"%s\" může rozhodnout jakou frekvenci použít\n" + " v těchto mezích.\n" + +-#: utils/info.c:203 ++#: utils/info.c:249 + #, c-format + msgid " current CPU frequency is " + msgstr " současná frekvence CPU je " + +-#: utils/info.c:206 ++#: utils/info.c:252 + #, c-format + msgid " (asserted by call to hardware)" + msgstr " (zjištěno hardwarovým voláním)" + +-#: utils/info.c:214 ++#: utils/info.c:260 + #, c-format + msgid " cpufreq stats: " + msgstr " statistika cpufreq: " + +-#: utils/info.c:361 utils/set.c:30 ++#: utils/info.c:440 utils/set.c:31 + #, c-format + msgid "Report errors and bugs to %s, please.\n" + msgstr "" + "Chyby v programu prosím hlaste na %s (anglicky).\n" + "Chyby v překladu prosím hlaste na kavol@seznam.cz (česky ;-)\n" + +-#: utils/info.c:365 ++#: utils/info.c:444 + #, c-format + msgid "Usage: cpufreq-info [options]\n" + msgstr "Užití: cpufreq-info [přepínače]\n" + +-#: utils/info.c:366 utils/set.c:35 ++#: utils/info.c:445 utils/set.c:37 + #, c-format + msgid "Options:\n" + msgstr "Přepínače:\n" + +-#: utils/info.c:367 ++#: utils/info.c:446 + #, c-format + msgid "" + " -c CPU, --cpu CPU CPU number which information shall be determined " + "about\n" + msgstr " -c CPU, --cpu CPU Číslo CPU, o kterém se mají zjistit informace\n" + +-#: utils/info.c:368 ++#: utils/info.c:447 + #, c-format + msgid " -e, --debug Prints out debug information\n" + msgstr " -e, --debug Vypíše ladicí informace\n" + +-#: utils/info.c:369 ++#: utils/info.c:448 + #, c-format + msgid "" + " -f, --freq Get frequency the CPU currently runs at, according\n" +@@ -143,7 +153,7 @@ msgstr "" + " -f, --freq Zjistí aktuální frekvenci, na které CPU běží\n" + " podle cpufreq *\n" + +-#: utils/info.c:371 ++#: utils/info.c:450 + #, c-format + msgid "" + " -w, --hwfreq Get frequency the CPU currently runs at, by reading\n" +@@ -152,7 +162,7 @@ msgstr "" + " -w, --hwfreq Zjistí aktuální frekvenci, na které CPU běží\n" + " z hardware (dostupné jen uživateli root) *\n" + +-#: utils/info.c:373 ++#: utils/info.c:452 + #, c-format + msgid "" + " -l, --hwlimits Determine the minimum and maximum CPU frequency " +@@ -161,36 +171,52 @@ msgstr "" + " -l, --hwlimits Zjistí minimální a maximální dostupnou frekvenci CPU " + "*\n" + +-#: utils/info.c:374 ++#: utils/info.c:453 + #, c-format + msgid " -d, --driver Determines the used cpufreq kernel driver *\n" + msgstr " -d, --driver Zjistí aktivní ovladač cpufreq *\n" + +-#: utils/info.c:375 ++#: utils/info.c:454 + #, c-format + msgid " -p, --policy Gets the currently used cpufreq policy *\n" + msgstr " -p, --policy Zjistí aktuální taktiku cpufreq *\n" + +-#: utils/info.c:376 ++#: utils/info.c:455 + #, c-format + msgid " -g, --governors Determines available cpufreq governors *\n" + msgstr " -g, --governors Zjistí dostupné regulátory cpufreq *\n" + +-#: utils/info.c:377 +-#, c-format ++#: utils/info.c:456 ++#, fuzzy, c-format + msgid "" +-" -a, --affected-cpus Determines which CPUs can only switch frequency at " +-"the\n" +-" same time *\n" ++" -r, --related-cpus Determines which CPUs run at the same hardware " ++"frequency *\n" + msgstr "" + " -a, --affected-cpus Zjistí, které CPU musí měnit frekvenci zároveň *\n" + +-#: utils/info.c:379 ++#: utils/info.c:457 ++#, fuzzy, c-format ++msgid "" ++" -a, --affected-cpus Determines which CPUs need to have their frequency\n" ++" coordinated by software *\n" ++msgstr "" ++" -a, --affected-cpus Zjistí, které CPU musí měnit frekvenci zároveň *\n" ++ ++#: utils/info.c:459 + #, c-format + msgid " -s, --stats Shows cpufreq statistics if available\n" + msgstr " -s, --stats Zobrazí statistiku cpufreq, je-li dostupná\n" + +-#: utils/info.c:380 ++#: utils/info.c:460 ++#, fuzzy, c-format ++msgid "" ++" -y, --latency Determines the maximum latency on CPU frequency " ++"changes *\n" ++msgstr "" ++" -l, --hwlimits Zjistí minimální a maximální dostupnou frekvenci CPU " ++"*\n" ++ ++#: utils/info.c:461 + #, c-format + msgid "" + " -o, --proc Prints out information like provided by the /proc/" +@@ -200,21 +226,21 @@ msgstr "" + " -o, --proc Vypíše informace ve formátu, jaký používalo rozhraní\n" + " /proc/cpufreq v kernelech řady 2.4 a časné 2.6\n" + +-#: utils/info.c:382 +-#, c-format ++#: utils/info.c:463 ++#, fuzzy, c-format + msgid "" +-" -m, --human human-readable output for the -f, -w and -s " ++" -m, --human human-readable output for the -f, -w, -s and -y " + "parameters\n" + msgstr "" + " -m, --human Výstup parametrů -f, -w a -s v „lidmi čitelném“ " + "formátu\n" + +-#: utils/info.c:383 utils/set.c:42 ++#: utils/info.c:464 + #, c-format + msgid " -h, --help Prints out this screen\n" + msgstr " -h, --help Vypíše tuto nápovědu\n" + +-#: utils/info.c:386 ++#: utils/info.c:467 + #, c-format + msgid "" + "If no argument or only the -c, --cpu parameter is given, debug output about\n" +@@ -224,7 +250,7 @@ msgstr "" + "jsou\n" + "vypsány ladicí informace, což může být užitečné například při hlášení chyb.\n" + +-#: utils/info.c:388 ++#: utils/info.c:469 + #, c-format + msgid "" + "For the arguments marked with *, omitting the -c or --cpu argument is\n" +@@ -233,14 +259,14 @@ msgstr "" + "Není-li při použití přepínačů označených * zadán parametr -c nebo --cpu,\n" + "předpokládá se jeho hodnota 0.\n" + +-#: utils/info.c:478 ++#: utils/info.c:563 + #, c-format + msgid "" + "The argument passed to this tool can't be combined with passing a --cpu " + "argument\n" + msgstr "Zadaný parametr nemůže být použit zároveň s přepínačem -c nebo --cpu\n" + +-#: utils/info.c:491 ++#: utils/info.c:576 + #, c-format + msgid "" + "You can't specify more than one --cpu parameter and/or\n" +@@ -249,17 +275,17 @@ msgstr "" + "Nelze zadat více než jeden parametr -c nebo --cpu\n" + "anebo více než jeden parametr určující výstup\n" + +-#: utils/info.c:497 utils/set.c:79 ++#: utils/info.c:582 utils/set.c:95 + #, c-format + msgid "invalid or unknown argument\n" + msgstr "neplatný nebo neznámý parametr\n" + +-#: utils/set.c:34 ++#: utils/set.c:36 + #, c-format + msgid "Usage: cpufreq-set [options]\n" + msgstr "Užití: cpufreq-set [přepínače]\n" + +-#: utils/set.c:36 ++#: utils/set.c:38 + #, c-format + msgid "" + " -c CPU, --cpu CPU number of CPU where cpufreq settings shall be " +@@ -268,7 +294,7 @@ msgstr "" + " -c CPU, --cpu CPU Číslo CPU pro který se má provést nastavení " + "cpufreq\n" + +-#: utils/set.c:37 ++#: utils/set.c:39 + #, c-format + msgid "" + " -d FREQ, --min FREQ new minimum CPU frequency the governor may " +@@ -277,7 +303,7 @@ msgstr "" + " -d FREQ, --min FREQ Nová nejnižší frekvence, kterou může regulátor " + "vybrat\n" + +-#: utils/set.c:38 ++#: utils/set.c:40 + #, c-format + msgid "" + " -u FREQ, --max FREQ new maximum CPU frequency the governor may " +@@ -286,12 +312,12 @@ msgstr "" + " -u FREQ, --max FREQ Nová nejvyšší frekvence, kterou může regulátor " + "zvolit\n" + +-#: utils/set.c:39 ++#: utils/set.c:41 + #, c-format + msgid " -g GOV, --governor GOV new cpufreq governor\n" + msgstr " -g GOV, --governors GOV Nový regulátor cpufreq\n" + +-#: utils/set.c:40 ++#: utils/set.c:42 + #, c-format + msgid "" + " -f FREQ, --freq FREQ specific frequency to be set. Requires userspace\n" +@@ -303,6 +329,16 @@ msgstr "" + + #: utils/set.c:44 + #, c-format ++msgid " -r, --related Switches all hardware-related CPUs\n" ++msgstr "" ++ ++#: utils/set.c:45 ++#, fuzzy, c-format ++msgid " -h, --help Prints out this screen\n" ++msgstr " -h, --help Vypíše tuto nápovědu\n" ++ ++#: utils/set.c:47 ++#, c-format + msgid "" + "Notes:\n" + "1. Omitting the -c or --cpu argument is equivalent to setting it to zero\n" +@@ -322,30 +358,7 @@ msgstr "" + " připojením názvu jednotky bez mezery mezi číslem a jednotkou\n" + " (FREQ v kHz =^ Hz * 0,001 = ^ MHz * 1000 =^ GHz * 1000000)\n" + +-#: utils/set.c:251 +-#, c-format +-msgid "" +-"the -f/--freq parameter cannot be combined with -d/--min, -u/--max or\n" +-"-g/--governor parameters\n" +-msgstr "" +-"přepínač -f/--freq nemůže být použit zároveň\n" +-"s přepínačem -d/--min, -u/--max nebo -g/--governor\n" +- +-#: utils/set.c:262 +-#, c-format +-msgid "" +-"At least one parameter out of -f/--freq, -d/--min, -u/--max, and\n" +-"-g/--governor must be passed\n" +-msgstr "" +-"Musí být zadán alespoň jeden přepínač\n" +-"-f/--freq, -d/--min, -u/--max nebo -g/--governor\n" +- +-#: utils/set.c:282 +-#, c-format +-msgid "wrong, unknown or unhandled CPU?\n" +-msgstr "neznámý nebo nepodporovaný CPU?\n" +- +-#: utils/set.c:306 ++#: utils/set.c:69 + #, c-format + msgid "" + "Error setting new values. Common errors:\n" +@@ -365,3 +378,26 @@ msgstr "" + "- Snažíte se nastavit určitou frekvenci, ale není dostupný\n" + " regulátor ‚userspace‘, například protože není nahrán v jádře,\n" + " nebo nelze na tomto hardware nastavit určitou frekvenci?\n" ++ ++#: utils/set.c:183 ++#, c-format ++msgid "wrong, unknown or unhandled CPU?\n" ++msgstr "neznámý nebo nepodporovaný CPU?\n" ++ ++#: utils/set.c:336 ++#, c-format ++msgid "" ++"the -f/--freq parameter cannot be combined with -d/--min, -u/--max or\n" ++"-g/--governor parameters\n" ++msgstr "" ++"přepínač -f/--freq nemůže být použit zároveň\n" ++"s přepínačem -d/--min, -u/--max nebo -g/--governor\n" ++ ++#: utils/set.c:342 ++#, c-format ++msgid "" ++"At least one parameter out of -f/--freq, -d/--min, -u/--max, and\n" ++"-g/--governor must be passed\n" ++msgstr "" ++"Musí být zadán alespoň jeden přepínač\n" ++"-f/--freq, -d/--min, -u/--max nebo -g/--governor\n" +diff --git a/po/de.po b/po/de.po +index 4c3a2bb..a5970ae 100644 +--- a/po/de.po ++++ b/po/de.po +@@ -7,7 +7,7 @@ msgid "" + msgstr "" + "Project-Id-Version: cpufrequtils 006\n" + "Report-Msgid-Bugs-To: \n" +-"POT-Creation-Date: 2009-08-09 11:53+0200\n" ++"POT-Creation-Date: 2010-09-01 01:20+0200\n" + "PO-Revision-Date: 2009-08-08 17:18+0100\n" + "Last-Translator: \n" + "Language-Team: NONE\n" +diff --git a/po/fr.po b/po/fr.po +index fffdb42..4ebb40b 100644 +--- a/po/fr.po ++++ b/po/fr.po +@@ -8,7 +8,7 @@ msgid "" + msgstr "" + "Project-Id-Version: cpufrequtils 0.1-pre2\n" + "Report-Msgid-Bugs-To: \n" +-"POT-Creation-Date: 2008-07-17 11:29+0200\n" ++"POT-Creation-Date: 2010-09-01 01:20+0200\n" + "PO-Revision-Date: 2004-11-17 15:53+1000\n" + "Last-Translator: Bruno Ducrot \n" + "Language-Team: NONE\n" +@@ -21,64 +21,74 @@ msgstr "" + msgid "Couldn't count the number of CPUs (%s: %s), assuming 1\n" + msgstr "Dtermination du nombre de CPUs (%s : %s) impossible. Assume 1\n" + +-#: utils/info.c:67 ++#: utils/info.c:68 + #, c-format + msgid "" + " minimum CPU frequency - maximum CPU frequency - governor\n" + msgstr "" + " Frquence CPU minimale - Frquence CPU maximale - rgulateur\n" + +-#: utils/info.c:128 ++#: utils/info.c:156 + #, c-format + msgid "couldn't analyze CPU %d as it doesn't seem to be present\n" + msgstr "analyse du CPU %d impossible puisqu'il ne semble pas tre prsent\n" + +-#: utils/info.c:132 ++#: utils/info.c:160 + #, c-format + msgid "analyzing CPU %d:\n" + msgstr "analyse du CPU %d :\n" + +-#: utils/info.c:139 ++#: utils/info.c:167 + #, c-format + msgid " no or unknown cpufreq driver is active on this CPU\n" + msgstr " pas de pilotes cpufreq reconnu pour ce CPU\n" + +-#: utils/info.c:141 ++#: utils/info.c:169 + #, c-format + msgid " driver: %s\n" + msgstr " pilote : %s\n" + +-#: utils/info.c:147 +-#, c-format +-msgid " CPUs which need to switch frequency at the same time: " ++#: utils/info.c:175 ++#, fuzzy, c-format ++msgid " CPUs which run at the same hardware frequency: " ++msgstr " CPUs qui doivent changer de frquences en mme temps : " ++ ++#: utils/info.c:186 ++#, fuzzy, c-format ++msgid " CPUs which need to have their frequency coordinated by software: " + msgstr " CPUs qui doivent changer de frquences en mme temps : " + +-#: utils/info.c:157 ++#: utils/info.c:197 ++#, c-format ++msgid " maximum transition latency: " ++msgstr "" ++ ++#: utils/info.c:203 + #, c-format + msgid " hardware limits: " + msgstr " limitation matrielle : " + +-#: utils/info.c:166 ++#: utils/info.c:212 + #, c-format + msgid " available frequency steps: " + msgstr " plage de frquence : " + +-#: utils/info.c:179 ++#: utils/info.c:225 + #, c-format + msgid " available cpufreq governors: " + msgstr " rgulateurs disponibles : " + +-#: utils/info.c:190 ++#: utils/info.c:236 + #, c-format + msgid " current policy: frequency should be within " + msgstr " tactique actuelle : la frquence doit tre comprise entre " + +-#: utils/info.c:192 ++#: utils/info.c:238 + #, c-format + msgid " and " + msgstr " et " + +-#: utils/info.c:196 ++#: utils/info.c:242 + #, c-format + msgid "" + "The governor \"%s\" may decide which speed to use\n" +@@ -87,37 +97,37 @@ msgstr "" + "Le rgulateur \"%s\" est libre de choisir la vitesse\n" + " dans cette plage de frquences.\n" + +-#: utils/info.c:203 ++#: utils/info.c:249 + #, c-format + msgid " current CPU frequency is " + msgstr " la frquence actuelle de ce CPU est " + +-#: utils/info.c:206 ++#: utils/info.c:252 + #, c-format + msgid " (asserted by call to hardware)" + msgstr " (vrifi par un appel direct du matriel)" + +-#: utils/info.c:214 ++#: utils/info.c:260 + #, c-format + msgid " cpufreq stats: " + msgstr " des statistique concernant cpufreq:" + +-#: utils/info.c:361 utils/set.c:30 ++#: utils/info.c:440 utils/set.c:31 + #, c-format + msgid "Report errors and bugs to %s, please.\n" + msgstr "Veuillez rapportez les erreurs et les bogues %s, s'il vous plait.\n" + +-#: utils/info.c:365 ++#: utils/info.c:444 + #, c-format + msgid "Usage: cpufreq-info [options]\n" + msgstr "Usage : cpufreq-info [options]\n" + +-#: utils/info.c:366 utils/set.c:35 ++#: utils/info.c:445 utils/set.c:37 + #, c-format + msgid "Options:\n" + msgstr "Options :\n" + +-#: utils/info.c:367 ++#: utils/info.c:446 + #, c-format + msgid "" + " -c CPU, --cpu CPU CPU number which information shall be determined " +@@ -126,12 +136,12 @@ msgstr "" + " -c CPU, --cpu CPU Numro du CPU pour lequel l'information sera " + "affiche\n" + +-#: utils/info.c:368 ++#: utils/info.c:447 + #, c-format + msgid " -e, --debug Prints out debug information\n" + msgstr " -e, --debug Afficher les informations de dboguage\n" + +-#: utils/info.c:369 ++#: utils/info.c:448 + #, c-format + msgid "" + " -f, --freq Get frequency the CPU currently runs at, according\n" +@@ -140,7 +150,7 @@ msgstr "" + " -f, --freq Obtenir la frquence actuelle du CPU selon le point\n" + " de vue du coeur du systme de cpufreq *\n" + +-#: utils/info.c:371 ++#: utils/info.c:450 + #, c-format + msgid "" + " -w, --hwfreq Get frequency the CPU currently runs at, by reading\n" +@@ -149,7 +159,7 @@ msgstr "" + " -w, --hwfreq Obtenir la frquence actuelle du CPU directement par\n" + " le matriel (doit tre root) *\n" + +-#: utils/info.c:373 ++#: utils/info.c:452 + #, c-format + msgid "" + " -l, --hwlimits Determine the minimum and maximum CPU frequency " +@@ -158,40 +168,57 @@ msgstr "" + " -l, --hwlimits Affiche les frquences minimales et maximales du CPU " + "*\n" + +-#: utils/info.c:374 ++#: utils/info.c:453 + #, c-format + msgid " -d, --driver Determines the used cpufreq kernel driver *\n" + msgstr " -d, --driver Affiche le pilote cpufreq utilis *\n" + +-#: utils/info.c:375 ++#: utils/info.c:454 + #, c-format + msgid " -p, --policy Gets the currently used cpufreq policy *\n" + msgstr " -p, --policy Affiche la tactique actuelle de cpufreq *\n" + +-#: utils/info.c:376 ++#: utils/info.c:455 + #, c-format + msgid " -g, --governors Determines available cpufreq governors *\n" + msgstr "" + " -g, --governors Affiche les rgulateurs disponibles de cpufreq *\n" + +-#: utils/info.c:377 +-#, c-format ++#: utils/info.c:456 ++#, fuzzy, c-format + msgid "" +-" -a, --affected-cpus Determines which CPUs can only switch frequency at " +-"the\n" +-" same time *\n" ++" -r, --related-cpus Determines which CPUs run at the same hardware " ++"frequency *\n" + msgstr "" + " -a, --affected-cpus Affiche quels sont les CPUs qui doivent changer de\n" + " frquences en mme temps *\n" + +-#: utils/info.c:379 ++#: utils/info.c:457 ++#, fuzzy, c-format ++msgid "" ++" -a, --affected-cpus Determines which CPUs need to have their frequency\n" ++" coordinated by software *\n" ++msgstr "" ++" -a, --affected-cpus Affiche quels sont les CPUs qui doivent changer de\n" ++" frquences en mme temps *\n" ++ ++#: utils/info.c:459 + #, c-format + msgid " -s, --stats Shows cpufreq statistics if available\n" + msgstr "" + " -s, --stats Indique des statistiques concernant cpufreq, si\n" + " disponibles\n" + +-#: utils/info.c:380 ++#: utils/info.c:460 ++#, fuzzy, c-format ++msgid "" ++" -y, --latency Determines the maximum latency on CPU frequency " ++"changes *\n" ++msgstr "" ++" -l, --hwlimits Affiche les frquences minimales et maximales du CPU " ++"*\n" ++ ++#: utils/info.c:461 + #, c-format + msgid "" + " -o, --proc Prints out information like provided by the /proc/" +@@ -203,21 +230,21 @@ msgstr "" + "versions\n" + " 2.4 et les anciennes versions 2.6 du noyau\n" + +-#: utils/info.c:382 +-#, c-format ++#: utils/info.c:463 ++#, fuzzy, c-format + msgid "" +-" -m, --human human-readable output for the -f, -w and -s " ++" -m, --human human-readable output for the -f, -w, -s and -y " + "parameters\n" + msgstr "" + " -m, --human affiche dans un format lisible pour un humain\n" + " pour les options -f, -w et -s (MHz, GHz)\n" + +-#: utils/info.c:383 utils/set.c:42 ++#: utils/info.c:464 + #, c-format + msgid " -h, --help Prints out this screen\n" + msgstr " -h, --help affiche l'aide-mmoire\n" + +-#: utils/info.c:386 ++#: utils/info.c:467 + #, c-format + msgid "" + "If no argument or only the -c, --cpu parameter is given, debug output about\n" +@@ -227,21 +254,21 @@ msgstr "" + "argument, ou bien si seulement l'argument -c (--cpu) est donn, afin de\n" + "faciliter les rapports de bogues par exemple\n" + +-#: utils/info.c:388 ++#: utils/info.c:469 + #, c-format + msgid "" + "For the arguments marked with *, omitting the -c or --cpu argument is\n" + "equivalent to setting it to zero\n" + msgstr "Les arguments avec un * utiliseront le CPU 0 si -c (--cpu) est omis\n" + +-#: utils/info.c:478 ++#: utils/info.c:563 + #, c-format + msgid "" + "The argument passed to this tool can't be combined with passing a --cpu " + "argument\n" + msgstr "Cette option est incompatible avec --cpu\n" + +-#: utils/info.c:491 ++#: utils/info.c:576 + #, c-format + msgid "" + "You can't specify more than one --cpu parameter and/or\n" +@@ -250,17 +277,17 @@ msgstr "" + "On ne peut indiquer plus d'un paramtre --cpu, tout comme l'on ne peut\n" + "spcifier plus d'un argument de formatage\n" + +-#: utils/info.c:497 utils/set.c:79 ++#: utils/info.c:582 utils/set.c:95 + #, c-format + msgid "invalid or unknown argument\n" + msgstr "option invalide\n" + +-#: utils/set.c:34 ++#: utils/set.c:36 + #, c-format + msgid "Usage: cpufreq-set [options]\n" + msgstr "Usage : cpufreq-set [options]\n" + +-#: utils/set.c:36 ++#: utils/set.c:38 + #, c-format + msgid "" + " -c CPU, --cpu CPU number of CPU where cpufreq settings shall be " +@@ -269,7 +296,7 @@ msgstr "" + " -c CPU, --cpu CPU numro du CPU prendre en compte pour les\n" + " changements\n" + +-#: utils/set.c:37 ++#: utils/set.c:39 + #, c-format + msgid "" + " -d FREQ, --min FREQ new minimum CPU frequency the governor may " +@@ -278,7 +305,7 @@ msgstr "" + " -d FREQ, --min FREQ nouvelle frquence minimale du CPU utiliser\n" + " par le rgulateur\n" + +-#: utils/set.c:38 ++#: utils/set.c:40 + #, c-format + msgid "" + " -u FREQ, --max FREQ new maximum CPU frequency the governor may " +@@ -287,12 +314,12 @@ msgstr "" + " -u FREQ, --max FREQ nouvelle frquence maximale du CPU utiliser\n" + " par le rgulateur\n" + +-#: utils/set.c:39 ++#: utils/set.c:41 + #, c-format + msgid " -g GOV, --governor GOV new cpufreq governor\n" + msgstr " -g GOV, --governor GOV active le rgulateur GOV\n" + +-#: utils/set.c:40 ++#: utils/set.c:42 + #, c-format + msgid "" + " -f FREQ, --freq FREQ specific frequency to be set. Requires userspace\n" +@@ -304,6 +331,16 @@ msgstr "" + + #: utils/set.c:44 + #, c-format ++msgid " -r, --related Switches all hardware-related CPUs\n" ++msgstr "" ++ ++#: utils/set.c:45 ++#, fuzzy, c-format ++msgid " -h, --help Prints out this screen\n" ++msgstr " -h, --help affiche l'aide-mmoire\n" ++ ++#: utils/set.c:47 ++#, c-format + msgid "" + "Notes:\n" + "1. Omitting the -c or --cpu argument is equivalent to setting it to zero\n" +@@ -322,30 +359,7 @@ msgstr "" + " les valeurs par hz, kHz (par dfaut), MHz, GHz ou THz\n" + " (kHz =^ Hz * 0.001 =^ MHz * 1000 =^ GHz * 1000000).\n" + +-#: utils/set.c:251 +-#, c-format +-msgid "" +-"the -f/--freq parameter cannot be combined with -d/--min, -u/--max or\n" +-"-g/--governor parameters\n" +-msgstr "" +-"l'option -f/--freq est incompatible avec les options -d/--min, -u/--max et\n" +-"-g/--governor\n" +- +-#: utils/set.c:262 +-#, c-format +-msgid "" +-"At least one parameter out of -f/--freq, -d/--min, -u/--max, and\n" +-"-g/--governor must be passed\n" +-msgstr "" +-"L'un de ces paramtres est obligatoire : -f/--freq, -d/--min, -u/--max et\n" +-"-g/--governor\n" +- +-#: utils/set.c:282 +-#, c-format +-msgid "wrong, unknown or unhandled CPU?\n" +-msgstr "CPU inconnu ou non support ?\n" +- +-#: utils/set.c:306 ++#: utils/set.c:69 + #, c-format + msgid "" + "Error setting new values. Common errors:\n" +@@ -368,3 +382,26 @@ msgstr "" + "- vous voulez utiliser l'option -f/--freq, mais le rgulateur userspace \n" + " n'est pas disponible, par exemple parce que le matriel ne le supporte\n" + " pas, ou bien n'est tout simplement pas charg.\n" ++ ++#: utils/set.c:183 ++#, c-format ++msgid "wrong, unknown or unhandled CPU?\n" ++msgstr "CPU inconnu ou non support ?\n" ++ ++#: utils/set.c:336 ++#, c-format ++msgid "" ++"the -f/--freq parameter cannot be combined with -d/--min, -u/--max or\n" ++"-g/--governor parameters\n" ++msgstr "" ++"l'option -f/--freq est incompatible avec les options -d/--min, -u/--max et\n" ++"-g/--governor\n" ++ ++#: utils/set.c:342 ++#, c-format ++msgid "" ++"At least one parameter out of -f/--freq, -d/--min, -u/--max, and\n" ++"-g/--governor must be passed\n" ++msgstr "" ++"L'un de ces paramtres est obligatoire : -f/--freq, -d/--min, -u/--max et\n" ++"-g/--governor\n" +diff --git a/po/it.po b/po/it.po +index 36f09ed..4e9aa83 100644 +--- a/po/it.po ++++ b/po/it.po +@@ -8,7 +8,7 @@ msgid "" + msgstr "" + "Project-Id-Version: cpufrequtils 0.3\n" + "Report-Msgid-Bugs-To: \n" +-"POT-Creation-Date: 2009-08-09 11:53+0200\n" ++"POT-Creation-Date: 2010-09-01 01:20+0200\n" + "PO-Revision-Date: 2009-08-15 12:00+0900\n" + "Last-Translator: Mattia Dongili \n" + "Language-Team: NONE\n" +diff --git a/po/pt.po b/po/pt.po +index 75cca0d..2baf1d5 100644 +--- a/po/pt.po ++++ b/po/pt.po +@@ -8,7 +8,7 @@ msgid "" + msgstr "" + "Project-Id-Version: cpufrequtils 004\n" + "Report-Msgid-Bugs-To: \n" +-"POT-Creation-Date: 2009-08-09 11:53+0200\n" ++"POT-Creation-Date: 2010-09-01 01:20+0200\n" + "PO-Revision-Date: 2008-06-14 22:16-0400\n" + "Last-Translator: Claudio Eduardo \n" + "MIME-Version: 1.0\n" +-- +1.7.10 + diff -Nru cpufrequtils-007/debian/patches/0003-cpufrequtils-aperf-Fix-MSR-read-on-32-bit.patch cpufrequtils-008/debian/patches/0003-cpufrequtils-aperf-Fix-MSR-read-on-32-bit.patch --- cpufrequtils-007/debian/patches/0003-cpufrequtils-aperf-Fix-MSR-read-on-32-bit.patch 1970-01-01 00:00:00.000000000 +0000 +++ cpufrequtils-008/debian/patches/0003-cpufrequtils-aperf-Fix-MSR-read-on-32-bit.patch 2012-05-06 06:43:59.000000000 +0000 @@ -0,0 +1,35 @@ +From d4490efed068a552e8b67d52a0726458a224c9a0 Mon Sep 17 00:00:00 2001 +From: Frank Arnold +Date: Wed, 8 Dec 2010 17:39:14 +0100 +Subject: [PATCH 3/8] cpufrequtils aperf: Fix MSR read on 32-bit + +The cpufreq-aperf command does not work on 32-bit systems. The reason +for that is a wrong count argument passed to the read() call. Instead +of the buffer size, the size of the pointer to the buffer is used. On +64-bit systems this just happened to work, because we need to read an +8 byte value and a pointer has a size of 8 bytes on 64-bit. On 32-bit +systems only 4 bytes are read, which then triggers the error path. + +Signed-off-by: Frank Arnold +Reviewed-by: Thomas Renninger +Signed-off-by: Dominik Brodowski +--- + utils/aperf.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/utils/aperf.c b/utils/aperf.c +index 1c64501..6302f5a 100644 +--- a/utils/aperf.c ++++ b/utils/aperf.c +@@ -100,7 +100,7 @@ static int read_msr(int cpu, unsigned int idx, unsigned long long *val) + return -1; + if (lseek(fd, idx, SEEK_CUR) == -1) + goto err; +- if (read(fd, val, sizeof val) != sizeof *val) ++ if (read(fd, val, sizeof *val) != sizeof *val) + goto err; + close(fd); + return 0; +-- +1.7.10 + diff -Nru cpufrequtils-007/debian/patches/0004-i18n-Catalan.patch cpufrequtils-008/debian/patches/0004-i18n-Catalan.patch --- cpufrequtils-007/debian/patches/0004-i18n-Catalan.patch 1970-01-01 00:00:00.000000000 +0000 +++ cpufrequtils-008/debian/patches/0004-i18n-Catalan.patch 2012-05-06 06:43:59.000000000 +0000 @@ -0,0 +1,531 @@ +From f87d9bf4c62d6d7017c35357f425038f25b0e3e9 Mon Sep 17 00:00:00 2001 +From: Dominik Brodowski +Date: Wed, 9 Mar 2011 14:54:43 +0100 +Subject: [PATCH 4/8] i18n: Catalan + +Signed-off-by: Dominik Brodowski +--- + Makefile | 2 +- + po/ca.po | 415 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + po/cs.po | 3 +- + po/de.po | 3 +- + po/fr.po | 3 +- + po/it.po | 3 +- + po/pt.po | 2 +- + 7 files changed, 425 insertions(+), 6 deletions(-) + create mode 100644 po/ca.po + +Index: cpufrequtils/Makefile +=================================================================== +--- cpufrequtils.orig/Makefile 2012-05-06 13:29:57.000000000 +0900 ++++ cpufrequtils/Makefile 2012-05-06 13:30:41.865796974 +0900 +@@ -60,7 +60,7 @@ + + PACKAGE = cpufrequtils + PACKAGE_BUGREPORT = cpufreq@vger.kernel.org +-LANGUAGES = de fr it cs pt ++LANGUAGES = de fr it cs pt ca + + + # Directory definitions. These are default and most probably +Index: cpufrequtils/po/ca.po +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ cpufrequtils/po/ca.po 2012-05-06 13:30:41.869796865 +0900 +@@ -0,0 +1,415 @@ ++# Catalan translation of cpufrequtil package ++# Copyright (C) 20042009,2011 ++# This file is distributed under the same license as the cpufrequtil package. ++# Sergi Casbas , 2011. ++# ++msgid "" ++msgstr "" ++"Project-Id-Version: debian Squeezy\n" ++"Report-Msgid-Bugs-To: \n" ++"POT-Creation-Date: 2011-03-09 14:53+0100\n" ++"PO-Revision-Date: 2011-03-05 21:10+0100\n" ++"Last-Translator: Sergi Casbas \n" ++"Language-Team: Catalan <>\n" ++"Language: ca\n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=utf-8\n" ++"Content-Transfer-Encoding: 8bit\n" ++"Plural-Forms: \n" ++ ++#: utils/info.c:36 ++#, c-format ++msgid "Couldn't count the number of CPUs (%s: %s), assuming 1\n" ++msgstr "No es pot comptar el nombre total de CPUs (%s: %s), se n'assumeix 1\n" ++ ++#: utils/info.c:68 ++#, c-format ++msgid "" ++" minimum CPU frequency - maximum CPU frequency - governor\n" ++msgstr "" ++" mínima freqüència de CPU - màxima freqüència de CPU - " ++"governador\n" ++ ++#: utils/info.c:156 ++#, c-format ++msgid "couldn't analyze CPU %d as it doesn't seem to be present\n" ++msgstr "No es pot analitzar la CPU %d ja que sembla que no està present.\n" ++ ++#: utils/info.c:160 ++#, c-format ++msgid "analyzing CPU %d:\n" ++msgstr "analitzant la CPU %d:\n" ++ ++#: utils/info.c:167 ++#, c-format ++msgid " no or unknown cpufreq driver is active on this CPU\n" ++msgstr "Controlador cpufreq inactiu o desconegut per aquesta CPU\n" ++ ++#: utils/info.c:169 ++#, c-format ++msgid " driver: %s\n" ++msgstr " controlador:%s\n" ++ ++#: utils/info.c:175 ++#, c-format ++msgid " CPUs which run at the same hardware frequency: " ++msgstr " CPUs que necessiten anar a la mateixa freqüència:" ++ ++#: utils/info.c:186 ++#, c-format ++msgid " CPUs which need to have their frequency coordinated by software: " ++msgstr "" ++" CPUs que necessiten les seves freqüències coordinades per programari:" ++ ++#: utils/info.c:197 ++#, c-format ++msgid " maximum transition latency: " ++msgstr " màxima latència de transició: " ++ ++#: utils/info.c:203 ++#, c-format ++msgid " hardware limits: " ++msgstr " límits del maquinari: " ++ ++#: utils/info.c:212 ++#, c-format ++msgid " available frequency steps: " ++msgstr " salts de freqüència disponibles:" ++ ++#: utils/info.c:225 ++#, c-format ++msgid " available cpufreq governors: " ++msgstr " governadors cpufreq disponibles: " ++ ++#: utils/info.c:236 ++#, c-format ++msgid " current policy: frequency should be within " ++msgstr " la directiva de freqüència ha de ser entre " ++ ++#: utils/info.c:238 ++#, c-format ++msgid " and " ++msgstr " i " ++ ++#: utils/info.c:242 ++#, c-format ++msgid "" ++"The governor \"%s\" may decide which speed to use\n" ++" within this range.\n" ++msgstr "" ++"EL governadors \"%s\" decidirà la freqüencial a fer servir\n" ++" dins d'aquest rang.\n" ++ ++#: utils/info.c:249 ++#, c-format ++msgid " current CPU frequency is " ++msgstr " la freqüència actual de la CPU és " ++ ++#: utils/info.c:252 ++#, c-format ++msgid " (asserted by call to hardware)" ++msgstr " (executat per crides al maquinari)" ++ ++#: utils/info.c:260 ++#, c-format ++msgid " cpufreq stats: " ++msgstr " estadístiques del cpufreq: " ++ ++#: utils/info.c:440 utils/set.c:31 ++#, c-format ++msgid "Report errors and bugs to %s, please.\n" ++msgstr "Si us plau, Informi del errors i bugs a %s.\n" ++ ++#: utils/info.c:444 ++#, c-format ++msgid "Usage: cpufreq-info [options]\n" ++msgstr "Forma d'ús: cpufreq-info [options]\n" ++ ++#: utils/info.c:445 utils/set.c:37 ++#, c-format ++msgid "Options:\n" ++msgstr "Opcions:\n" ++ ++#: utils/info.c:446 ++#, c-format ++msgid "" ++" -c CPU, --cpu CPU CPU number which information shall be determined " ++"about\n" ++msgstr "" ++" -c CPU, --cpu CPU número de la CPU de la que s'en vol determinar la " ++"informació\n" ++ ++#: utils/info.c:447 ++#, c-format ++msgid " -e, --debug Prints out debug information\n" ++msgstr " -e, --debug Mostra informació de depuració\n" ++ ++#: utils/info.c:448 ++#, c-format ++msgid "" ++" -f, --freq Get frequency the CPU currently runs at, according\n" ++" to the cpufreq core *\n" ++msgstr "" ++" -f, --freq Freqüència a la que funciona la CPU d'acord amb\n" ++" el nucli del cpufreq *\n" ++ ++#: utils/info.c:450 ++#, c-format ++msgid "" ++" -w, --hwfreq Get frequency the CPU currently runs at, by reading\n" ++" it from hardware (only available to root) *\n" ++msgstr "" ++" -w, --hwfreq Freqüència actual de la CPU llegida per maquinari\n" ++" (només disponible per al root) *\n" ++ ++#: utils/info.c:452 ++#, c-format ++msgid "" ++" -l, --hwlimits Determine the minimum and maximum CPU frequency " ++"allowed *\n" ++msgstr "" ++" -l, --hwlimits Determina les freqüències mínima i màxima permeses de " ++"la UPC *\n" ++ ++#: utils/info.c:453 ++#, c-format ++msgid " -d, --driver Determines the used cpufreq kernel driver *\n" ++msgstr "" ++" -d, --driver Determina el controlador de cpufreq del nucli a " ++"emprar *\n" ++ ++#: utils/info.c:454 ++#, c-format ++msgid " -p, --policy Gets the currently used cpufreq policy *\n" ++msgstr " -p, --policy Retorna la directiva del cpufreq actual *\n" ++ ++#: utils/info.c:455 ++#, c-format ++msgid " -g, --governors Determines available cpufreq governors *\n" ++msgstr "" ++" -g, --governors Determina els governadors de cpufreq disponibles *\n" ++ ++#: utils/info.c:456 ++#, c-format ++msgid "" ++" -r, --related-cpus Determines which CPUs run at the same hardware " ++"frequency *\n" ++msgstr "" ++" -r, --related-cpus Determina quines CPU0s funcionen a la mateixa " ++"freqüencial per maquinari *\n" ++ ++#: utils/info.c:457 ++#, c-format ++msgid "" ++" -a, --affected-cpus Determines which CPUs need to have their frequency\n" ++" coordinated by software *\n" ++msgstr "" ++" -a, --affected-cpus Determina quines CPUs necessiten coordinar la seva\n" ++" freqüencial per programari *\n" ++ ++#: utils/info.c:459 ++#, c-format ++msgid " -s, --stats Shows cpufreq statistics if available\n" ++msgstr "" ++" -s, --stats Mostra els estadístiques disponibles del cpufreq\n" ++ ++#: utils/info.c:460 ++#, c-format ++msgid "" ++" -y, --latency Determines the maximum latency on CPU frequency " ++"changes *\n" ++msgstr "" ++" -y, --latency Determina la latència màxima en els canvis de " ++"freqüència de la CPU *\n" ++ ++#: utils/info.c:461 ++#, c-format ++msgid "" ++" -o, --proc Prints out information like provided by the /proc/" ++"cpufreq\n" ++" interface in 2.4. and early 2.6. kernels\n" ++msgstr "" ++" -o, --proc Mostra la informació proveïda per la interfície /proc/" ++"cpufreq\n" ++" dels kernel 2.4. i els primerencs del 2.6\n" ++ ++#: utils/info.c:463 ++#, c-format ++msgid "" ++" -m, --human human-readable output for the -f, -w, -s and -y " ++"parameters\n" ++msgstr "" ++" -m, --human sortida en format llegible per als humans per als " ++"paràmetres -f, -w, -s i -y\n" ++ ++#: utils/info.c:464 ++#, c-format ++msgid " -h, --help Prints out this screen\n" ++msgstr " -h, --help Mostra aquesta informació\n" ++ ++#: utils/info.c:467 ++#, c-format ++msgid "" ++"If no argument or only the -c, --cpu parameter is given, debug output about\n" ++"cpufreq is printed which is useful e.g. for reporting bugs.\n" ++msgstr "" ++"Si no s'especifica argument o només s'especifica el paràmetre -c, --cpu, es " ++"mostrarà\n" ++"la informació de depuració del cpufreq útil per exemple, per informar " ++"d'errors.\n" ++ ++#: utils/info.c:469 ++#, c-format ++msgid "" ++"For the arguments marked with *, omitting the -c or --cpu argument is\n" ++"equivalent to setting it to zero\n" ++msgstr "" ++"Per als arguments marcats amb un *, ometre l'argument -c o --cpu és\n" ++"equivalent a establir-lo a zero\n" ++ ++#: utils/info.c:563 ++#, c-format ++msgid "" ++"The argument passed to this tool can't be combined with passing a --cpu " ++"argument\n" ++msgstr "" ++"Aquesta eina no pot combinar el paràmetre subministrat amb el paràmetre --" ++"cpu.\n" ++ ++#: utils/info.c:576 ++#, c-format ++msgid "" ++"You can't specify more than one --cpu parameter and/or\n" ++"more than one output-specific argument\n" ++msgstr "" ++"No es pot especificar més d'un paràmetre --cpu i/o més d'un\n" ++"argument de sortida específic\n" ++ ++#: utils/info.c:582 utils/set.c:95 ++#, c-format ++msgid "invalid or unknown argument\n" ++msgstr "paràmetre invàlid o desconegut\n" ++ ++#: utils/set.c:36 ++#, c-format ++msgid "Usage: cpufreq-set [options]\n" ++msgstr "Forma d'ús: cpufreq-set [OPCIÓ]\n" ++ ++#: utils/set.c:38 ++#, c-format ++msgid "" ++" -c CPU, --cpu CPU number of CPU where cpufreq settings shall be " ++"modified\n" ++msgstr "" ++" -c CPU, --cpu CPU número de la CPU de la que s'en vol modificar la " ++"configuració\n" ++ ++#: utils/set.c:39 ++#, c-format ++msgid "" ++" -d FREQ, --min FREQ new minimum CPU frequency the governor may " ++"select\n" ++msgstr "" ++" -d FREQ, --min FREQ nova freqüència mínima de la CPU que el " ++"governador pot seleccionar\n" ++ ++#: utils/set.c:40 ++#, c-format ++msgid "" ++" -u FREQ, --max FREQ new maximum CPU frequency the governor may " ++"select\n" ++msgstr "" ++" -u FREQ, --max FREQ nova freqüència màixima de la CPU que el " ++"governador pot seleccionar\n" ++ ++#: utils/set.c:41 ++#, c-format ++msgid " -g GOV, --governor GOV new cpufreq governor\n" ++msgstr " -g GOV, --governor GOV Establir nou governador del cpufreq\n" ++ ++#: utils/set.c:42 ++#, c-format ++msgid "" ++" -f FREQ, --freq FREQ specific frequency to be set. Requires userspace\n" ++" governor to be available and loaded\n" ++msgstr "" ++" -f FREQ, --freq FREQ especifica la freqüencia a establir. Requereix el " ++"governador\n" ++" userspace disponible i carregat\n" ++ ++#: utils/set.c:44 ++#, c-format ++msgid " -r, --related Switches all hardware-related CPUs\n" ++msgstr "" ++" -r, --related Canvia el maquinari de les CPU relacionades\n" ++ ++#: utils/set.c:45 ++#, c-format ++msgid " -h, --help Prints out this screen\n" ++msgstr " -h, --help Mostra aquesta informació\n" ++ ++#: utils/set.c:47 ++#, c-format ++msgid "" ++"Notes:\n" ++"1. Omitting the -c or --cpu argument is equivalent to setting it to zero\n" ++"2. The -f FREQ, --freq FREQ parameter cannot be combined with any other " ++"parameter\n" ++" except the -c CPU, --cpu CPU parameter\n" ++"3. FREQuencies can be passed in Hz, kHz (default), MHz, GHz, or THz\n" ++" by postfixing the value with the wanted unit name, without any space\n" ++" (FREQuency in kHz =^ Hz * 0.001 =^ MHz * 1000 =^ GHz * 1000000).\n" ++msgstr "" ++"Notes:\n" ++"1. Ometre l'argument -c or --cpu és equivalent a establir-lo a zero\n" ++"2. El paràmetre -f FREQ, --freq FREQ no pot ser combinat amb cap d'altre\n" ++" excepte el paràmetre -c CPU, --cpu CPU\n" ++"3. Les FREQüències s'han de passar en Hz, kHz (defecte), MHz, GHz, or THz\n" ++" postfixant al valor desitjat en nom de la unitat sense cap espai\n" ++" (FREQuency in kHz =^ Hz * 0.001 =^ MHz * 1000 =^ GHz * 1000000).\n" ++ ++#: utils/set.c:69 ++#, c-format ++msgid "" ++"Error setting new values. Common errors:\n" ++"- Do you have proper administration rights? (super-user?)\n" ++"- Is the governor you requested available and modprobed?\n" ++"- Trying to set an invalid policy?\n" ++"- Trying to set a specific frequency, but userspace governor is not " ++"available,\n" ++" for example because of hardware which cannot be set to a specific " ++"frequency\n" ++" or because the userspace governor isn't loaded?\n" ++msgstr "" ++"Errors comuns al establir nous valors:\n" ++"- Disposes dels permisos administratius adequats? (super-user?)\n" ++"- Està el governador demanat disponible i provat al mod?\n" ++"- S'està intentant establir una directiva invàlida?\n" ++"- S'està intentant establir una freqüencia específica però el governador " ++"userspace no esta disponible,\n" ++" per exemple perquè el maquinari no pot ser establert en una freqüència " ++"específica \n" ++" o perquè el governador userspace no està carregat?\n" ++ ++#: utils/set.c:183 ++#, c-format ++msgid "wrong, unknown or unhandled CPU?\n" ++msgstr "CPU desconeguda, equivocada, o no manipulable?\n" ++ ++#: utils/set.c:336 ++#, c-format ++msgid "" ++"the -f/--freq parameter cannot be combined with -d/--min, -u/--max or\n" ++"-g/--governor parameters\n" ++msgstr "" ++"el paràmetre -f/--freq no és pot combinar amb els paràmetres -d/--,min\n" ++", -u/--max o -g/--governor\n" ++ ++#: utils/set.c:342 ++#, c-format ++msgid "" ++"At least one parameter out of -f/--freq, -d/--min, -u/--max, and\n" ++"-g/--governor must be passed\n" ++msgstr "" ++"S'ha de facilitar com a mínim un dels següents paràmetres f/--freq,\n" ++" -d/--min, -u/--max, o g/--governor\n" +Index: cpufrequtils/po/cs.po +=================================================================== +--- cpufrequtils.orig/po/cs.po 2012-05-06 13:29:57.000000000 +0900 ++++ cpufrequtils/po/cs.po 2012-05-06 13:31:32.400356869 +0900 +@@ -9,10 +9,11 @@ + msgstr "" + "Project-Id-Version: cs\n" + "Report-Msgid-Bugs-To: \n" +-"POT-Creation-Date: 2008-07-17 11:29+0200\n" ++"POT-Creation-Date: 2011-03-09 14:53+0100\n" + "PO-Revision-Date: 2008-06-11 16:26+0200\n" + "Last-Translator: Karel Volný \n" + "Language-Team: Czech \n" ++"Language: cs\n" + "MIME-Version: 1.0\n" + "Content-Type: text/plain; charset=UTF-8\n" + "Content-Transfer-Encoding: 8bit\n" +Index: cpufrequtils/po/de.po +=================================================================== +--- cpufrequtils.orig/po/de.po 2012-05-06 13:29:57.000000000 +0900 ++++ cpufrequtils/po/de.po 2012-05-06 13:32:00.659553761 +0900 +@@ -7,10 +7,11 @@ + msgstr "" + "Project-Id-Version: cpufrequtils 006\n" + "Report-Msgid-Bugs-To: \n" +-"POT-Creation-Date: 2009-08-09 11:53+0200\n" ++"POT-Creation-Date: 2011-03-09 14:53+0100\n" + "PO-Revision-Date: 2009-08-08 17:18+0100\n" + "Last-Translator: \n" + "Language-Team: NONE\n" ++"Language: \n" + "MIME-Version: 1.0\n" + "Content-Type: text/plain; charset=ISO-8859-1\n" + "Content-Transfer-Encoding: 8bit\n" +Index: cpufrequtils/po/fr.po +=================================================================== +--- cpufrequtils.orig/po/fr.po 2012-05-06 13:29:57.000000000 +0900 ++++ cpufrequtils/po/fr.po 2012-05-06 13:32:35.194574779 +0900 +@@ -8,10 +8,11 @@ + msgstr "" + "Project-Id-Version: cpufrequtils 0.1-pre2\n" + "Report-Msgid-Bugs-To: \n" +-"POT-Creation-Date: 2008-07-17 11:29+0200\n" ++"POT-Creation-Date: 2011-03-09 14:53+0100\n" + "PO-Revision-Date: 2004-11-17 15:53+1000\n" + "Last-Translator: Bruno Ducrot \n" + "Language-Team: NONE\n" ++"Language: \n" + "MIME-Version: 1.0\n" + "Content-Type: text/plain; charset=ISO-8859-1\n" + "Content-Transfer-Encoding: 8bit\n" +Index: cpufrequtils/po/it.po +=================================================================== +--- cpufrequtils.orig/po/it.po 2012-05-06 13:29:57.000000000 +0900 ++++ cpufrequtils/po/it.po 2012-05-06 13:33:01.661825791 +0900 +@@ -8,10 +8,11 @@ + msgstr "" + "Project-Id-Version: cpufrequtils 0.3\n" + "Report-Msgid-Bugs-To: \n" +-"POT-Creation-Date: 2009-08-09 11:53+0200\n" ++"POT-Creation-Date: 2011-03-09 14:53+0100\n" + "PO-Revision-Date: 2009-08-15 12:00+0900\n" + "Last-Translator: Mattia Dongili \n" + "Language-Team: NONE\n" ++"Language: \n" + "MIME-Version: 1.0\n" + "Content-Type: text/plain; charset=UTF-8\n" + "Content-Transfer-Encoding: 8bit\n" +Index: cpufrequtils/po/pt.po +=================================================================== +--- cpufrequtils.orig/po/pt.po 2012-05-06 13:29:57.000000000 +0900 ++++ cpufrequtils/po/pt.po 2012-05-06 13:33:24.845170668 +0900 +@@ -8,7 +8,7 @@ + msgstr "" + "Project-Id-Version: cpufrequtils 004\n" + "Report-Msgid-Bugs-To: \n" +-"POT-Creation-Date: 2009-08-09 11:53+0200\n" ++"POT-Creation-Date: 2011-03-09 14:53+0100\n" + "PO-Revision-Date: 2008-06-14 22:16-0400\n" + "Last-Translator: Claudio Eduardo \n" + "MIME-Version: 1.0\n" diff -Nru cpufrequtils-007/debian/patches/0005-cpufrequtils-sysfs-increase-MAX_LINE_LEN.patch cpufrequtils-008/debian/patches/0005-cpufrequtils-sysfs-increase-MAX_LINE_LEN.patch --- cpufrequtils-007/debian/patches/0005-cpufrequtils-sysfs-increase-MAX_LINE_LEN.patch 1970-01-01 00:00:00.000000000 +0000 +++ cpufrequtils-008/debian/patches/0005-cpufrequtils-sysfs-increase-MAX_LINE_LEN.patch 2012-05-06 06:43:59.000000000 +0000 @@ -0,0 +1,29 @@ +From 9f2efa7bc6969c10562ac2c720d50ff77083e5c2 Mon Sep 17 00:00:00 2001 +From: Roman Vasiyarov +Date: Mon, 25 Apr 2011 21:34:23 +0400 +Subject: [PATCH 5/8] cpufrequtils sysfs: increase MAX_LINE_LEN + +larger sysfs data (>255 bytes) was truncated and thus used improperly + +Signed-off-by: Roman Vasiyarov +Signed-off-by: Dominik Brodowski +--- + lib/sysfs.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/sysfs.c b/lib/sysfs.c +index 4e0edab..24dd563 100644 +--- a/lib/sysfs.c ++++ b/lib/sysfs.c +@@ -18,7 +18,7 @@ + #include "cpufreq.h" + + #define PATH_TO_CPU "/sys/devices/system/cpu/" +-#define MAX_LINE_LEN 255 ++#define MAX_LINE_LEN 4096 + #define SYSFS_PATH_MAX 255 + + /* helper function to read file from /sys into given buffer */ +-- +1.7.10 + diff -Nru cpufrequtils-007/debian/patches/0006-aperf-fix-compilation-on-x86-32-with-fPIC.patch cpufrequtils-008/debian/patches/0006-aperf-fix-compilation-on-x86-32-with-fPIC.patch --- cpufrequtils-007/debian/patches/0006-aperf-fix-compilation-on-x86-32-with-fPIC.patch 1970-01-01 00:00:00.000000000 +0000 +++ cpufrequtils-008/debian/patches/0006-aperf-fix-compilation-on-x86-32-with-fPIC.patch 2012-05-06 06:43:59.000000000 +0000 @@ -0,0 +1,46 @@ +From 9085ce6f615d9d2e0182d3ce029b882835bd0a6b Mon Sep 17 00:00:00 2001 +From: Matt Turner +Date: Tue, 26 Jul 2011 19:28:31 -0400 +Subject: [PATCH 6/8] aperf: fix compilation on x86-32 with -fPIC + +ebx is used to store the GOT pointer when compiled with -fPIC, so it's +not usable by inline assembly. + +https://bugs.gentoo.org/375967 + +Signed-off-by: Matt Turner +Signed-off-by: Dominik Brodowski +--- + utils/cpuid.h | 14 +++++++++++++- + 1 file changed, 13 insertions(+), 1 deletion(-) + +diff --git a/utils/cpuid.h b/utils/cpuid.h +index 2bac69a..53da789 100644 +--- a/utils/cpuid.h ++++ b/utils/cpuid.h +@@ -5,9 +5,21 @@ static inline void __cpuid(unsigned int *eax, unsigned int *ebx, + unsigned int *ecx, unsigned int *edx) + { + /* ecx is often an input as well as an output. */ +- asm volatile("cpuid" ++ asm volatile( ++#if defined(__i386__) && defined(__PIC__) ++ "push %%ebx\n" ++ "cpuid\n" ++ "movl %%ebx, %1\n" ++ "pop %%ebx\n" ++#else ++ "cpuid\n" ++#endif + : "=a" (*eax), ++#if defined(__i386__) && defined(__PIC__) ++ "=r" (*ebx), ++#else + "=b" (*ebx), ++#endif + "=c" (*ecx), + "=d" (*edx) + : "0" (*eax), "2" (*ecx)); +-- +1.7.10 + diff -Nru cpufrequtils-007/debian/patches/0007-po-add-missing-word-in-DE.patch cpufrequtils-008/debian/patches/0007-po-add-missing-word-in-DE.patch --- cpufrequtils-007/debian/patches/0007-po-add-missing-word-in-DE.patch 1970-01-01 00:00:00.000000000 +0000 +++ cpufrequtils-008/debian/patches/0007-po-add-missing-word-in-DE.patch 2012-05-06 06:43:59.000000000 +0000 @@ -0,0 +1,28 @@ +From 26ce99ab92ae9f1f367a58b7858a96f4e1e6814c Mon Sep 17 00:00:00 2001 +From: Dominik Brodowski +Date: Fri, 29 Jul 2011 19:40:46 +0200 +Subject: [PATCH 7/8] po: add missing word in DE + +Reported-by: Michael Basse +Reported-by: +Signed-off-by: Dominik Brodowski +--- + po/de.po | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/po/de.po b/po/de.po +index 1da1f2b..ee793f5 100644 +--- a/po/de.po ++++ b/po/de.po +@@ -304,7 +304,7 @@ msgid "" + "modified\n" + msgstr "" + " -c CPU, --cpu CPU Nummer der CPU, deren Taktfrequenz-Einstellung\n" +-" werden soll\n" ++" verndert werden soll\n" + + #: utils/set.c:39 + #, c-format +-- +1.7.10 + diff -Nru cpufrequtils-007/debian/patches/0008-cpufrequtils-make-NLS-optional.patch cpufrequtils-008/debian/patches/0008-cpufrequtils-make-NLS-optional.patch --- cpufrequtils-007/debian/patches/0008-cpufrequtils-make-NLS-optional.patch 1970-01-01 00:00:00.000000000 +0000 +++ cpufrequtils-008/debian/patches/0008-cpufrequtils-make-NLS-optional.patch 2012-05-06 06:43:59.000000000 +0000 @@ -0,0 +1,88 @@ +From a2f0c39d5f21596bb9f5223e895c0ff210b265d0 Mon Sep 17 00:00:00 2001 +From: Sergey Dryabzhinsky +Date: Sat, 13 Aug 2011 23:02:20 -0400 +Subject: [PATCH 8/8] cpufrequtils: make NLS optional + +https://bugs.gentoo.org/205576 + +Signed-off-by: Matt Turner +Signed-off-by: Dominik Brodowski +--- + Makefile | 1 + + utils/info.c | 10 +++++++++- + utils/set.c | 10 +++++++++- + 3 files changed, 19 insertions(+), 2 deletions(-) + +Index: cpufrequtils/Makefile +=================================================================== +--- cpufrequtils.orig/Makefile 2012-05-06 13:30:41.865796974 +0900 ++++ cpufrequtils/Makefile 2012-05-06 13:35:13.994099919 +0900 +@@ -140,6 +140,7 @@ + ifeq ($(strip $(NLS)),true) + INSTALL_NLS += install-gmo + COMPILE_NLS += update-gmo ++ CPPFLAGS += -DNLS + endif + + ifeq ($(strip $(CPUFRQ_BENCH)),true) +Index: cpufrequtils/utils/info.c +=================================================================== +--- cpufrequtils.orig/utils/info.c 2012-05-06 11:56:20.287842838 +0900 ++++ cpufrequtils/utils/info.c 2012-05-06 13:35:13.994099919 +0900 +@@ -10,7 +10,6 @@ + #include + #include + #include +-#include + #include + + #include +@@ -18,9 +17,18 @@ + #include "cpufreq.h" + + ++#ifdef NLS ++#include + #define _(String) gettext (String) + #define gettext_noop(String) String + #define N_(String) gettext_noop (String) ++#else ++#define gettext_noop(String) String ++#define _(String) gettext_noop (String) ++#define gettext(String) gettext_noop (String) ++#define N_(String) gettext_noop (String) ++#define textdomain(String) ++#endif + + #define LINE_LEN 10 + +Index: cpufrequtils/utils/set.c +=================================================================== +--- cpufrequtils.orig/utils/set.c 2012-05-06 11:56:20.287842838 +0900 ++++ cpufrequtils/utils/set.c 2012-05-06 13:35:13.994099919 +0900 +@@ -12,16 +12,24 @@ + #include + #include + #include +-#include + #include + + #include + + #include "cpufreq.h" + ++#ifdef NLS ++#include + #define _(String) gettext(String) + #define gettext_noop(String) String + #define N_(String) gettext_noop(String) ++#else ++#define gettext_noop(String) String ++#define _(String) gettext_noop (String) ++#define gettext(String) gettext_noop (String) ++#define N_(String) gettext_noop (String) ++#define textdomain(String) ++#endif + + #define NORM_FREQ_LEN 32 + diff -Nru cpufrequtils-007/debian/patches/01_add_cpufreq-aperf_manpage.patch cpufrequtils-008/debian/patches/01_add_cpufreq-aperf_manpage.patch --- cpufrequtils-007/debian/patches/01_add_cpufreq-aperf_manpage.patch 2011-08-03 11:50:31.000000000 +0000 +++ cpufrequtils-008/debian/patches/01_add_cpufreq-aperf_manpage.patch 2012-05-06 06:43:59.000000000 +0000 @@ -4,7 +4,7 @@ Index: cpufrequtils/man/cpufreq-aperf.1 =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ cpufrequtils/man/cpufreq-aperf.1 2010-05-15 20:01:16.302324474 +0900 ++++ cpufrequtils/man/cpufreq-aperf.1 2012-05-06 13:29:37.943624564 +0900 @@ -0,0 +1,44 @@ +.TH "cpufreq-aperf" "1" "0.1" "Mattia Dongili" "" +.SH "NAME" @@ -52,8 +52,8 @@ +cpufreq\-set(1), cpufreq\-info(1) Index: cpufrequtils/man/cpufreq-info.1 =================================================================== ---- cpufrequtils.orig/man/cpufreq-info.1 2009-11-21 21:40:37.740692444 +0900 -+++ cpufrequtils/man/cpufreq-info.1 2010-05-15 20:01:16.306355093 +0900 +--- cpufrequtils.orig/man/cpufreq-info.1 2012-05-06 11:56:21.215806103 +0900 ++++ cpufrequtils/man/cpufreq-info.1 2012-05-06 13:29:37.943624564 +0900 @@ -73,4 +73,4 @@ .fi .SH "SEE ALSO" @@ -62,8 +62,8 @@ +cpufreq\-set(1), cpufreq-aperf(1) Index: cpufrequtils/man/cpufreq-set.1 =================================================================== ---- cpufrequtils.orig/man/cpufreq-set.1 2009-11-21 21:40:37.760697639 +0900 -+++ cpufrequtils/man/cpufreq-set.1 2010-05-15 20:01:16.306355093 +0900 +--- cpufrequtils.orig/man/cpufreq-set.1 2012-05-06 11:56:21.215806103 +0900 ++++ cpufrequtils/man/cpufreq-set.1 2012-05-06 13:29:37.943624564 +0900 @@ -53,4 +53,4 @@ .fi .SH "SEE ALSO" @@ -72,9 +72,9 @@ +cpufreq\-info(1), cpufreq-aperf(1) Index: cpufrequtils/Makefile =================================================================== ---- cpufrequtils.orig/Makefile 2010-05-15 12:53:37.746352290 +0900 -+++ cpufrequtils/Makefile 2010-05-15 20:01:16.318342047 +0900 -@@ -245,6 +245,7 @@ +--- cpufrequtils.orig/Makefile 2012-05-06 11:56:21.215806103 +0900 ++++ cpufrequtils/Makefile 2012-05-06 13:29:37.943624564 +0900 +@@ -248,6 +248,7 @@ install-man: $(INSTALL_DATA) -D man/cpufreq-set.1 $(DESTDIR)${mandir}/man1/cpufreq-set.1 $(INSTALL_DATA) -D man/cpufreq-info.1 $(DESTDIR)${mandir}/man1/cpufreq-info.1 @@ -82,7 +82,7 @@ install-gmo: $(INSTALL) -d $(DESTDIR)${localedir} -@@ -267,6 +268,7 @@ +@@ -270,6 +271,7 @@ - rm -f $(DESTDIR)${bindir}/cpufreq-aperf - rm -f $(DESTDIR)${mandir}/man1/cpufreq-set.1 - rm -f $(DESTDIR)${mandir}/man1/cpufreq-info.1 diff -Nru cpufrequtils-007/debian/patches/10_build_static_lib.patch cpufrequtils-008/debian/patches/10_build_static_lib.patch --- cpufrequtils-007/debian/patches/10_build_static_lib.patch 1970-01-01 00:00:00.000000000 +0000 +++ cpufrequtils-008/debian/patches/10_build_static_lib.patch 2012-05-06 06:43:59.000000000 +0000 @@ -0,0 +1,26 @@ +Build the static library archive even without libtool + +Index: cpufrequtils/Makefile +=================================================================== +--- cpufrequtils.orig/Makefile 2012-05-06 14:54:58.573929641 +0900 ++++ cpufrequtils/Makefile 2012-05-06 14:55:30.049333295 +0900 +@@ -193,7 +193,10 @@ + @ln -sf $@ libcpufreq.so + @ln -sf $@ libcpufreq.so.$(LIB_MIN) + +-libcpufreq: libcpufreq.so.$(LIB_MAJ) ++libcpufreq.a: $(LIB_OBJS) ++ $(QUIET) $(AR) rcs $@ $(LIB_OBJS) ++ ++libcpufreq: libcpufreq.so.$(LIB_MAJ) libcpufreq.a + + cpufreq-%: libcpufreq.so.$(LIB_MAJ) $(UTIL_SRC) + $(QUIET) $(CC) $(CPPFLAGS) $(CFLAGS) -I. -I./lib/ -c -o utils/$@.o utils/$*.c +@@ -237,6 +240,7 @@ + install-lib: + $(INSTALL) -d $(DESTDIR)${libdir} + $(CP) libcpufreq.so* $(DESTDIR)${libdir}/ ++ $(CP) libcpufreq.a $(DESTDIR)${libdir}/ + $(INSTALL) -d $(DESTDIR)${includedir} + $(INSTALL_DATA) lib/cpufreq.h $(DESTDIR)${includedir}/cpufreq.h + diff -Nru cpufrequtils-007/debian/patches/11_dont_touch_po_files.patch cpufrequtils-008/debian/patches/11_dont_touch_po_files.patch --- cpufrequtils-007/debian/patches/11_dont_touch_po_files.patch 1970-01-01 00:00:00.000000000 +0000 +++ cpufrequtils-008/debian/patches/11_dont_touch_po_files.patch 2012-05-06 06:43:59.000000000 +0000 @@ -0,0 +1,31 @@ +Do not update po files upon building and installing binaries. +Use a separate target instead. + +Index: cpufrequtils/Makefile +=================================================================== +--- cpufrequtils.orig/Makefile 2012-05-06 14:55:18.445553259 +0900 ++++ cpufrequtils/Makefile 2012-05-06 14:55:26.589398186 +0900 +@@ -211,9 +211,9 @@ + test -f $(PACKAGE).po && \ + mv -f $(PACKAGE).po po/$(PACKAGE).pot + +-update-gmo: po/$(PACKAGE).pot ++update-po: po/$(PACKAGE).pot + @for HLANG in $(LANGUAGES); do \ +- echo -n "Translating $$HLANG "; \ ++ echo -n "Updating $$HLANG "; \ + if msgmerge po/$$HLANG.po po/$(PACKAGE).pot -o \ + po/$$HLANG.new.po; then \ + mv -f po/$$HLANG.new.po po/$$HLANG.po; \ +@@ -221,6 +221,11 @@ + echo "msgmerge for $$HLANG failed!"; \ + rm -f po/$$HLANG.new.po; \ + fi; \ ++ done; ++ ++update-gmo: po/$(PACKAGE).pot ++ @for HLANG in $(LANGUAGES); do \ ++ echo -n "Translating $$HLANG "; \ + msgfmt --statistics -o po/$$HLANG.gmo po/$$HLANG.po; \ + done; + diff -Nru cpufrequtils-007/debian/patches/series cpufrequtils-008/debian/patches/series --- cpufrequtils-007/debian/patches/series 2011-08-03 11:50:31.000000000 +0000 +++ cpufrequtils-008/debian/patches/series 2012-05-06 06:43:59.000000000 +0000 @@ -1 +1,11 @@ 01_add_cpufreq-aperf_manpage.patch +0001-Only-x86-has-cpuid-instruction.patch +#0002-cpufrequtils-Remove-proc-compile-option-and-interfac.patch +0003-cpufrequtils-aperf-Fix-MSR-read-on-32-bit.patch +0004-i18n-Catalan.patch +0005-cpufrequtils-sysfs-increase-MAX_LINE_LEN.patch +0006-aperf-fix-compilation-on-x86-32-with-fPIC.patch +0007-po-add-missing-word-in-DE.patch +0008-cpufrequtils-make-NLS-optional.patch +10_build_static_lib.patch +11_dont_touch_po_files.patch diff -Nru cpufrequtils-007/debian/rules cpufrequtils-008/debian/rules --- cpufrequtils-007/debian/rules 2011-08-03 11:50:31.000000000 +0000 +++ cpufrequtils-008/debian/rules 2012-05-06 06:43:59.000000000 +0000 @@ -40,7 +40,9 @@ version=0.0.0 major=0 -build: build-stamp +build: build-arch build-indep +build-arch: build-stamp +build-indep: build-stamp build-stamp: dh_testdir diff -Nru cpufrequtils-007/utils/aperf.c cpufrequtils-008/utils/aperf.c --- cpufrequtils-007/utils/aperf.c 2010-01-16 13:47:44.000000000 +0000 +++ cpufrequtils-008/utils/aperf.c 2012-05-05 23:17:18.000000000 +0000 @@ -31,8 +31,6 @@ * * Possible ToDos/Enhancments: * - * - Use cpuid assmbler command to retrieve cpuid - * -No dependency to the cpuid driver * - Refresh the screen when mulitple cpus are poked and display results * on one screen * -This would introduce a lot more complexity, not sure whether it's @@ -48,18 +46,18 @@ #include #include #include +#include #include #include #include #include #include "cpufreq.h" +#include "cpuid.h" #define MSR_IA32_APERF 0x000000E8 #define MSR_IA32_MPERF 0x000000E7 -#define LINE_LEN 10 - struct avg_perf_cpu_info { unsigned long max_freq; @@ -68,60 +66,13 @@ uint32_t is_valid:1; }; -static unsigned int count_cpus(void) +static int cpu_has_effective_freq() { - FILE *fp; - char value[LINE_LEN]; - unsigned int ret = 0; - unsigned int cpunr = 0; - - fp = fopen("/proc/stat", "r"); - if(!fp) { - printf("Couldn't count the number of CPUs (%s: %s), " - "assuming 1\n", "/proc/stat", strerror(errno)); - return 1; - } + /* largest base level */ + if (cpuid_eax(0) < 6) + return 0; - while (!feof(fp)) { - if (!fgets(value, LINE_LEN, fp)) - continue; - value[LINE_LEN - 1] = '\0'; - if (strlen(value) < (LINE_LEN - 2)) - continue; - if (strstr(value, "cpu ")) - continue; - if (sscanf(value, "cpu%d ", &cpunr) != 1) - continue; - if (cpunr > ret) - ret = cpunr; - } - fclose(fp); - - /* cpu count starts from 0, on error return 1 (UP) */ - return (ret+1); -} - -static int has_mperf_aperf_support(int cpu) -{ - int fd; - char msr_file_name[64]; - uint32_t words[4]; - int support; - - sprintf(msr_file_name, "/dev/cpu/%d/cpuid", cpu); - fd = open(msr_file_name, O_RDONLY); - if (fd < 0) - return -1; - if (lseek(fd, 6, SEEK_CUR) == -1) - goto err; - if (read(fd, words, 16) != 16) - goto err; - support = words[2] & 0x1; - close(fd); - return support; - err: - close(fd); - return -1; + return cpuid_ecx(6) & 0x1; } /* @@ -166,7 +117,7 @@ retval = read_msr(cpu, MSR_IA32_APERF, (unsigned long long*)aperf); if (retval < 0) return retval; - + retval = read_msr(cpu, MSR_IA32_MPERF, (unsigned long long*)mperf); if (retval < 0) return retval; @@ -250,50 +201,32 @@ int ret; cpu_info->is_valid = 0; - - ret = has_mperf_aperf_support(cpu); - if (ret < 0) { - fprintf(stderr, "Could not read cpuid, is the cpuid " - "driver loaded or compiled into the kernel?\n"); - return ret; - } else if (ret == 0) { - fprintf(stderr, "CPU(s) do not support mperf/aperf MSR " - "registers\n"); - return EXIT_FAILURE; - } - - if (cpufreq_get_hardware_limits(cpu, &min, &max)) { - fprintf(stderr, "Could not get max frequency (P0), a " - "cpufreq driver must be loaded?\n"); - return EXIT_FAILURE; - } else - cpu_info->max_freq = max; + + if (cpufreq_get_hardware_limits(cpu, &min, &max)) + return -EINVAL; + + cpu_info->max_freq = max; ret = get_aperf_mperf(cpu, &aperf, &mperf); - if (ret < 0) { - fprintf(stderr, "Could not read MSRs, is the msr driver loaded" - " or compiled into the kernel?\n"); - return EXIT_FAILURE; - } else { - cpu_info->saved_aperf = aperf; - cpu_info->saved_mperf = mperf; - } + if (ret < 0) + return -EINVAL; + + cpu_info->saved_aperf = aperf; + cpu_info->saved_mperf = mperf; cpu_info->is_valid = 1; + return 0; } -static void print_cpu_stats(unsigned int cpu, unsigned long average, - struct timeval c0_time, struct timeval cx_time, - unsigned int c0_percent) +static void print_cpu_stats(unsigned long average, struct timeval c0_time, + struct timeval cx_time, unsigned int c0_percent) { - printf("%.3u\t", cpu); printf("%.7lu\t\t\t", average); printf("%.2lu sec %.3lu ms\t", c0_time.tv_sec, c0_time.tv_usec); printf("%.2lu sec %.3lu ms\t", cx_time.tv_sec, cx_time.tv_usec); printf("%.2u", c0_percent); } - static int do_measuring_on_cpu(int sleep_time, int once, int cpu) { int ret; @@ -318,13 +251,18 @@ if (!cpu_info.is_valid) continue; - + + printf("%.3u\t", cpu); + ret = get_aperf_mperf(cpu, ¤t_aperf, ¤t_mperf); - if (ret < 0) - return EXIT_FAILURE; + if (ret < 0) { + printf("[offline]\n"); + continue; + } + mperf_diff = current_mperf - cpu_info.saved_mperf; aperf_diff = current_aperf - cpu_info.saved_aperf; - + get_C_state_time(diff_time, mperf_diff, cpu_info.max_freq, &C0_time, &CX_time, @@ -333,8 +271,7 @@ aperf_diff, mperf_diff); cpu_info.saved_mperf = current_mperf; cpu_info.saved_aperf = current_aperf; - print_cpu_stats(cpu, average, C0_time, CX_time, - c0_percent); + print_cpu_stats(average, C0_time, CX_time, c0_percent); if (once) { printf("\n"); @@ -356,16 +293,16 @@ uint64_t current_aperf, current_mperf, mperf_diff, aperf_diff; struct avg_perf_cpu_info *cpu_list; - cpus = count_cpus(); + cpus = sysconf(_SC_NPROCESSORS_CONF); cpu_list = (struct avg_perf_cpu_info*) malloc(cpus * sizeof (struct avg_perf_cpu_info)); - + for (cpu = 0; cpu < cpus; cpu++) { ret = get_measure_start_info(cpu, &cpu_list[cpu]); - if (ret) - return ret; - } + if (ret) + continue; + } while(1) { gettimeofday(&start_time, NULL); @@ -380,13 +317,17 @@ sizeof(struct timeval)); for (cpu = 0; cpu < cpus; cpu++) { - if (!cpu_list[cpu].is_valid) - continue; + + printf("%.3u\t", cpu); ret = get_aperf_mperf(cpu, ¤t_aperf, ¤t_mperf); - if (ret < 0) - return EXIT_FAILURE; + + if ((ret < 0) || !cpu_list[cpu].is_valid) { + printf("[offline]\n"); + continue; + } + mperf_diff = current_mperf - cpu_list[cpu].saved_mperf; aperf_diff = current_aperf - cpu_list[cpu].saved_aperf; @@ -398,8 +339,7 @@ aperf_diff, mperf_diff); cpu_list[cpu].saved_mperf = current_mperf; cpu_list[cpu].saved_aperf = current_aperf; - print_cpu_stats(cpu, average, C0_time, CX_time, - c0_percent); + print_cpu_stats(average, C0_time, CX_time, c0_percent); printf("\n"); } if (once) @@ -437,6 +377,8 @@ { int c, ret, cpu = -1; int sleep_time = 1, once = 0; + const char *msr_path = "/dev/cpu/0/msr"; + while ( (c = getopt_long(argc,argv,"c:ohi:",long_options, NULL)) != -1 ) { switch ( c ) { @@ -454,6 +396,23 @@ break; } } + + if (getuid() != 0) { + fprintf(stderr, "You must be root\n"); + return EXIT_FAILURE; + } + + if (!cpu_has_effective_freq()) { + fprintf(stderr, "CPU doesn't support APERF/MPERF\n"); + return EXIT_FAILURE; + } + + ret = access(msr_path, R_OK); + if (ret < 0) { + fprintf(stderr, "Error reading %s, load/enable msr.ko\n", msr_path); + goto out; + } + printf("CPU\tAverage freq(KHz)\tTime in C0\tTime in" " Cx\tC0 percentage\n"); @@ -461,6 +420,8 @@ ret = do_measure_all_cpus(sleep_time, once); else ret = do_measuring_on_cpu(sleep_time, once, cpu); - return ret; + +out: + return ret; } /******* Options parsing, main ********/ diff -Nru cpufrequtils-007/utils/cpuid.h cpufrequtils-008/utils/cpuid.h --- cpufrequtils-007/utils/cpuid.h 1970-01-01 00:00:00.000000000 +0000 +++ cpufrequtils-008/utils/cpuid.h 2012-05-05 23:17:18.000000000 +0000 @@ -0,0 +1,63 @@ +#ifndef _CPUFREQ_CPUID_H +#define _CPUFREQ_CPUID_H + +static inline void __cpuid(unsigned int *eax, unsigned int *ebx, + unsigned int *ecx, unsigned int *edx) +{ + /* ecx is often an input as well as an output. */ + asm volatile("cpuid" + : "=a" (*eax), + "=b" (*ebx), + "=c" (*ecx), + "=d" (*edx) + : "0" (*eax), "2" (*ecx)); +} +static inline void cpuid(unsigned int op, + unsigned int *eax, unsigned int *ebx, + unsigned int *ecx, unsigned int *edx) +{ + *eax = op; + *ecx = 0; + __cpuid(eax, ebx, ecx, edx); +} + +/* + * CPUID functions returning a single datum + */ +static inline unsigned int cpuid_eax(unsigned int op) +{ + unsigned int eax, ebx, ecx, edx; + + cpuid(op, &eax, &ebx, &ecx, &edx); + + return eax; +} + +static inline unsigned int cpuid_ebx(unsigned int op) +{ + unsigned int eax, ebx, ecx, edx; + + cpuid(op, &eax, &ebx, &ecx, &edx); + + return ebx; +} + +static inline unsigned int cpuid_ecx(unsigned int op) +{ + unsigned int eax, ebx, ecx, edx; + + cpuid(op, &eax, &ebx, &ecx, &edx); + + return ecx; +} + +static inline unsigned int cpuid_edx(unsigned int op) +{ + unsigned int eax, ebx, ecx, edx; + + cpuid(op, &eax, &ebx, &ecx, &edx); + + return edx; +} + +#endif /* _CPUFREQ_CPUID_H */