FYI, this is about a test rebuild of precise pangolin, including armhf.
-------- Original Message --------
Subject: third test rebuild of precise pangolin
Date: Mon, 02 Apr 2012 15:43:58 +0200
From: Matthias Klose <doko(a)ubuntu.com>
To: ubuntu-devel <ubuntu-devel-announce(a)lists.ubuntu.com>
CC: ubuntu-devel <ubuntu-devel(a)lists.ubuntu.com>
Another (and probably the last) test rebuild for precise pangolin is currently
running on amd64, armhf and i386 (finished for main, universe is still
building). The results will show up at [1].
The rebuild is running on the distro buildds, so please be a bit conservative
with uploading packages (e.g. really do a successful local build before upload).
Please look at the build failures for the packages in the "superseded" section
too. It's not guaranteed that these are really fixed.
Matthias
[1]
http://people.ubuntuwire.org/~wgrant/rebuild-ftbfs-test/test-rebuild-201203…
The usual cpuidle initialization routines are to register the
driver, then register a cpuidle device per cpu.
With the device's state count default initialization with the
driver's state count, the code initialization remains mostly the
same in the different drivers.
We can then add a new function 'cpuidle_register' where we register
the driver and the devices. These devices can be defined in a global
static variable in cpuidle.c. We will be able to factor out and
remove a lot of duplicate lines of code.
As we still have some drivers, with different initialization routines,
we keep 'cpuidle_register_driver' and 'cpuidle_register_device' as low
level initialization routines to do some specific operations on the
cpuidle devices.
Signed-off-by: Daniel Lezcano <daniel.lezcano(a)linaro.org>
---
drivers/cpuidle/cpuidle.c | 42 ++++++++++++++++++++++++++++++++++++++++++
include/linux/cpuidle.h | 3 +++
2 files changed, 45 insertions(+), 0 deletions(-)
diff --git a/drivers/cpuidle/cpuidle.c b/drivers/cpuidle/cpuidle.c
index 87411ce..151c55a 100644
--- a/drivers/cpuidle/cpuidle.c
+++ b/drivers/cpuidle/cpuidle.c
@@ -23,6 +23,7 @@
#include "cpuidle.h"
DEFINE_PER_CPU(struct cpuidle_device *, cpuidle_devices);
+DEFINE_PER_CPU(struct cpuidle_device, cpuidle_device);
DEFINE_MUTEX(cpuidle_lock);
LIST_HEAD(cpuidle_detected_devices);
@@ -419,6 +420,47 @@ int cpuidle_register_device(struct cpuidle_device *dev)
EXPORT_SYMBOL_GPL(cpuidle_register_device);
+/*
+ * cpuidle_register : register cpuidle driver and devices
+ * Note this function must be called after smp_init.
+ * @drv : the cpuidle driver
+ * Returns 0 on success, < 0 otherwise
+ */
+int cpuidle_register(struct cpuidle_driver *drv)
+{
+ int ret, cpu, i;
+ struct cpuidle_device *dev;
+
+ ret = cpuidle_register_driver(drv);
+ if (ret)
+ return ret;
+
+ for_each_online_cpu(cpu) {
+ dev = &per_cpu(cpuidle_device, cpu);
+ dev->cpu = cpu;
+
+ ret = cpuidle_register_device(dev);
+ if (ret)
+ goto out_unregister;
+ }
+
+out:
+ return ret;
+
+out_unregister:
+ for_each_online_cpu(i) {
+ if (i == cpu)
+ break;
+ dev = &per_cpu(cpuidle_device, cpu);
+ cpuidle_unregister_device(dev);
+ }
+
+ cpuidle_unregister_driver(drv);
+
+ goto out;
+}
+EXPORT_SYMBOL_GPL(cpuidle_register);
+
/**
* cpuidle_unregister_device - unregisters a CPU's idle PM feature
* @dev: the cpu
diff --git a/include/linux/cpuidle.h b/include/linux/cpuidle.h
index 6c26a3d..3475294 100644
--- a/include/linux/cpuidle.h
+++ b/include/linux/cpuidle.h
@@ -135,6 +135,7 @@ struct cpuidle_driver {
#ifdef CONFIG_CPU_IDLE
extern void disable_cpuidle(void);
extern int cpuidle_idle_call(void);
+extern int cpuidle_register(struct cpuidle_driver *drv);
extern int cpuidle_register_driver(struct cpuidle_driver *drv);
struct cpuidle_driver *cpuidle_get_driver(void);
extern void cpuidle_unregister_driver(struct cpuidle_driver *drv);
@@ -154,6 +155,8 @@ extern int cpuidle_play_dead(void);
#else
static inline void disable_cpuidle(void) { }
static inline int cpuidle_idle_call(void) { return -ENODEV; }
+static inline int cpuidle_register(struct cpuidle_driver *drv)
+{return -ENODEV; }
static inline int cpuidle_register_driver(struct cpuidle_driver *drv)
{return -ENODEV; }
static inline struct cpuidle_driver *cpuidle_get_driver(void) {return NULL; }
--
1.7.5.4
The two patches were originally in [PATCH V6 0/7] add a generic cpufreq driver.
I seperated them and hope they can go to upstream earlier.
Richard Zhao (2):
ARM: add cpufreq transiton notifier to adjust loops_per_jiffy for smp
cpufreq: OMAP: remove loops_per_jiffy recalculate for smp
arch/arm/kernel/smp.c | 54 ++++++++++++++++++++++++++++++++++++++++
drivers/cpufreq/omap-cpufreq.c | 36 --------------------------
2 files changed, 54 insertions(+), 36 deletions(-)
--
1.7.5.4
So after talking about it at the last Linaro Connect, I've finally
gotten around to making a first pass at providing config fragments for
the linaro kernel. I'd like to propose merging this for 12.04, and
doing so early so we can make sure that all the desired config options
are present in the fragments and to allow the vairous linaro build
systems to begin migrating their config generation over.
The current tree is here:
http://git.linaro.org/gitweb?p=people/jstultz/android.git;a=shortlog;h=refs…
The most relevant commit being:
http://git.linaro.org/gitweb?p=people/jstultz/android.git;a=commitdiff;h=da…
This includes config fragments for a linaro-base, an android-ization
fragment, and board configs for panda, origen and imx53.
I suspect we'll need an ubuntu specific fragment as well as all the
other board fragments.
There is likely to be quite a bit of churn as we decide what sort of
configs are really common and which are board specific. But that's ok.
Configs are generated from the config fragments, as follows:
./scripts/kconfig/merge_config.sh ./configs/linaro-base.conf ./configs/android.conf ./configs/panda.conf
You may see warnings, which are not fatal, but should be reported so
they can be properly cleaned up.
I'm asking for Build folks to take a look at the above and consider how
they might merge in fragment assembly into their system replacing their
current config generation.
I'd ask Landing teams to take a look at this, and report any missing
config options or fragment chunks they'd like to see.
thanks
-john
Hi
I would like to request a working ".config" file for Gumstix
Overo Tide COM board to cross compile a custom kernel
with Linaro/Ubuntu compiler as I have lost my config file
for a customized kernel. I tried using linaro-media-create
to use the overoxxx.config file from /media/rootfs/boot/ but
coping that as .config file to build an uImage does not work.
I tried omap3-defconfig but it does not work, I will be glad
to receive a .config file that can be used to cross compile
an uImage image to boot my kernel. Thanks in advance.
Sincerely
Aung