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(&gta02_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