[ACTIVITY] Graphics weekly status report - wk46-47 (20111114-20111125)

2011-11-28 Thread Ilias Biris
Status report in detail - contains the delivered content for 11.11 and
the plans for 11.12 as of now:

https://wiki.linaro.org/WorkingGroups/Middleware/Graphics/WeeklyReport

Last weekly meeting notes:
https://wiki.linaro.org/WorkingGroups/Middleware/Graphics/Notes/2011-11-23

Highlights:
 - Based on the meeting last week with DX side: no changed lately on
NUX. openGLES code has been merged, and believed to be functional and
working. At the moment doing more testing on NUX. There is a shift in DX
to accept branches after more testing, much of which is automated.

   + In the future there is more need for testing for functional
verification and also regression testing
   + Specification related to the tests was requested from DX. Note that
the tests for the graphics stack have not been decided yet.
   + For the Linaro side what is important is that DX team want to have
a test for every major feature/release related to openGLES. New features
should be accompanied by test code, covering the functionality as we
well as regression cases.
   + Admittedly there is still a definition pending on DX side about
what coverage to provide, not every submission will need a new test
necessarily. This is still being decided at the DX team level, and they
will communicate with Linaro on the process (still undefined on wk47)
 o This delay in communicating the test specification can
potentially cause delays on Graphics WG

- Daily benchmarks running on LAVA:

   +
http://validation.linaro.org/lava-server/dashboard/streams/anonymous/linaro-gfx-daily/bundles/
   + Dealing with some final issues: Having some boot issues, probably
kernel related, which will need to be cleared this week

- Starting in 11.12 to analyse the power management work for Graphics
- Moved all Launchpad projects for Graphics WG to use trunk as their
active series of development

Any questions or clarification needed? Please let me know.
-- 
Ilias Biris ilias.bi...@linaro.org
Project Manager, Linaro
M: +358504839608, IRC: ibiris Skype: ilias_biris
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: [Launchpad-users] launchpad: ddeb packages in ppa problem

2011-11-28 Thread Julian Edwards
On Wednesday 09 November 2011 19:13:02 Riku Voipio wrote:
 Hi,
 
 I got the following errors from my recent uploads to
 linaro-maintainers/staging-overlay ppa:
 
 Rejected:
 Orphaned debug packages: zlib1g-udeb-dbgsym
 1:1.2.3.4.dfsg-3ubuntu3linaro1 (i386)
 
 So it seems ddebs have been enabled (thanks!), but seems broken - I
 didn't do anything udeb
 related while packaging, and if udebs are being dropped automatically,
 seems so should be done
 to the udebs dbgsym package.

This is bug https://bugs.launchpad.net/launchpad/+bug/886452 and it's 
scheduled to be fixed imminently.

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


[ACTIVITY] Multimedia WG weekly status report - wk46-47.2011 (20111114-20111125)

2011-11-28 Thread Ilias Biris
Status with details on both the delivered content for 11.11 and the
plans for 11.12:
https://wiki.linaro.org/WorkingGroups/Middleware/Multimedia/WeeklyReport

Last weekly meeting minutes:
https://wiki.linaro.org/WorkingGroups/Middleware/Multimedia/Notes/2011-11-22

Highlights
- Codecs
   + Created a wiki page to collect the status of NEON optimisation of
different codecs:
https://wiki.linaro.org/WorkingGroups/Middleware/Multimedia/NeonStatus.
Feedback is welcome as well as adding your favourite libraries!

- For LJT:
   + scoped out use across main, universe and multiverse of libjpeg62,
libjpeg8 and -dev
   + ppa tom-gall/libjpeg-turbo updated with libjpeg8 compat version of
libjpeg-turbo
   + all packages that use libjpeg-dev pushed to ppa (31 pending builds
yet, 89 successful 0 failures)


- UMM
  + Completed the xf86nouveau development of dri2video support.
  + Setup CI build to test CMA on snowball:
https://ci.linaro.org/jenkins/view/All/job/linux-linaro-snowball-cma-test/
  + Reworked debugfs and trace patches for CMA v17

Comments, clarifications needed? Please let me know!

Best regards,
-- 
Ilias Biris ilias.bi...@linaro.org
Project Manager, Linaro
M: +358504839608, IRC: ibiris Skype: ilias_biris
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: Explanation of the different Ubuntu images?

2011-11-28 Thread Andy Doan
On 11/28/2011 07:20 AM, Jon Medhurst (Tixy) wrote:
 Does anyone know of a web-site or wiki page which explains the
 difference between our different Ununtu image types, i.e. developer,
 nano, alip, server, ubuntu-desktop.
 
 I've a fair idea myself what these are, (apart from server), but I'm
 looking for an existing document I can reference.
 

I just discovered we do a terrible job of doing this. Its buried down in
a page you are unlikely to hit and was done before the server image
existed:

 https://wiki.linaro.org/Boards/Overo/Setup

I'll add this as TODO for the on-going wiki work.

-andy

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


Re: Explanation of the different Ubuntu images?

2011-11-28 Thread Tom Gall
At one time we had links to the explanations as part of every release.
Looking at
https://wiki.linaro.org/Cycles/YYMM/Release pages it looks as if that
information was
removed.

It does seem like a good idea to include the explanations just so
interested people
can see more detain about the available images.

On Mon, Nov 28, 2011 at 10:21 AM, Andy Doan andy.d...@linaro.org wrote:
 On 11/28/2011 07:20 AM, Jon Medhurst (Tixy) wrote:
 Does anyone know of a web-site or wiki page which explains the
 difference between our different Ununtu image types, i.e. developer,
 nano, alip, server, ubuntu-desktop.

 I've a fair idea myself what these are, (apart from server), but I'm
 looking for an existing document I can reference.


 I just discovered we do a terrible job of doing this. Its buried down in
 a page you are unlikely to hit and was done before the server image
 existed:

  https://wiki.linaro.org/Boards/Overo/Setup

 I'll add this as TODO for the on-going wiki work.

 -andy

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




-- 
Regards,
Tom

We want great men who, when fortune frowns will not be discouraged.
- Colonel Henry Knox
Linaro.org │ Open source software for ARM SoCs
w) tom.gall att linaro.org
w) tom_gall att vnet.ibm.com
h) tom_gall att mac.com

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


Libjpeg-turbo rebuild status

2011-11-28 Thread Tom Gall
Hi Matthias,

Over the Thanksgiving holiday the compile-o-rama complete for all the
packages from the main and universe archives that had deps on
libjpeg-dev. The results of the build can be found in my libjpeg-turbo
ppa: https://launchpad.net/~tom-gall/+archive/libjpeg-turbo/+packages

In summary, 114 packages were rebuilt against the libjpeg-turbo's
version of -dev.

One package vtk resulted in the only 2 failures that have been
experienced. One failure on x86, and one on x86_64. Both failures were
caused not by problems with libjpeg-turbo but rather with poor build
time deps specified in the package. This can be witnessed in the logs:

https://launchpadlibrarian.net/85691287/buildlog_ubuntu-precise-amd64.vtk_5.6.1-7~linaro1_FAILEDTOBUILD.txt.gz
https://launchpadlibrarian.net/85716285/buildlog_ubuntu-precise-i386.vtk_5.6.1-7~linaro1_FAILEDTOBUILD.txt.gz

I have also updated the raw performance numbers for libjpeg-turbo in
our wiki. (I haven't updated the graphs yet)

https://wiki.linaro.org/TomGall/LibJpeg8

All raw performance numbers are now from oneiric. I've also included
numbers from a 3.3Gz i5-2500 to the mix as well numbers taken on the
Quickstart board with the lib instructed to not use NEON.

With SIMD for intel/arm environment performance is substantially
better in all cases. With NEON off in libjpeg-turbo, performance is at
least equal and in some cases better than libjpeg8.

All that said, what is the next step?

-- 
Regards,
Tom

We want great men who, when fortune frowns will not be discouraged.
- Colonel Henry Knox
Linaro.org │ Open source software for ARM SoCs
w) tom.gall att linaro.org
w) tom_gall att vnet.ibm.com
h) tom_gall att mac.com

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


RE: [PATCH 0/5] OMAP4: cache fixes for 4460

2011-11-28 Thread Woodruff, Richard
 From: Mans Rullgard [mailto:mans.rullg...@linaro.org]
 Sent: Sunday, November 27, 2011 6:26 PM

Hi,

  By the way, do you know whether it is safe to use SCU Speculative
  linefills with Cortex-A9 r2pX and PL310 r3pX?
 
  http://infocenter.arm.com/help/topic/com.arm.doc.ddi0407f/BABEBFBH.html
 
  As a quick and dirty test, it can be enabled in
  'arch/arm/kernel/smp_scu.c' by just setting extra (1  3) bit in SCU
  Control Register from 'scu_enable' function.

snip

 Be careful.  That chip has PL310 r3p0 so it's affected by erratum
 729806, Speculative reads from the Cortex-A9 MPCore processor can cause
 deadlock.

For OMAP4's it should be OK as long as other necessary errata work arounds are 
activated in code today. However, As Mans points out other partner chips might 
have an issue.

Your benchmark results are interesting. I did have a couple threads with an 
expert on this point and your result matches. Impact depends on data set size 
of use case and configured speed of pl310 logic.

It was explained that when 1 processor requests shared data (all Linux-SMP 
memory is marked with S-bit), the SCU can signal a hint to PL310 to start a 
parallel L2-tag lookup while SCU-snoop-tag is checked (to see if coherency 
L1-cache-2-cache transfer needs to happen). In case of a snoop-cache-miss, you 
are now 2-3 cycles ahead of the game into the PL310 cache-tag lookup. If the 
data is in other processor you would have burned some power with needless 
lookup and perhaps (depending on resource load) delayed some valid request.

Regard,
Richard W.


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


End to end audio test - initial drop

2011-11-28 Thread Kurt Taylor
Hi everyone,

Last week I did an initial drop of the end to end audio test we have been
discussing.

The idea is fairly simple, play a sine wave and test the audio stack by
sampling/testing the sine back in via loopback cable. The app is called
testfreq and is driven by a script called e2eaudiotest. It opens and
configures the audio device, takes a sample and then does a discrete
fourier transformation to find the frequency using the fftw3 library. The
test script driver uses speaker-test to play a sine wave at A 440, which
for now is the test frequency. It's still basic at this point, but it does
work on my system. There is a lot of additional things I'd like to do,
initial stack configuration, passing in the device, passing the test
frequency, doing more auto detection, clean up the code, etc, but I wanted
to start getting feedback. Any and all would be appreciated.

Have a look, and if you have a loopback cable, give it a spin:

http://git.linaro.org/gitweb?p=people/kurt-r-taylor/e2eaudiotest.git

You can also read more about it and check my progress here:

https://blueprints.launchpad.net/linaro-multimedia-project/+spec/linaro-mmwg-e2eaudiotesting-basic

Enjoy!

-- 

Kurt Taylor (irc krtaylor)
Linaro Multimedia
Linaro.org http://www.linaro.org/* **│ *Open source software for ARM SoCs
Follow *Linaro: *Facebook http://www.facebook.com/pages/Linaro |
Twitterhttp://twitter.com/#%21/linaroorg|
Blog http://www.linaro.org/linaro-blog/
___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: End to end audio test - initial drop

2011-11-28 Thread Zach Pfeffer
On 28 November 2011 20:01, Kurt Taylor kurt.tay...@linaro.org wrote:
 Hi everyone,

 Last week I did an initial drop of the end to end audio test we have been
 discussing.

 The idea is fairly simple, play a sine wave and test the audio stack by
 sampling/testing the sine back in via loopback cable. The app is called
 testfreq and is driven by a script called e2eaudiotest. It opens and
 configures the audio device, takes a sample and then does a discrete fourier
 transformation to find the frequency using the fftw3 library. The test
 script driver uses speaker-test to play a sine wave at A 440, which for now
 is the test frequency. It's still basic at this point, but it does work on
 my system. There is a lot of additional things I'd like to do, initial stack
 configuration, passing in the device, passing the test frequency, doing more
 auto detection, clean up the code, etc, but I wanted to start getting
 feedback. Any and all would be appreciated.

 Have a look, and if you have a loopback cable, give it a spin:

 http://git.linaro.org/gitweb?p=people/kurt-r-taylor/e2eaudiotest.git

 You can also read more about it and check my progress here:

 https://blueprints.launchpad.net/linaro-multimedia-project/+spec/linaro-mmwg-e2eaudiotesting-basic

Looks pretty good for a low level test. I'm not sure how well it'll
work with Android. Would you be able to put together an Android App
that used MediaPlayer and MediaRecorder to accomplish the same thing?

It should like this test may be a good candidate for kernel regression testing.

 Enjoy!

 --

 Kurt Taylor (irc krtaylor)
 Linaro Multimedia
 Linaro.org │ Open source software for ARM SoCs
 Follow Linaro: Facebook | Twitter | Blog





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

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


Re: [RFC PATCH 1/2] power: Charger-Manager: add initial Charger-Manager driver

2011-11-28 Thread Haojian Zhuang
On Thu, Nov 17, 2011 at 6:13 PM, Donggeun Kim dg77@samsung.com wrote:
 Because battery health monitoring should be done even when suspended,
 it needs to wake up and suspend periodically. Thus, userspace battery
 monitoring may incur too much overhead; every device and task is woken
 up periodically. Charger Manager uses suspend-again to provide
 in-suspend monitoring.

 This patch allows to monitor battery health in-suspend state.

 Signed-off-by: Donggeun Kim dg77@samsung.com
 Signed-off-by: MyungJoo Ham myungjoo@samsung.com
 Signed-off-by: Kyungmin Park kyungmin.p...@samsung.com
 ---
  Documentation/power/charger-manager.txt |  150 ++
  drivers/power/Kconfig                   |    9 +
  drivers/power/Makefile                  |    1 +
  drivers/power/charger-manager.c         |  771 
 +++
  include/linux/power/charger-manager.h   |  131 ++
  5 files changed, 1062 insertions(+), 0 deletions(-)
  create mode 100644 Documentation/power/charger-manager.txt
  create mode 100644 drivers/power/charger-manager.c
  create mode 100644 include/linux/power/charger-manager.h

 diff --git a/Documentation/power/charger-manager.txt 
 b/Documentation/power/charger-manager.txt
 new file mode 100644
 index 000..99630e5
 --- /dev/null
 +++ b/Documentation/power/charger-manager.txt
 @@ -0,0 +1,150 @@
 +Charger Manager
 +       (C) 2011 MyungJoo Ham myungjoo@samsung.com, GPL
 +
 +Charger Manager provides in-kernel battery charger management that
 +requires temperature monitoring during suspend-to-RAM state
 +and where each battery may have multiple chargers attached and the userland
 +wants to look at the aggregated information of the multiple chargers.
 +
 +Charger Manager is a platform_driver with power-supply-class entries.
 +An instance of Charger Manager (a platform-device created with 
 Charger-Manager)
 +represents an independent battery with chargers. If there are multiple
 +batteries with their own chargers acting independently in a system,
 +the system may need multiple instances of Charger Manager.
 +
 +1. Introduction
 +===
 +
 +Charger Manager supports the following:
 +
 +* Support for multiple chargers (e.g., a device with USB, AC, and solar 
 panels)
 +       A system may have multiple chargers (or power sources) and some of
 +       they may be activated at the same time. Each charger may have its
 +       own power-supply-class and each power-supply-class can provide
 +       different information about the battery status. This framework
 +       aggregates charger-related information from multiple sources and
 +       shows combined information as a single power-supply-class.
 +
 +* Support for in suspend-to-RAM polling (with suspend_again callback)
 +       While the battery is being charged and the system is in 
 suspend-to-RAM,
 +       we may need to monitor the battery health by looking at the ambient or
 +       battery temperature. We can accomplish this by waking up the system
 +       periodically. However, such a method wakes up devices unncessary for
 +       monitoring the battery health and tasks, and user processes that are
 +       supposed to be kept suspended. That, in turn, incurs unnecessary power
 +       consumption and slow down charging process. Or even, such peak power
 +       consumption can stop chargers in the middle of charging
 +       (external power input  device power consumption), which not
 +       only affects the charging time, but the lifespan of the battery.
 +
 +       Charger Manager provides a function cm_suspend_again that can be
 +       used as suspend_again callback of platform_suspend_ops. If the 
 platform
 +       requires tasks other than cm_suspend_again, it may implement its own
 +       suspend_again callback that calls cm_suspend_again in the middle.
 +       Normally, the platform will need to resume and suspend some devices
 +       that are used by Charger Manager.
 +
 +2. Global Charger-Manager Data related with suspend_again
 +
 +In order to setup Charger Manager with suspend-again feature
 +(in-suspend monitoring), the user should provide charger_global_desc
 +with setup_charger_manager(struct charger_global_desc *).
 +This charger_global_desc data for in-suspend monitoring is global
 +as the name suggests. Thus, the user needs to provide only once even
 +if there are multiple batteries. If there are multiple batteries, the
 +multiple instances of Charger Manager share the same charger_global_desc
 +and it will manage in-suspend monitoring for all instances of Charger 
 Manager.
 +
 +The user needs to provide all the three entries properly in order to activate
 +in-suspend monitoring:
 +
 +struct charger_global_desc {
 +
 +char *rtc;
 +       : The name of rtc (e.g., rtc0) used to wakeup the system from
 +       suspend for Charger Manager. The alarm interrupt (AIE) of the rtc
 +       should be able to wake up the system 

Re: [RFC PATCH 1/2] power: Charger-Manager: add initial Charger-Manager driver

2011-11-28 Thread MyungJoo Ham
On Tue, Nov 29, 2011 at 1:41 PM, Haojian Zhuang
haojian.zhu...@gmail.com wrote:
 On Thu, Nov 17, 2011 at 6:13 PM, Donggeun Kim dg77@samsung.com wrote:
 Because battery health monitoring should be done even when suspended,
 it needs to wake up and suspend periodically. Thus, userspace battery
 monitoring may incur too much overhead; every device and task is woken
 up periodically. Charger Manager uses suspend-again to provide
 in-suspend monitoring.

 This patch allows to monitor battery health in-suspend state.


[]

 +/**
 + * cm_setup_timer - For in-suspend monitoring setup wakeup alarm
 + *                 for suspend_again.
 + *
 + * Returns true if the alarm is set for Charger Manager to use.
 + * Returns false if
 + *     cm_setup_timer fails to set an alarm,
 + *     cm_setup_timer does not need to set an alarm for Charger Manager,
 + *     or an alarm previously configured is to be used.
 + */
 +static bool cm_setup_timer(void)
 +{
 +       struct charger_manager *cm;
 +       unsigned int wakeup_ms = UINT_MAX;
 +       bool ret = false;
 +
 +       mutex_lock(cm_list_mtx);
 +
 +       list_for_each_entry(cm, cm_list, entry) {
 +               /* Skip if polling is not required for this CM */
 +               if (!is_polling_required(cm)  !cm-emergency_stop)
 +                       continue;
 +               if (cm-desc-polling_interval_ms == 0)
 +                       continue;
 +               CM_MIN_VALID(wakeup_ms, cm-desc-polling_interval_ms);
 +       }
 +
 +       mutex_unlock(cm_list_mtx);
 +
 +       if (wakeup_ms  UINT_MAX  wakeup_ms  0) {
 +               pr_info(Charger Manager wakeup timer: %u ms.\n, wakeup_ms);
 +               if (rtc_dev) {
 +                       struct rtc_wkalrm tmp;
 +                       unsigned long time, now;
 +                       unsigned long add = DIV_ROUND_UP(wakeup_ms, 1000);
 +
 +                       /*
 +                        * Set alarm with the polling interval (wakeup_ms)
 +                        * except when rtc_wkalarm_save comes first.
 +                        * However, the alarm time should be NOW +
 +                        * CM_RTC_SMALL or later.
 +                        */
 +                       tmp.enabled = 1;
 +                       rtc_read_time(rtc_dev, tmp.time);
 +                       rtc_tm_to_time(tmp.time, now);
 +                       if (add  CM_RTC_SMALL)
 +                               add = CM_RTC_SMALL;
 +                       time = now + add;
 +
 +                       ret = true;
 +
 +                       if (rtc_wkalarm_save.enabled  rtc_wkalarm_save_ 
 +                           rtc_wkalarm_save_  time) {
 +                               if (rtc_wkalarm_save_  now + CM_RTC_SMALL)
 +                                       time = now + CM_RTC_SMALL;
 +                               else
 +                                       time = rtc_wkalarm_save_;
 +
 +                               /* The timer is not appointed by CM */
 +                               ret = false;
 +                       }
 +
 +                       pr_info(Waking up after %lu secs.\n,
 +                                       time - now);
 +
 +                       rtc_time_to_tm(time, tmp.time);
 +                       rtc_set_alarm(rtc_dev, tmp);
 +                       cm_suspend_duration_ms += wakeup_ms;
 +                       return ret;
 +               }
 +       }
 +
 +       if (rtc_dev)
 +               rtc_set_alarm(rtc_dev, rtc_wkalarm_save);
 +       return false;
 +}
 +

[]

 +
 +static int cm_suspend_prepare(struct device *dev)
 +{
 +       struct platform_device *pdev = container_of(dev, struct 
 platform_device,
 +                                                   dev);
 +       struct charger_manager *cm = platform_get_drvdata(pdev);
 +
 +       if (!cm_suspended) {
 +               if (rtc_dev) {
 +                       struct rtc_time tmp;
 +                       unsigned long now;
 +
 +                       rtc_read_alarm(rtc_dev, rtc_wkalarm_save);
 +                       rtc_read_time(rtc_dev, tmp);
 +
 +                       if (rtc_wkalarm_save.enabled) {
 +                               rtc_tm_to_time(rtc_wkalarm_save.time,
 +                                              rtc_wkalarm_save_);
 +                               rtc_tm_to_time(tmp, now);
 +                               if (now  rtc_wkalarm_save_)
 +                                       rtc_wkalarm_save_ = 0;
 +                       } else {
 +                               rtc_wkalarm_save_ = 0;
 +                       }
 +               }
 +               cm_suspended = true;
 +       }
 Donggeun,

 I think that this patch is good for saving energy for charging while
 suspend. I think that this driver also works under android. I have
 some concerns on rtc wakeup.

 As we know, RTC event doesn't link to timer events in kernel. But
 Android did. Android transfered timer event to rtc event while it
 suspend. So it 

Re: [RFC PATCH 1/2] power: Charger-Manager: add initial Charger-Manager driver

2011-11-28 Thread Haojian Zhuang
On Tue, Nov 29, 2011 at 1:00 PM, MyungJoo Ham myungjoo@samsung.com wrote:
 On Tue, Nov 29, 2011 at 1:41 PM, Haojian Zhuang
 haojian.zhu...@gmail.com wrote:
 On Thu, Nov 17, 2011 at 6:13 PM, Donggeun Kim dg77@samsung.com wrote:
 Because battery health monitoring should be done even when suspended,
 it needs to wake up and suspend periodically. Thus, userspace battery
 monitoring may incur too much overhead; every device and task is woken
 up periodically. Charger Manager uses suspend-again to provide
 in-suspend monitoring.

 This patch allows to monitor battery health in-suspend state.


 Donggeun,

 I think that this patch is good for saving energy for charging while
 suspend. I think that this driver also works under android. I have
 some concerns on rtc wakeup.

 As we know, RTC event doesn't link to timer events in kernel. But
 Android did. Android transfered timer event to rtc event while it
 suspend. So it will occupy one rtc device.

 Whatever the device is phone or tablet, it may cost another rtc device
 if it wants to implement power-up alarm feature. If we want to support
 the charger manager feature, we have to add another rtc device. I
 think that it's very hard to find any current platform with three rtc
 devices. How about implement the similar mechanism like android?
 Charger manager can register wakeup event into alarm mechanism like
 android. And we only need two rtc devices.

 Loop more guys: list-arm-kernel  linaro.

 Thanks
 Haojianbelow patch and comment whether

 Hello Haojian,

 No, we do not need to add another RTC device due to the usage of RTC
 alarm from another device drivers or processes.
 We can share an RTC device with others as long as others do not set
 RTC alarm in the suspend-to-RAM context (specifically from prepare ops
 to complete ops).
 The reason why we have created cm_setup_timer() looking that awfully
 complex is to let it coexist with other RTC alarm events and share the
 precious RTC device.
 Anyway, why do we even need two RTC devices in general?

If we want the device to implement power-up alarm, we need two rtc devices.

Let me use an example in Android system.
1. Application set time interval to receive mail after 10 minutes.
2. Android suspend and it convert the timer event into RTC event.
3. Battery is removed. After a while, we put the battery back. The
battery insertion won't trigger phone up since it's depend on custom
scenario.
4. 10 minutes interval past and phone will be powered up since rtc
wakeup. Absolutely it's incorrect. We only need a resume event, not a
power up event.

If we have two rtc devices, one is external rtc and the other is
contained in SoC. While battery removed, only SoC rtc will lost power
and external rtc can keep status for a long time. So let's check the
item #4.
4. Since status is lost in SoC rtc, system won't wakeup while 10
minutes interval past.

 If the RTC subsystem supports registering multiple alarm events,
 that'd be nice and will make this one simpler as well; however, we do
 not have it here for now.

 We save previous RTC alarm if the configuration data says so
 (rtc_wkalarm_save.enabled) and previously set alarm is later than the
 current alarm and restore the RTC alarm value at wakeup.

 If the previously set RTC alarm is earlier than the timer setup of
 Charger Manager, we do not load the alarm value of Charger Manager and
 let the previously set RTC alarm be active for a wakeup.

But it's a little complex, isn't it?


 Cheers!
 MyungJoo


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


RE: Build instructions for directfb-1.6.0pre1-2011.11 ?

2011-11-28 Thread Kui Zheng
Hi,
Compare to upstream, The only change is that you can enable NEON acceleration 
by  --enable-neon config flag. In fact, the flag is auto by default.
Ok, try following options on your platform. Compiler is gcc.
DIRECTFB_CONF_OPT = \
--enable-static \
--enable-shared \
--enable-profiling\
--enable-debug \
--enable-debug-support \
--enable-neon   \
--enable-voodoo \
--enable-trace \
--enable-text \
--program-prefix='' \
--enable-jpeg \
 --enable-png \
 --enable-gif \
--enable-linux-input \
--enable-zlib \
--enable-freetype \
--enable-linotype \
--enable-multicore  \
--enable-fbdev \
--with-gfxdrivers=none \
--with-tests\


 -Original Message-
 From: Dirk Behme [mailto:dirk.be...@de.bosch.com]
 Sent: Thursday, November 24, 2011 6:26 PM
 To: Kui Zheng
 Cc: linaro-dev@lists.linaro.org
 Subject: Build instructions for directfb-1.6.0pre1-2011.11 ?


 I just downloaded directfb-1.6.0pre1-2011.11.tar.bz2 from [1] and wonder
 what are the build options for this?

 I.e. what are the best/tested/recommended configure/compile options for
 this? And maybe which compiler to use (if this matters ;) )?

 Are there any binary packages available, too?

 Many thanks and best regards

 Dirk

 [1] https://launchpad.net/linaro-multimedia-project/2011.11/2011.11/



-- 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 v2 3/4] omap-serial: Add minimal device tree support

2011-11-28 Thread Rajendra Nayak

On Monday 28 November 2011 07:09 PM, Rob Herring wrote:

On 11/22/2011 07:44 AM, Rajendra Nayak wrote:

Adapt the driver to device tree and pass minimal platform
data from device tree needed for console boot.
No power management features will be suppported for now
since it requires more tweaks around OCP settings
to toggle forceidle/noidle/smaridle bits and handling


typo: smartidle


remote wakeup and dynamic muxing.

Signed-off-by: Rajendra Nayakrna...@ti.com


Acked-by: Rob Herringrob.herr...@calxeda.com


Thanks Rob, will fix the above typo.



Rob


---
  .../devicetree/bindings/serial/omap_serial.txt |   10 
  drivers/tty/serial/omap-serial.c   |   45 ++-
  2 files changed, 52 insertions(+), 3 deletions(-)
  create mode 100644 Documentation/devicetree/bindings/serial/omap_serial.txt

diff --git a/Documentation/devicetree/bindings/serial/omap_serial.txt 
b/Documentation/devicetree/bindings/serial/omap_serial.txt
new file mode 100644
index 000..342eedd
--- /dev/null
+++ b/Documentation/devicetree/bindings/serial/omap_serial.txt
@@ -0,0 +1,10 @@
+OMAP UART controller
+
+Required properties:
+- compatible : should be ti,omap2-uart for OMAP2 controllers
+- compatible : should be ti,omap3-uart for OMAP3 controllers
+- compatible : should be ti,omap4-uart for OMAP4 controllers
+- ti,hwmods : Must be uartn, n being the instance number (1-based)
+
+Optional properties:
+- clock-frequency : frequency of the clock input to the UART
diff --git a/drivers/tty/serial/omap-serial.c b/drivers/tty/serial/omap-serial.c
index f14b9c5..5aa524e 100644
--- a/drivers/tty/serial/omap-serial.c
+++ b/drivers/tty/serial/omap-serial.c
@@ -38,6 +38,7 @@
  #includelinux/serial_core.h
  #includelinux/irq.h
  #includelinux/pm_runtime.h
+#includelinux/of.h

  #includeplat/dma.h
  #includeplat/dmtimer.h
@@ -1324,6 +1325,19 @@ static void uart_tx_dma_callback(int lch, u16 ch_status, 
void *data)
return;
  }

+static struct omap_uart_port_info *of_get_uart_port_info(struct device *dev)
+{
+   struct omap_uart_port_info *omap_up_info;
+
+   omap_up_info = devm_kzalloc(dev, sizeof(*omap_up_info), GFP_KERNEL);
+   if (!omap_up_info)
+   return NULL; /* out of memory */
+
+   of_property_read_u32(dev-of_node, clock-frequency,
+   omap_up_info-uartclk);
+   return omap_up_info;
+}
+
  static int serial_omap_probe(struct platform_device *pdev)
  {
struct uart_omap_port   *up;
@@ -1331,6 +1345,9 @@ static int serial_omap_probe(struct platform_device *pdev)
struct omap_uart_port_info *omap_up_info = pdev-dev.platform_data;
int ret = -ENOSPC;

+   if (pdev-dev.of_node)
+   omap_up_info = of_get_uart_port_info(pdev-dev);
+
mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
if (!mem) {
dev_err(pdev-dev, no mem resource?\n);
@@ -1375,9 +1392,20 @@ static int serial_omap_probe(struct platform_device 
*pdev)
up-port.regshift = 2;
up-port.fifosize = 64;
up-port.ops =serial_omap_pops;
-   up-port.line = pdev-id;
-   sprintf(up-name, OMAP UART%d, up-port.line);

+   if (pdev-dev.of_node)
+   up-port.line = of_alias_get_id(pdev-dev.of_node, serial);
+   else
+   up-port.line = pdev-id;
+
+   if (up-port.line  0) {
+   dev_err(pdev-dev, failed to get alias/pdev id, errno %d\n,
+   up-port.line);
+   ret = -ENODEV;
+   goto err;
+   }
+
+   sprintf(up-name, OMAP UART%d, up-port.line);
up-port.mapbase = mem-start;
up-port.membase = ioremap(mem-start, resource_size(mem));
if (!up-port.membase) {
@@ -1530,7 +1558,7 @@ static int serial_omap_runtime_suspend(struct device *dev)
if (!up)
return -EINVAL;

-   if (!pdata-enable_wakeup)
+   if (!pdata || !pdata-enable_wakeup)
return 0;

if (pdata-get_context_loss_count)
@@ -1591,12 +1619,23 @@ static const struct dev_pm_ops serial_omap_dev_pm_ops = 
{
serial_omap_runtime_resume, NULL)
  };

+#if defined(CONFIG_OF)
+static const struct of_device_id omap_serial_of_match[] = {
+   { .compatible = ti,omap2-uart },
+   { .compatible = ti,omap3-uart },
+   { .compatible = ti,omap4-uart },
+   {},
+};
+MODULE_DEVICE_TABLE(of, omap_serial_of_match);
+#endif
+
  static struct platform_driver serial_omap_driver = {
.probe  = serial_omap_probe,
.remove = serial_omap_remove,
.driver = {
.name   = DRIVER_NAME,
.pm =serial_omap_dev_pm_ops,
+   .of_match_table = of_match_ptr(omap_serial_of_match),
},
  };






___
linaro-dev mailing list
linaro-dev@lists.linaro.org