r4711 - developers/werner/wlan-spi/patches
werner at docs.openmoko.org
werner at docs.openmoko.org
Fri Oct 10 23:58:42 CEST 2008
Author: werner
Date: 2008-10-10 23:58:41 +0200 (Fri, 10 Oct 2008)
New Revision: 4711
Added:
developers/werner/wlan-spi/patches/gta02-mmc-mci.patch
Modified:
developers/werner/wlan-spi/patches/hif-direct-interrupt.patch
developers/werner/wlan-spi/patches/series
Log:
- series, gta02-mmc-mci.patch: added platform glue to use the S3C MCI driver
- hif-direct-interrupt.patch: made use of direct interrupt configurable
- hif-direct-interrupt.patch: removed useless attempt to set ECSI (interrupt
signaling even when nSS is inactive)
Added: developers/werner/wlan-spi/patches/gta02-mmc-mci.patch
===================================================================
--- developers/werner/wlan-spi/patches/gta02-mmc-mci.patch (rev 0)
+++ developers/werner/wlan-spi/patches/gta02-mmc-mci.patch 2008-10-10 21:58:41 UTC (rev 4711)
@@ -0,0 +1,31 @@
+Index: korig/arch/arm/mach-s3c2440/Kconfig
+===================================================================
+--- korig.orig/arch/arm/mach-s3c2440/Kconfig 2008-10-10 19:22:20.000000000 -0200
++++ korig/arch/arm/mach-s3c2440/Kconfig 2008-10-10 19:54:23.000000000 -0200
+@@ -119,6 +119,10 @@
+ This functionality requires that SPI0 is wired to
+ the WLAN SDIO interface.
+
++ config AR6K_S3CMCI
++ bool "S3C MMC/SD/SDIO driver"
++ select MMC_S3C
++
+ endchoice
+
+ endmenu
+Index: korig/arch/arm/mach-s3c2440/mach-gta02.c
+===================================================================
+--- korig.orig/arch/arm/mach-s3c2440/mach-gta02.c 2008-10-10 19:22:20.000000000 -0200
++++ korig/arch/arm/mach-s3c2440/mach-gta02.c 2008-10-10 19:53:37.000000000 -0200
+@@ -1700,6 +1700,11 @@
+ platform_device_register(>a02_spi_wlan);
+ #endif /* CONFIG_AR6K_SPI_S3C24XX_GPIO */
+
++#ifdef CONFIG_AR6K_S3CMCI
++ s3c_device_sdi.dev.platform_data = NULL;
++ platform_device_register(&s3c_device_sdi); /* @@@ just for testing */
++#endif /* CONFIG_AR6K_S3CMCI */
++
+ #ifdef CONFIG_AR6K_SPI_S3C24XX
+
+ printk(KERN_INFO "SPI/MMC co-existence: disabling SD/MMC\n");
Modified: developers/werner/wlan-spi/patches/hif-direct-interrupt.patch
===================================================================
--- developers/werner/wlan-spi/patches/hif-direct-interrupt.patch 2008-10-09 23:35:22 UTC (rev 4710)
+++ developers/werner/wlan-spi/patches/hif-direct-interrupt.patch 2008-10-10 21:58:41 UTC (rev 4711)
@@ -9,8 +9,8 @@
Index: korig/drivers/ar6000/hif/hif2.c
===================================================================
---- korig.orig/drivers/ar6000/hif/hif2.c 2008-10-07 13:00:55.000000000 -0200
-+++ korig/drivers/ar6000/hif/hif2.c 2008-10-07 13:00:57.000000000 -0200
+--- korig.orig/drivers/ar6000/hif/hif2.c 2008-10-07 13:06:47.000000000 -0200
++++ korig/drivers/ar6000/hif/hif2.c 2008-10-10 19:51:23.000000000 -0200
@@ -21,9 +21,13 @@
#include <linux/list.h>
#include <linux/wait.h>
@@ -72,22 +72,30 @@
/* ========================================================================= */
-#if 1
-+#if 0
++#ifndef CONFIG_AR6000_GTA02_DIRECT_IRQ
/*
* Volatile ought to be good enough to make gcc do the right thing on S3C24xx.
-@@ -393,69 +414,64 @@
+@@ -386,78 +407,76 @@
+ yield();
+ }
+
+-#endif
++#endif /* !CONFIG_AR6000_GTA02_DIRECT_IRQ */
+
+ /* ========================================================================= */
+
/*
* The code below is for handling interrupts signalled out-of-band.
*/
-#if 0
-#define IRQ_GPIO S3C2410_GPE8 /* SDDAT1 */
--
--
+
++#ifdef CONFIG_AR6000_GTA02_DIRECT_IRQ
+
-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)
{
@@ -172,27 +180,24 @@
+ dev_dbg(dev, "HIFMaskInterrupt\n");
+ disable_irq(hif->irq);
}
- #endif
+-#endif
++
++#endif /* CONFIG_AR6000_GTA02_DIRECT_IRQ */
++
-@@ -503,6 +519,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);
-@@ -520,11 +537,46 @@
+@@ -520,11 +539,31 @@
dev_err(dev, "sdio_set_block_size returns %d\n", ret);
/* @@@ cleanup */
}
-+#if 0
++#ifndef CONFIG_AR6000_GTA02_DIRECT_IRQ
ret = sdio_claim_irq(func, sdio_ar6000_irq);
if (ret) {
dev_err(dev, "sdio_claim_irq returns %d\n", ret);
/* @@@ cleanup */
}
-+#else
++#else /* !CONFIG_AR6000_GTA02_DIRECT_IRQ */
+ hif_device.irq = IRQ_EINT3;
+ INIT_WORK(&hif_device.work, sdio_ar6000_work);
+ ret = request_irq(hif_device.irq, sdio_ar6000_irq,
@@ -203,36 +208,21 @@
+ }
+ /* 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
++#endif /* CONFIG_AR6000_GTA02_DIRECT_IRQ */
+
#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-07 13:00:55.000000000 -0200
-+++ korig/drivers/spi/spi_bitbang.c 2008-10-07 13:00:57.000000000 -0200
+--- korig.orig/drivers/spi/spi_bitbang.c 2008-10-07 13:06:31.000000000 -0200
++++ korig/drivers/spi/spi_bitbang.c 2008-10-07 13:06:47.000000000 -0200
@@ -323,6 +323,9 @@
* selected ...)
*/
@@ -253,3 +243,16 @@
ndelay(nsecs);
bitbang->chipselect(spi, BITBANG_CS_INACTIVE);
ndelay(nsecs);
+Index: korig/drivers/ar6000/Kconfig
+===================================================================
+--- korig.orig/drivers/ar6000/Kconfig 2008-10-10 19:23:50.000000000 -0200
++++ korig/drivers/ar6000/Kconfig 2008-10-10 19:28:22.000000000 -0200
+@@ -5,3 +5,8 @@
+ default m
+ help
+ good luck.
++
++config AR6000_GTA02_DIRECT_IRQ
++ bool "Hack: use direct interrupt on GTA02"
++ depends on AR6000_WLAN && !AR6K_S3CMCI
++ default n
Modified: developers/werner/wlan-spi/patches/series
===================================================================
--- developers/werner/wlan-spi/patches/series 2008-10-09 23:35:22 UTC (rev 4710)
+++ developers/werner/wlan-spi/patches/series 2008-10-10 21:58:41 UTC (rev 4711)
@@ -33,3 +33,4 @@
dont-poll-irq.patch
hif-direct-interrupt.patch
hif-can-do-async.patch
+gta02-mmc-mci.patch
More information about the commitlog
mailing list