Re: Announcement: Monthly Milestones

2011-06-22 Thread Fathi Boudra
On 20 June 2011 23:52, Michael Hope michael.h...@linaro.org wrote:
 Some minor nits.  The names are product-version-.mm - some of the
 slides use -mm.

fixed. It should be dot.

 I see the first release as having an implicit -0 so the first respin is -1, 
not -2.

fixed.

Thanks Michael.

Cheers,

Fathi

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


Re: Meeting request

2011-06-22 Thread Eric Miao
On Wed, Jun 22, 2011 at 2:01 PM, Ashish Jangam
ashish.jan...@kpitcummins.com wrote:
 -Original Message-
 From: eric.y.m...@gmail.com [mailto:eric.y.m...@gmail.com] On Behalf Of Eric
 Miao
 Sent: Tuesday, June 21, 2011 6:55 PM
 To: Ashish Jangam
 Cc: Ying-Chun Liu (PaulLiu); eric.m...@linaro.org; Steve Cozens; linaro-
 d...@lists.linaro.org; Mark Brown; Dajun Chen; Prashant Deshpande
 Subject: Re: Meeting request

 On Tue, Jun 21, 2011 at 8:29 PM, Ashish Jangam
 ashish.jan...@kpitcummins.com wrote:
 
  -Original Message-
  From: eric.y.m...@gmail.com [mailto:eric.y.m...@gmail.com] On Behalf Of
 Eric
  Miao
  Sent: Tuesday, June 21, 2011 5:52 PM
  To: Ashish Jangam
  Cc: Ying-Chun Liu (PaulLiu); eric.m...@linaro.org; Steve Cozens; linaro-
  d...@lists.linaro.org; Mark Brown; Dajun Chen; Prashant Deshpande
  Subject: Re: Meeting request
 
  On Tue, Jun 21, 2011 at 6:24 PM, Ashish Jangam
  ashish.jan...@kpitcummins.com wrote:
   -Original Message-
   From: eric.y.m...@gmail.com [mailto:eric.y.m...@gmail.com] On Behalf Of
  Eric
   Miao
   Sent: Tuesday, June 21, 2011 3:28 PM
   To: Ashish Jangam; Ying-Chun Liu (PaulLiu)
   Cc: eric.m...@linaro.org; Steve Cozens; linaro-dev@lists.linaro.org;
 Mark
   Brown; Dajun Chen; Prashant Deshpande
   Subject: Re: Meeting request
  
   On Tue, Jun 21, 2011 at 5:57 PM, Eric Miao eric.m...@canonical.com
 wrote:
On Tue, Jun 21, 2011 at 4:21 PM, Ashish Jangam
ashish.jan...@kpitcummins.com wrote:
Hi Eric,
   
I recently saw your mail to Dajun, on your people eagerness to get
 the
   patches upstream soon. We also hold the same vision to get the patches
   upstream as quick as possible.
   
In this regard we like to have a discussion so please let us know
 your
   convenient time. Please note that as of now we do not have any 
   technical
   issues on patches but there is a need to understand the patch 
   submission
   process so we can focus our discussion accordingly.
   
   
Thanks Ashish to bring this forword.
   
I'm in TZ GMT+8, and I think Mark is in Scottland, which is GMT+1?
  Anyway,
tomorrow and Friday will be fine to me, depending on your location 
and
 a
time slot that works for all of us, there could be not many choices 
:-
 )
   
Include Paul Liu, he's working on the PMIC upstreaming as well, he's
 in
  the
same TZ as I am.
   
   Below are time slots in preference order (hopefully for all) for
 Wednesday
  meeting:-
   1) GMT+8 == 05:00pm; GMT+1 == 10:00am; GMT+5.5 == 02:30pm
   2) GMT+8 == 04:00pm; GMT+1 == 09:00am; GMT+5.5 == 01:30pm
   3) GMT+8 == 06:00pm; GMT+1 == 11:00am; GMT+5.5 == 03:30pm
   Let me know which time slot suits you all.
 
  Hi Ashish,
 
  Option 1) works for me and Paul Liu.
 
  Thanks.
  Kindly share your contact details so that we can get connected.

 You can use my linaro email address of cuz: eric.m...@linaro.org

 For today's conference please dial:-
 +91 20 6652 5000 - press 1 - press 80867 - press 1.

 For any assistance please call the telecom team on 91 20 66525000.

 Kindly note, that this is not a Toll free number. In case your all not
 comfortable with this number then give me your phone number so that I
 can put all of us in a conference call.

I can use skype to dial in. Yet not really sure about the other guys.

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


Re: [PATCH v7 01/11] mmc: add non-blocking mmc request function

2011-06-22 Thread Venkatraman S
On Wed, Jun 22, 2011 at 5:08 AM, Per Forlin per.for...@linaro.org wrote:
 Previously there has only been one function mmc_wait_for_req()
 to start and wait for a request. This patch adds
  * mmc_start_req() - starts a request wihtout waiting
   If there is on ongoing request wait for completion
   of that request and start the new one and return.
   Does not wait for the new command to complete.

 This patch also adds new function members in struct mmc_host_ops
 only called from core.c
  * pre_req - asks the host driver to prepare for the next job
  * post_req - asks the host driver to clean up after a completed job

 The intention is to use pre_req() and post_req() to do cache maintenance
 while a request is active. pre_req() can be called while a request is active
 to minimize latency to start next job. post_req() can be used after the next
 job is started to clean up the request. This will minimize the host driver
 request end latency. post_req() is typically used before ending the block
 request and handing over the buffer to the block layer.

 Add a host-private member in mmc_data to be used by
 pre_req to mark the data. The host driver will then
 check this mark to see if the data is prepared or not.

 Signed-off-by: Per Forlin per.for...@linaro.org
 ---
  drivers/mmc/core/core.c  |  110 +
  include/linux/mmc/core.h |    6 ++-
  include/linux/mmc/host.h |   21 +
  3 files changed, 126 insertions(+), 11 deletions(-)

 diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c
 index 68091dd..c82fa3b 100644
 --- a/drivers/mmc/core/core.c
 +++ b/drivers/mmc/core/core.c
 @@ -198,9 +198,106 @@ mmc_start_request(struct mmc_host *host, struct 
 mmc_request *mrq)

  static void mmc_wait_done(struct mmc_request *mrq)
  {
 -       complete(mrq-done_data);
 +       complete(mrq-completion);
  }

 +static void __mmc_start_req(struct mmc_host *host, struct mmc_request *mrq)
 +{
 +       init_completion(mrq-completion);
 +       mrq-done = mmc_wait_done;
 +       mmc_start_request(host, mrq);
 +}
 +
 +static void mmc_wait_for_req_done(struct mmc_host *host,
 +                                 struct mmc_request *mrq)
 +{
 +       wait_for_completion(mrq-completion);
 +}
 +
 +/**
 + *     mmc_pre_req - Prepare for a new request
 + *     @host: MMC host to prepare command
 + *     @mrq: MMC request to prepare for
 + *     @is_first_req: true if there is no previous started request
 + *                     that may run in parellel to this call, otherwise false
 + *
 + *     mmc_pre_req() is called in prior to mmc_start_req() to let
 + *     host prepare for the new request. Preparation of a request may be
 + *     performed while another request is running on the host.
 + */
 +static void mmc_pre_req(struct mmc_host *host, struct mmc_request *mrq,
 +                bool is_first_req)
 +{
 +       if (host-ops-pre_req)
 +               host-ops-pre_req(host, mrq, is_first_req);
 +}
 +
 +/**
 + *     mmc_post_req - Post process a completed request
 + *     @host: MMC host to post process command
 + *     @mrq: MMC request to post process for
 + *     @err: Error, if non zero, clean up any resources made in pre_req
 + *
 + *     Let the host post process a completed request. Post processing of
 + *     a request may be performed while another reuqest is running.
 + */
 +static void mmc_post_req(struct mmc_host *host, struct mmc_request *mrq,
 +                        int err)
 +{
 +       if (host-ops-post_req)
 +               host-ops-post_req(host, mrq, err);
 +}
 +
 +/**
 + *     mmc_start_req - start a non-blocking request
 + *     @host: MMC host to start command
 + *     @areq: async request to start
 + *     @error: out parameter returns 0 for success, otherwise non zero
 + *
 + *     Start a new MMC custom command request for a host.
 + *     If there is on ongoing async request wait for completion
 + *     of that request and start the new one and return.
 + *     Does not wait for the new request to complete.
 + *
 + *     Returns the completed async request, NULL in case of none completed.
 + */
 +struct mmc_async_req *mmc_start_req(struct mmc_host *host,
 +                                   struct mmc_async_req *areq, int *error)
 +{
 +       int err = 0;
 +       struct mmc_async_req *data = host-areq;
 +
 +       /* Prepare a new request */
 +       if (areq)
 +               mmc_pre_req(host, areq-mrq, !host-areq);
 +
 +       if (host-areq) {
 +               mmc_wait_for_req_done(host, host-areq-mrq);
 +               err = host-areq-err_check(host-card, host-areq);
 +               if (err) {
 +                       mmc_post_req(host, host-areq-mrq, 0);
 +                       if (areq)
 +                               mmc_post_req(host, areq-mrq, -EINVAL);
 +
 +                       host-areq = NULL;
 +                       goto out;
In this sequence, would the return value (data) have the previous areq ?
Is that intentional - doesn't seem 

Re: Launchpad blueprints for the 11.11 work - part 1

2011-06-22 Thread Ilias Biris
On 22/06/11 09:16, Joe Yu wrote:
 Hi Ilias,
 
 This is Joe Yu from ARM Shanghai. We're very interested in adding a TR 
 blueprint to Linaro 12.05 for a DirectFB project targeted at optimization for 
 ARM with Mali GPU and NEON. What shall we do? Shall we create a TR blueprint 
 ourselves at lanchpad? Could you please provide some directions?
 
 Another question is: Can we attend Linaro Platform Sprint in August? We're 
 also working on x264 codec optimization and we want to discuss it in that 
 meeting face to face with some of you.
 
 Thanks,

Hello Joe!

TR blueprints are generally for larger umbrella activities - usually
those get broken into the so called engineering (you may also see the
term work) blueprints upon which the TR blueprints depend in order to
cover the themes for the cycle.

For example I would consider this work to fall under the umbrella of a
NEON TR blueprint, being one of the areas where work is being done by
you. I am currently updating the TR blueprints as per the information I
got from Kurt, so I will ping you when the update is complete and what
to do next.

Related to August sprint: I believe that you should attend. Please visit
https://wiki.linaro.org/Events/2011-08-LDS for more information,
registration and instructions on what you'd need to do.

Let me know if you need anything else, as said I will contact you later
today with more info for the blueprint work.

Cheers
-- 
Ilias Biris,
Aallonkohina 2D 19, 02320 Espoo, Finland
Tel: +358 50 4839608 (mobile)
Email: ilias dot biris at linaro dot org
Skype: ilias_biris

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


RE: Meeting request

2011-06-22 Thread Ashish Jangam
 -Original Message-
 From: eric.y.m...@gmail.com [mailto:eric.y.m...@gmail.com] On Behalf Of Eric
 Miao
 Sent: Tuesday, June 21, 2011 6:55 PM
 To: Ashish Jangam
 Cc: Ying-Chun Liu (PaulLiu); eric.m...@linaro.org; Steve Cozens; linaro-
 d...@lists.linaro.org; Mark Brown; Dajun Chen; Prashant Deshpande
 Subject: Re: Meeting request
 
 On Tue, Jun 21, 2011 at 8:29 PM, Ashish Jangam
 ashish.jan...@kpitcummins.com wrote:
 
  -Original Message-
  From: eric.y.m...@gmail.com [mailto:eric.y.m...@gmail.com] On Behalf Of
 Eric
  Miao
  Sent: Tuesday, June 21, 2011 5:52 PM
  To: Ashish Jangam
  Cc: Ying-Chun Liu (PaulLiu); eric.m...@linaro.org; Steve Cozens; linaro-
  d...@lists.linaro.org; Mark Brown; Dajun Chen; Prashant Deshpande
  Subject: Re: Meeting request
 
  On Tue, Jun 21, 2011 at 6:24 PM, Ashish Jangam
  ashish.jan...@kpitcummins.com wrote:
   -Original Message-
   From: eric.y.m...@gmail.com [mailto:eric.y.m...@gmail.com] On Behalf Of
  Eric
   Miao
   Sent: Tuesday, June 21, 2011 3:28 PM
   To: Ashish Jangam; Ying-Chun Liu (PaulLiu)
   Cc: eric.m...@linaro.org; Steve Cozens; linaro-dev@lists.linaro.org;
 Mark
   Brown; Dajun Chen; Prashant Deshpande
   Subject: Re: Meeting request
  
   On Tue, Jun 21, 2011 at 5:57 PM, Eric Miao eric.m...@canonical.com
 wrote:
On Tue, Jun 21, 2011 at 4:21 PM, Ashish Jangam
ashish.jan...@kpitcummins.com wrote:
Hi Eric,
   
I recently saw your mail to Dajun, on your people eagerness to get
 the
   patches upstream soon. We also hold the same vision to get the patches
   upstream as quick as possible.
   
In this regard we like to have a discussion so please let us know
 your
   convenient time. Please note that as of now we do not have any technical
   issues on patches but there is a need to understand the patch submission
   process so we can focus our discussion accordingly.
   
   
Thanks Ashish to bring this forword.
   
I'm in TZ GMT+8, and I think Mark is in Scottland, which is GMT+1?
  Anyway,
tomorrow and Friday will be fine to me, depending on your location and
 a
time slot that works for all of us, there could be not many choices :-
 )
   
Include Paul Liu, he's working on the PMIC upstreaming as well, he's
 in
  the
same TZ as I am.
   
   Below are time slots in preference order (hopefully for all) for
 Wednesday
  meeting:-
   1) GMT+8 == 05:00pm; GMT+1 == 10:00am; GMT+5.5 == 02:30pm
   2) GMT+8 == 04:00pm; GMT+1 == 09:00am; GMT+5.5 == 01:30pm
   3) GMT+8 == 06:00pm; GMT+1 == 11:00am; GMT+5.5 == 03:30pm
   Let me know which time slot suits you all.
 
  Hi Ashish,
 
  Option 1) works for me and Paul Liu.
 
  Thanks.
  Kindly share your contact details so that we can get connected.
 
 You can use my linaro email address of cuz: eric.m...@linaro.org
 
For today's conference please dial:-
+91 20 6652 5000 - press 1 - press 80867 - press 1.

For any assistance please call the telecom team on 91 20 66525000. 

Kindly note, that this is not a Toll free number. In case your all not
comfortable with this number then give me your phone number so that I
can put all of us in a conference call.


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


Re: Launchpad blueprints for the 11.11 work - part 1

2011-06-22 Thread Ilias Biris
On 22/06/11 10:43, Ilias Biris wrote:
 On 22/06/11 09:16, Joe Yu wrote:
 Hi Ilias,


 TR blueprints are generally for larger umbrella activities - usually
 those get broken into the so called engineering (you may also see the
 term work) blueprints upon which the TR blueprints depend in order to
 cover the themes for the cycle.
 

Hi Joe,

I have now created for you a blueprint to capture the requirements for
the directfb optimization work for 12.05. Keep in mind that Linaro is
now moving to a monthly cadence, with quarterly reviews of the plans and
requirements. So it's possible your work can be targeted earlier than
May.2012.

The blueprint is in
https://blueprints.launchpad.net/linaro-multimedia-wg/+spec/engr-multimedia-directfb-neon-optimization

Blueprint instructions: https://wiki.linaro.org/Process/Blueprints

Your task would be to use the blueprint whiteboard to summarize any
requirements or action items.

You could also start writing a more detailed specification using the
Linaro wiki. Let me know if you are ready to proceed writing a spec now,
so that I can create a template wiki page which you can use to fill in
the technical details. There is a clear separation between a blueprint
(in launchpad, just a summary-assignment-timeline info, holds the work
items list), and specification (in wiki, can be a lengthier technical
account of what the design decisions are)

If you let me know your launchpad id I can also add you as assignee of
the said blueprint above.

Thanks!
-- 
Ilias Biris,
Aallonkohina 2D 19, 02320 Espoo, Finland
Tel: +358 50 4839608 (mobile)
Email: ilias dot biris at linaro dot org
Skype: ilias_biris

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


Re: [PATCH android/toolchain/build] Fix host-libbfd installation problem caused by undefined $(INSTALL)

2011-06-22 Thread Jim Huang
Merged in AOSP:

http://android.git.kernel.org/?p=toolchain/build.git;a=commit;h=7ee395d10100fc9ed2c03c49b949033600082a4f

On 27 May 2011 01:29, Jim Huang jim.hu...@linaro.org wrote:
 While executing target install-host-libbfd, the build system complains:

 make -C libbfd-binutils-2.20.1/bfd install \
 bfdlibdir=/tmp/android-toolchain-eabi/lib
 bfdincludedir=/tmp/android-toolchain-eabi/include  \ -m 644
 libbfd-binutils-2.20.1/intl/libintl.a \ /tmp/android-toolchain-eabi/lib
  \ -m 644 libbfd-binutils-2.20.1/libiberty/libiberty.a \
 /tmp/android-toolchain-eabi/lib

 /bin/sh: line 2: -m: command not found

 The problem was caused by undefined $(INSTALL). The patch attempts to
 configure `install' program by autotool in order to set $(INSTALL)
 properly and replace $(INSTALL) -m 644 with multi-platform friendly
 $(INSTALL_DATA).

 Code Review:
    https://review.source.android.com/#change,23179

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


Re: [PATCH v7 01/11] mmc: add non-blocking mmc request function

2011-06-22 Thread Per Forlin
On 22 June 2011 09:42, Venkatraman S svenk...@ti.com wrote:
 On Wed, Jun 22, 2011 at 5:08 AM, Per Forlin per.for...@linaro.org wrote:
 Previously there has only been one function mmc_wait_for_req()
 to start and wait for a request. This patch adds
  * mmc_start_req() - starts a request wihtout waiting
   If there is on ongoing request wait for completion
   of that request and start the new one and return.
   Does not wait for the new command to complete.

 This patch also adds new function members in struct mmc_host_ops
 only called from core.c
  * pre_req - asks the host driver to prepare for the next job
  * post_req - asks the host driver to clean up after a completed job

 The intention is to use pre_req() and post_req() to do cache maintenance
 while a request is active. pre_req() can be called while a request is active
 to minimize latency to start next job. post_req() can be used after the next
 job is started to clean up the request. This will minimize the host driver
 request end latency. post_req() is typically used before ending the block
 request and handing over the buffer to the block layer.

 Add a host-private member in mmc_data to be used by
 pre_req to mark the data. The host driver will then
 check this mark to see if the data is prepared or not.

 Signed-off-by: Per Forlin per.for...@linaro.org
 ---
  drivers/mmc/core/core.c  |  110 
 +
  include/linux/mmc/core.h |    6 ++-
  include/linux/mmc/host.h |   21 +
  3 files changed, 126 insertions(+), 11 deletions(-)

 diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c
 index 68091dd..c82fa3b 100644
 --- a/drivers/mmc/core/core.c
 +++ b/drivers/mmc/core/core.c
 @@ -198,9 +198,106 @@ mmc_start_request(struct mmc_host *host, struct 
 mmc_request *mrq)

  static void mmc_wait_done(struct mmc_request *mrq)
  {
 -       complete(mrq-done_data);
 +       complete(mrq-completion);
  }

 +static void __mmc_start_req(struct mmc_host *host, struct mmc_request *mrq)
 +{
 +       init_completion(mrq-completion);
 +       mrq-done = mmc_wait_done;
 +       mmc_start_request(host, mrq);
 +}
 +
 +static void mmc_wait_for_req_done(struct mmc_host *host,
 +                                 struct mmc_request *mrq)
 +{
 +       wait_for_completion(mrq-completion);
 +}
 +
 +/**
 + *     mmc_pre_req - Prepare for a new request
 + *     @host: MMC host to prepare command
 + *     @mrq: MMC request to prepare for
 + *     @is_first_req: true if there is no previous started request
 + *                     that may run in parellel to this call, otherwise 
 false
 + *
 + *     mmc_pre_req() is called in prior to mmc_start_req() to let
 + *     host prepare for the new request. Preparation of a request may be
 + *     performed while another request is running on the host.
 + */
 +static void mmc_pre_req(struct mmc_host *host, struct mmc_request *mrq,
 +                bool is_first_req)
 +{
 +       if (host-ops-pre_req)
 +               host-ops-pre_req(host, mrq, is_first_req);
 +}
 +
 +/**
 + *     mmc_post_req - Post process a completed request
 + *     @host: MMC host to post process command
 + *     @mrq: MMC request to post process for
 + *     @err: Error, if non zero, clean up any resources made in pre_req
 + *
 + *     Let the host post process a completed request. Post processing of
 + *     a request may be performed while another reuqest is running.
 + */
 +static void mmc_post_req(struct mmc_host *host, struct mmc_request *mrq,
 +                        int err)
 +{
 +       if (host-ops-post_req)
 +               host-ops-post_req(host, mrq, err);
 +}
 +
 +/**
 + *     mmc_start_req - start a non-blocking request
 + *     @host: MMC host to start command
 + *     @areq: async request to start
 + *     @error: out parameter returns 0 for success, otherwise non zero
 + *
 + *     Start a new MMC custom command request for a host.
 + *     If there is on ongoing async request wait for completion
 + *     of that request and start the new one and return.
 + *     Does not wait for the new request to complete.
 + *
 + *     Returns the completed async request, NULL in case of none completed.
 + */
 +struct mmc_async_req *mmc_start_req(struct mmc_host *host,
 +                                   struct mmc_async_req *areq, int *error)
 +{
 +       int err = 0;
 +       struct mmc_async_req *data = host-areq;
 +
 +       /* Prepare a new request */
 +       if (areq)
 +               mmc_pre_req(host, areq-mrq, !host-areq);
 +
 +       if (host-areq) {
 +               mmc_wait_for_req_done(host, host-areq-mrq);
 +               err = host-areq-err_check(host-card, host-areq);
 +               if (err) {
 +                       mmc_post_req(host, host-areq-mrq, 0);
 +                       if (areq)
 +                               mmc_post_req(host, areq-mrq, -EINVAL);
 +
 +                       host-areq = NULL;
 +                       goto out;
 In this sequence, would the return value 

[PATCH android/bionic] strftime: Use snprintf() instead of sprintf()

2011-06-22 Thread Jim Huang
Code Review:
https://review.source.android.com/#change,23997
From afd989ca9f3415df9807847745e854522866f66f Mon Sep 17 00:00:00 2001
From: Jim Huang jim.hu...@linaro.org
Date: Thu, 16 Jun 2011 22:35:16 +0800
Subject: [PATCH 1/2] strftime: Use snprintf() instead of sprintf()

Change-Id: I112ac012894eddc96e5f3e77cb87bb300596e3ce
---
 libc/tzcode/strftime.c |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/libc/tzcode/strftime.c b/libc/tzcode/strftime.c
index ab713fb..d35d58a 100644
--- a/libc/tzcode/strftime.c
+++ b/libc/tzcode/strftime.c
@@ -407,9 +407,9 @@ label:
 tm = *t;
 mkt = mktime64(tm);
 if (TYPE_SIGNED(time64_t))
-(void) sprintf(buf, %lld,
+(void) snprintf(buf, %lld, sizeof(buf),
 (long long) mkt);
-else(void) sprintf(buf, %llu,
+else(void) snprintf(buf, %llu, sizeof(buf),
 (unsigned long long) mkt);
 pt = _add(buf, pt, ptlim, modifier);
 }
-- 
1.7.5.4

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


Re: [PATCH v7 01/11] mmc: add non-blocking mmc request function

2011-06-22 Thread S, Venkatraman
On Wed, Jun 22, 2011 at 2:15 PM, Per Forlin per.for...@linaro.org wrote:
 On 22 June 2011 09:42, Venkatraman S svenk...@ti.com wrote:
 On Wed, Jun 22, 2011 at 5:08 AM, Per Forlin per.for...@linaro.org wrote:
 Previously there has only been one function mmc_wait_for_req()
 to start and wait for a request. This patch adds
  * mmc_start_req() - starts a request wihtout waiting
   If there is on ongoing request wait for completion
   of that request and start the new one and return.
   Does not wait for the new command to complete.

 This patch also adds new function members in struct mmc_host_ops
 only called from core.c
  * pre_req - asks the host driver to prepare for the next job
  * post_req - asks the host driver to clean up after a completed job

 The intention is to use pre_req() and post_req() to do cache maintenance
 while a request is active. pre_req() can be called while a request is active
 to minimize latency to start next job. post_req() can be used after the next
 job is started to clean up the request. This will minimize the host driver
 request end latency. post_req() is typically used before ending the block
 request and handing over the buffer to the block layer.

 Add a host-private member in mmc_data to be used by
 pre_req to mark the data. The host driver will then
 check this mark to see if the data is prepared or not.

 Signed-off-by: Per Forlin per.for...@linaro.org
 ---
  drivers/mmc/core/core.c  |  110 
 +
  include/linux/mmc/core.h |    6 ++-
  include/linux/mmc/host.h |   21 +
  3 files changed, 126 insertions(+), 11 deletions(-)

 diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c
 index 68091dd..c82fa3b 100644
 --- a/drivers/mmc/core/core.c
 +++ b/drivers/mmc/core/core.c
 @@ -198,9 +198,106 @@ mmc_start_request(struct mmc_host *host, struct 
 mmc_request *mrq)

  static void mmc_wait_done(struct mmc_request *mrq)
  {
 -       complete(mrq-done_data);
 +       complete(mrq-completion);
  }

 +static void __mmc_start_req(struct mmc_host *host, struct mmc_request *mrq)
 +{
 +       init_completion(mrq-completion);
 +       mrq-done = mmc_wait_done;
 +       mmc_start_request(host, mrq);
 +}
 +
 +static void mmc_wait_for_req_done(struct mmc_host *host,
 +                                 struct mmc_request *mrq)
 +{
 +       wait_for_completion(mrq-completion);
 +}
 +
 +/**
 + *     mmc_pre_req - Prepare for a new request
 + *     @host: MMC host to prepare command
 + *     @mrq: MMC request to prepare for
 + *     @is_first_req: true if there is no previous started request
 + *                     that may run in parellel to this call, otherwise 
 false
 + *
 + *     mmc_pre_req() is called in prior to mmc_start_req() to let
 + *     host prepare for the new request. Preparation of a request may be
 + *     performed while another request is running on the host.
 + */
 +static void mmc_pre_req(struct mmc_host *host, struct mmc_request *mrq,
 +                bool is_first_req)
 +{
 +       if (host-ops-pre_req)
 +               host-ops-pre_req(host, mrq, is_first_req);
 +}
 +
 +/**
 + *     mmc_post_req - Post process a completed request
 + *     @host: MMC host to post process command
 + *     @mrq: MMC request to post process for
 + *     @err: Error, if non zero, clean up any resources made in pre_req
 + *
 + *     Let the host post process a completed request. Post processing of
 + *     a request may be performed while another reuqest is running.
 + */
 +static void mmc_post_req(struct mmc_host *host, struct mmc_request *mrq,
 +                        int err)
 +{
 +       if (host-ops-post_req)
 +               host-ops-post_req(host, mrq, err);
 +}
 +
 +/**
 + *     mmc_start_req - start a non-blocking request
 + *     @host: MMC host to start command
 + *     @areq: async request to start
 + *     @error: out parameter returns 0 for success, otherwise non zero
 + *
 + *     Start a new MMC custom command request for a host.
 + *     If there is on ongoing async request wait for completion
 + *     of that request and start the new one and return.
 + *     Does not wait for the new request to complete.
 + *
 + *     Returns the completed async request, NULL in case of none completed.
 + */
 +struct mmc_async_req *mmc_start_req(struct mmc_host *host,
 +                                   struct mmc_async_req *areq, int *error)
 +{
 +       int err = 0;
 +       struct mmc_async_req *data = host-areq;
 +
 +       /* Prepare a new request */
 +       if (areq)
 +               mmc_pre_req(host, areq-mrq, !host-areq);
 +
 +       if (host-areq) {
 +               mmc_wait_for_req_done(host, host-areq-mrq);
 +               err = host-areq-err_check(host-card, host-areq);
 +               if (err) {
 +                       mmc_post_req(host, host-areq-mrq, 0);
 +                       if (areq)
 +                               mmc_post_req(host, areq-mrq, -EINVAL);
 +
 +                       host-areq = NULL;
 +    

[PATCH android/bionic] time: Improve C99 compliance

2011-06-22 Thread Jim Huang
Quote from Linux Programmer's Manual:
If t is non-NULL, the return value is also stored in the memory
pointed to by t.

Code Review:
https://review.source.android.com/#change,23998
From 30a19b9cdbe509d62c7d4c5df9a6daab13ff8857 Mon Sep 17 00:00:00 2001
From: Jim Huang jim.hu...@linaro.org
Date: Thu, 16 Jun 2011 22:40:10 +0800
Subject: [PATCH 2/2] time: Improve C99 compliance

Quote from Linux Programmer's Manual:
  If t is non-NULL, the return value is also stored in the memory
   pointed to by t.

Change-Id: I8cb66b67e5f34c536ce2f0db76a6dc337c42ea3f
---
 libc/unistd/time.c |   11 +++
 1 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/libc/unistd/time.c b/libc/unistd/time.c
index 13d7366..7b450c7 100644
--- a/libc/unistd/time.c
+++ b/libc/unistd/time.c
@@ -34,12 +34,15 @@ time_t
 time(time_t *t)
 {
 	struct timeval tt;
+	time_t ret;
 
 	if (gettimeofday(tt, (struct timezone *)0)  0)
-		return (-1);
-	if (t)
-		*t = (time_t)tt.tv_sec;
-	return (tt.tv_sec);
+		ret = -1;
+	else
+		ret = tt.tv_sec;
+	if (t != NULL)
+		*t = ret;
+	return ret;
 }
 
 
-- 
1.7.5.4

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


Re: [PATCH v7 01/11] mmc: add non-blocking mmc request function

2011-06-22 Thread Per Forlin
On 22 June 2011 10:53, S, Venkatraman svenk...@ti.com wrote:
 On Wed, Jun 22, 2011 at 2:15 PM, Per Forlin per.for...@linaro.org wrote:
 On 22 June 2011 09:42, Venkatraman S svenk...@ti.com wrote:
 On Wed, Jun 22, 2011 at 5:08 AM, Per Forlin per.for...@linaro.org wrote:
 Previously there has only been one function mmc_wait_for_req()
 to start and wait for a request. This patch adds
  * mmc_start_req() - starts a request wihtout waiting
   If there is on ongoing request wait for completion
   of that request and start the new one and return.
   Does not wait for the new command to complete.

 This patch also adds new function members in struct mmc_host_ops
 only called from core.c
  * pre_req - asks the host driver to prepare for the next job
  * post_req - asks the host driver to clean up after a completed job

 The intention is to use pre_req() and post_req() to do cache maintenance
 while a request is active. pre_req() can be called while a request is 
 active
 to minimize latency to start next job. post_req() can be used after the 
 next
 job is started to clean up the request. This will minimize the host driver
 request end latency. post_req() is typically used before ending the block
 request and handing over the buffer to the block layer.

 Add a host-private member in mmc_data to be used by
 pre_req to mark the data. The host driver will then
 check this mark to see if the data is prepared or not.

 Signed-off-by: Per Forlin per.for...@linaro.org
 ---
  drivers/mmc/core/core.c  |  110 
 +
  include/linux/mmc/core.h |    6 ++-
  include/linux/mmc/host.h |   21 +
  3 files changed, 126 insertions(+), 11 deletions(-)

 diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c
 index 68091dd..c82fa3b 100644
 --- a/drivers/mmc/core/core.c
 +++ b/drivers/mmc/core/core.c
 @@ -198,9 +198,106 @@ mmc_start_request(struct mmc_host *host, struct 
 mmc_request *mrq)

  static void mmc_wait_done(struct mmc_request *mrq)
  {
 -       complete(mrq-done_data);
 +       complete(mrq-completion);
  }

 +static void __mmc_start_req(struct mmc_host *host, struct mmc_request 
 *mrq)
 +{
 +       init_completion(mrq-completion);
 +       mrq-done = mmc_wait_done;
 +       mmc_start_request(host, mrq);
 +}
 +
 +static void mmc_wait_for_req_done(struct mmc_host *host,
 +                                 struct mmc_request *mrq)
 +{
 +       wait_for_completion(mrq-completion);
 +}
 +
 +/**
 + *     mmc_pre_req - Prepare for a new request
 + *     @host: MMC host to prepare command
 + *     @mrq: MMC request to prepare for
 + *     @is_first_req: true if there is no previous started request
 + *                     that may run in parellel to this call, otherwise 
 false
 + *
 + *     mmc_pre_req() is called in prior to mmc_start_req() to let
 + *     host prepare for the new request. Preparation of a request may be
 + *     performed while another request is running on the host.
 + */
 +static void mmc_pre_req(struct mmc_host *host, struct mmc_request *mrq,
 +                bool is_first_req)
 +{
 +       if (host-ops-pre_req)
 +               host-ops-pre_req(host, mrq, is_first_req);
 +}
 +
 +/**
 + *     mmc_post_req - Post process a completed request
 + *     @host: MMC host to post process command
 + *     @mrq: MMC request to post process for
 + *     @err: Error, if non zero, clean up any resources made in pre_req
 + *
 + *     Let the host post process a completed request. Post processing of
 + *     a request may be performed while another reuqest is running.
 + */
 +static void mmc_post_req(struct mmc_host *host, struct mmc_request *mrq,
 +                        int err)
 +{
 +       if (host-ops-post_req)
 +               host-ops-post_req(host, mrq, err);
 +}
 +
 +/**
 + *     mmc_start_req - start a non-blocking request
 + *     @host: MMC host to start command
 + *     @areq: async request to start
 + *     @error: out parameter returns 0 for success, otherwise non zero
 + *
 + *     Start a new MMC custom command request for a host.
 + *     If there is on ongoing async request wait for completion
 + *     of that request and start the new one and return.
 + *     Does not wait for the new request to complete.
 + *
 + *     Returns the completed async request, NULL in case of none 
 completed.
 + */
 +struct mmc_async_req *mmc_start_req(struct mmc_host *host,
 +                                   struct mmc_async_req *areq, int *error)
 +{
 +       int err = 0;
 +       struct mmc_async_req *data = host-areq;
 +
 +       /* Prepare a new request */
 +       if (areq)
 +               mmc_pre_req(host, areq-mrq, !host-areq);
 +
 +       if (host-areq) {
 +               mmc_wait_for_req_done(host, host-areq-mrq);
 +               err = host-areq-err_check(host-card, host-areq);
 +               if (err) {
 +                       mmc_post_req(host, host-areq-mrq, 0);
 +                       if (areq)
 +                               mmc_post_req(host, 

Re: [RFC] Add Arm cpu topology definition

2011-06-22 Thread Catalin Marinas
On Tue, Jun 21, 2011 at 01:36:15PM -0700, Stephen Boyd wrote:
 On 06/16/2011 11:54 PM, Vincent Guittot wrote:
  On 16 June 2011 21:40, Stephen Boyd sb...@codeaurora.org wrote:
  The ARM ARM says these fields are IMPLEMENTATION DEFINED meaning that
  different vendors may attribute different meaning to these fields if
  they wish. Does that mean this should be a platform_*() function?
 
  The ARM ARM also provides a recommended use of the fields of this
  register and the TRM of each Cortex adds some details. On the cortex
  A9, each platform can only set the value of the Cluster ID with the
  CLUSTERID pins. I have tried to consolidate the value of MPIDR  across
  several platforms and they all match with the description.
 
  Have you got an example of a MPIDR register which doesn't match with
  the implementation ?
 
 Not that I know of. I'm more concerned with how the ARM ARM has two
 recommended usages for these fields depending on virtualization or not.
 I suppose we can handle that issue when it arises (or does your
 implementation already handle that?)

According to the ARM ARM:

MPIDR provides a mechanism with up to three levels of affinity
information, but the meaning of those levels of affinity is
entirely IMPLEMENTATION DEFINED.

So we can't really tell the meaning of the affinity bits. There are two
recommended ways indeed (with or without virtualisation) which are not
that different with regards to the topology (just introducing another
level for virtual CPUs).

But I think a more general solution would be for the CPU topology to be
provided via the FDT.

-- 
Catalin

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


Re: Meeting request

2011-06-22 Thread Eric Miao
On Wed, Jun 22, 2011 at 3:11 PM, Eric Miao eric.m...@canonical.com wrote:
 On Wed, Jun 22, 2011 at 2:01 PM, Ashish Jangam
 ashish.jan...@kpitcummins.com wrote:
 -Original Message-
 From: eric.y.m...@gmail.com [mailto:eric.y.m...@gmail.com] On Behalf Of Eric
 Miao
 Sent: Tuesday, June 21, 2011 6:55 PM
 To: Ashish Jangam
 Cc: Ying-Chun Liu (PaulLiu); eric.m...@linaro.org; Steve Cozens; linaro-
 d...@lists.linaro.org; Mark Brown; Dajun Chen; Prashant Deshpande
 Subject: Re: Meeting request

 On Tue, Jun 21, 2011 at 8:29 PM, Ashish Jangam
 ashish.jan...@kpitcummins.com wrote:
 
  -Original Message-
  From: eric.y.m...@gmail.com [mailto:eric.y.m...@gmail.com] On Behalf Of
 Eric
  Miao
  Sent: Tuesday, June 21, 2011 5:52 PM
  To: Ashish Jangam
  Cc: Ying-Chun Liu (PaulLiu); eric.m...@linaro.org; Steve Cozens; linaro-
  d...@lists.linaro.org; Mark Brown; Dajun Chen; Prashant Deshpande
  Subject: Re: Meeting request
 
  On Tue, Jun 21, 2011 at 6:24 PM, Ashish Jangam
  ashish.jan...@kpitcummins.com wrote:
   -Original Message-
   From: eric.y.m...@gmail.com [mailto:eric.y.m...@gmail.com] On Behalf 
   Of
  Eric
   Miao
   Sent: Tuesday, June 21, 2011 3:28 PM
   To: Ashish Jangam; Ying-Chun Liu (PaulLiu)
   Cc: eric.m...@linaro.org; Steve Cozens; linaro-dev@lists.linaro.org;
 Mark
   Brown; Dajun Chen; Prashant Deshpande
   Subject: Re: Meeting request
  
   On Tue, Jun 21, 2011 at 5:57 PM, Eric Miao eric.m...@canonical.com
 wrote:
On Tue, Jun 21, 2011 at 4:21 PM, Ashish Jangam
ashish.jan...@kpitcummins.com wrote:
Hi Eric,
   
I recently saw your mail to Dajun, on your people eagerness to get
 the
   patches upstream soon. We also hold the same vision to get the patches
   upstream as quick as possible.
   
In this regard we like to have a discussion so please let us know
 your
   convenient time. Please note that as of now we do not have any 
   technical
   issues on patches but there is a need to understand the patch 
   submission
   process so we can focus our discussion accordingly.
   
   
Thanks Ashish to bring this forword.
   
I'm in TZ GMT+8, and I think Mark is in Scottland, which is GMT+1?
  Anyway,
tomorrow and Friday will be fine to me, depending on your location 
and
 a
time slot that works for all of us, there could be not many choices 
:-
 )
   
Include Paul Liu, he's working on the PMIC upstreaming as well, he's
 in
  the
same TZ as I am.
   
   Below are time slots in preference order (hopefully for all) for
 Wednesday
  meeting:-
   1) GMT+8 == 05:00pm; GMT+1 == 10:00am; GMT+5.5 == 02:30pm
   2) GMT+8 == 04:00pm; GMT+1 == 09:00am; GMT+5.5 == 01:30pm
   3) GMT+8 == 06:00pm; GMT+1 == 11:00am; GMT+5.5 == 03:30pm
   Let me know which time slot suits you all.
 
  Hi Ashish,
 
  Option 1) works for me and Paul Liu.
 
  Thanks.
  Kindly share your contact details so that we can get connected.

 You can use my linaro email address of cuz: eric.m...@linaro.org

 For today's conference please dial:-
 +91 20 6652 5000 - press 1 - press 80867 - press 1.

 For any assistance please call the telecom team on 91 20 66525000.

 Kindly note, that this is not a Toll free number. In case your all not
 comfortable with this number then give me your phone number so that I
 can put all of us in a conference call.

 I can use skype to dial in. Yet not really sure about the other guys.


Guys,

Sorry seems I have problem to get my skype back online. Can we reschedule
this to another time slot?

And thanks Ashish to bring this up - this really helps a lot for us to co-work.
I'll send some basic ideas a bit later.

- eric

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


ARM Blog : Linux debug with the DS-5 Debugger

2011-06-22 Thread Roger Teague

a recently-released blog describing Linux debug with the DS-5 Debugger:
http://blogs.arm.com/software-enablement/486-porting-linux-made-easy-with-ds-5/

This was originally triggered by successful use of DS-5 in porting Linux to 
Tuscan dual-A9 platform.

Ta


-- IMPORTANT NOTICE: The contents of this email and any attachments are 
confidential and may also be privileged. If you are not the intended recipient, 
please notify the sender immediately and do not disclose the contents to any 
other person, use it for any purpose, or store or copy the information in any 
medium. Thank you.___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: [PATCH v7 02/11] omap_hsmmc: add support for pre_req and post_req

2011-06-22 Thread Per Forlin
On 22 June 2011 10:51, Nickolay Nickolaev nicknickol...@gmail.com wrote:
 Hello,

 this one's causing me compilation trouble troubles when CONFIG_DMA_ENGINE is
 not defined.

I don't see this issue when I compile the kernel for a Pandaboard
without CONFIG_DMA_ENGINE being set. Could you please clarify or show
me your build log?
I don't see how host-next_data.cookie is connected to DMA_ENGINE.

 On Wed, Jun 22, 2011 at 2:38 AM, Per Forlin per.for...@linaro.org wrote:

 @@ -2077,6 +2155,7 @@ static int __init omap_hsmmc_probe(struct
 platform_device *pdev)
        host-mapbase   = res-start;
        host-base      = ioremap(host-mapbase, SZ_4K);
        host-power_mode = MMC_POWER_OFF;
 +       host-next_data.cookie = 1;

        platform_set_drvdata(pdev, host);
        INIT_WORK(host-mmc_carddetect_work, omap_hsmmc_detect);
 --
 1.7.4.1



 Maybe we can wrap it in a function as the others.

 regards,
 Nikolay Nikolaev


Regards,
Per

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


OMAP3 Core dpll fix

2011-06-22 Thread Vishwanath Sripathy
Hi Nicolas,

Can you pls pull below patch from 2.6.39 mainline kernel into 11.5
Linaro kernel? This would fix some of the DVFS related issues seen on
OMAP3.
Patch:
commit 5fd2a84ab3c8b87176e25db1d98c5cc34043a669
Author: Avinash H.M avinas...@ti.com
OMAP3: set the core dpll clk rate in its set_rate function

Vishwa

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


Re: [PATCH v7 02/11] omap_hsmmc: add support for pre_req and post_req

2011-06-22 Thread Per Forlin
On 22 June 2011 11:31, Per Forlin per.for...@linaro.org wrote:
 On 22 June 2011 10:51, Nickolay Nickolaev nicknickol...@gmail.com wrote:
 Hello,

 this one's causing me compilation trouble troubles when CONFIG_DMA_ENGINE is
 not defined.

 I don't see this issue when I compile the kernel for a Pandaboard
 without CONFIG_DMA_ENGINE being set. Could you please clarify or show
 me your build log?
 I don't see how host-next_data.cookie is connected to DMA_ENGINE.

I think you are referring to the mmci-patch. I'll fix the issue in mmci.

 On Wed, Jun 22, 2011 at 2:38 AM, Per Forlin per.for...@linaro.org wrote:

 @@ -2077,6 +2155,7 @@ static int __init omap_hsmmc_probe(struct
 platform_device *pdev)
        host-mapbase   = res-start;
        host-base      = ioremap(host-mapbase, SZ_4K);
        host-power_mode = MMC_POWER_OFF;
 +       host-next_data.cookie = 1;

        platform_set_drvdata(pdev, host);
        INIT_WORK(host-mmc_carddetect_work, omap_hsmmc_detect);
 --
 1.7.4.1



 Maybe we can wrap it in a function as the others.

 regards,
 Nikolay Nikolaev


 Regards,
 Per


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


RE: Launchpad blueprints for the 11.11 work - part 1

2011-06-22 Thread Kui Zheng
 On 22/06/11 10:43, Ilias Biris wrote:
  On 22/06/11 09:16, Joe Yu wrote:
  Hi Ilias,
 
 
  TR blueprints are generally for larger umbrella activities - usually
  those get broken into the so called engineering (you may also see the
  term work) blueprints upon which the TR blueprints depend in order to
  cover the themes for the cycle.
 

 Hi Joe,

 I have now created for you a blueprint to capture the requirements for
 the directfb optimization work for 12.05. Keep in mind that Linaro is
 now moving to a monthly cadence, with quarterly reviews of the plans and
 requirements. So it's possible your work can be targeted earlier than
 May.2012.

 The blueprint is in
 https://blueprints.launchpad.net/linaro-multimedia-wg/+spec/engr-multimedia
 -directfb-neon-optimization

 Blueprint instructions: https://wiki.linaro.org/Process/Blueprints

 Your task would be to use the blueprint whiteboard to summarize any
 requirements or action items.

 You could also start writing a more detailed specification using the
 Linaro wiki. Let me know if you are ready to proceed writing a spec now,
 so that I can create a template wiki page which you can use to fill in
 the technical details. There is a clear separation between a blueprint
 (in launchpad, just a summary-assignment-timeline info, holds the work
 items list), and specification (in wiki, can be a lengthier technical
 account of what the design decisions are)

 If you let me know your launchpad id I can also add you as assignee of
 the said blueprint above.

HI Ilias,
This is Kui, working on DirectFB optimization, ARM Shanghai. Pls help to add me 
as assignee, my launchpad id is kui.zheng
Then, I'll draft blueprint and spec.

Thanks
-Kui

-- IMPORTANT NOTICE: The contents of this email and any attachments are 
confidential and may also be privileged. If you are not the intended recipient, 
please notify the sender immediately and do not disclose the contents to any 
other person, use it for any purpose, or store or copy the information in any 
medium.  Thank you.


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


Re: Please help us setup patches.linaro.org

2011-06-22 Thread Dave Martin
On Tue, Jun 21, 2011 at 03:27:07PM -0300, Guilherme Salgado wrote:
 Hi Dave,
 
 Thanks for reporting it.  This was fallout from when IS restarted the
 machine to add more disk, and they're working on it right now. It should
 be fixed RSN.

It seems to be working again now.

Thanks!
---Dave

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


Re: [PATCH v7 03/11] mmci: implement pre_req() and post_req()

2011-06-22 Thread Per Forlin
On 22 June 2011 01:38, Per Forlin per.for...@linaro.org wrote:
 pre_req() runs dma_map_sg() and prepares the dma descriptor
 for the next mmc data transfer. post_req() runs dma_unmap_sg.
 If not calling pre_req() before mmci_request(), mmci_request()
 will prepare the cache and dma just like it did it before.
 It is optional to use pre_req() and post_req() for mmci.

 Signed-off-by: Per Forlin per.for...@linaro.org
 ---
  drivers/mmc/host/mmci.c |  146 ++
  drivers/mmc/host/mmci.h |    8 +++
  2 files changed, 141 insertions(+), 13 deletions(-)

...
 @@ -1005,6 +1123,8 @@ static int __devinit mmci_probe(struct amba_device *dev,
        host-gpio_cd = -ENOSYS;
        host-gpio_cd_irq = -1;

 +       host-next_data.cookie = 1;
 +
Doesn't compile without DMA_ENGINE. Issue reported by Nickolay.

I simply move the initialization to mmci_dma_setup. I will update in
the next patchset.

@@ -215,6 +215,9 @@ static void __devinit mmci_dma_setup(struct mmci_host *host)
+   /* initialize pre request cookie */
+   host-next_data.cookie = 1;
+
@@ -1121,8 +1124,6 @@ static int __devinit mmci_probe(struct amba_device *dev,
-   host-next_data.cookie = 1;

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


Re: [RFC PATCH v2] Add ARM cpu topology definition

2011-06-22 Thread Amit Kucheria
Some nits below.

After you fix them, you can add a
Reviewed-by: Amit Kucheria amit.kuche...@linaro.org

On 11 Jun 20, Vincent Guittot wrote:
 The affinity between ARM processors is defined in the MPIDR register.
 We can identify which processors are in the same cluster,
 and which ones have performance interdependency.We can define the
 ^^ space between full-stop
 and next word
 cpu topology of ARM platform, which is used by sched_mc and sched_smt.
 change to 'that is then' 
 The default state of sched_mc and sched_smt config is disable.

Change to sched_mc and sched_smt is disabled by default

 When enable, the behavior of the scheduler can be modified with
 ^ enabled
 sched_mc_power_savings and sched_smt_power_savings sysfs interfaces.
 
 Changes since v1 :
 * Update the commit message
 * Add read_cpuid_mpidr in arch/arm/include/asm/cputype.h
 * Modify header of arch/arm/kernel/topology.c
 * Modify tests and manipulation of MPIDR's bitfields
 * Modify the place and dependancy of the config
 * Modify Noop functions
 
 Signed-off-by: Vincent Guittot vincent.guit...@linaro.org
 ---
  arch/arm/Kconfig|   25 +++
  arch/arm/include/asm/cputype.h  |6 ++
  arch/arm/include/asm/topology.h |   33 +
  arch/arm/kernel/Makefile|1 +
  arch/arm/kernel/smp.c   |6 ++
  arch/arm/kernel/topology.c  |  145 
 +++
  6 files changed, 216 insertions(+), 0 deletions(-)
  create mode 100644 arch/arm/kernel/topology.c
 
 diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
 index 9adc278..c7b4ff9 100644
 --- a/arch/arm/Kconfig
 +++ b/arch/arm/Kconfig
 @@ -1344,6 +1344,31 @@ config SMP_ON_UP
  
 If you don't know what to do here, say Y.
  
 +config ARM_CPU_TOPOLOGY
 + bool Support cpu topology definition
 + depends on SMP  CPU_V7
 + default y
 + help
 +   Support ARM cpu topology definition. The MPIDR register defines
 +   affinity between processors which is used to set the cpu
  ^ change to 
'which is then
  used to describe the'
 +   topology of an ARM System.
 +
 +config SCHED_MC
 + bool Multi-core scheduler support
 + depends on ARM_CPU_TOPOLOGY
 + help
 +   Multi-core scheduler support improves the CPU scheduler's decision
 +   making when dealing with multi-core CPU chips at a cost of slightly
 +   increased overhead in some places. If unsure say N here.
 +
 +config SCHED_SMT
 + bool SMT scheduler support
 + depends on ARM_CPU_TOPOLOGY
 + help
 +   Improves the CPU scheduler's decision making when dealing with
 +   MultiThreading at a cost of slightly increased overhead in some
 +   places. If unsure say N here.
 +
  config HAVE_ARM_SCU
   bool
   depends on SMP
 diff --git a/arch/arm/include/asm/cputype.h b/arch/arm/include/asm/cputype.h
 index cd4458f..cb47d28 100644
 --- a/arch/arm/include/asm/cputype.h
 +++ b/arch/arm/include/asm/cputype.h
 @@ -8,6 +8,7 @@
  #define CPUID_CACHETYPE  1
  #define CPUID_TCM2
  #define CPUID_TLBTYPE3
 +#define CPUID_MPIDR  5
  
  #define CPUID_EXT_PFR0   c1, 0
  #define CPUID_EXT_PFR1   c1, 1
 @@ -70,6 +71,11 @@ static inline unsigned int __attribute_const__ 
 read_cpuid_tcmstatus(void)
   return read_cpuid(CPUID_TCM);
  }
  
 +static inline unsigned int __attribute_const__ read_cpuid_mpidr(void)
 +{
 + return read_cpuid(CPUID_MPIDR);
 +}
 +
  /*
   * Intel's XScale3 core supports some v6 features (supersections, L2)
   * but advertises itself as v5 as it does not support the v6 ISA.  For
 diff --git a/arch/arm/include/asm/topology.h b/arch/arm/include/asm/topology.h
 index accbd7c..63a7454 100644
 --- a/arch/arm/include/asm/topology.h
 +++ b/arch/arm/include/asm/topology.h
 @@ -1,6 +1,39 @@
  #ifndef _ASM_ARM_TOPOLOGY_H
  #define _ASM_ARM_TOPOLOGY_H
  
 +#ifdef CONFIG_ARM_CPU_TOPOLOGY
 +
 +#include linux/cpumask.h
 +
 +struct cputopo_arm {
 + int thread_id;
 + int core_id;
 + int socket_id;
 + cpumask_t thread_sibling;
 + cpumask_t core_sibling;
 +};
 +
 +extern struct cputopo_arm cpu_topology[NR_CPUS];
 +
 +#define topology_physical_package_id(cpu)(cpu_topology[cpu].socket_id)
 +#define topology_core_id(cpu)(cpu_topology[cpu].core_id)
 +#define topology_core_cpumask(cpu)   ((cpu_topology[cpu].core_sibling))
 +#define topology_thread_cpumask(cpu) ((cpu_topology[cpu].thread_sibling))

These #defines are not used anywhere.

 +#define mc_capable() (cpu_topology[0].socket_id != -1)
 +#define smt_capable()(cpu_topology[0].thread_id != -1)

Neither are these.

 +void init_cpu_topology(void);
 +void store_cpu_topology(unsigned int cpuid);
 +const struct cpumask *cpu_coregroup_mask(unsigned 

[PATCH] mmci: move dmaengine dependent access from mmci_probe to mmci_dma_setup

2011-06-22 Thread Per Forlin
From: Per Forlin per.for...@linaro.org

Move dmaengine dependent host-next_data variable from mmci_probe to
mmci_dma_setup. The mmci fails to compile without CONFIG_DMA_ENGINE
if using next_data in mmci_probe.

Signed-off-by: Per Forlin per.for...@linaro.org
---
 drivers/mmc/host/mmci.c |5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/mmc/host/mmci.c b/drivers/mmc/host/mmci.c
index f8c837b..04b9856 100644
--- a/drivers/mmc/host/mmci.c
+++ b/drivers/mmc/host/mmci.c
@@ -213,6 +213,9 @@ static void __devinit mmci_dma_setup(struct mmci_host *host)
return;
}
 
+   /* initialize pre request cookie */
+   host-next_data.cookie = 1;
+
/* Try to acquire a generic DMA engine slave channel */
dma_cap_zero(mask);
dma_cap_set(DMA_SLAVE, mask);
@@ -1123,8 +1126,6 @@ static int __devinit mmci_probe(struct amba_device *dev,
host-gpio_cd = -ENOSYS;
host-gpio_cd_irq = -1;
 
-   host-next_data.cookie = 1;
-
host-hw_designer = amba_manf(dev);
host-hw_revision = amba_rev(dev);
dev_dbg(mmc_dev(mmc), designer ID = 0x%02x\n, host-hw_designer);
-- 
1.7.4.1


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


Re: [RFC] Add Arm cpu topology definition

2011-06-22 Thread Amit Kucheria
On 11 Jun 22, Catalin Marinas wrote:
 On Tue, Jun 21, 2011 at 01:36:15PM -0700, Stephen Boyd wrote:
  On 06/16/2011 11:54 PM, Vincent Guittot wrote:
   On 16 June 2011 21:40, Stephen Boyd sb...@codeaurora.org wrote:
   The ARM ARM says these fields are IMPLEMENTATION DEFINED meaning that
   different vendors may attribute different meaning to these fields if
   they wish. Does that mean this should be a platform_*() function?
  
   The ARM ARM also provides a recommended use of the fields of this
   register and the TRM of each Cortex adds some details. On the cortex
   A9, each platform can only set the value of the Cluster ID with the
   CLUSTERID pins. I have tried to consolidate the value of MPIDR  across
   several platforms and they all match with the description.
  
   Have you got an example of a MPIDR register which doesn't match with
   the implementation ?
  
  Not that I know of. I'm more concerned with how the ARM ARM has two
  recommended usages for these fields depending on virtualization or not.
  I suppose we can handle that issue when it arises (or does your
  implementation already handle that?)
 
 According to the ARM ARM:
 
   MPIDR provides a mechanism with up to three levels of affinity
   information, but the meaning of those levels of affinity is
   entirely IMPLEMENTATION DEFINED.
 
 So we can't really tell the meaning of the affinity bits. There are two
 recommended ways indeed (with or without virtualisation) which are not
 that different with regards to the topology (just introducing another
 level for virtual CPUs).
 
 But I think a more general solution would be for the CPU topology to be
 provided via the FDT.

Agreed. That will be the next step.

We decided on doing it this way to allow non-DT-enabled platforms to be able
to use the feature and to allow DT-enabled platforms to settle down in the
mean time.


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


Re: [PATCH v7 01/11] mmc: add non-blocking mmc request function

2011-06-22 Thread S, Venkatraman
On Wed, Jun 22, 2011 at 2:38 PM, Per Forlin per.for...@linaro.org wrote:
 On 22 June 2011 10:53, S, Venkatraman svenk...@ti.com wrote:
 On Wed, Jun 22, 2011 at 2:15 PM, Per Forlin per.for...@linaro.org wrote:
 On 22 June 2011 09:42, Venkatraman S svenk...@ti.com wrote:
 On Wed, Jun 22, 2011 at 5:08 AM, Per Forlin per.for...@linaro.org wrote:
 Previously there has only been one function mmc_wait_for_req()
 to start and wait for a request. This patch adds
  * mmc_start_req() - starts a request wihtout waiting
   If there is on ongoing request wait for completion
   of that request and start the new one and return.
   Does not wait for the new command to complete.

 This patch also adds new function members in struct mmc_host_ops
 only called from core.c
  * pre_req - asks the host driver to prepare for the next job
  * post_req - asks the host driver to clean up after a completed job

 The intention is to use pre_req() and post_req() to do cache maintenance
 while a request is active. pre_req() can be called while a request is 
 active
 to minimize latency to start next job. post_req() can be used after the 
 next
 job is started to clean up the request. This will minimize the host driver
 request end latency. post_req() is typically used before ending the block
 request and handing over the buffer to the block layer.

 Add a host-private member in mmc_data to be used by
 pre_req to mark the data. The host driver will then
 check this mark to see if the data is prepared or not.

 Signed-off-by: Per Forlin per.for...@linaro.org
 ---
  drivers/mmc/core/core.c  |  110 
 +
  include/linux/mmc/core.h |    6 ++-
  include/linux/mmc/host.h |   21 +
  3 files changed, 126 insertions(+), 11 deletions(-)

 diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c
 index 68091dd..c82fa3b 100644
 --- a/drivers/mmc/core/core.c
 +++ b/drivers/mmc/core/core.c
 @@ -198,9 +198,106 @@ mmc_start_request(struct mmc_host *host, struct 
 mmc_request *mrq)

  static void mmc_wait_done(struct mmc_request *mrq)
  {
 -       complete(mrq-done_data);
 +       complete(mrq-completion);
  }

 +static void __mmc_start_req(struct mmc_host *host, struct mmc_request 
 *mrq)
 +{
 +       init_completion(mrq-completion);
 +       mrq-done = mmc_wait_done;
 +       mmc_start_request(host, mrq);
 +}
 +
 +static void mmc_wait_for_req_done(struct mmc_host *host,
 +                                 struct mmc_request *mrq)
 +{
 +       wait_for_completion(mrq-completion);
 +}
 +
 +/**
 + *     mmc_pre_req - Prepare for a new request
 + *     @host: MMC host to prepare command
 + *     @mrq: MMC request to prepare for
 + *     @is_first_req: true if there is no previous started request
 + *                     that may run in parellel to this call, otherwise 
 false
 + *
 + *     mmc_pre_req() is called in prior to mmc_start_req() to let
 + *     host prepare for the new request. Preparation of a request may be
 + *     performed while another request is running on the host.
 + */
 +static void mmc_pre_req(struct mmc_host *host, struct mmc_request *mrq,
 +                bool is_first_req)
 +{
 +       if (host-ops-pre_req)
 +               host-ops-pre_req(host, mrq, is_first_req);
 +}
 +
 +/**
 + *     mmc_post_req - Post process a completed request
 + *     @host: MMC host to post process command
 + *     @mrq: MMC request to post process for
 + *     @err: Error, if non zero, clean up any resources made in pre_req
 + *
 + *     Let the host post process a completed request. Post processing of
 + *     a request may be performed while another reuqest is running.
 + */
 +static void mmc_post_req(struct mmc_host *host, struct mmc_request *mrq,
 +                        int err)
 +{
 +       if (host-ops-post_req)
 +               host-ops-post_req(host, mrq, err);
 +}
 +
 +/**
 + *     mmc_start_req - start a non-blocking request
 + *     @host: MMC host to start command
 + *     @areq: async request to start
 + *     @error: out parameter returns 0 for success, otherwise non zero
 + *
 + *     Start a new MMC custom command request for a host.
 + *     If there is on ongoing async request wait for completion
 + *     of that request and start the new one and return.
 + *     Does not wait for the new request to complete.
 + *
 + *     Returns the completed async request, NULL in case of none 
 completed.
 + */
 +struct mmc_async_req *mmc_start_req(struct mmc_host *host,
 +                                   struct mmc_async_req *areq, int 
 *error)
 +{
 +       int err = 0;
 +       struct mmc_async_req *data = host-areq;
 +
 +       /* Prepare a new request */
 +       if (areq)
 +               mmc_pre_req(host, areq-mrq, !host-areq);
 +
 +       if (host-areq) {
 +               mmc_wait_for_req_done(host, host-areq-mrq);
 +               err = host-areq-err_check(host-card, host-areq);
 +               if (err) {
 +                       mmc_post_req(host, host-areq-mrq, 0);
 +           

Re: Patches from the Linaro Android Team team

2011-06-22 Thread Guilherme Salgado
Hi Jim,
(I'm CCing linaro-dev@ because I figure others might have similar
questions)

This is because the android patches are going to the 'Unknown'
project[1], which is ignored when generating the statistics[2].  We
currently can't automatically detect the correct project for such
patches because they are all sent to linaro-dev@ instead of their own
mailing list like other projects.  Maybe we could try and detect the
correct project from the subject's prefix (e.g. [android/bionic]), but
even then I suspect these patches are not really going to AOSP, in which
case they wouldn't be included in the statistics either (much like the
gcc-linaro and linaro-kernel projects).

If I'm mistaken we can just create android projects and move the patches
from the Unknown project to them. A thread I started recently (Subject:
Please help us setup patches.linaro.org) on linaro-dev@ has more
information on how to do that.

[1] http://patches.linaro.org/patchwork/project/other-unknown/list/?state=*
[2] http://patches.linaro.org/faq

Cheers,

On Wed, 2011-06-22 at 18:22 +0800, Jim Huang wrote:
 hi Guilherme,
 
 I just checked the stat of Patches from the Linaro Android Team team:
 http://patches.linaro.org/team/linaro-android/
 
 I am quite confused about the number.  I did submit patches to
 linaro-dev and Cc. to patc...@linaro.org and
 you can find out the recent merged patches here: (Recently closed)
 https://review.source.android.com//#dashboard,1002471
 
 Is there any problem for stat?  Or, can I help to improve it?
 
 Thanks,
 -jserv

-- 
Guilherme Salgado https://launchpad.net/~salgado


signature.asc
Description: This is a digitally signed message part
___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: [RFC PATCH v2] Add ARM cpu topology definition

2011-06-22 Thread Vincent Guittot
On 22 June 2011 12:14, Amit Kucheria amit.kuche...@linaro.org wrote:
 Some nits below.

 After you fix them, you can add a
 Reviewed-by: Amit Kucheria amit.kuche...@linaro.org

 On 11 Jun 20, Vincent Guittot wrote:
 The affinity between ARM processors is defined in the MPIDR register.
 We can identify which processors are in the same cluster,
 and which ones have performance interdependency.We can define the
                                                 ^^ space between full-stop
                                                 and next word
 cpu topology of ARM platform, which is used by sched_mc and sched_smt.
                                 change to 'that is then'
 The default state of sched_mc and sched_smt config is disable.

 Change to sched_mc and sched_smt is disabled by default

 When enable, the behavior of the scheduler can be modified with
             ^ enabled
 sched_mc_power_savings and sched_smt_power_savings sysfs interfaces.

 Changes since v1 :
 * Update the commit message
 * Add read_cpuid_mpidr in arch/arm/include/asm/cputype.h
 * Modify header of arch/arm/kernel/topology.c
 * Modify tests and manipulation of MPIDR's bitfields
 * Modify the place and dependancy of the config
 * Modify Noop functions

 Signed-off-by: Vincent Guittot vincent.guit...@linaro.org
 ---
  arch/arm/Kconfig                |   25 +++
  arch/arm/include/asm/cputype.h  |    6 ++
  arch/arm/include/asm/topology.h |   33 +
  arch/arm/kernel/Makefile        |    1 +
  arch/arm/kernel/smp.c           |    6 ++
  arch/arm/kernel/topology.c      |  145 
 +++
  6 files changed, 216 insertions(+), 0 deletions(-)
  create mode 100644 arch/arm/kernel/topology.c

 diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
 index 9adc278..c7b4ff9 100644
 --- a/arch/arm/Kconfig
 +++ b/arch/arm/Kconfig
 @@ -1344,6 +1344,31 @@ config SMP_ON_UP

         If you don't know what to do here, say Y.

 +config ARM_CPU_TOPOLOGY
 +     bool Support cpu topology definition
 +     depends on SMP  CPU_V7
 +     default y
 +     help
 +       Support ARM cpu topology definition. The MPIDR register defines
 +       affinity between processors which is used to set the cpu
                                              ^ change to 
 'which is then
                                              used to describe the'
 +       topology of an ARM System.
 +
 +config SCHED_MC
 +     bool Multi-core scheduler support
 +     depends on ARM_CPU_TOPOLOGY
 +     help
 +       Multi-core scheduler support improves the CPU scheduler's decision
 +       making when dealing with multi-core CPU chips at a cost of slightly
 +       increased overhead in some places. If unsure say N here.
 +
 +config SCHED_SMT
 +     bool SMT scheduler support
 +     depends on ARM_CPU_TOPOLOGY
 +     help
 +       Improves the CPU scheduler's decision making when dealing with
 +       MultiThreading at a cost of slightly increased overhead in some
 +       places. If unsure say N here.
 +
  config HAVE_ARM_SCU
       bool
       depends on SMP
 diff --git a/arch/arm/include/asm/cputype.h b/arch/arm/include/asm/cputype.h
 index cd4458f..cb47d28 100644
 --- a/arch/arm/include/asm/cputype.h
 +++ b/arch/arm/include/asm/cputype.h
 @@ -8,6 +8,7 @@
  #define CPUID_CACHETYPE      1
  #define CPUID_TCM    2
  #define CPUID_TLBTYPE        3
 +#define CPUID_MPIDR  5

  #define CPUID_EXT_PFR0       c1, 0
  #define CPUID_EXT_PFR1       c1, 1
 @@ -70,6 +71,11 @@ static inline unsigned int __attribute_const__ 
 read_cpuid_tcmstatus(void)
       return read_cpuid(CPUID_TCM);
  }

 +static inline unsigned int __attribute_const__ read_cpuid_mpidr(void)
 +{
 +     return read_cpuid(CPUID_MPIDR);
 +}
 +
  /*
   * Intel's XScale3 core supports some v6 features (supersections, L2)
   * but advertises itself as v5 as it does not support the v6 ISA.  For
 diff --git a/arch/arm/include/asm/topology.h 
 b/arch/arm/include/asm/topology.h
 index accbd7c..63a7454 100644
 --- a/arch/arm/include/asm/topology.h
 +++ b/arch/arm/include/asm/topology.h
 @@ -1,6 +1,39 @@
  #ifndef _ASM_ARM_TOPOLOGY_H
  #define _ASM_ARM_TOPOLOGY_H

 +#ifdef CONFIG_ARM_CPU_TOPOLOGY
 +
 +#include linux/cpumask.h
 +
 +struct cputopo_arm {
 +     int thread_id;
 +     int core_id;
 +     int socket_id;
 +     cpumask_t thread_sibling;
 +     cpumask_t core_sibling;
 +};
 +
 +extern struct cputopo_arm cpu_topology[NR_CPUS];
 +
 +#define topology_physical_package_id(cpu)    (cpu_topology[cpu].socket_id)
 +#define topology_core_id(cpu)                (cpu_topology[cpu].core_id)
 +#define topology_core_cpumask(cpu)   ((cpu_topology[cpu].core_sibling))
 +#define topology_thread_cpumask(cpu) ((cpu_topology[cpu].thread_sibling))

 These #defines are not used anywhere.

They are used in topology.c driver and sched.c


 +#define mc_capable() (cpu_topology[0].socket_id != -1)
 +#define smt_capable()        (cpu_topology[0].thread_id != -1)

 Neither are these.

They are used in 

Re: [RFC PATCH v2] Add ARM cpu topology definition

2011-06-22 Thread Amit Kucheria
On Wed, Jun 22, 2011 at 3:20 PM, Vincent Guittot
vincent.guit...@linaro.org wrote:
 On 22 June 2011 12:14, Amit Kucheria amit.kuche...@linaro.org wrote:
 +
 +#define topology_physical_package_id(cpu)    (cpu_topology[cpu].socket_id)
 +#define topology_core_id(cpu)                (cpu_topology[cpu].core_id)
 +#define topology_core_cpumask(cpu)   ((cpu_topology[cpu].core_sibling))
 +#define topology_thread_cpumask(cpu) ((cpu_topology[cpu].thread_sibling))

 These #defines are not used anywhere.

 They are used in topology.c driver and sched.c


 +#define mc_capable() (cpu_topology[0].socket_id != -1)
 +#define smt_capable()        (cpu_topology[0].thread_id != -1)

 Neither are these.

 They are used in sched.c


Ahh, sorry for the noise. Documentation/cputopology.txt is most illuminating.

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


Re: Meeting request

2011-06-22 Thread Eric Miao
 Will the same time slot for Friday works for you all? Also thanks for 
 extending
 the help.

That works for me.

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


Re: OMAP3 Core dpll fix

2011-06-22 Thread Vishwanath Sripathy
On Wed, Jun 22, 2011 at 3:50 PM, Amit Kucheria amit.kuche...@linaro.org wrote:
 On 11 Jun 22, Vishwanath Sripathy wrote:
 Hi Nicolas,

 Can you pls pull below patch from 2.6.39 mainline kernel into 11.5
 Linaro kernel? This would fix some of the DVFS related issues seen on
 OMAP3.
 Patch:
 commit 5fd2a84ab3c8b87176e25db1d98c5cc34043a669
 Author: Avinash H.M avinas...@ti.com
     OMAP3: set the core dpll clk rate in its set_rate function

 Vishwa

 After this fix, can CPU_FREQ be re-enabled on OMAP3?
cpufreq as such will work as expected and will scale MPU and L3
frequency based on system load. However if any driver is not
requesting for the required l3 frequency, then we might start seeing
issues at driver level (like FIFO underflow etc due to l3 running at
lower rate).

So my suggestion is not to keep ondemand as the default governor and
if someone wants to experiment, they can enable it.

Vishwa
Vishwa

 /Amit


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


Re: Announcement: Monthly Milestones

2011-06-22 Thread Ilias Biris
It would be nice if there was some example of how this new process works
overall. The Toolchain team has been mentioned in some discussions as
following the practice with the blueprints/milestone pages and
deliverable component tarballs.

Perhaps someone from the release team could prepare a set of examples
from Launchpad to cover the items/steps in the presentation and send to all?

Thanks,
Ilias

On 21/06/11 01:58, Joey Stanford wrote:
 Hi Gang,
 
 As you have no doubt heard, we're moving to monthly milestones.  In an
 effort to set some perspective and also to answer any questions you
 might have, Alexander and I have built a presentation that describes
 what's happen in detail.  We've also added an extensive list of FAQs
 at the end of the presentation.
 
 I've attached the presentation as a PDF or you can view it online at:
 
 https://docs.google.com/a/linaro.org/present/edit?id=0ATjleYdzD02NZGcyNTM4amZfNjNoZ3dianE3cQhl=en_USpli=1
 
 If you have any questions, please contact your Team Lead and/or
 Project Manager.  They will raise any issues to Alexander, myself, and
 the rest of the Team Leads.
 
 Enjoy!
 
 Joey
 
 
 
 ___
 linaro-dev mailing list
 linaro-dev@lists.linaro.org
 http://lists.linaro.org/mailman/listinfo/linaro-dev


-- 
Ilias Biris,
Aallonkohina 2D 19, 02320 Espoo, Finland
Tel: +358 50 4839608 (mobile)
Email: ilias dot biris at linaro dot org
Skype: ilias_biris

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


Re: OMAP3 Core dpll fix

2011-06-22 Thread Nicolas Pitre
On Wed, 22 Jun 2011, Vishwanath Sripathy wrote:

 On Wed, Jun 22, 2011 at 3:50 PM, Amit Kucheria amit.kuche...@linaro.org 
 wrote:
  On 11 Jun 22, Vishwanath Sripathy wrote:
  Hi Nicolas,
 
  Can you pls pull below patch from 2.6.39 mainline kernel into 11.5
  Linaro kernel? This would fix some of the DVFS related issues seen on
  OMAP3.
  Patch:
  commit 5fd2a84ab3c8b87176e25db1d98c5cc34043a669
  Author: Avinash H.M avinas...@ti.com
      OMAP3: set the core dpll clk rate in its set_rate function
 
  Vishwa
 
  After this fix, can CPU_FREQ be re-enabled on OMAP3?
 cpufreq as such will work as expected and will scale MPU and L3
 frequency based on system load. However if any driver is not
 requesting for the required l3 frequency, then we might start seeing
 issues at driver level (like FIFO underflow etc due to l3 running at
 lower rate).
 
 So my suggestion is not to keep ondemand as the default governor and
 if someone wants to experiment, they can enable it.

I merged the fix to linaro-2.6.38 and pushed out.

What about linaro-2.6.39 which is the base for the 11.06 release due 
next week?  Does it work properly there?  The above commit is already 
included, but I would like to know how things are working wrt power 
management in that kernel.


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


Public IRC logs now available

2011-06-22 Thread James Westby
Hi,

   http://irclogs.linaro.org/

Logs are now kept from our public channels so that you can refer back to
previous converations and catch up on things that happened while you
were away if needed. They can also come up in google searches which can
be useful.

If you would like a channel added/removed from the logging then please
file an RT ticket by emailing lin...@rt.canonical.com and explaining
your request. Note that only public channels can currently be logged.

Thanks,

James

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


RFC: Community Mumble

2011-06-22 Thread Joey Stanford
Hi Gang,

In the past few days I've received a few requests to allow community
members access to our Mumble server.

I don't feel comfortable adding in the large and open linaro-community
team so I am considering making a linaro-community-mumble team to
allow for access.  Right now you have to be in ~linaro to have access
to Mumble.

1) I'd like to hear your comments on this, especially if you have
alternative suggestions.

2) If there are community members who should have mumble access, can
you please send me their Launchpad IDs so I can start assembling a
list.

Thanks,

Joey

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


Re: RFC: Community Mumble

2011-06-22 Thread Jesse Barker
Joey,

I think this is great!  We have a combination need for this:

1) Upstream project interaction where phone-type interaction is desirable.
2) The working group meeting where representatives from member
companies who are not Linaro assignees want to participate (for
replacing the old conference line).

I can send you a short list of launchpad IDs for these two categories.

cheers,
Jesse

On Wed, Jun 22, 2011 at 8:29 AM, Joey Stanford j...@linaro.org wrote:
 Hi Gang,

 In the past few days I've received a few requests to allow community
 members access to our Mumble server.

 I don't feel comfortable adding in the large and open linaro-community
 team so I am considering making a linaro-community-mumble team to
 allow for access.  Right now you have to be in ~linaro to have access
 to Mumble.

 1) I'd like to hear your comments on this, especially if you have
 alternative suggestions.

 2) If there are community members who should have mumble access, can
 you please send me their Launchpad IDs so I can start assembling a
 list.

 Thanks,

 Joey

 ___
 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/6] serial: samsung: Add device tree support for s5pv210 uart driver

2011-06-22 Thread Thomas Abraham
Hi Grant,

On 20 June 2011 22:13, Grant Likely grant.lik...@secretlab.ca wrote:
 Okay, this is getting ugly (not your fault, but this pattern has
 become too common.  Can you craft and post a patch that adds the
 following functions to drivers/of/base.c and include/linux/of.h

 /* offset in cells, not bytes */
 int dt_decode_u32(struct *property, int offset, u32 *out_val)
 {
        if (!property || !property-value)
                return -EINVAL;
        if ((offset + 1) * 4  property-length)
                return -EINVAL;
        *out_val = of_read_number(property-value + (offset * 4), 1);
        return 0;
 }
 int dt_decode_u64(struct *property, int offset, u64 *out_val)
 {
 ...
 }
 int dt_decode_string(struct *property, int index, char **out_string);
 {
 ...
 }

 Plus a set of companion functions:
 int dt_getprop_u32(struct device_node *np, char *propname, int offset,
 u32 *out_val)
 {
        return dt_decode_u32(of_find_property(np, propname, NULL),
 offset, out_val);
 }
 int dt_getprop_u64(struct *device_node, char *propname, int offset,
 u64 *out_val);
 {
 ...
 }
 int dt_getprop_string(struct *device_node, char *propname, int index,
 char **out_string);
 {
 ...
 }

 Then you'll be able to simply do the following to decode each
 property, with fifosize being left alone if the property cannot be
 found or decoded:

 dt_getprop_u32(pdev-dev.of_node, samsung,fifosize, fifosize);

I have added the functions as you have suggested and the diff is
listed below. Could you please review the diff and suggest any changes
required.


 drivers/of/base.c  |  129 
 include/linux/of.h |   10 
 2 files changed, 139 insertions(+), 0 deletions(-)

diff --git a/drivers/of/base.c b/drivers/of/base.c
index 632ebae..73f0144 100644
--- a/drivers/of/base.c
+++ b/drivers/of/base.c
@@ -596,6 +596,135 @@ struct device_node
*of_find_node_by_phandle(phandle handle)
 EXPORT_SYMBOL(of_find_node_by_phandle);

 /**
+ * of_read_property_u32 - Reads a indexed 32-bit property value
+ * @prop:  property to read from.
+ * @offset:cell number to read.
+ * value:  returned cell value
+ *
+ * Returns a indexed 32-bit value of a property cell, -EINVAL in case the cell
+ * does not exist
+ */
+int of_read_property_u32(struct property *prop, u32 offset, u32 *value)
+{
+   if (!prop || !prop-value)
+   return -EINVAL;
+   if ((offset + 1) * 4  prop-length)
+   return -EINVAL;
+
+   *value = of_read_ulong(prop-value + (offset * 4), 1);
+   return 0;
+}
+EXPORT_SYMBOL(of_read_property_u32);
+
+/**
+ * of_getprop_u32 - Find a property in a device node and read a 32-bit value
+ * @np:device node from which the property value is to be read.
+ * @propname   name of the property to be searched.
+ * @offset:cell number to read.
+ * @value: returned value of the cell
+ *
+ * Search for a property in a device node and read a indexed 32-bit value of a
+ * property cell. Returns the 32-bit cell value, -EINVAL in case the
property or
+ * the indexed cell does not exist.
+ */
+int
+of_getprop_u32(struct device_node *np, char *propname, int offset, u32 *value)
+{
+   return of_read_property_u32(of_find_property(np, propname, NULL),
+   offset, value);
+}
+EXPORT_SYMBOL(of_getprop_u32);
+
+/**
+ * of_read_property_u64 - Reads a indexed 64-bit property value
+ * @prop:  property to read from.
+ * @offset:cell number to read (each cell is 64-bits).
+ * @value: returned cell value
+ *
+ * Returns a indexed 64-bit value of a property cell, -EINVAL in case the cell
+ * does not exist
+ */
+int of_read_property_u64(struct property *prop, int offset, u64 *value)
+{
+   if (!prop || !prop-value)
+   return -EINVAL;
+   if ((offset + 1) * 8  prop-length)
+   return -EINVAL;
+
+   *value = of_read_number(prop-value + (offset * 8), 2);
+   return 0;
+}
+EXPORT_SYMBOL(of_read_property_u64);
+
+/**
+ * of_getprop_u64 - Find a property in a device node and read a 64-bit value
+ * @np:device node from which the property value is to be read.
+ * @propname   name of the property to be searched.
+ * @offset:cell number to read (each cell is 64-bits).
+ * @value: returned value of the cell
+ *
+ * Search for a property in a device node and read a indexed 64-bit value of a
+ * property cell. Returns the 64-bit cell value, -EINVAL in case the
property or
+ * the indexed cell does not exist.
+ */
+int
+of_getprop_u64(struct device_node *np, char *propname, int offset, u64 *value)
+{
+   return of_read_property_u64(of_find_property(np, propname, NULL),
+   offset, value);
+}
+EXPORT_SYMBOL(of_getprop_u64);
+
+/**
+ * of_read_property_string - Returns a pointer to a indexed null terminated
+ * property value string
+ * @prop:  property to read from.
+ * @offset:

Re: Switch to ubuntu-build.linaro.org

2011-06-22 Thread James Westby
On Wed, 22 Jun 2011 00:16:27 -0300, Ricardo Salveti 
ricardo.salv...@linaro.org wrote:
 The unhandled fault shouldn't be related with the usb errors. From my
 experience with Beagle xM the USB port will trigger the reset once the
 disk is consuming more power than beagle can provide. As I know this
 is probably a powered USB disk, it'd be good to check the same
 hardware on another beagle to see if we're able to reproduce the
 problem, as in the end it could be just a normal hardware failure.

I believe we have seen this on more than one of our builders (they have
identical setups as far as I know). I think it has been confined mainly
to one or two builders as they are the most frequently used.

Would you still recommend a particular test here?

  I've heard a rumour that the problems are related to the USB subsytem
  and the USB hard disks, but nothing more concrete than that. They are
  running beagleXMs for what it is worth.
 
 Do you know why we're using beagle xM and not panda for the builders?

Pandas weren't readily available when we set this up.

 It'd also be good to have the correct board revision ID to know if the
 xM is a prototype or a final release (A, A2, B or even C now).

I'll ask.

Thanks,

James

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


Clarify Licensing terms of build/tools/{isprelinked,soslim,apriori} in Android source tree

2011-06-22 Thread Jim Huang
Hello list,

I am not sure if android-platform@ is the right place to discuss
licensing terms in Android or not.  Please ignore the post if it was
mistaken.

Recently, we at Linaro are trying to integrate gcc-linaro[1] into
Android build system as the optional toolchain optimized for latest
ARM cores.  We encounter some unknown prelinker issues, and it is an
opportunities for us to look into the implementations of relevant
utilities in Android.  However, I am a bit confused about the
licensing terms of some packages.

libelfcopy[2], derived from some parts in binutils, provides the
facilities about DWARF/ELF, and it is quite obvious that libelfcopy is
licensed under GNU GPL version 2+ as the file MODULE_LICENSE_GPL
denotes.  There are three system tools depending on libelfcopy:
  - isprelinked
  - soslim
  - apriori

build/tools$ grep -r libelfcopy *
apriori/Android.mk:LOCAL_STATIC_LIBRARIES := libelfcopy libelf libebl #dl
isprelinked/Android.mk:LOCAL_STATIC_LIBRARIES := libelfcopy libelf
libebl libebl_arm #dl
soslim/Android.mk:LOCAL_STATIC_LIBRARIES := libelfcopy libelf libebl
libebl_arm #dl

These tools are linking libelfcopy statically, which explicitly
complies with the licensing terms of GNU GPL.  But, after checking the
source files (*.[ch]), no license term is claimed.[3]  The proper
declaration should put file MODULE_LICENSE_GPL into individual
directories at least.

Is my understanding correct?

Sincerely,
Jim Huang
Android Team, Linaro

[1] https://launchpad.net/gcc-linaro
[2] http://android.git.kernel.org/?p=platform/external/elfcopy.git;a=summary
[3] http://android.git.kernel.org/?p=platform/build.git;a=summary

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


Re: Switch to ubuntu-build.linaro.org

2011-06-22 Thread James Westby
On Tue, 21 Jun 2011 09:04:41 +, Fathi Boudra fathi.bou...@linaro.org 
wrote:
  If not, what are the blockers to doing so?
 
 Today, the builders are unstable.

They have just had new hard disk enclosures added, and should be more
stable now. Let's monitor for a few days and see if they are more
stable. On what day should we re-assess the situation and make another
go/no-go call?

Thanks,

James

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


Re: RFC: Community Mumble

2011-06-22 Thread anmar.ou...@linaro.org
On 22 June 2011 11:29, Joey Stanford j...@linaro.org wrote:
 Hi Gang,

 In the past few days I've received a few requests to allow community
 members access to our Mumble server.

 I don't feel comfortable adding in the large and open linaro-community
 team so I am considering making a linaro-community-mumble team to
 allow for access.  Right now you have to be in ~linaro to have access
 to Mumble.

As long as we can a private space for the LTs, I think it is a great idea.

anmar

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


Re: RFC: Community Mumble

2011-06-22 Thread James Westby
On Wed, 22 Jun 2011 17:57:03 -0400, anmar.ou...@linaro.org 
anmar.ou...@linaro.org wrote:
 As long as we can a private space for the LTs, I think it is a great idea.

It looks as though mumble may support password-protecting channels,
which may be a good idea for LTs anyway?

I don't think it uses encryption or anything though, and I don't know if
there's a greater risk from having attackers able to access the mumble
server if you are using this.

It's certianly something to look in to if you aren't happy with leaving
the LT channels unprotected.

Thanks,

James

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


Re: RFC: Community Mumble

2011-06-22 Thread Zach Pfeffer
I think its cool. It would be a big help.

On 22 June 2011 10:29, Joey Stanford j...@linaro.org wrote:
 Hi Gang,

 In the past few days I've received a few requests to allow community
 members access to our Mumble server.

 I don't feel comfortable adding in the large and open linaro-community
 team so I am considering making a linaro-community-mumble team to
 allow for access.  Right now you have to be in ~linaro to have access
 to Mumble.

 1) I'd like to hear your comments on this, especially if you have
 alternative suggestions.

 2) If there are community members who should have mumble access, can
 you please send me their Launchpad IDs so I can start assembling a
 list.

 Thanks,

 Joey

 ___
 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: Meeting request

2011-06-22 Thread Ashish Jangam

 -Original Message-
 From: eric.y.m...@gmail.com [mailto:eric.y.m...@gmail.com] On Behalf Of Eric
 Miao
 Sent: Wednesday, June 22, 2011 2:47 PM
 To: Ashish Jangam
 Cc: Ying-Chun Liu (PaulLiu); Steve Cozens; linaro-dev@lists.linaro.org; Mark
 Brown; Dajun Chen; Prashant Deshpande
 Subject: Re: Meeting request
 
 On Wed, Jun 22, 2011 at 3:11 PM, Eric Miao eric.m...@canonical.com wrote:
  On Wed, Jun 22, 2011 at 2:01 PM, Ashish Jangam
  ashish.jan...@kpitcummins.com wrote:
  -Original Message-
  From: eric.y.m...@gmail.com [mailto:eric.y.m...@gmail.com] On Behalf Of
 Eric
  Miao
  Sent: Tuesday, June 21, 2011 6:55 PM
  To: Ashish Jangam
  Cc: Ying-Chun Liu (PaulLiu); eric.m...@linaro.org; Steve Cozens; linaro-
  d...@lists.linaro.org; Mark Brown; Dajun Chen; Prashant Deshpande
  Subject: Re: Meeting request
 
  On Tue, Jun 21, 2011 at 8:29 PM, Ashish Jangam
  ashish.jan...@kpitcummins.com wrote:
  
   -Original Message-
   From: eric.y.m...@gmail.com [mailto:eric.y.m...@gmail.com] On Behalf Of
  Eric
   Miao
   Sent: Tuesday, June 21, 2011 5:52 PM
   To: Ashish Jangam
   Cc: Ying-Chun Liu (PaulLiu); eric.m...@linaro.org; Steve Cozens;
 linaro-
   d...@lists.linaro.org; Mark Brown; Dajun Chen; Prashant Deshpande
   Subject: Re: Meeting request
  
   On Tue, Jun 21, 2011 at 6:24 PM, Ashish Jangam
   ashish.jan...@kpitcummins.com wrote:
-Original Message-
From: eric.y.m...@gmail.com [mailto:eric.y.m...@gmail.com] On Behalf
 Of
   Eric
Miao
Sent: Tuesday, June 21, 2011 3:28 PM
To: Ashish Jangam; Ying-Chun Liu (PaulLiu)
Cc: eric.m...@linaro.org; Steve Cozens; linaro-dev@lists.linaro.org;
  Mark
Brown; Dajun Chen; Prashant Deshpande
Subject: Re: Meeting request
   
On Tue, Jun 21, 2011 at 5:57 PM, Eric Miao eric.m...@canonical.com
  wrote:
 On Tue, Jun 21, 2011 at 4:21 PM, Ashish Jangam
 ashish.jan...@kpitcummins.com wrote:
 Hi Eric,

 I recently saw your mail to Dajun, on your people eagerness to
 get
  the
patches upstream soon. We also hold the same vision to get the
 patches
upstream as quick as possible.

 In this regard we like to have a discussion so please let us know
  your
convenient time. Please note that as of now we do not have any
 technical
issues on patches but there is a need to understand the patch
 submission
process so we can focus our discussion accordingly.


 Thanks Ashish to bring this forword.

 I'm in TZ GMT+8, and I think Mark is in Scottland, which is GMT+1?
   Anyway,
 tomorrow and Friday will be fine to me, depending on your location
 and
  a
 time slot that works for all of us, there could be not many
 choices :-
  )

 Include Paul Liu, he's working on the PMIC upstreaming as well,
 he's
  in
   the
 same TZ as I am.

Below are time slots in preference order (hopefully for all) for
  Wednesday
   meeting:-
1) GMT+8 == 05:00pm; GMT+1 == 10:00am; GMT+5.5 == 02:30pm
2) GMT+8 == 04:00pm; GMT+1 == 09:00am; GMT+5.5 == 01:30pm
3) GMT+8 == 06:00pm; GMT+1 == 11:00am; GMT+5.5 == 03:30pm
Let me know which time slot suits you all.
  
   Hi Ashish,
  
   Option 1) works for me and Paul Liu.
  
   Thanks.
   Kindly share your contact details so that we can get connected.
 
  You can use my linaro email address of cuz: eric.m...@linaro.org
 
  For today's conference please dial:-
  +91 20 6652 5000 - press 1 - press 80867 - press 1.
 
  For any assistance please call the telecom team on 91 20 66525000.
 
  Kindly note, that this is not a Toll free number. In case your all not
  comfortable with this number then give me your phone number so that I
  can put all of us in a conference call.
 
  I can use skype to dial in. Yet not really sure about the other guys.
 
 
 Guys,
 
 Sorry seems I have problem to get my skype back online. Can we reschedule
 this to another time slot?
 
 And thanks Ashish to bring this up - this really helps a lot for us to co-
 work.
 I'll send some basic ideas a bit later.
 
 - eric
Will the same time slot for Friday works for you all? Also thanks for extending
the help. 



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


Re: [PATCH 3/6] watchdog: s3c2410: Add support for device tree based probe

2011-06-22 Thread Wim Van Sebroeck
Hi Thomas, Grant,

 On Mon, Jun 20, 2011 at 5:02 AM, Thomas Abraham
 thomas.abra...@linaro.org wrote:
  This patch adds the of_match_table to enable s3c2410-wdt driver
  to be probed when watchdog device node is found in the device tree.
 
  Signed-off-by: Thomas Abraham thomas.abra...@linaro.org
 
 Acked-by: Grant Likely grant.lik...@secretlab.ca
 
 You need to send this to Wim and the linux-watchdog mailing lists.  As
 far as I'm concerned, it can be merged immediately.

Yep, it looks OK. Please sent the patch so that it can be included.

Kind regards,
Wim.


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


Re: The Linaro monthly release cycle

2011-06-22 Thread Zach Pfeffer
Or we could just use continuous integration where there are no
freezes, just per change regression tests.

-Zach

On 15 June 2011 11:17, Peter Maydell peter.mayd...@linaro.org wrote:
 On 15 June 2011 15:40, Nicolas Pitre nicolas.pi...@linaro.org wrote:
 On Wed, 15 Jun 2011, Peter Maydell wrote:
 if we want to guarantee
 that QEMU and the kernel work together I think we really
 need to pretty much freeze the kernel two weeks before
 QEMU's release date, in order to have a fighting chance
 at catching and fixing problems.

 I don't think it is reasonable to freeze the kernel for two weeks in a
 ~4 week cycle. Therefore we might have to consider simply not having the
 same release dates for all components.  We could pipeline the
 dependencies instead of being all synchronous.

 This would mostly work, although you'd end up with the
 slightly odd effect that qemu-linaro released at the same
 time as the rest of the toolchain components but nominally
 as part of the previous month's release...

 -- PMM

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


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


Android libjpeg

2011-06-22 Thread Christian Robottom Reis
Hi there,

I took a look at the AOSP libjpeg code which is included in

 git://android.git.kernel.org/platform/external/jpeg

during my flight back home (which incidentally had been diverted and
landed me in Rio de Janeiro; not sure if I celebrate or cry) and noted
the following things:

- There is a v6 implementation of the fast IDCT algorithm which
  lives in armv6_idct.S.

- The commit which adds this implementation was added October 2010,
  and there haven't been any changes since.

- The code that selects the decoder IDCT implementation in
  jddctmgr.c always uses that implementation if ANDROID_ARMV6_IDCT
  is defined.

- Google have an ashmem backing store implementation, and have
  code to enable tile-based mode. It's a fairly non-intrusive change
  to use ashmem since it just replaces jpeg_open_backing_store.

- The code is pretty much standard libjpeg without any structural
  changes to it.

- There isn't any NEON code in this branch.

- Mans has an optimized version here:

http://git.mansr.com/?p=libjpeg;a=summary

  I don't know if he's submitted this to AOSP or not.

This suggests to me that a simple drop-in of libjpeg-turbo might be
actually easy to do, and that there is probably a significant
performance benefit to be achieved. One thing to keep in mind is that
this code still supports armv6, so we'd probably want to preserve that.

Thanks!
-- 
Christian Robottom Reis, Engineering VP
Brazil (GMT-3) | [+55] 16 9112 6430 | [+1] 612 216 4935
Linaro.org: Open Source Software for ARM SoCs

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


Re: implementing queues safely in (generic) SQL

2011-06-22 Thread Zygmunt Krynicki

W dniu 22.06.2011 00:21, Michael Hudson-Doyle pisze:


Fortunately django almost never runs in autocommit mode. There is an
implicit transaction around the whole request. It is easy to control the
transaction processing around a piece of code, see [1].


I got very confused by this, I admit.  In general, calling .save() on a
model does a COMMIT, unless you're managing the transactions yourself
(or using TransactionMiddleware)?


Something like that.

It's easier to read the source than read my explanations.
django.db.models.base:Model.base_save() calls
transaction.commit_unless_managed().

In practice, django is almost always managed so save is never commits.
The transaction middleware you mentioned makes django views managed 
using commit_on_success decorator on the request method. You need to 
disable that manually and I don't see any reason why someone would such 
a thing.



And of course, the way this is being done in the scheduler at the moment
is not part of the web app, so the usual stuff doesn't always apply.


On PostgreSQL we also need to properly implement handling of
IngegrityError as it differs significantly from SQLite [2]


It's just that it dooms transactions, right?


Not really, it just makes supporting them a little trickier. I do that 
with deserialization of bundles. In practice it's quite easy if you 
remember to use save points correctly. See my 1-4 points below for 
explanation why.


 The approach we'll take on

integrity errors is to rollback and retry so that's easy.


You can rollback to a savepoint.


(it's confusing that
https://docs.djangoproject.com/en/dev/topics/db/transactions/#transaction-rollback
says that the changes made by a.save() will be lost when the default is
for .save() to commit, so they must be assuming that you're using
TransactionMiddleware).


It's not only transaction middleware. Any code that earlier (in the call 
history of a particular function) enabled transactions will behave this way.


In reality this is all manageable:

1) Proper code will work regardless autocommit mode :-)
2) PostgreSQL does not break things, you just need to take account for 
savepoints.
3) Handling transactions manually implies you use savepoints and thus 
get 1 and 2 right.
4) Handling transactions automatically (around a view) implies you get 
shielded from most of the complexity, if your actual application logic 
is happy not to use explicit manual transactions in such cases.


Best regards
ZK

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


Re: Meeting request

2011-06-22 Thread Ying-Chun Liu (PaulLiu)
(2011年06月22日 21:08), Eric Miao wrote:
 Will the same time slot for Friday works for you all? Also thanks for 
 extending
 the help.
 
 That works for me.

I'm ok with that too.. :)


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


Re: implementing queues safely in (generic) SQL

2011-06-22 Thread Michael Hudson-Doyle
On Thu, 23 Jun 2011 03:59:49 +0200, Zygmunt Krynicki 
zygmunt.kryni...@linaro.org wrote:
 W dniu 22.06.2011 00:21, Michael Hudson-Doyle pisze:
 
  Fortunately django almost never runs in autocommit mode. There is an
  implicit transaction around the whole request. It is easy to control the
  transaction processing around a piece of code, see [1].
 
  I got very confused by this, I admit.  In general, calling .save() on a
  model does a COMMIT, unless you're managing the transactions yourself
  (or using TransactionMiddleware)?
 
 Something like that.
 
 It's easier to read the source than read my explanations.
 django.db.models.base:Model.base_save() calls
 transaction.commit_unless_managed().

OK.

 In practice, django is almost always managed so save is never commits.

Really?  TransactionMiddleware isn't installed by the settings file that
django-admin startapp creates.  Is this just a crummy default that
everyone changes?

 The transaction middleware you mentioned makes django views managed 
 using commit_on_success decorator on the request method. You need to 
 disable that manually and I don't see any reason why someone would such 
 a thing.

See above.

  And of course, the way this is being done in the scheduler at the moment
  is not part of the web app, so the usual stuff doesn't always apply.
 
  On PostgreSQL we also need to properly implement handling of
  IngegrityError as it differs significantly from SQLite [2]
 
  It's just that it dooms transactions, right?
 
 Not really, it just makes supporting them a little trickier. I do that 
 with deserialization of bundles. In practice it's quite easy if you 
 remember to use save points correctly. See my 1-4 points below for 
 explanation why.
 
   The approach we'll take on
  integrity errors is to rollback and retry so that's easy.
 
 You can rollback to a savepoint.

Yeah, but there's no reason to do that in getJobForBoard.

  (it's confusing that
  https://docs.djangoproject.com/en/dev/topics/db/transactions/#transaction-rollback
  says that the changes made by a.save() will be lost when the default is
  for .save() to commit, so they must be assuming that you're using
  TransactionMiddleware).
 
 It's not only transaction middleware. Any code that earlier (in the call 
 history of a particular function) enabled transactions will behave this way.

Sure, but it's a bit disingenuous to not mention that in the
documentation I think.  I guess I should file a ticket.

 In reality this is all manageable:
 
 1) Proper code will work regardless autocommit mode :-)
 2) PostgreSQL does not break things, you just need to take account for 
 savepoints.
 3) Handling transactions manually implies you use savepoints and thus 
 get 1 and 2 right.

s/savepoints/savepoints or transactions/ -- there's no requirement to
involve savepoints if you don't need to.

 4) Handling transactions automatically (around a view) implies you get 
 shielded from most of the complexity, if your actual application logic 
 is happy not to use explicit manual transactions in such cases.

Yeah, it's very good default for webapps.  Launchpad does that, but goes
even further: it automatically does a rollback when a GET method
completes, and uses SERIALIZABLE isolation level, retrying a method if
the commit fails due to a serialization violation.

However the code I'm working on is not part of a webapp :)

https://code.launchpad.net/~mwhudson/lava-scheduler/daemon-v1/+merge/65616 btw.

Cheers,
mwh

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


[PATCH powertop2.0] Modification to fix the removal of lock_depth field

2011-06-22 Thread Amit Daniel Kachhap
lock_depth field is removed from the power frequency events in the
new linux kernel(2.6.38 onwards). So this creates issue to retrieve
the lower members of the trace data. To fix this problem 2 separate
structures are created and their use depends upon the format of the
power_frequency events. These changes have been tested to work fine
with both old and new kernels as well as on x86 and ARM platform.

Signed-off-by:  Amit Daniel Kachhap amit.kach...@linaro.org
---
This patch is for powertop2.0 and fixes the issue of frequency
reported as always 0 in kernel from 2.6.38 onwards.

 cpu/cpu.cpp  |7 +---
 perf/perf_bundle.cpp |   98 -
 2 files changed, 82 insertions(+), 23 deletions(-)

diff --git a/cpu/cpu.cpp b/cpu/cpu.cpp
index b901b87..1193d7b 100644
--- a/cpu/cpu.cpp
+++ b/cpu/cpu.cpp
@@ -742,11 +742,8 @@ void w_display_cpu_pstates(void)
 
 
 struct power_entry {
-#ifndef __i386__
-   int dummy;
-#endif
-   int64_t type;
-   int64_t value;
+   uint64_ttype;
+   uint64_tvalue;
 } __attribute__((packed));
 
 
diff --git a/perf/perf_bundle.cpp b/perf/perf_bundle.cpp
index 2276c3a..f4c8912 100644
--- a/perf/perf_bundle.cpp
+++ b/perf/perf_bundle.cpp
@@ -27,6 +27,7 @@
 #include algorithm
 #include string.h
 #include stdint.h
+#include dirent.h
 
 #include perf_bundle.h
 #include perf_event.h
@@ -110,11 +111,30 @@ void perf_bundle::add_event(const char *event_name)
}
}
 }
-
+static int lock_depth = 0;
 void perf_bundle::start(void)
 {
unsigned int i;
class perf_event *ev;
+   char line[1023];
+   FILE *file;
+char filename[PATH_MAX];
+
+   /*check the format of power_frequency event*/
+   strcpy(filename,
+/sys/kernel/debug/tracing/events/power/power_frequency/format);
+   if (!lock_depth) {
+   file = fopen(filename, r);
+   if (file) {
+   while (fgets(line, 1023,file) != NULL) {
+   if (strstr(line, lock_depth)) {
+   lock_depth = 1;
+   break;
+   }
+   }
+   fclose(file);
+   }
+   }
 
for (i = 0; i  events.size(); i++) {
ev = events[i];
@@ -154,34 +174,57 @@ void perf_bundle::clear(void)
records.resize(0);
 }
 
-
-struct trace_entry {
+/*Trace entry for the common fields of perf events*/
+struct trace_entry_common {
uint64_ttime;
uint32_tcpu;
uint32_tres;
__u32   size;
+} __attribute__((packed));
+
+/*Trace entry for the fields specific to each perf events.
+* lock_depth field to support old kernels*/
+struct trace_data_lockdepth {
unsigned short  type;
unsigned char   flags;
unsigned char   preempt_count;
int pid;
int lock_depth;
+#ifndef __i386__
+   int filler;
+#endif
 } __attribute__((packed));;
 
+/*Trace entry for the fields specific to each perf events*/
+struct trace_data_normal {
+   unsigned short  type;
+   unsigned char   flags;
+   unsigned char   preempt_count;
+   int pid;
+} __attribute__((packed));;
 
-struct perf_sample {
+struct perf_sample_normal {
struct perf_event_headerheader;
-   struct trace_entry  trace;
+   struct trace_entry_common   trace_common;
+   struct trace_data_normaltrace_data;
unsigned char   data[0];
 } __attribute__((packed));
 
+struct perf_sample_lockdepth {
+   struct perf_event_headerheader;
+   struct trace_entry_common   trace_common;
+   struct trace_data_lockdepth trace_data;
+   unsigned char   data[0];
+} __attribute__((packed));;
+
 static uint64_t timestamp(perf_event_header *event)
 {
-   struct perf_sample *sample;
+   struct perf_sample_lockdepth *sample;
 
if (event-type != PERF_RECORD_SAMPLE)
return 0;
 
-   sample = (struct perf_sample *)event;
+   sample = (struct perf_sample_lockdepth *)event;
 
 #if 0
int i;
@@ -207,7 +250,7 @@ static uint64_t timestamp(perf_event_header *event)
printf(%02x , *(x+i));
printf(\n);
 #endif
-   return sample-trace.time;
+   return sample-trace_common.time;

 }
 
@@ -235,16 +278,35 @@ void perf_bundle::process(void)
sort(records.begin(), records.end(), event_sort_function);
 
for (i = 0; i  records.size(); i++) {
-   struct perf_sample *sample;
-
-   sample = (struct perf_sample *)records[i];
-   if (!sample)
-   continue;
-
-

Re: [PATCH powertop2.0] Modification to fix the removal of lock_depth field

2011-06-22 Thread Amit Kachhap
On 23 June 2011 10:41, Arjan van de Ven ar...@linux.intel.com wrote:
 On 6/22/2011 10:12 PM, Amit Daniel Kachhap wrote:

 lock_depth field is removed from the power frequency events in the
 new linux kernel(2.6.38 onwards). So this creates issue to retrieve
 the lower members of the trace data. To fix this problem 2 separate
 structures are created and their use depends upon the format of the
 power_frequency events. These changes have been tested to work fine
 with both old and new kernels as well as on x86 and ARM platform.



 eh no

 while it was temporarily removed in an -rc, it was added back (as padding)
 after it was
 found to break powertop (and abi).

 or am I missing something???


Ohh the padding field fixes this issue.
Then this patch may not be needed.
Thanks Arjan for quick review.

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