Send commitlog mailing list submissions to
        commitlog@lists.openmoko.org

To subscribe or unsubscribe via the World Wide Web, visit
        http://lists.openmoko.org/mailman/listinfo/commitlog
or, via email, send a message with subject or body 'help' to
        [EMAIL PROTECTED]

You can reach the person managing the list at
        [EMAIL PROTECTED]

When replying, please edit your Subject line so it is more specific
than "Re: Contents of commitlog digest..."
Today's Topics:

   1. Openmoko's OpenEmbedded repository. This is used to build the
      Openmoko distribution: Changes to 'org.openmoko.dev'
      ([EMAIL PROTECTED])
   2. Openmoko's OpenEmbedded repository. This is used to build the
      Openmoko distribution: Changes to 'org.openmoko.dev'
      ([EMAIL PROTECTED])
   3. r4686 - developers/werner/wlan-spi/patches
      ([EMAIL PROTECTED])
   4. Openmoko's OpenEmbedded repository. This is used to build the
      Openmoko distribution: Changes to 'org.openmoko.dev'
      ([EMAIL PROTECTED])
--- Begin Message ---
 conf/checksums.ini                   |   98 ++++++++++++++++++++++++++--------
 packages/tasks/task-openmoko-feed.bb |    5 +--
 2 files changed, 76 insertions(+), 27 deletions(-)

New commits:
commit 793790f4858a1b98176a365a69280f255b7c0fcb
Author: Holger Hans Peter Freyther <[EMAIL PROTECTED]>
Date:   Wed Oct 1 12:58:44 2008 +0200

    [checksums] Add sip 4.7.7

commit 0414537d119255ffc2a6c582544cdfd24b605194
Author: Holger Hans Peter Freyther <[EMAIL PROTECTED]>
Date:   Wed Oct 1 11:42:39 2008 +0200

    [checksums] Add alternate xvnc source

commit efc6f645f82ca564c359a0c784917a1593d65a3d
Author: Holger Hans Peter Freyther <[EMAIL PROTECTED]>
Date:   Wed Oct 1 11:07:15 2008 +0200

    [checksums] Add asterisk 1.4.17

commit 8f4e113e9f4bafef1d15b63f59f346cd7d979b42
Author: Holger Hans Peter Freyther <[EMAIL PROTECTED]>
Date:   Wed Oct 1 11:05:35 2008 +0200

    [checksums] Add om-maps hong kong

commit ad07f9584d798f86f5615bb834a5a5c381306cfd
Author: Holger Hans Peter Freyther <[EMAIL PROTECTED]>
Date:   Wed Oct 1 10:23:47 2008 +0200

    [checksums] Add xournal 0.4.0.1

commit 91607dcf9fd5090d6930f1b0e75fd293096dfefc
Author: Holger Hans Peter Freyther <[EMAIL PROTECTED]>
Date:   Wed Oct 1 10:18:00 2008 +0200

    [checksums] Add alternative fbreader source

commit b747e3b519f83e220a36602fbfad4e5f9873a970
Author: Holger Hans Peter Freyther <[EMAIL PROTECTED]>
Date:   Wed Oct 1 10:16:26 2008 +0200

    [checksums] Add PyYAML 3.05

commit 85f919986a81fdfb39ea006d9460c86435125116
Author: Holger Hans Peter Freyther <[EMAIL PROTECTED]>
Date:   Wed Oct 1 05:51:27 2008 +0200

    [checksums] Add pygame 1.8.1

commit 35d546de821e07b93651614be6ac775a3e839509
Author: Holger Hans Peter Freyther <[EMAIL PROTECTED]>
Date:   Wed Oct 1 05:31:22 2008 +0200

    [checksums] Add speex 1.2rc1

commit cc341afb522b81ef537ae3f551ec94de11196cfd
Author: Holger Hans Peter Freyther <[EMAIL PROTECTED]>
Date:   Wed Oct 1 05:28:47 2008 +0200

    [checksums] Add libmodplug 1.8

commit eb8375ecc488a91ded9cdaea3ea2d1dca14d1b6e
Author: Holger Hans Peter Freyther <[EMAIL PROTECTED]>
Date:   Wed Oct 1 04:40:21 2008 +0200

    [checksums] Add SDL image 1.2.6

commit ad745095d4b03479b1e86491a8ce2997106fb11e
Author: Holger Hans Peter Freyther <[EMAIL PROTECTED]>
Date:   Wed Oct 1 13:03:53 2008 +0200

    Revert "[task-openmoko-feed] Add python-sip into Openmoko Feed"
    
    This reverts commit 4bdf1179efc1f74926eca3bb6df54a851b380be2.
    
    Qt and Qtopia can not be mixed.

commit 7de0a81319a8020c99876c86937e2f5b25be8718
Author: Holger Hans Peter Freyther <[EMAIL PROTECTED]>
Date:   Wed Oct 1 12:27:19 2008 +0200

    Revert "[task-openmoko-feed] Add python-pyqt into Openmoko Feed"
    
    This reverts commit 57a64cff05bcc52595eafcc7b53a70e3097d3638.
    
    Qt and Qtopia can not be mixed

commit ff793796b7ba682dee0f486e7c36d7602eed3887
Author: Holger Hans Peter Freyther <[EMAIL PROTECTED]>
Date:   Wed Oct 1 12:23:46 2008 +0200

    Revert "[task-openmoko-feed] Add python-pyqt into Openmoko Feed"
    
    This reverts commit 57a64cff05bcc52595eafcc7b53a70e3097d3638.
    
    Qtopia and Qt can not be mixed




--- End Message ---
--- Begin Message ---
 packages/gpe-scap/gpe-scap_1.3.bb                  |    2 +-
 packages/mozilla/minimo_cvs.bb                     |    2 +-
 packages/openmoko-projects/assassin-thumbnail.bb   |    3 +-
 packages/openmoko-projects/diversity-radar_svn.bb  |    2 +-
 packages/openmoko-projects/enlazar-qh_svn.bb       |    1 -
 packages/openmoko-projects/enlazar_svn.bb          |    1 -
 packages/openmoko-projects/illume-config_svn.bb    |    4 +-
 packages/openmoko-projects/om-locations_git.bb     |    2 +-
 .../openmoko-projects/om-maps-berlin_20080430.bb   |    4 +-
 .../om-maps-buenos-aires_20080430.bb               |    4 +-
 .../om-maps-hong-kong_20080919.bb                  |    2 +-
 .../openmoko-projects/om-maps-london_20080430.bb   |    4 +-
 .../om-maps-low-levels_20080430.bb                 |    6 +++-
 .../openmoko-projects/om-maps-new-york_20080430.bb |    4 +-
 .../openmoko-projects/om-maps-paris_20080430.bb    |    4 +-
 .../om-maps-providence_20080430.bb                 |    4 +-
 .../om-maps-san-francisco_20080430.bb              |    4 +-
 .../openmoko-projects/om-maps-sydney_20080430.bb   |    4 +-
 .../openmoko-projects/om-maps-taipei_20080430.bb   |    4 +-
 packages/openmoko-projects/om-maps.inc             |    3 +-
 .../openmoko-community-repository.bb               |    4 +-
 packages/openmoko-projects/pyefl-sudoku_svn.bb     |    4 +-
 .../openmoko-tools/openmoko-set-root-password.bb   |    4 +-
 packages/openmoko2/openmoko-browser2_svn.bb        |    4 +-
 packages/openmoko2/openmoko-calculator2_svn.bb     |    4 +-
 packages/openmoko2/openmoko-contacts2_svn.bb       |    4 +-
 packages/openmoko2/openmoko-dates2_svn.bb          |    4 +-
 packages/openmoko2/openmoko-dialer2_svn.bb         |    4 +-
 packages/openmoko2/openmoko-mediaplayer2_svn.bb    |    4 +-
 packages/openmoko2/openmoko-messages2_svn.bb       |    4 +-
 packages/openmoko2/openmoko-terminal2_svn.bb       |    4 +-
 packages/qtopia-phone/qtopia-phone-enable-debug.bb |    4 +-
 packages/qtopia-phone/qtopia-phone-x11_git.bb      |   26 ++++++++++----------
 packages/xorg-app/xterm_207.bb                     |    4 +-
 34 files changed, 71 insertions(+), 71 deletions(-)

New commits:
commit cb1c639036c3fcf2f3acb46c45a086869c93a6dd
Merge: 3ee50e5a93338dc84599ecfb72ef328102a136cd 
793790f4858a1b98176a365a69280f255b7c0fcb
Author: I-Fan, Chen <[EMAIL PROTECTED]>
Date:   Wed Oct 1 20:21:55 2008 +0800

    Merge branch 'org.openmoko.dev' of git+ssh://[EMAIL 
PROTECTED]/var/cache/git/openmoko into org.openmoko.dev

commit 3ee50e5a93338dc84599ecfb72ef328102a136cd
Author: I-Fan, Chen <[EMAIL PROTECTED]>
Date:   Wed Oct 1 20:16:22 2008 +0800

    [alias name] Adding alias name tags for packages

commit dfa4ae8dd3079edddc6aad4737e740d76b22474d
Author: I-Fan, Chen <[EMAIL PROTECTED]>
Date:   Wed Oct 1 15:30:39 2008 +0800

    [qtopia-phone-x11] adding alias name for packages.




--- End Message ---
--- Begin Message ---
Author: werner
Date: 2008-10-01 15:44:28 +0200 (Wed, 01 Oct 2008)
New Revision: 4686

Added:
   developers/werner/wlan-spi/patches/hif-can-do-async.patch
   developers/werner/wlan-spi/patches/hif-direct-interrupt.patch
Modified:
   developers/werner/wlan-spi/patches/series
Log:
Use direct SPI interrupts and let the HIF handle asynchronous operations.



Added: developers/werner/wlan-spi/patches/hif-can-do-async.patch
===================================================================
--- developers/werner/wlan-spi/patches/hif-can-do-async.patch                   
        (rev 0)
+++ developers/werner/wlan-spi/patches/hif-can-do-async.patch   2008-10-01 
13:44:28 UTC (rev 4686)
@@ -0,0 +1,20 @@
+After going to direct interrupts, our HIF can also handle asynchronous
+requests. Not entirely sure what kept them from working before. Most
+likely, there is some synchronization problem that we're now avoiding
+by also going through the system's main workqueue and thus implicitly
+synchronize with SPI.
+
+Index: korig/drivers/ar6000/hif/hif2.c
+===================================================================
+--- korig.orig/drivers/ar6000/hif/hif2.c       2008-10-01 09:34:27.000000000 
-0300
++++ korig/drivers/ar6000/hif/hif2.c    2008-10-01 09:34:39.000000000 -0300
+@@ -282,8 +282,7 @@
+                       mbs_cfg[i] = HIF_MBOX_START_ADDR(i);
+               break;
+       case HIF_DEVICE_GET_IRQ_PROC_MODE:
+-              *ipm_cfg = HIF_DEVICE_IRQ_SYNC_ONLY;
+-//            *ipm_cfg = HIF_DEVICE_IRQ_ASYNC_SYNC;
++              *ipm_cfg = HIF_DEVICE_IRQ_ASYNC_SYNC;
+               break;
+       default:
+               return A_ERROR;

Added: developers/werner/wlan-spi/patches/hif-direct-interrupt.patch
===================================================================
--- developers/werner/wlan-spi/patches/hif-direct-interrupt.patch               
                (rev 0)
+++ developers/werner/wlan-spi/patches/hif-direct-interrupt.patch       
2008-10-01 13:44:28 UTC (rev 4686)
@@ -0,0 +1,256 @@
+Proof-of-concept hack to directly use the interrupt coming from the card.
+
+The performance improvement isn't quite what I expected, only a meager
+4-5%, but perhaps more can be gained if we find a way to strip off some
+of the execution contexts. Right now, interrupts go through a workqueue,
+the AR6k driver, then the SDIO stack gets called from a kernel thread,
+and spi_bitbang uses a workqueue as well. It's almost surprising that we
+still get something done at all with those context switches.
+
+Index: korig/drivers/ar6000/hif/hif2.c
+===================================================================
+--- korig.orig/drivers/ar6000/hif/hif2.c       2008-10-01 09:34:08.000000000 
-0300
++++ korig/drivers/ar6000/hif/hif2.c    2008-10-01 09:34:27.000000000 -0300
+@@ -21,9 +21,13 @@
+ #include <linux/list.h>
+ #include <linux/wait.h>
+ #include <linux/spinlock.h>
++#include <linux/irq.h>
++#include <linux/workqueue.h>
+ #include <linux/mmc/sdio_func.h>
+ #include <linux/mmc/sdio.h>
++
+ #include <asm/gpio.h>
++#include <asm/arch/regs-gpio.h>
+ 
+ #include "athdefs.h"
+ #include "a_types.h"
+@@ -59,6 +63,9 @@
+       void *htc_handle;
+       struct sdio_func *func;
+ 
++      int irq;
++      struct work_struct work;
++
+       /*
+        * @@@ our sweet little bit of bogosity - the mechanism that lets us
+        * use the SDIO stack from softirqs. This really wants to use skbs.
+@@ -99,6 +106,18 @@
+ }
+ 
+ 
++/*
++ * @@@ The slave select games below don't quite work, I think because SPI sets
++ * it to inactive _after_ telling its caller that the operation is complete
++ * (which it is, after all).
++ *
++ * Doing this properly will be a bit of fun, I suppose, because the SPI stack
++ * doesn't have the concept of briefly disabling slave select right before a
++ * transmission.
++ *
++ * For some yet unexplained reason, hacking the SPI driver isn't enough, and 
we
++ * need to force SS low with the s3c2410_gpio_setpin here.
++ */
+ static A_STATUS process_request(struct hif_request *req)
+ {
+       int ret;
+@@ -106,10 +125,12 @@
+ 
+       dev_dbg(&req->func->dev, "process_request(req %p)\n", req);
+       sdio_claim_host(req->func);
++      //s3c2410_gpio_setpin(S3C2410_GPG2, 1); /* raise SS */
+       if (req->read)
+               ret = req->read(req->func, req->buf, req->addr, req->len);
+       else
+               ret = req->write(req->func, req->addr, req->buf, req->len);
++      s3c2410_gpio_setpin(S3C2410_GPG2, 0); /* lower SS to allow interrupts */
+       sdio_release_host(req->func);
+       status = ret ? A_ERROR : A_OK;
+       if (req->completion)
+@@ -281,7 +302,7 @@
+ 
+ /* ========================================================================= 
*/
+ 
+-#if 1
++#if 0
+ 
+ /*
+  * Volatile ought to be good enough to make gcc do the right thing on S3C24xx.
+@@ -396,69 +417,64 @@
+ /*
+  * The code below is for handling interrupts signalled out-of-band.
+  */
+-#if 0
+-#define IRQ_GPIO S3C2410_GPE8 /* SDDAT1 */
+-
+-
+-static atomic_t mask = ATOMIC_INIT(1);
++#if 1
+ 
+ 
+-static void sdio_ar6000_irq(struct sdio_func *func)
++static void sdio_ar6000_work(struct work_struct *work)
+ {
+-      HIF_DEVICE *device = sdio_get_drvdata(func);
++      HIF_DEVICE *device = container_of(work, struct hif_device, work);
++      struct device *dev = HIFGetOSDevice(device);
++      A_STATUS status;
++
++      dev_dbg(dev, "sdio_ar6000_work-> %p\n", htcCallbacks.dsrHandler);
+ 
+-      printk(KERN_DEBUG "sdio_ar6000_irq -> %p\n", htcCallbacks.dsrHandler);
+-      BUG();
++      /* absorb the usual initial stray interrupt */
++      if (!device->htc_handle) {
++              HIFAckInterrupt(device);
++              return;
++      }
++      status = htcCallbacks.dsrHandler(device->htc_handle);
++      BUG_ON(status != A_OK);
+ }
+ 
+ 
+-static void sdio_ar6000_poll(void *context)
++static irqreturn_t sdio_ar6000_irq(int irq, void *arg)
+ {
+-      HIF_DEVICE *device = context;
+-      A_STATUS status;
++      HIF_DEVICE *device = arg;
++      struct device *dev = HIFGetOSDevice(device);
+ 
+-      while (1) {
+-              yield();
+-              if (!gpio_get_value(IRQ_GPIO))
+-                      continue;
+-              if (!atomic_add_unless(&mask, 1, 1))
+-                      continue;
+-              status = htcCallbacks.dsrHandler(device->htc_handle);
+-              BUG_ON(status != A_OK);
+-      }
++      dev_dbg(dev, "sdio_ar6000_irq\n");
++      disable_irq(device->irq);
++      if (!schedule_work(&device->work))
++              dev_err(dev, "work already queued");
++      return IRQ_HANDLED;
+ }
+ 
+ 
+ void HIFAckInterrupt(HIF_DEVICE *device)
+ {
+       struct device *dev = HIFGetOSDevice(device);
+-      int ret;
+ 
+-      ret = atomic_dec_return(&mask);
+-      BUG_ON(ret < 0);
+-      dev_dbg(dev, "HIFAckInterrupt (%d)\n", ret);
++      dev_dbg(dev, "HIFAckInterrupt)\n");
++      enable_irq(device->irq);
+ }
+ 
+ 
+ void HIFUnMaskInterrupt(HIF_DEVICE *device)
+ {
+       struct device *dev = HIFGetOSDevice(device);
+-      int ret;
+ 
+-      ret = atomic_dec_return(&mask);
+-      BUG_ON(ret < 0);
+-      dev_dbg(dev, "HIFUnMaskInterrupt (%d)\n", ret);
++      dev_dbg(dev, "HIFUnMaskInterrupt)\n");
++      enable_irq(device->irq);
+ }
+ 
+ 
+ void HIFMaskInterrupt(HIF_DEVICE *device)
+ {
+       struct device *dev = HIFGetOSDevice(device);
+-      int ret;
+ 
+-      ret = atomic_inc_return(&mask);
+-      BUG_ON(ret > 1);
+-      dev_dbg(dev, "HIFMaskInterrupt (%d)\n", ret);
++      dev_dbg(dev, "HIFMaskInterrupt\n");
++      disable_irq(device->irq);
+ }
+ #endif
+ 
+@@ -506,7 +522,7 @@
+       struct device *dev = &func->dev;
+       int ret;
+       struct task_struct *task;
+-
++      u8 bus;
+ 
+       dev_dbg(dev, "sdio_ar6000_probe\n");
+       BUG_ON(!htcCallbacks.deviceInsertedHandler);
+@@ -524,11 +540,46 @@
+               dev_err(dev, "sdio_set_block_size returns %d\n", ret);
+               /* @@@ cleanup */
+       }
++#if 0
+       ret = sdio_claim_irq(func, sdio_ar6000_irq);
+       if (ret) {
+               dev_err(dev, "sdio_claim_irq returns %d\n", ret);
+               /* @@@ cleanup */
+       }
++#else
++      hif_device.irq = IRQ_EINT3;
++      INIT_WORK(&hif_device.work, sdio_ar6000_work);
++      ret = request_irq(hif_device.irq, sdio_ar6000_irq,
++          IRQF_TRIGGER_LOW, "ar6000", &hif_device);
++      if (ret) {
++              dev_err(dev, "request_irq returns %d\n", ret);
++              /* @@@ cleanup */
++      }
++      /* driver wants to be in charge for enabling the interrupt */
++      disable_irq(hif_device.irq);
++      bus = sdio_f0_readb(func, SDIO_CCCR_IF, &ret);
++      if (ret) {
++              dev_err(dev, "sdio_f0_readb(SDIO_CCCR_IF) returns %d\n",
++                  ret);
++              /* @@@ cleanup */
++      }
++      printk(KERN_INFO "bus 0x%02x\n", bus);
++      /* try to set ECSI. Note: SCSI is 0, so this probably has no effect. */
++      bus |= 0x20;
++      sdio_f0_writeb(func, bus, SDIO_CCCR_IF, &ret);
++      if (ret) {
++              dev_err(dev, "sdio_f0_writeb(SDIO_CCCR_IF) returns %d\n",
++                  ret);
++              /* @@@ cleanup */
++      }
++      sdio_f0_writeb(func, 3, SDIO_CCCR_IENx, &ret);
++      if (ret) {
++              dev_err(dev, "sdio_f0_writeb(SDIO_CCCR_IENx) returns %d\n",
++                  ret);
++              /* @@@ cleanup */
++      }
++#endif
++
+ #if 0 /* only for hw SDIO */
+       sdio_f0_writeb(func, SDIO_BUS_CD_DISABLE | SDIO_BUS_WIDTH_4BIT,
+           SDIO_CCCR_IF, &ret);
+Index: korig/drivers/spi/spi_bitbang.c
+===================================================================
+--- korig.orig/drivers/spi/spi_bitbang.c       2008-10-01 09:18:09.000000000 
-0300
++++ korig/drivers/spi/spi_bitbang.c    2008-10-01 09:34:27.000000000 -0300
+@@ -323,6 +323,9 @@
+                        * selected ...)
+                        */
+                       if (cs_change) {
++                              /* @@@ AR6k SPI hack */
++                              bitbang->chipselect(spi, BITBANG_CS_INACTIVE);
++                              ndelay(nsecs);
+                               bitbang->chipselect(spi, BITBANG_CS_ACTIVE);
+                               ndelay(nsecs);
+                       }
+@@ -380,7 +383,8 @@
+                * cs_change has hinted that the next message will probably
+                * be for this chip too.
+                */
+-              if (!(status == 0 && cs_change)) {
++              /* @@@ AR6k SPI hack */
++              if (0&&!(status == 0 && cs_change)) {
+                       ndelay(nsecs);
+                       bitbang->chipselect(spi, BITBANG_CS_INACTIVE);
+                       ndelay(nsecs);

Modified: developers/werner/wlan-spi/patches/series
===================================================================
--- developers/werner/wlan-spi/patches/series   2008-10-01 07:03:22 UTC (rev 
4685)
+++ developers/werner/wlan-spi/patches/series   2008-10-01 13:44:28 UTC (rev 
4686)
@@ -27,5 +27,9 @@
 hack-silence-battery.patch
 s3c-spi-fix-int-mode.patch
 s3c-spi-from-int-to-poll.patch
-#dont-poll-irq.patch
-#try
+
+# experimental hacks follow
+
+dont-poll-irq.patch
+hif-direct-interrupt.patch
+hif-can-do-async.patch




--- End Message ---
--- Begin Message ---
 classes/base.bbclass                        |    5 +-
 conf/checksums.ini                          |    4 -
 packages/squeak/files/Makefile.in           |   84 ---------------------------
 packages/squeak/files/ipaq/Makefile.in      |   84 ---------------------------
 packages/squeak/files/mnci/Makefile.in      |   84 ---------------------------
 packages/squeak/files/simpad/Makefile.in    |   84 ---------------------------
 packages/squeak/files/zaurus/Makefile.in    |   84 ---------------------------
 packages/squeak/squeak-nox_3.4-2.bb         |   41 -------------
 packages/swt/swt-gtk.inc                    |    2 +-
 packages/tasks/task-openmoko-feed.bb        |   10 ++--
 10 files changed, 10 insertions(+), 472 deletions(-)

New commits:
commit 278c59500f5e16ed1876b1dcbafceb49a442dc17
Author: Holger Hans Peter Freyther <[EMAIL PROTECTED]>
Date:   Thu Oct 2 05:55:39 2008 +0200

    [swt] We will need jni.h of GNU classpath to build

commit 3523b9701cef8105f913f06da3990431828a1eb4
Author: Holger Hans Peter Freyther <[EMAIL PROTECTED]>
Date:   Thu Oct 2 05:44:19 2008 +0200

    [task-openmoko-feed] Put back the java stuff

commit eb2082dff47b2c35698b43db15922f1dfc6b36be
Author: Holger Hans Peter Freyther <[EMAIL PROTECTED]>
Date:   Wed Oct 1 18:13:07 2008 +0200

    [squeak] Remove unbuildable old version of the squeak vm

commit a14614785c06fe52934e7838c2b4d4839d2a91df
Author: Holger Hans Peter Freyther <[EMAIL PROTECTED]>
Date:   Wed Oct 1 11:59:23 2008 +0200

    [base.bbclass] Make it fatal if no entry in checksums.ini exist




--- End Message ---
_______________________________________________
commitlog mailing list
commitlog@lists.openmoko.org
http://lists.openmoko.org/mailman/listinfo/commitlog

Reply via email to