Author: titmuss
Date: Wed Jan 16 03:01:18 2008
New Revision: 1459

URL: http://svn.slimdevices.com?rev=1459&root=Jive&view=rev
Log:
Bug: N/A
Description:
Patch from Ben Dooks, required for wlan dma.


Added:
    trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/arch/arm/mach-s3c2412/gpio.c
Modified:
    trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/.config
    trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/arch/arm/Kconfig
    
trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/arch/arm/mach-s3c2412/Makefile
    trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/arch/arm/mach-s3c2412/dma.c
    trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/arch/arm/mm/consistent.c
    trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/arch/arm/plat-s3c24xx/dma.c
    trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/drivers/mmc/host/s3cmci.c
    trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/drivers/mtd/maps/plat-ram.c
    trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/drivers/video/s3c2410fb.c
    
trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/include/asm-arm/arch-s3c2410/hardware.h
    
trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/include/asm-arm/arch-s3c2410/irqs.h
    
trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/include/asm-arm/arch-s3c2410/regs-gpio.h
    
trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/include/asm-arm/arch-s3c2410/regs-spi.h
    
trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/include/asm-arm/dma-mapping.h
    
trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/include/asm-arm/plat-s3c24xx/dma.h
    
trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/sound/soc/s3c24xx/s3c24xx-pcm.c

Modified: trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/.config
URL: 
http://svn.slimdevices.com/trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/.config?rev=1459&root=Jive&r1=1458&r2=1459&view=diff
==============================================================================
--- trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/.config (original)
+++ trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/.config Wed Jan 16 03:01:18 
2008
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
 # Linux kernel version: 2.6.22-P7
-# Wed Nov  7 12:20:11 2007
+# Wed Jan 16 09:10:08 2008
 #
 CONFIG_ARM=y
 CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -22,6 +22,7 @@
 CONFIG_GENERIC_HWEIGHT=y
 CONFIG_GENERIC_CALIBRATE_DELAY=y
 CONFIG_ZONE_DMA=y
+CONFIG_FIQ=y
 CONFIG_VECTORS_BASE=0xffff0000
 CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
 

Modified: trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/arch/arm/Kconfig
URL: 
http://svn.slimdevices.com/trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/arch/arm/Kconfig?rev=1459&root=Jive&r1=1458&r2=1459&view=diff
==============================================================================
--- trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/arch/arm/Kconfig (original)
+++ trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/arch/arm/Kconfig Wed Jan 16 
03:01:18 2008
@@ -679,6 +679,13 @@
        default "2"
        depends on NEED_MULTIPLE_NODES
 
+config FIQ
+       bool "FIQ handler support"
+       default n
+       help
+         Say Y to support adding FIQ handlers to the kernel, either by
+         inbuilt code or via external modules.
+
 source "mm/Kconfig"
 
 config LEDS

Modified: 
trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/arch/arm/mach-s3c2412/Makefile
URL: 
http://svn.slimdevices.com/trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/arch/arm/mach-s3c2412/Makefile?rev=1459&root=Jive&r1=1458&r2=1459&view=diff
==============================================================================
--- 
trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/arch/arm/mach-s3c2412/Makefile 
(original)
+++ 
trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/arch/arm/mach-s3c2412/Makefile 
Wed Jan 16 03:01:18 2008
@@ -12,6 +12,7 @@
 obj-$(CONFIG_CPU_S3C2412)      += s3c2412.o
 obj-$(CONFIG_CPU_S3C2412)      += irq.o
 obj-$(CONFIG_CPU_S3C2412)      += clock.o
+obj-$(CONFIG_CPU_S3C2412)      += gpio.o
 obj-$(CONFIG_S3C2412_DMA)      += dma.o
 obj-$(CONFIG_S3C2412_PM)       += pm.o sleep.o
 

Modified: 
trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/arch/arm/mach-s3c2412/dma.c
URL: 
http://svn.slimdevices.com/trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/arch/arm/mach-s3c2412/dma.c?rev=1459&root=Jive&r1=1458&r2=1459&view=diff
==============================================================================
--- trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/arch/arm/mach-s3c2412/dma.c 
(original)
+++ trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/arch/arm/mach-s3c2412/dma.c 
Wed Jan 16 03:01:18 2008
@@ -39,106 +39,141 @@
        [DMACH_XD0] = {
                .name           = "xdreq0",
                .channels       = MAP(S3C2412_DMAREQSEL_XDREQ0),
+               .channels_rx    = MAP(S3C2412_DMAREQSEL_XDREQ0),
        },
        [DMACH_XD1] = {
                .name           = "xdreq1",
                .channels       = MAP(S3C2412_DMAREQSEL_XDREQ1),
+               .channels_rx    = MAP(S3C2412_DMAREQSEL_XDREQ1),
        },
        [DMACH_SDI] = {
                .name           = "sdi",
                .channels       = MAP(S3C2412_DMAREQSEL_SDI),
+               .channels_rx    = MAP(S3C2412_DMAREQSEL_SDI),
                .hw_addr.to     = S3C2410_PA_SDI + S3C2410_SDIDATA,
                .hw_addr.from   = S3C2410_PA_SDI + S3C2410_SDIDATA,
        },
        [DMACH_SPI0] = {
                .name           = "spi0",
                .channels       = MAP(S3C2412_DMAREQSEL_SPI0TX),
+               .channels_rx    = MAP(S3C2412_DMAREQSEL_SPI0RX),
                .hw_addr.to     = S3C2410_PA_SPI + S3C2410_SPTDAT,
                .hw_addr.from   = S3C2410_PA_SPI + S3C2410_SPRDAT,
        },
        [DMACH_SPI1] = {
                .name           = "spi1",
                .channels       = MAP(S3C2412_DMAREQSEL_SPI1TX),
+               .channels_rx    = MAP(S3C2412_DMAREQSEL_SPI1RX),
                .hw_addr.to     = S3C2410_PA_SPI + S3C2412_SPI1 + 
S3C2410_SPTDAT,
                .hw_addr.from   = S3C2410_PA_SPI + S3C2412_SPI1  + 
S3C2410_SPRDAT,
        },
        [DMACH_UART0] = {
                .name           = "uart0",
                .channels       = MAP(S3C2412_DMAREQSEL_UART0_0),
+               .channels_rx    = MAP(S3C2412_DMAREQSEL_UART0_0),
                .hw_addr.to     = S3C2410_PA_UART0 + S3C2410_UTXH,
                .hw_addr.from   = S3C2410_PA_UART0 + S3C2410_URXH,
        },
        [DMACH_UART1] = {
                .name           = "uart1",
                .channels       = MAP(S3C2412_DMAREQSEL_UART1_0),
+               .channels_rx    = MAP(S3C2412_DMAREQSEL_UART1_0),
                .hw_addr.to     = S3C2410_PA_UART1 + S3C2410_UTXH,
                .hw_addr.from   = S3C2410_PA_UART1 + S3C2410_URXH,
        },
        [DMACH_UART2] = {
                .name           = "uart2",
                .channels       = MAP(S3C2412_DMAREQSEL_UART2_0),
+               .channels_rx    = MAP(S3C2412_DMAREQSEL_UART2_0),
                .hw_addr.to     = S3C2410_PA_UART2 + S3C2410_UTXH,
                .hw_addr.from   = S3C2410_PA_UART2 + S3C2410_URXH,
        },
        [DMACH_UART0_SRC2] = {
                .name           = "uart0",
                .channels       = MAP(S3C2412_DMAREQSEL_UART0_1),
+               .channels_rx    = MAP(S3C2412_DMAREQSEL_UART0_1),
                .hw_addr.to     = S3C2410_PA_UART0 + S3C2410_UTXH,
                .hw_addr.from   = S3C2410_PA_UART0 + S3C2410_URXH,
        },
        [DMACH_UART1_SRC2] = {
                .name           = "uart1",
                .channels       = MAP(S3C2412_DMAREQSEL_UART1_1),
+               .channels_rx    = MAP(S3C2412_DMAREQSEL_UART1_1),
                .hw_addr.to     = S3C2410_PA_UART1 + S3C2410_UTXH,
                .hw_addr.from   = S3C2410_PA_UART1 + S3C2410_URXH,
        },
        [DMACH_UART2_SRC2] = {
                .name           = "uart2",
                .channels       = MAP(S3C2412_DMAREQSEL_UART2_1),
+               .channels_rx    = MAP(S3C2412_DMAREQSEL_UART2_1),
                .hw_addr.to     = S3C2410_PA_UART2 + S3C2410_UTXH,
                .hw_addr.from   = S3C2410_PA_UART2 + S3C2410_URXH,
        },
        [DMACH_TIMER] = {
                .name           = "timer",
                .channels       = MAP(S3C2412_DMAREQSEL_TIMER),
+               .channels_rx    = MAP(S3C2412_DMAREQSEL_TIMER),
        },
        [DMACH_I2S_IN] = {
                .name           = "i2s-sdi",
                .channels       = MAP(S3C2412_DMAREQSEL_I2SRX),
+               .channels_rx    = MAP(S3C2412_DMAREQSEL_I2SRX),
                .hw_addr.from   = S3C2410_PA_IIS + S3C2412_IISRXD,
        },
        [DMACH_I2S_OUT] = {
                .name           = "i2s-sdo",
                .channels       = MAP(S3C2412_DMAREQSEL_I2STX),
+               .channels_rx    = MAP(S3C2412_DMAREQSEL_I2STX),
                .hw_addr.to     = S3C2410_PA_IIS + S3C2412_IISTXD,
        },
        [DMACH_USB_EP1] = {
                .name           = "usb-ep1",
                .channels       = MAP(S3C2412_DMAREQSEL_USBEP1),
+               .channels_rx    = MAP(S3C2412_DMAREQSEL_USBEP1),
        },
        [DMACH_USB_EP2] = {
                .name           = "usb-ep2",
                .channels       = MAP(S3C2412_DMAREQSEL_USBEP2),
+               .channels_rx    = MAP(S3C2412_DMAREQSEL_USBEP2),
        },
        [DMACH_USB_EP3] = {
                .name           = "usb-ep3",
                .channels       = MAP(S3C2412_DMAREQSEL_USBEP3),
+               .channels_rx    = MAP(S3C2412_DMAREQSEL_USBEP3),
        },
        [DMACH_USB_EP4] = {
                .name           = "usb-ep4",
                .channels       = MAP(S3C2412_DMAREQSEL_USBEP4),
+               .channels_rx    = MAP(S3C2412_DMAREQSEL_USBEP4),
        },
 };
+
+static void s3c2412_dma_direction(struct s3c2410_dma_chan *chan,
+                                 struct s3c24xx_dma_map *map,
+                                 enum s3c2410_dmasrc dir)
+{
+       unsigned long chsel;
+
+       if (dir == S3C2410_DMASRC_HW)
+               chsel = map->channels_rx[0];
+       else
+               chsel = map->channels[0];
+
+       chsel &= ~DMA_CH_VALID;
+       chsel |= S3C2412_DMAREQSEL_HW;
+
+       writel(chsel, chan->regs + S3C2412_DMA_DMAREQSEL);
+}
 
 static void s3c2412_dma_select(struct s3c2410_dma_chan *chan,
                               struct s3c24xx_dma_map *map)
 {
-       writel(map->channels[0] | S3C2412_DMAREQSEL_HW,
-              chan->regs + S3C2412_DMA_DMAREQSEL);
+       s3c2412_dma_direction(chan, map, chan->source);
 }
 
 static struct s3c24xx_dma_selection __initdata s3c2412_dma_sel = {
        .select         = s3c2412_dma_select,
+       .direction      = s3c2412_dma_direction,
        .dcon_mask      = 0,
        .map            = s3c2412_dma_mappings,
        .map_size       = ARRAY_SIZE(s3c2412_dma_mappings),

Added: 
trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/arch/arm/mach-s3c2412/gpio.c
URL: 
http://svn.slimdevices.com/trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/arch/arm/mach-s3c2412/gpio.c?rev=1459&root=Jive&view=auto
==============================================================================
--- 
trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/arch/arm/mach-s3c2412/gpio.c 
(added)
+++ 
trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/arch/arm/mach-s3c2412/gpio.c 
Wed Jan 16 03:01:18 2008
@@ -1,0 +1,59 @@
+/* linux/arch/arm/mach-s3c2412/gpio.c
+ *
+ * Copyright (c) 2007 Simtec Electronics
+ *     Ben Dooks <[EMAIL PROTECTED]>
+ *
+ * http://armlinux.simtec.co.uk/.
+ *
+ * S3C2412/S3C2413 specific GPIO support
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+*/
+
+#include <linux/kernel.h>
+#include <linux/types.h>
+#include <linux/interrupt.h>
+
+#include <asm/mach/arch.h>
+#include <asm/mach/map.h>
+
+#include <asm/arch/regs-gpio.h>
+
+#include <asm/hardware.h>
+
+int s3c2412_gpio_set_sleepcfg(unsigned int pin, unsigned int state)
+{
+       void __iomem *base = S3C24XX_GPIO_BASE(pin);
+       unsigned long offs = S3C2410_GPIO_OFFSET(pin);
+       unsigned long flags;
+       unsigned long slpcon;
+
+       offs *= 2;
+
+       if (pin < S3C2410_GPIO_BANKB)
+               return -EINVAL;
+
+       if (pin >= S3C2410_GPIO_BANKF &&
+           pin <= S3C2410_GPIO_BANKG)
+               return -EINVAL;
+
+       if (pin > (S3C2410_GPIO_BANKH + 32))
+               return -EINVAL;
+
+       local_irq_save(flags);
+       
+       slpcon = __raw_readl(base + 0x0C);
+
+       slpcon &= ~(3 << offs);
+       slpcon |= state << offs;
+
+       __raw_writel(slpcon, base + 0x0C);
+
+       local_irq_restore(flags);
+
+       return 0;
+}
+
+EXPORT_SYMBOL(s3c2412_gpio_set_sleepcfg);

Modified: 
trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/arch/arm/mm/consistent.c
URL: 
http://svn.slimdevices.com/trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/arch/arm/mm/consistent.c?rev=1459&root=Jive&r1=1458&r2=1459&view=diff
==============================================================================
--- trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/arch/arm/mm/consistent.c 
(original)
+++ trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/arch/arm/mm/consistent.c 
Wed Jan 16 03:01:18 2008
@@ -301,6 +301,14 @@
                           pgprot_writecombine(pgprot_kernel));
 }
 EXPORT_SYMBOL(dma_alloc_writecombine);
+
+void *
+dma_alloc_cached(struct device *dev, size_t size, dma_addr_t *handle, gfp_t 
gfp)
+{
+       return __dma_alloc(dev, size, handle, gfp,
+                          __pgprot(pgprot_val(pgprot_kernel) | L_PTE_CACHEABLE 
| L_PTE_BUFFERABLE));
+}
+EXPORT_SYMBOL(dma_alloc_cached);
 
 static int dma_mmap(struct device *dev, struct vm_area_struct *vma,
                    void *cpu_addr, dma_addr_t dma_addr, size_t size)

Modified: 
trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/arch/arm/plat-s3c24xx/dma.c
URL: 
http://svn.slimdevices.com/trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/arch/arm/plat-s3c24xx/dma.c?rev=1459&root=Jive&r1=1458&r2=1459&view=diff
==============================================================================
--- trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/arch/arm/plat-s3c24xx/dma.c 
(original)
+++ trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/arch/arm/plat-s3c24xx/dma.c 
Wed Jan 16 03:01:18 2008
@@ -525,7 +525,8 @@
                }
        } else if (chan->state == S3C2410_DMA_IDLE) {
                if (chan->flags & S3C2410_DMAF_AUTOSTART) {
-                       s3c2410_dma_ctrl(chan->number, S3C2410_DMAOP_START);
+                       s3c2410_dma_ctrl(chan->number | DMACH_LOW_LEVEL,
+                                        S3C2410_DMAOP_START);
                }
        }
 
@@ -787,7 +788,7 @@
 
        pr_debug("%s: channel initialised, %p\n", __FUNCTION__, chan);
 
-       return 0;
+       return chan->number | DMACH_LOW_LEVEL;
 }
 
 EXPORT_SYMBOL(s3c2410_dma_request);
@@ -1185,7 +1186,7 @@
                dma_wrreg(chan, S3C2410_DMA_DIDSTC, (0<<1) | (0<<0));
 
                chan->addr_reg = dma_regaddr(chan, S3C2410_DMA_DIDST);
-               return 0;
+               break;
 
        case S3C2410_DMASRC_MEM:
                /* source is memory */
@@ -1196,11 +1197,19 @@
                dma_wrreg(chan, S3C2410_DMA_DIDSTC, hwcfg & 3);
 
                chan->addr_reg = dma_regaddr(chan, S3C2410_DMA_DISRC);
-               return 0;
-       }
-
-       printk(KERN_ERR "dma%d: invalid source type (%d)\n", channel, source);
-       return -EINVAL;
+               break;
+
+       default:
+               printk(KERN_ERR "dma%d: invalid source type (%d)\n",
+                      channel, source);
+
+               return -EINVAL;
+       }
+
+       if (dma_sel.direction != NULL)
+               (dma_sel.direction)(chan, chan->map, source);
+
+       return 0;
 }
 
 EXPORT_SYMBOL(s3c2410_dma_devconfig);

Modified: 
trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/drivers/mmc/host/s3cmci.c
URL: 
http://svn.slimdevices.com/trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/drivers/mmc/host/s3cmci.c?rev=1459&root=Jive&r1=1458&r2=1459&view=diff
==============================================================================
--- trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/drivers/mmc/host/s3cmci.c 
(original)
+++ trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/drivers/mmc/host/s3cmci.c 
Wed Jan 16 03:01:18 2008
@@ -1217,7 +1217,7 @@
                s3c2410_gpio_cfgpin(host->pdata->gpio_wprotect,
                                    S3C2410_GPIO_INPUT);
 
-       if (s3c2410_dma_request(S3CMCI_DMA, &s3cmci_dma_client, NULL)) {
+       if (s3c2410_dma_request(S3CMCI_DMA, &s3cmci_dma_client, NULL) < 0) {
                dev_err(&pdev->dev, "unable to get DMA channel.\n");
                ret = -EBUSY;
                goto probe_free_irq_cd;

Modified: 
trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/drivers/mtd/maps/plat-ram.c
URL: 
http://svn.slimdevices.com/trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/drivers/mtd/maps/plat-ram.c?rev=1459&root=Jive&r1=1458&r2=1459&view=diff
==============================================================================
--- trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/drivers/mtd/maps/plat-ram.c 
(original)
+++ trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/drivers/mtd/maps/plat-ram.c 
Wed Jan 16 03:01:18 2008
@@ -273,7 +273,8 @@
        platform_driver_unregister(&platram_driver);
 }
 
-module_init(platram_init);
+//module_init(platram_init);
+late_initcall(platram_init);
 module_exit(platram_exit);
 
 MODULE_LICENSE("GPL");

Modified: 
trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/drivers/video/s3c2410fb.c
URL: 
http://svn.slimdevices.com/trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/drivers/video/s3c2410fb.c?rev=1459&root=Jive&r1=1458&r2=1459&view=diff
==============================================================================
--- trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/drivers/video/s3c2410fb.c 
(original)
+++ trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/drivers/video/s3c2410fb.c 
Wed Jan 16 03:01:18 2008
@@ -723,8 +723,8 @@
 
        dprintk("map_video_memory(fbi=%p) map_size %u\n", fbi, map_size);
 
-       info->screen_base = dma_alloc_writecombine(fbi->dev, map_size,
-                                                  &map_dma, GFP_KERNEL);
+       info->screen_base = dma_alloc_cached(fbi->dev, map_size,
+                                            &map_dma, GFP_KERNEL);
 
        if (info->screen_base) {
                /* prevent initial garbage on screen */

Modified: 
trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/include/asm-arm/arch-s3c2410/hardware.h
URL: 
http://svn.slimdevices.com/trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/include/asm-arm/arch-s3c2410/hardware.h?rev=1459&root=Jive&r1=1458&r2=1459&view=diff
==============================================================================
--- 
trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/include/asm-arm/arch-s3c2410/hardware.h
 (original)
+++ 
trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/include/asm-arm/arch-s3c2410/hardware.h
 Wed Jan 16 03:01:18 2008
@@ -122,6 +122,11 @@
 
 #endif /* CONFIG_CPU_S3C2440 */
 
+#ifdef CONFIG_CPU_S3C2412
+
+extern int s3c2412_gpio_set_sleepcfg(unsigned int pin, unsigned int state);
+
+#endif /* CONFIG_CPU_S3C2412 */
 
 #endif /* __ASSEMBLY__ */
 

Modified: 
trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/include/asm-arm/arch-s3c2410/irqs.h
URL: 
http://svn.slimdevices.com/trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/include/asm-arm/arch-s3c2410/irqs.h?rev=1459&root=Jive&r1=1458&r2=1459&view=diff
==============================================================================
--- 
trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/include/asm-arm/arch-s3c2410/irqs.h
 (original)
+++ 
trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/include/asm-arm/arch-s3c2410/irqs.h
 Wed Jan 16 03:01:18 2008
@@ -160,4 +160,7 @@
 #define NR_IRQS (IRQ_S3C2440_AC97+1)
 #endif
 
+/* Our FIQs are routable from IRQ_EINT0 to IRQ_ADCPARENT */
+#define FIQ_START              IRQ_EINT0
+
 #endif /* __ASM_ARCH_IRQ_H */

Modified: 
trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/include/asm-arm/arch-s3c2410/regs-gpio.h
URL: 
http://svn.slimdevices.com/trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/include/asm-arm/arch-s3c2410/regs-gpio.h?rev=1459&root=Jive&r1=1458&r2=1459&view=diff
==============================================================================
--- 
trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/include/asm-arm/arch-s3c2410/regs-gpio.h
 (original)
+++ 
trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/include/asm-arm/arch-s3c2410/regs-gpio.h
 Wed Jan 16 03:01:18 2008
@@ -1139,6 +1139,11 @@
 #define S3C2412_GPHSLPCON      S3C2410_GPIOREG(0x7C)
 
 /* definitions for each pin bit */
+#define S3C2412_GPIO_SLPCON_LOW         ( 0x00 )
+#define S3C2412_GPIO_SLPCON_HIGH ( 0x01 )
+#define S3C2412_GPIO_SLPCON_IN   ( 0x02 )
+#define S3C2412_GPIO_SLPCON_PULL ( 0x03 )
+
 #define S3C2412_SLPCON_LOW(x)  ( 0x00 << ((x) * 2))
 #define S3C2412_SLPCON_HIGH(x) ( 0x01 << ((x) * 2))
 #define S3C2412_SLPCON_IN(x)   ( 0x02 << ((x) * 2))

Modified: 
trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/include/asm-arm/arch-s3c2410/regs-spi.h
URL: 
http://svn.slimdevices.com/trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/include/asm-arm/arch-s3c2410/regs-spi.h?rev=1459&root=Jive&r1=1458&r2=1459&view=diff
==============================================================================
--- 
trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/include/asm-arm/arch-s3c2410/regs-spi.h
 (original)
+++ 
trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/include/asm-arm/arch-s3c2410/regs-spi.h
 Wed Jan 16 03:01:18 2008
@@ -17,7 +17,21 @@
 
 #define S3C2410_SPCON  (0x00)
 
+#define S3C2412_SPCON_RXFIFO_RB2       (0<<14)
+#define S3C2412_SPCON_RXFIFO_RB4       (1<<14)
+#define S3C2412_SPCON_RXFIFO_RB12      (2<<14)
+#define S3C2412_SPCON_RXFIFO_RB14      (3<<14)
+#define S3C2412_SPCON_TXFIFO_RB2       (0<<12)
+#define S3C2412_SPCON_TXFIFO_RB4       (1<<12)
+#define S3C2412_SPCON_TXFIFO_RB12      (2<<12)
+#define S3C2412_SPCON_TXFIFO_RB14      (3<<12)
+#define S3C2412_SPCON_RXFIFO_RESET     (1<<11) /* RxFIFO reset */
+#define S3C2412_SPCON_TXFIFO_RESET     (1<<10) /* TxFIFO reset */
+#define S3C2412_SPCON_RXFIFO_EN                (1<<9)  /* RxFIFO Enable */
+#define S3C2412_SPCON_TXFIFO_EN                (1<<8)  /* TxFIFO Enable */
+
 #define S3C2412_SPCON_DIRC_RX    (1<<7)
+
 #define S3C2410_SPCON_SMOD_DMA   (2<<5)        /* DMA mode */
 #define S3C2410_SPCON_SMOD_INT   (1<<5)        /* interrupt mode */
 #define S3C2410_SPCON_SMOD_POLL   (0<<5)       /* polling mode */
@@ -34,6 +48,15 @@
 
 
 #define S3C2410_SPSTA   (0x04)
+
+#define S3C2412_SPSTA_RXFIFO_AE                (1<<11)
+#define S3C2412_SPSTA_TXFIFO_AE                (1<<10)
+#define S3C2412_SPSTA_RXFIFO_ERROR     (1<<9)
+#define S3C2412_SPSTA_TXFIFO_ERROR     (1<<8)
+#define S3C2412_SPSTA_RXFIFO_FIFO      (1<<7)
+#define S3C2412_SPSTA_RXFIFO_EMPTY     (1<<6)
+#define S3C2412_SPSTA_TXFIFO_NFULL     (1<<5)
+#define S3C2412_SPSTA_TXFIFO_EMPTY     (1<<4)
 
 #define S3C2410_SPSTA_DCOL       (1<<2)        /* Data Collision Error */
 #define S3C2410_SPSTA_MULD       (1<<1)        /* Multi Master Error */

Modified: 
trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/include/asm-arm/dma-mapping.h
URL: 
http://svn.slimdevices.com/trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/include/asm-arm/dma-mapping.h?rev=1459&root=Jive&r1=1458&r2=1459&view=diff
==============================================================================
--- 
trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/include/asm-arm/dma-mapping.h 
(original)
+++ 
trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/include/asm-arm/dma-mapping.h 
Wed Jan 16 03:01:18 2008
@@ -137,6 +137,9 @@
  */
 extern void *
 dma_alloc_writecombine(struct device *dev, size_t size, dma_addr_t *handle, 
gfp_t gfp);
+
+extern void *
+dma_alloc_cached(struct device *dev, size_t size, dma_addr_t *handle, gfp_t 
gfp);
 
 #define dma_free_writecombine(dev,size,cpu_addr,handle) \
        dma_free_coherent(dev,size,cpu_addr,handle)

Modified: 
trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/include/asm-arm/plat-s3c24xx/dma.h
URL: 
http://svn.slimdevices.com/trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/include/asm-arm/plat-s3c24xx/dma.h?rev=1459&root=Jive&r1=1458&r2=1459&view=diff
==============================================================================
--- 
trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/include/asm-arm/plat-s3c24xx/dma.h
 (original)
+++ 
trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/include/asm-arm/plat-s3c24xx/dma.h
 Wed Jan 16 03:01:18 2008
@@ -32,6 +32,7 @@
        struct s3c24xx_dma_addr  hw_addr;
 
        unsigned long            channels[S3C2410_DMA_CHANNELS];
+       unsigned long            channels_rx[S3C2410_DMA_CHANNELS];
 };
 
 struct s3c24xx_dma_selection {
@@ -41,6 +42,10 @@
 
        void    (*select)(struct s3c2410_dma_chan *chan,
                          struct s3c24xx_dma_map *map);
+
+       void    (*direction)(struct s3c2410_dma_chan *chan,
+                            struct s3c24xx_dma_map *map,
+                            enum s3c2410_dmasrc dir);
 };
 
 extern int s3c24xx_dma_init_map(struct s3c24xx_dma_selection *sel);

Modified: 
trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/sound/soc/s3c24xx/s3c24xx-pcm.c
URL: 
http://svn.slimdevices.com/trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/sound/soc/s3c24xx/s3c24xx-pcm.c?rev=1459&root=Jive&r1=1458&r2=1459&view=diff
==============================================================================
--- 
trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/sound/soc/s3c24xx/s3c24xx-pcm.c 
(original)
+++ 
trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/sound/soc/s3c24xx/s3c24xx-pcm.c 
Wed Jan 16 03:01:18 2008
@@ -170,7 +170,7 @@
                ret = s3c2410_dma_request(prtd->params->channel,
                                          prtd->params->client, NULL);
 
-               if (ret) {
+               if (ret < 0) {
                        DBG(KERN_ERR "failed to get dma channel\n");
                        return ret;
                }

_______________________________________________
Jive-checkins mailing list
[email protected]
http://lists.slimdevices.com/cgi-bin/mailman/listinfo/jive-checkins

Reply via email to