On Tue, 2012-02-21 at 16:48 +0530, Ashish Jangam wrote:
> On Fri, 2012-02-10 at 07:58 -0500, Ashish Jangam wrote:
> > The DA9052 PMIC provides an Analogue to Digital Converter with 10 bits
> > resolution and 10 channels.
> >
> > + * Dialog Semiconductors DA9052-BC and DA9053-AA/Bx PMICs
> > + Prefix: 'da9052'
> > + Datasheet: Kindly visit www.dialog-semiconductor.com/product_table.php
> > + and request for the official datasheet.
> > +
> Not really. From practical experience, the datasheet is not available
> except for Dialog Semiconductor customers - not even for me to review
> the driver (and that appears to be independent of my employer's
> relationship with Dialog Semiconductor). I think this should read "not
> publicly available". It is a bit misleading to suggest that it would be
> available if that is not the case.
Agreed.
>
> > +static const char * const input_names[] = {
> > + [DA9052_ADC_VDDOUT] = "VDDOUT",
> > + [DA9052_ADC_ICH] = "CHARGING CURRENT",
> > + [DA9052_ADC_TBAT] = "BATTERY TEMP",
> > + [DA9052_ADC_VBAT] = "BATTERY VOLTAGE",
> > + [DA9052_ADC_IN4] = "ADC IN4",
> > + [DA9052_ADC_IN5] = "ADC IN5",
> > + [DA9052_ADC_IN6] = "ADC IN6",
> > + [DA9052_ADC_TJUNC] = "BATTERY JUNCTION TEMP",
> > + [DA9052_ADC_VBBAT] = "BACK-UP BATTERY VOLTAGE",
> > +};
> > +
> Where are those defines, or, in other words, which repository/branch is
> your patch based on ? I don't see it in the current mainline kernel.
The incremental ADC patch to the da9052 mfd core takes care of all such
issues. However that patch is still under review...hoping to get it thru
soon.
I'm using Gumstix Overo-Fire.
I need to replicate my systems to deploy and test my setup. Right now I
have one uSD memory card which is working fine, but when I copy the whole
card using either the `tar cvpf` or dd commands, the image doesn't work on
any other memory card. Below is the console message when it hangs. I have
tried many memory cards.
Looks like Linaro images store the memory card ID and search for them
during the boot time, which will obviously fail on a different card.
Is there any way I can make my Linaro Image memory card independent.... so
that my replication becomes easy..??
These are the last lines from the console messages during the boot, with
the replicated memory card.
[ 6.605651] usbcore: registered new interface driver usbhid
[ 6.617279] usbhid: USB HID core driver
Gave up waiting for root device. Common problems:
- Boot args (cat /proc/cmdline)
- Check rootdelay= (did the system wait long enough?)
- Check root= (did the system wait for the right device?)
- Missing modules (cat /proc/modules; ls /dev)
ALERT! /dev/disk/by-uuid/17fb7403-3757-4533-b783-7be5436d9882 does not
exist. !
---------------------------------
Sudhangathan BS
Ph:(+91) 9731-905-205
---------------------------------
Hi Guys,
Sorry for starting the long old thread again, but i have to start it as i
was a bit confused. :(
We know that we can't have multiple mappings with different attributes
to the same physical memory on ARMv6+ machines due to speculative
prefetch.
So, we have following kind of mappings in kernel now (please correct me
if i am wrong):
- Low Mem: Mapped at boot time to - Normal Cacheable - Bufferable
- ioremap() - blocked on Low Mem, so that we don't create Device type mapping
to same mem
- dma_alloc_coherent() and others:
- Without DMA_MEM_BUFFERABLE selected - gives strongly ordered mem
(i.e. Non cacheable - Non Bufferable)
- With DMA_MEM_BUFFERABLE selected - gives Normal - Non cacheable -
Bufferable mapping
- Maybe some other too...
I have a doubt with the last mapping mentioned above. We have two mappings
possibly to the same physical memory, with different attributes: One
is Cacheable
and other one is not.
Is this allowed by ARM? Because the patch in which Russell blocked ioremap on
Low Mem, he clearly mentioned that these attributes are also important and they
should be same.
Sorry if i am missing something :)
--
viresh
Hello,
Recently, Ubuntu revoked sun-java6-* packages following retirement of
its license:
https://lists.ubuntu.com/archives/ubuntu-security-announce/2012-January/001…
It propagated to the repositories we use for android-build.linaro.org
slaves on this weekend. The end effect of this besides builds not being
able to proceed, is slave pile-up issue, as Jenkins, seeing an
initialization error for one slave, tries to start another, all going
in cycles. As it's pretty late in here, the action I'm taking is
disabling builds altogether, to proceed with resolving this first thing
in the morning (access to previous builds is still available).
Proposed actions are:
1. Install sun-java6-* from cached .deb's as risk-mitigating measure
while analyzing the issue.
2. Consider/test switching to OpenJDK, as recommended by
https://wiki.ubuntu.com/LucidLynx/ReleaseNotes/Java6Transition . Note
that sun-java6 have been, and still is, listed by Google as the Android
build prerequisite: http://source.android.com/source/initializing.html
However, there were success reports with OpenJDK from individual
developers previously.
--
Best Regards,
Paul
Linaro.org | Open source software for ARM SoCs
Follow Linaro: http://www.facebook.com/pages/Linarohttp://twitter.com/#!/linaroorg - http://www.linaro.org/linaro-blog
HI
I'm newbie for Linaro .
I understand that Linaro just provide the toolchains , u-boot, kernel
after view the guide quickly .
I want to know how about the basic function such as busybox etc .
I assume that buy a board such as Pandaboard ES that use Linaro to do
application develop as following action
Step 1 install toolchain from Linaro
Step 2 compile u-boot from Linaro
Step 3 compile linux kernel from Linaro
Step 4 I need compile such as busybox etc for root filesystem by myself .
Is this step correctly ?
Thanks a lot
Best Regards .
Peter Meng
mengsanshui(a)gmail.com
Generalize CONFIG_IRQ_TIME_ACCOUNTING between X86 and
ARM, move "noirqtime=" option to common debugging code.
For a bit of backward compatibility, X86-specific option
"tsc=noirqtime" is preserved, but issues a warning.
Suggested-by: Yong Zhang <yong.zhang0(a)gmail.com>
Suggested-by: Russell King <rmk+kernel(a)arm.linux.org.uk>
Acked-by: Venkatesh Pallipadi <venki(a)google.com>
Signed-off-by: Dmitry Antipov <dmitry.antipov(a)linaro.org>
---
Documentation/kernel-parameters.txt | 9 +++++----
arch/arm/kernel/sched_clock.c | 2 ++
arch/x86/Kconfig | 11 -----------
arch/x86/kernel/tsc.c | 12 ++++++------
include/linux/sched.h | 17 ++++++++++-------
kernel/sched/core.c | 20 +++++++++++---------
lib/Kconfig.debug | 12 ++++++++++++
7 files changed, 46 insertions(+), 37 deletions(-)
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index 033d4e6..a5da255 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -1790,6 +1790,9 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
noirqdebug [X86-32] Disables the code which attempts to detect and
disable unhandled interrupt sources.
+ noirqtime [X86,ARM] Run time disables IRQ_TIME_ACCOUNTING and
+ eliminates the timestamping on irq/softirq entry/exit.
+
no_timer_check [X86,APIC] Disables the code which tests for
broken timer IRQ sources.
@@ -2636,10 +2639,8 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
as the stability checks done at bootup. Used to enable
high-resolution timer mode on older hardware, and in
virtualized environment.
- [x86] noirqtime: Do not use TSC to do irq accounting.
- Used to run time disable IRQ_TIME_ACCOUNTING on any
- platforms where RDTSC is slow and this accounting
- can add overhead.
+ [x86] noirqtime: obsoleted by "noirqtime" generic option,
+ see it's documentation for details.
turbografx.map[2|3]= [HW,JOY]
TurboGraFX parallel port interface
diff --git a/arch/arm/kernel/sched_clock.c b/arch/arm/kernel/sched_clock.c
index 5416c7c..30b5f89 100644
--- a/arch/arm/kernel/sched_clock.c
+++ b/arch/arm/kernel/sched_clock.c
@@ -144,6 +144,8 @@ void __init setup_sched_clock(u32 (*read)(void), int bits, unsigned long rate)
*/
cd.epoch_ns = 0;
+ enable_sched_clock_irqtime();
+
pr_debug("Registered %pF as sched_clock source\n", read);
}
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 5bed94e..4759676 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -805,17 +805,6 @@ config SCHED_MC
making when dealing with multi-core CPU chips at a cost of slightly
increased overhead in some places. If unsure say N here.
-config IRQ_TIME_ACCOUNTING
- bool "Fine granularity task level IRQ time accounting"
- default n
- ---help---
- Select this option to enable fine granularity task irq time
- accounting. This is done by reading a timestamp on each
- transitions between softirq and hardirq state, so there can be a
- small performance impact.
-
- If in doubt, say N here.
-
source "kernel/Kconfig.preempt"
config X86_UP_APIC
diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index a62c201..f1b2b63 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -103,14 +103,15 @@ int __init notsc_setup(char *str)
__setup("notsc", notsc_setup);
-static int no_sched_irq_time;
-
static int __init tsc_setup(char *str)
{
if (!strcmp(str, "reliable"))
tsc_clocksource_reliable = 1;
- if (!strncmp(str, "noirqtime", 9))
- no_sched_irq_time = 1;
+ if (!strncmp(str, "noirqtime", 9)) {
+ printk(KERN_WARNING "tsc: tsc=noirqtime is "
+ "obsolete, use noirqtime instead\n");
+ disable_sched_clock_irqtime();
+ }
return 1;
}
@@ -978,8 +979,7 @@ void __init tsc_init(void)
/* now allow native_sched_clock() to use rdtsc */
tsc_disabled = 0;
- if (!no_sched_irq_time)
- enable_sched_clock_irqtime();
+ enable_sched_clock_irqtime();
lpj = ((u64)tsc_khz * 1000);
do_div(lpj, HZ);
diff --git a/include/linux/sched.h b/include/linux/sched.h
index 7d379a6..9b13f79 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -1961,13 +1961,16 @@ extern void sched_clock_idle_wakeup_event(u64 delta_ns);
#endif
#ifdef CONFIG_IRQ_TIME_ACCOUNTING
-/*
- * An i/f to runtime opt-in for irq time accounting based off of sched_clock.
- * The reason for this explicit opt-in is not to have perf penalty with
- * slow sched_clocks.
- */
-extern void enable_sched_clock_irqtime(void);
-extern void disable_sched_clock_irqtime(void);
+extern int sched_clock_irqtime;
+static inline void enable_sched_clock_irqtime(void)
+{
+ if (sched_clock_irqtime == -1)
+ sched_clock_irqtime = 1;
+}
+static inline void disable_sched_clock_irqtime(void)
+{
+ sched_clock_irqtime = 0;
+}
#else
static inline void enable_sched_clock_irqtime(void) {}
static inline void disable_sched_clock_irqtime(void) {}
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 5255c9d..a7ec043 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -757,18 +757,20 @@ static DEFINE_PER_CPU(u64, cpu_hardirq_time);
static DEFINE_PER_CPU(u64, cpu_softirq_time);
static DEFINE_PER_CPU(u64, irq_start_time);
-static int sched_clock_irqtime;
-void enable_sched_clock_irqtime(void)
-{
- sched_clock_irqtime = 1;
-}
+/* -1 if not initialized, 0 if disabled with "noirqtime" kernel option
+ * or after unstable clock was detected, 1 if enabled and active.
+ */
+int sched_clock_irqtime = -1;
-void disable_sched_clock_irqtime(void)
+static int __init irqtime_setup(char *str)
{
sched_clock_irqtime = 0;
+ return 1;
}
+__setup("noirqtime", irqtime_setup);
+
#ifndef CONFIG_64BIT
static DEFINE_PER_CPU(seqcount_t, irq_time_seq);
@@ -822,7 +824,7 @@ void account_system_vtime(struct task_struct *curr)
s64 delta;
int cpu;
- if (!sched_clock_irqtime)
+ if (sched_clock_irqtime < 1)
return;
local_irq_save(flags);
@@ -2853,7 +2855,7 @@ void account_process_tick(struct task_struct *p, int user_tick)
cputime_t one_jiffy_scaled = cputime_to_scaled(cputime_one_jiffy);
struct rq *rq = this_rq();
- if (sched_clock_irqtime) {
+ if (sched_clock_irqtime > 0) {
irqtime_account_process_tick(p, user_tick, rq);
return;
}
@@ -2887,7 +2889,7 @@ void account_steal_ticks(unsigned long ticks)
void account_idle_ticks(unsigned long ticks)
{
- if (sched_clock_irqtime) {
+ if (sched_clock_irqtime > 0) {
irqtime_account_idle_ticks(ticks);
return;
}
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
index 8745ac7..236e814 100644
--- a/lib/Kconfig.debug
+++ b/lib/Kconfig.debug
@@ -299,6 +299,18 @@ config SCHEDSTATS
application, you can say N to avoid the very slight overhead
this adds.
+config IRQ_TIME_ACCOUNTING
+ bool "Fine granularity task level IRQ time accounting"
+ depends on X86 || ARM
+ default n
+ ---help---
+ Select this option to enable fine granularity task irq time
+ accounting. This is done by reading a timestamp on each
+ transitions between softirq and hardirq state, so there can be a
+ small performance impact.
+
+ If in doubt, say N here.
+
config TIMER_STATS
bool "Collect kernel timers statistics"
depends on DEBUG_KERNEL && PROC_FS
--
1.7.7.6
For those of you interested by the topic, my article was published
today. With a LWN subscription (or freely accessible in 2 weeks), it
can be viewed here:
http://lwn.net/Articles/481055/
The comments section is growing fast already!
Nicolas