12.09 Linaro Android Platform team plan posted

2012-08-31 Thread Zach Pfeffer
Hey everyone!

The 12.09 plan has been posted to:

https://launchpad.net/linaro-android/+milestone/12.09

Have a look. Comments are welcome. There's a little bit of everything
from benchmarking to preliminary Android 64-bit work.

-- 
Zach Pfeffer
Android Platform Team Lead, Linaro Platform Teams
Linaro.org | Open source software for ARM SoCs
Follow Linaro: http://www.facebook.com/pages/Linaro
http://twitter.com/#!/linaroorg - http://www.linaro.org/linaro-blog

___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: [PATCH 5/5][RFC] cpuidle : add cpuidle_register_states function

2012-08-31 Thread Daniel Lezcano
On 08/10/2012 07:17 PM, Lorenzo Pieralisi wrote:
> Hi Daniel,
> 
> thanks for this patchset.
> 
> On Wed, Jul 25, 2012 at 11:46:02AM +0100, Daniel Lezcano wrote:
>> The tegra3 and big.LITTLE architecture have different cpu latencies.
>> This API allows to specify a different cpu latency for a specific cpu.
>>
>> With the previous patches, we use the per cpuidle device states pointer,
>> this function overrides this pointer.
>>
>> Signed-off-by: Daniel Lezcano 
>> ---
>>  drivers/cpuidle/cpuidle.c |   17 +
>>  include/linux/cpuidle.h   |   10 +++---
>>  2 files changed, 24 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/cpuidle/cpuidle.c b/drivers/cpuidle/cpuidle.c
>> index 199878a..3b21b68 100644
>> --- a/drivers/cpuidle/cpuidle.c
>> +++ b/drivers/cpuidle/cpuidle.c
>> @@ -456,6 +456,23 @@ void cpuidle_unregister_device(struct cpuidle_device 
>> *dev)
>>  
>>  EXPORT_SYMBOL_GPL(cpuidle_unregister_device);
>>  
>> +int cpuidle_register_states(struct cpuidle_device *dev,
>> +struct cpuidle_state *states,
>> +int state_count)
>> +{
>> +if (!dev || !states)
>> +return -EINVAL;
>> +
>> +if (state_count <= 0)
>> +return -EINVAL;
>> +
>> +dev->states = states;
>> +dev->state_count = state_count;
> 
> Is this function supposed to be called after cpuidle_device registration ?
> I think so since at registration time the dev->states pointers are all
> initialized to point to the driver state array, which is global and not
> really what we want.
> 
> Unless this function is called on the cpu that requires swapping the state
> pointer, I think it is unsafe to register a different state pointer
> without a minimal level of locking (or disabling idle and renabling idle)
> since the update of dev->states and dev->state_count is not atomic.
> Maybe it is implicit but it should be documented somehow to define
> cpuidle_register_states(...) proper usage.

Hi Lorenzo,

Yes, you are right. I will add the cpuidle lock.

Thanks !

  -- Daniel


-- 
  Linaro.org │ Open source software for ARM SoCs

Follow Linaro:   Facebook |
 Twitter |
 Blog


___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: [PATCH 0/5][RFC] Use per cpuidle_device states

2012-08-31 Thread Daniel Lezcano
On 07/27/2012 01:28 PM, Peter De Schrijver wrote:
> On Wed, Jul 25, 2012 at 12:45:57PM +0200, Daniel Lezcano wrote:
>> Since commit 46bcfad7a819bd17ac4e831b04405152d59784ab,
>> cpuidle: Single/Global registration of idle states
>>
>> we have a single registration for the cpuidle states which makes
>> sense. But now two new architectures are coming: tegra3 and big.LITTLE.
>>
>> These architectures have different cpus with different caracteristics
>> for power saving. High load => powerfull processors, idle => small 
>> processors.
>>
>> That implies different cpu latencies.
>>
>> This patchset present a simple way to keep the current behavior as introduced
>> by Deepthi without breaking the drivers and add the possibility to specify a
>> per cpu states.
>>
> Looks good! I will do some tests with this next week.

Hi Peter,

shall I consider adding your acked-by ?

Did you have time to test the patchset ?

Thanks
-- Daniel

-- 
  Linaro.org │ Open source software for ARM SoCs

Follow Linaro:   Facebook |
 Twitter |
 Blog



___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: [PATCH] acpi : remove power from acpi_processor_cx structure

2012-08-31 Thread Daniel Lezcano
On 07/24/2012 11:06 PM, Konrad Rzeszutek Wilk wrote:
> On Tue, Jul 24, 2012 at 11:12:29PM +0200, Daniel Lezcano wrote:
>> Remove the power field as it is not used.
>>
>> Signed-off-by: Daniel Lezcano 
>> Cc: Konrad Rzeszutek Wilk 
> Acked.

Hi Rafael,

I did not see this patch going in. Is it possible to merge it ?

Thanks in advance
-- Daniel

>> ---
>>  drivers/acpi/processor_idle.c|2 --
>>  drivers/xen/xen-acpi-processor.c |1 -
>>  include/acpi/processor.h |1 -
>>  3 files changed, 0 insertions(+), 4 deletions(-)
>>
>> diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c
>> index e589c19..90582fb 100644
>> --- a/drivers/acpi/processor_idle.c
>> +++ b/drivers/acpi/processor_idle.c
>> @@ -483,8 +483,6 @@ static int acpi_processor_get_power_info_cst(struct 
>> acpi_processor *pr)
>>  if (obj->type != ACPI_TYPE_INTEGER)
>>  continue;
>>  
>> -cx.power = obj->integer.value;
>> -
>>  current_count++;
>>  memcpy(&(pr->power.states[current_count]), &cx, sizeof(cx));
>>  
>> diff --git a/drivers/xen/xen-acpi-processor.c 
>> b/drivers/xen/xen-acpi-processor.c
>> index 7ff2569..7ef9c1d 100644
>> --- a/drivers/xen/xen-acpi-processor.c
>> +++ b/drivers/xen/xen-acpi-processor.c
>> @@ -98,7 +98,6 @@ static int push_cxx_to_hypervisor(struct acpi_processor 
>> *_pr)
>>  
>>  dst_cx->type = cx->type;
>>  dst_cx->latency = cx->latency;
>> -dst_cx->power = cx->power;
>>  
>>  dst_cx->dpcnt = 0;
>>  set_xen_guest_handle(dst_cx->dp, NULL);
>> diff --git a/include/acpi/processor.h b/include/acpi/processor.h
>> index 64ec644..db427fa 100644
>> --- a/include/acpi/processor.h
>> +++ b/include/acpi/processor.h
>> @@ -59,7 +59,6 @@ struct acpi_processor_cx {
>>  u8 entry_method;
>>  u8 index;
>>  u32 latency;
>> -u32 power;
>>  u8 bm_sts_skip;
>>  char desc[ACPI_CX_DESC_LEN];
>>  };
>> -- 
>> 1.7.5.4
> ___
> linaro-dev mailing list
> linaro-dev@lists.linaro.org
> http://lists.linaro.org/mailman/listinfo/linaro-dev
>


-- 
  Linaro.org │ Open source software for ARM SoCs

Follow Linaro:   Facebook |
 Twitter |
 Blog



___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: [Demo/RFC][PATCH 0/2] ARM: shmobile: PM domain with cpuidle on Mackerel

2012-08-31 Thread Daniel Lezcano
On 08/14/2012 12:40 AM, Rafael J. Wysocki wrote:
> Hi,
> 
> I normally don't post demo patches, but in this particular case it would be
> quite difficult to implement the desired functionality on the actual hardware,
> due to some complicated dependencies present in there.

Thanks a lot Rafael for taking the time to write this demo code.

It is very interesting and probably what should do in the other cpuidle
drivers.

Thanks
  -- Daniel

-- 
  Linaro.org │ Open source software for ARM SoCs

Follow Linaro:   Facebook |
 Twitter |
 Blog


___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: [Question] About the Gator and the Power Probe

2012-08-31 Thread Paul Larson
There's documentation here:
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0482h/ch13.html
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0482h/ch13.html

And there's a video of the process here:
http://www.youtube.com/watch?v=aDStdtopy_g

You'll need a real license for ds5, not just the community edition.  I was
never able to work out my licensing issues (even though it said my license
was valid) so I wasn't able to get this up and running, but I think if you
can get past that, you should be able to do a capture with it just fine.

Thanks,
Paul Larson

On Fri, Aug 31, 2012 at 5:19 AM, Hongbo Zhang wrote:

> Hi all,
> I want to set up the power probe only without any other streamline
> functions, can I make it?
> It seems that the IP Address in the Capture Options window must be filled,
> so the gator driver and daemon should be compiled then, but I have
> compiling error.
>
> Can I set up power probe only?
> If not, do we have proper gator without compiling error?
>
> Thanks.
>
>
> ___
> linaro-dev mailing list
> linaro-dev@lists.linaro.org
> http://lists.linaro.org/mailman/listinfo/linaro-dev
>
>
___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: [PATCH 2/2] Thermal: Add ST-Ericsson db8500 thermal dirver.

2012-08-31 Thread Francesco Lavra
On Fri, Aug 31, 2012 at 12:05 PM, Hongbo Zhang  wrote:
>> > +/* Local function to create cpufreq clip table */
>> > +static int cpufreq_table_create(struct platform_device *pdev,
>> > +   struct freq_clip_table **freq_tab, int *num_freq)
>> > +{
>> > +   struct cpufreq_frequency_table *table;
>> > +   struct freq_clip_table *clip;
>> > +   unsigned int temp;
>> > +   int i, j, count = 0;
>> > +
>> > +   table = cpufreq_frequency_get_table(0);
>> > +   if (!table)
>> > +   return -ENODATA;
>> > +
>> > +   /* Check number of frequencies */
>> > +   for (i = 0; (table[i].frequency != CPUFREQ_TABLE_END); i++) {
>>
>> unneeded () in the for condition
>>
>> > +   if (table[i].frequency == CPUFREQ_ENTRY_INVALID)
>> > +   continue;
>> > +   count++;
>> > +   }
>> > +
>> > +   clip = devm_kzalloc(&pdev->dev,
>> > +   sizeof(struct freq_clip_table) * count,
>> > GFP_KERNEL);
>> > +
>> > +   /* Save frequencies */
>> > +   count = 0;
>> > +   for (i = 0; (table[i].frequency != CPUFREQ_TABLE_END); i++) {
>> > +   if (table[i].frequency == CPUFREQ_ENTRY_INVALID)
>> > +   continue;
>> > +   clip[count].freq_clip_max = table[i].frequency;
>> > +   count++;
>> > +   }
>>
>> You are counting the frequencies twice: there is no need to re-set
>> count to 0 and re-increment it in the for loop.
>
>
> Francesco, thank you for all of your comments very much.
> The second count is used as index of array clip[], it is not redundant.
> If don't re-set it to 0, count-- should be used, so we set the array clip[]
> from the end, it seems a bit strange.

You are right, it's not redundant. Also, if the clip array is filled
from the end using --count, the information on the array size would be
lost, so this is not an option.

Francesco

___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: [Question] About the Gator and the Power Probe

2012-08-31 Thread Jon Medhurst (Tixy)
On Fri, 2012-08-31 at 13:45 +0100, Jon Medhurst (Tixy) wrote:
> If you need to build your own the Gator for some reason, the source code
> code Linaro builds use is in git://git.linaro.org/arm/ds5/gator.git

I should also add that the Gator code is in the
linux-linaro-crore-tracking branch so all Linaro kernels based on the
latest linux version should already be including it. And for people
maintaining older kernels, there are topic branches I provide that
people can pull into their kernel tree's. E.g.

http://git.linaro.org/gitweb?p=landing-teams/working/arm/kernel.git;a=shortlog;h=refs/heads/3.4-armlt-gator-5.11
http://git.linaro.org/gitweb?p=landing-teams/working/arm/kernel.git;a=shortlog;h=refs/heads/3.5-armlt-gator-5.11

-- 
Tixy


___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: [Question] About the Gator and the Power Probe

2012-08-31 Thread Jon Medhurst (Tixy)
On Fri, 2012-08-31 at 18:19 +0800, Hongbo Zhang wrote:
> Hi all,
> I want to set up the power probe only without any other streamline
> functions, can I make it?
> It seems that the IP Address in the Capture Options window must be filled,
> so the gator driver and daemon should be compiled then, but I have
> compiling error.
> 
> Can I set up power probe only?
> If not, do we have proper gator without compiling error?

What kernel and gator code are you using and what compilation error are
you getting?

Linaro's Android builds already contain Gator, and you can install Gator
on Ubuntu from the Linaro's Overlay PPA with

   apt-get install gator gator-module-dkms

Some (most?) Linaro Ubuntu kernels already ship with the gator kernel
module and don't require you to install the second package
'gator-module-dkms'.

If you need to build your own the Gator for some reason, the source code
code Linaro builds use is in git://git.linaro.org/arm/ds5/gator.git

-- 
Tixy 


___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


[Question] About the Gator and the Power Probe

2012-08-31 Thread Hongbo Zhang
Hi all,
I want to set up the power probe only without any other streamline
functions, can I make it?
It seems that the IP Address in the Capture Options window must be filled,
so the gator driver and daemon should be compiled then, but I have
compiling error.

Can I set up power probe only?
If not, do we have proper gator without compiling error?

Thanks.
___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: [PATCH 2/2] Thermal: Add ST-Ericsson db8500 thermal dirver.

2012-08-31 Thread Francesco Lavra
Hi,

On Fri, Aug 10, 2012 at 1:20 PM, hongbo.zhang  wrote:
> From: "hongbo.zhang" 
>
> This diver is based on the thermal management framework in thermal_sys.c.
> A thermal zone device is created with the trip points to which cooling
> devices can be binded, the current cooling device is cpufreq, e.g. CPU
> frequency is clipped down to cool the CPU, and other cooling devices can
> be added and binded to the trip points dynamically.
> The platform specific PRCMU interrupts are used to active thermal update
> when trip points are reached.
>
> Signed-off-by: hongbo.zhang 
> ---
>  arch/arm/boot/dts/db8500.dtsi|   11 +
>  arch/arm/configs/u8500_defconfig |4 +
>  arch/arm/mach-ux500/board-mop500.c   |   73 
>  drivers/thermal/Kconfig  |   20 +
>  drivers/thermal/Makefile |4 +-
>  drivers/thermal/db8500_cpufreq_cooling.c |  175 +
>  drivers/thermal/db8500_thermal.c |  511 
> ++
>  include/linux/platform_data/db8500_thermal.h |   39 ++
>  8 files changed, 836 insertions(+), 1 deletion(-)
>  create mode 100644 drivers/thermal/db8500_cpufreq_cooling.c
>  create mode 100644 drivers/thermal/db8500_thermal.c
>  create mode 100644 include/linux/platform_data/db8500_thermal.h

[snip]

> diff --git a/drivers/thermal/Kconfig b/drivers/thermal/Kconfig
> index ace6078..37bd484 100644
> --- a/drivers/thermal/Kconfig
> +++ b/drivers/thermal/Kconfig
> @@ -30,6 +30,26 @@ config CPU_THERMAL
>   and not the ACPI interface.
>   If you want this support, you should say Y or M here.
>
> +config DB8500_THERMAL
> +   bool "db8500 thermal management"

DB8500 should be uppercase

> +   depends on THERMAL
> +   default y
> +   help
> + Adds DB8500 thermal management implementation according to the 
> thermal
> + management framework. A thermal zone with several trip points will 
> be
> + created. Cooling devices can be binded to the trip points to cool 
> this

s/binded/bound

> + thermal zone if trip points reached.
> +
> +config DB8500_CPUFREQ_COOLING
> +   tristate "db8500 cpufreq cooling"

Uppercase

> +   depends on CPU_THERMAL
> +   default y
> +   help
> + Adds DB8500 cpufreq cooling devices, and these cooling devices can 
> be
> + binded to thermal zone trip points. When a trip point reached, the
> + binded cpufreq cooling device turns active to set CPU frequency low 
> to

s/binded/bound (twice)

> + cool down the CPU.
> +
>  config SPEAR_THERMAL
> bool "SPEAr thermal sensor driver"
> depends on THERMAL
> diff --git a/drivers/thermal/Makefile b/drivers/thermal/Makefile
> index 30c456c..d146456 100644
> --- a/drivers/thermal/Makefile
> +++ b/drivers/thermal/Makefile
> @@ -3,5 +3,7 @@
>  #
>
>  obj-$(CONFIG_THERMAL)  += thermal_sys.o
> -obj-$(CONFIG_CPU_THERMAL)   += cpu_cooling.o
> +obj-$(CONFIG_CPU_THERMAL)  += cpu_cooling.o
> +obj-$(CONFIG_DB8500_THERMAL)   += db8500_thermal.o
> +obj-$(CONFIG_DB8500_CPUFREQ_COOLING)   +=db8500_cpufreq_cooling.o
>  obj-$(CONFIG_SPEAR_THERMAL)+= spear_thermal.o
> diff --git a/drivers/thermal/db8500_cpufreq_cooling.c 
> b/drivers/thermal/db8500_cpufreq_cooling.c
> new file mode 100644
> index 000..973d1ad
> --- /dev/null
> +++ b/drivers/thermal/db8500_cpufreq_cooling.c
> @@ -0,0 +1,175 @@
> +/*
> + * db8500_cpufreq_cooling.c - db8500 cpufreq works as cooling device.
> + *
> + * Copyright (C) 2012 ST-Ericsson
> + * Copyright (C) 2012 Linaro Ltd.
> + *
> + * Author: Hongbo Zhang 
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License as published by
> + * the Free Software Foundation; either version 2 of the License, or
> + * (at your option) any later version.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> + * GNU General Public License for more details.
> + *
> + */
> +
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +
> +static LIST_HEAD(db8500_cpufreq_cdev_list);
> +
> +struct db8500_cpufreq_cdev {
> +   struct thermal_cooling_device *cdev;
> +   struct list_head node;
> +};
> +
> +/* Local function to create cpufreq clip table */
> +static int cpufreq_table_create(struct platform_device *pdev,
> +   struct freq_clip_table **freq_tab, int *num_freq)
> +{
> +   struct cpufreq_frequency_table *table;
> +   struct freq_clip_table *clip;
> +   unsigned int temp;
> +   int i, j, count = 0;
> +
> +   table = cpufreq_frequency_get_table(0);
> +   if (!table)
> +   return -ENODATA;
> +
> +   /* Check number of frequencies */
> +   for (i = 0; (table[i].frequency != CPUFR