Changeset 4711
- Timestamp:
- 10/10/08 23:58:41 (5 years ago)
- Location:
- developers/werner/wlan-spi/patches
- Files:
-
- 1 added
- 2 edited
-
gta02-mmc-mci.patch (added)
-
hif-direct-interrupt.patch (modified) (9 diffs)
-
series (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
developers/werner/wlan-spi/patches/hif-direct-interrupt.patch
r4697 r4711 10 10 Index: korig/drivers/ar6000/hif/hif2.c 11 11 =================================================================== 12 --- korig.orig/drivers/ar6000/hif/hif2.c 2008-10-07 13:0 0:55.000000000 -020013 +++ korig/drivers/ar6000/hif/hif2.c 2008-10- 07 13:00:57.000000000 -020012 --- korig.orig/drivers/ar6000/hif/hif2.c 2008-10-07 13:06:47.000000000 -0200 13 +++ korig/drivers/ar6000/hif/hif2.c 2008-10-10 19:51:23.000000000 -0200 14 14 @@ -21,9 +21,13 @@ 15 15 #include <linux/list.h> … … 73 73 74 74 -#if 1 75 +#if 075 +#ifndef CONFIG_AR6000_GTA02_DIRECT_IRQ 76 76 77 77 /* 78 78 * Volatile ought to be good enough to make gcc do the right thing on S3C24xx. 79 @@ -393,69 +414,64 @@ 79 @@ -386,78 +407,76 @@ 80 yield(); 81 } 82 83 -#endif 84 +#endif /* !CONFIG_AR6000_GTA02_DIRECT_IRQ */ 85 86 /* ========================================================================= */ 87 80 88 /* 81 89 * The code below is for handling interrupts signalled out-of-band. … … 83 91 -#if 0 84 92 -#define IRQ_GPIO S3C2410_GPE8 /* SDDAT1 */ 93 94 +#ifdef CONFIG_AR6000_GTA02_DIRECT_IRQ 95 96 -static atomic_t mask = ATOMIC_INIT(1); 97 85 98 - 86 -87 -static atomic_t mask = ATOMIC_INIT(1);88 +#if 189 90 91 99 -static void sdio_ar6000_irq(struct sdio_func *func) 92 100 +static void sdio_ar6000_work(struct work_struct *work) … … 173 181 + disable_irq(hif->irq); 174 182 } 175 #endif 176 177 @@ -503,6 +519,7 @@ 178 struct device *dev = &func->dev; 179 int ret; 180 struct task_struct *task; 181 + u8 bus; 182 183 dev_dbg(dev, "sdio_ar6000_probe\n"); 184 BUG_ON(!htcCallbacks.deviceInsertedHandler); 185 @@ -520,11 +537,46 @@ 183 -#endif 184 + 185 +#endif /* CONFIG_AR6000_GTA02_DIRECT_IRQ */ 186 + 187 188 /* ========================================================================= */ 189 190 @@ -520,11 +539,31 @@ 186 191 dev_err(dev, "sdio_set_block_size returns %d\n", ret); 187 192 /* @@@ cleanup */ 188 193 } 189 +#if 0194 +#ifndef CONFIG_AR6000_GTA02_DIRECT_IRQ 190 195 ret = sdio_claim_irq(func, sdio_ar6000_irq); 191 196 if (ret) { … … 193 198 /* @@@ cleanup */ 194 199 } 195 +#else 200 +#else /* !CONFIG_AR6000_GTA02_DIRECT_IRQ */ 196 201 + hif_device.irq = IRQ_EINT3; 197 202 + INIT_WORK(&hif_device.work, sdio_ar6000_work); … … 204 209 + /* driver wants to be in charge for enabling the interrupt */ 205 210 + disable_irq(hif_device.irq); 206 + bus = sdio_f0_readb(func, SDIO_CCCR_IF, &ret);207 + if (ret) {208 + dev_err(dev, "sdio_f0_readb(SDIO_CCCR_IF) returns %d\n",209 + ret);210 + /* @@@ cleanup */211 + }212 + printk(KERN_INFO "bus 0x%02x\n", bus);213 + /* try to set ECSI. Note: SCSI is 0, so this probably has no effect. */214 + bus |= 0x20;215 + sdio_f0_writeb(func, bus, SDIO_CCCR_IF, &ret);216 + if (ret) {217 + dev_err(dev, "sdio_f0_writeb(SDIO_CCCR_IF) returns %d\n",218 + ret);219 + /* @@@ cleanup */220 + }221 211 + sdio_f0_writeb(func, 3, SDIO_CCCR_IENx, &ret); 222 212 + if (ret) { … … 225 215 + /* @@@ cleanup */ 226 216 + } 227 +#endif 217 +#endif /* CONFIG_AR6000_GTA02_DIRECT_IRQ */ 228 218 + 229 219 #if 0 /* only for hw SDIO */ … … 232 222 Index: korig/drivers/spi/spi_bitbang.c 233 223 =================================================================== 234 --- korig.orig/drivers/spi/spi_bitbang.c 2008-10-07 13:0 0:55.000000000 -0200235 +++ korig/drivers/spi/spi_bitbang.c 2008-10-07 13:0 0:57.000000000 -0200224 --- korig.orig/drivers/spi/spi_bitbang.c 2008-10-07 13:06:31.000000000 -0200 225 +++ korig/drivers/spi/spi_bitbang.c 2008-10-07 13:06:47.000000000 -0200 236 226 @@ -323,6 +323,9 @@ 237 227 * selected ...) … … 254 244 bitbang->chipselect(spi, BITBANG_CS_INACTIVE); 255 245 ndelay(nsecs); 246 Index: korig/drivers/ar6000/Kconfig 247 =================================================================== 248 --- korig.orig/drivers/ar6000/Kconfig 2008-10-10 19:23:50.000000000 -0200 249 +++ korig/drivers/ar6000/Kconfig 2008-10-10 19:28:22.000000000 -0200 250 @@ -5,3 +5,8 @@ 251 default m 252 help 253 good luck. 254 + 255 +config AR6000_GTA02_DIRECT_IRQ 256 + bool "Hack: use direct interrupt on GTA02" 257 + depends on AR6000_WLAN && !AR6K_S3CMCI 258 + default n -
developers/werner/wlan-spi/patches/series
r4698 r4711 34 34 hif-direct-interrupt.patch 35 35 hif-can-do-async.patch 36 gta02-mmc-mci.patch
Note: See TracChangeset
for help on using the changeset viewer.
