r4751 - developers/werner/wlan-spi/patches-tracking

werner at docs.openmoko.org werner at docs.openmoko.org
Tue Nov 4 00:36:59 CET 2008


Author: werner
Date: 2008-11-04 00:36:57 +0100 (Tue, 04 Nov 2008)
New Revision: 4751

Modified:
   developers/werner/wlan-spi/patches-tracking/hif-can-do-async.patch
Log:
Updated status of sync/async mode.

- drivers/ar6000/hif/hif2.c: remove obsolete CONFIG_AR6000_GTA02_DIRECT_IRQ
- drivers/ar6000/hif/hif2.c: we can do sync/async, but it doesn't always help



Modified: developers/werner/wlan-spi/patches-tracking/hif-can-do-async.patch
===================================================================
--- developers/werner/wlan-spi/patches-tracking/hif-can-do-async.patch	2008-11-03 08:27:03 UTC (rev 4750)
+++ developers/werner/wlan-spi/patches-tracking/hif-can-do-async.patch	2008-11-03 23:36:57 UTC (rev 4751)
@@ -1,23 +1,21 @@
-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.
+Lo and behold, this doesn't even need direct interrupts to work.
 
+The results are mixed: throughput is down by 5% for inbound
+traffic but up by 14% for outbound. Latency increases by about
+8ms for outbound pings.
+
 Index: ktrack/drivers/ar6000/hif/hif2.c
 ===================================================================
---- ktrack.orig/drivers/ar6000/hif/hif2.c	2008-10-16 01:01:08.000000000 -0200
-+++ ktrack/drivers/ar6000/hif/hif2.c	2008-10-16 01:01:28.000000000 -0200
-@@ -279,8 +279,11 @@
+--- ktrack.orig/drivers/ar6000/hif/hif2.c	2008-11-03 21:12:06.000000000 -0200
++++ ktrack/drivers/ar6000/hif/hif2.c	2008-11-03 21:18:00.000000000 -0200
+@@ -425,8 +425,8 @@
  			mbs_cfg[i] = HIF_MBOX_START_ADDR(i);
  		break;
  	case HIF_DEVICE_GET_IRQ_PROC_MODE:
-+#ifdef CONFIG_AR6000_GTA02_DIRECT_IRQ
-+		*ipm_cfg = HIF_DEVICE_IRQ_ASYNC_SYNC;
-+#else
- 		*ipm_cfg = HIF_DEVICE_IRQ_SYNC_ONLY;
+-		*ipm_cfg = HIF_DEVICE_IRQ_SYNC_ONLY;
 -//		*ipm_cfg = HIF_DEVICE_IRQ_ASYNC_SYNC;
-+#endif
++		*ipm_cfg = HIF_DEVICE_IRQ_ASYNC_SYNC;
++//		*ipm_cfg = HIF_DEVICE_IRQ_SYNC_ONLY;
  		break;
  	default:
  		return A_ERROR;




More information about the commitlog mailing list