CONFIG_GENERIC_ISA_DMA
Subsystems (7)
PATCH 1/1 CONFIG_GENERIC_ISA_DMA
Linus, lkml,
The following patch adds support for CONFIG_GENERIC_ISA_DMA, which went into the 2.4-ac kernel series prior to 2.5 happening.
The following patch allows architectures to decide whether they want the generic ISA DMA functionality provided by kernel/dma.c and other supporting files.
fs/proc/proc_misc.c +4 -0
@@ -394,12 +394,14 @@return proc_calc_metrics (page, start, off, count, eof, len); } +#ifdef CONFIG_GENERIC_ISA_DMA static int dma_read_proc (char *page,char **start,off_t off,int count,int *eof,void *data) {int len =get_dma_list (page);return proc_calc_metrics (page, start, off, count, eof, len); } +#endif static int ioports_read_proc (char *page,char **start,off_t off,int count,int *eof,void *data)
@@ -553,7 +555,9 @@ {"stat", kstat_read_proc}, {"devices", devices_read_proc}, {"filesystems", filesystems_read_proc}, +#ifdef CONFIG_GENERIC_ISA_DMA {"dma", dma_read_proc}, +#endif {"ioports", ioports_read_proc}, {"cmdline", cmdline_read_proc}, #ifdef CONFIG_SGI_DS1286
kernel/Makefile +0 -0
@@ -12,11 +12,12 @@ export-objs = signal.o sys.o kmod.o context.o ksyms.o pm.o exec_domain.o \
printk.o platform.o suspend.o
-obj-y = sched.o dma.o fork.o exec_domain.o panic.o printk.o \
+obj-y = sched.o fork.o exec_domain.o panic.o printk.o \ module.o exit.o itimer.o info.o time.o softirq.o resource.o \
sysctl.o capability.o ptrace.o timer.o user.o \
signal.o sys.o kmod.o context.o futex.o platform.o
+obj-$(CONFIG_GENERIC_ISA_DMA) += dma.o
obj-$(CONFIG_UID16) += uid16.o
obj-$(CONFIG_MODULES) += ksyms.o
obj-$(CONFIG_PM) += pm.o
kernel/ksyms.c +2 -0
@@ -436,9 +436,11 @@EXPORT_SYMBOL (kiobuf_wait_for_io);/* dma handling */ +#ifdef CONFIG_GENERIC_ISA_DMA EXPORT_SYMBOL (request_dma);EXPORT_SYMBOL (free_dma);EXPORT_SYMBOL (dma_spin_lock); +#endif #ifdef HAVE_DISABLE_HLT EXPORT_SYMBOL (disable_hlt);EXPORT_SYMBOL (enable_hlt);
arch/alpha/config.in +1 -0
@@ -7,6 +7,7 @@ define_bool CONFIG_UID16 n define_bool CONFIG_RWSEM_GENERIC_SPINLOCK n define_bool CONFIG_RWSEM_XCHGADD_ALGORITHM y +define_bool CONFIG_GENERIC_ISA_DMA y source init/Config.in
arch/i386/config.in +1 -0
@@ -9,6 +9,7 @@ define_bool CONFIG_SBUS n define_bool CONFIG_UID16 y +define_bool CONFIG_GENERIC_ISA_DMA y source init/Config.in
arch/ia64/config.in +1 -0
@@ -13,6 +13,7 @@ define_bool CONFIG_SBUS n define_bool CONFIG_RWSEM_GENERIC_SPINLOCK y define_bool CONFIG_RWSEM_XCHGADD_ALGORITHM n +define_bool CONFIG_GENERIC_ISA_DMA y choice 'IA-64 processor type' \ "Itanium CONFIG_ITANIUM \
arch/m68k/config.in +1 -0
@@ -6,6 +6,7 @@ define_bool CONFIG_UID16 y define_bool CONFIG_RWSEM_GENERIC_SPINLOCK y define_bool CONFIG_RWSEM_XCHGADD_ALGORITHM n +define_bool CONFIG_GENERIC_ISA_DMA y mainmenu_name "Linux/68k Kernel Configuration"
arch/mips/config.in +1 -0
@@ -4,6 +4,7 @@ # define_bool CONFIG_MIPS y define_bool CONFIG_SMP n +define_bool CONFIG_GENERIC_ISA_DMA y mainmenu_name "Linux Kernel Configuration"
arch/mips64/config.in +1 -0
@@ -26,6 +26,7 @@ define_bool CONFIG_RWSEM_GENERIC_SPINLOCK y define_bool CONFIG_RWSEM_XCHGADD_ALGORITHM n +define_bool CONFIG_GENERIC_ISA_DMA y # # Select some configuration options automatically based on user selections
arch/parisc/config.in +1 -0
@@ -9,6 +9,7 @@ define_bool CONFIG_UID16 n define_bool CONFIG_RWSEM_GENERIC_SPINLOCK y define_bool CONFIG_RWSEM_XCHGADD_ALGORITHM n +define_bool CONFIG_GENERIC_ISA_DMA y source init/Config.in
arch/ppc/config.in +1 -0
@@ -7,6 +7,7 @@ define_bool CONFIG_RWSEM_GENERIC_SPINLOCK n define_bool CONFIG_RWSEM_XCHGADD_ALGORITHM y define_bool CONFIG_HAVE_DEC_LOCK y +define_bool CONFIG_GENERIC_ISA_DMA y mainmenu_name "Linux/PowerPC Kernel Configuration"
arch/sh/config.in +1 -0
@@ -9,6 +9,7 @@ define_bool CONFIG_UID16 y define_bool CONFIG_RWSEM_GENERIC_SPINLOCK y define_bool CONFIG_RWSEM_XCHGADD_ALGORITHM n +define_bool CONFIG_GENERIC_ISA_DMA y source init/Config.in
arch/sparc/config.in +1 -0
@@ -6,6 +6,7 @@ define_bool CONFIG_UID16 y define_bool CONFIG_HIGHMEM y +define_bool CONFIG_GENERIC_ISA_DMA y source init/Config.in
arch/sparc64/config.in +1 -0
@@ -26,6 +26,7 @@ define_bool CONFIG_HAVE_DEC_LOCK y define_bool CONFIG_RWSEM_GENERIC_SPINLOCK n define_bool CONFIG_RWSEM_XCHGADD_ALGORITHM y +define_bool CONFIG_GENERIC_ISA_DMA y define_bool CONFIG_ISA n define_bool CONFIG_ISAPNP n define_bool CONFIG_EISA n
Signature · 2 lines
Russell King ([email protected]) The developer of ARM Linux http://www.arm.linux.org.uk/personal/aboutme.html
Quoted 7 lines · Russell King
Linus, lkml,
The following patch adds support for
CONFIG_GENERIC_ISA_DMA, which went into the 2.4-ac kernel series prior to 2.5 happening.
Nice... I think we want to (over time) start marking drivers that require ISA DMA as well, either in the code (if the driver functions without ISA DMA, but can use it) or in Config.in.
Jeff
Re: [PATCH] CONFIG_GENERIC_ISA_DMA (for testing)
In reply to Russell KingHere's an updated version, taking into account hch's and David Mosburger's comments. It's against 2.5.20. I've checked that (after some messing about) it builds under ARM, but it needs someone to make sure that "cat /proc/dma" produces the expected output.
arch/alpha/config.in +1 -0
@@ -7,6 +7,7 @@ define_bool CONFIG_UID16 n define_bool CONFIG_RWSEM_GENERIC_SPINLOCK n define_bool CONFIG_RWSEM_XCHGADD_ALGORITHM y +define_bool CONFIG_GENERIC_ISA_DMA y source init/Config.in
arch/i386/config.in +1 -0
@@ -9,6 +9,7 @@ define_bool CONFIG_SBUS n define_bool CONFIG_UID16 y +define_bool CONFIG_GENERIC_ISA_DMA y source init/Config.in
arch/m68k/config.in +1 -0
@@ -6,6 +6,7 @@ define_bool CONFIG_UID16 y define_bool CONFIG_RWSEM_GENERIC_SPINLOCK y define_bool CONFIG_RWSEM_XCHGADD_ALGORITHM n +define_bool CONFIG_GENERIC_ISA_DMA y mainmenu_name "Linux/68k Kernel Configuration"
arch/mips/config.in +1 -0
@@ -4,6 +4,7 @@ # define_bool CONFIG_MIPS y define_bool CONFIG_SMP n +define_bool CONFIG_GENERIC_ISA_DMA y mainmenu_name "Linux Kernel Configuration"
arch/mips64/config.in +1 -0
@@ -26,6 +26,7 @@ define_bool CONFIG_RWSEM_GENERIC_SPINLOCK y define_bool CONFIG_RWSEM_XCHGADD_ALGORITHM n +define_bool CONFIG_GENERIC_ISA_DMA y # # Select some configuration options automatically based on user selections
arch/parisc/config.in +1 -0
@@ -9,6 +9,7 @@ define_bool CONFIG_UID16 n define_bool CONFIG_RWSEM_GENERIC_SPINLOCK y define_bool CONFIG_RWSEM_XCHGADD_ALGORITHM n +define_bool CONFIG_GENERIC_ISA_DMA y source init/Config.in
arch/ppc/config.in +1 -0
@@ -7,6 +7,7 @@ define_bool CONFIG_RWSEM_GENERIC_SPINLOCK n define_bool CONFIG_RWSEM_XCHGADD_ALGORITHM y define_bool CONFIG_HAVE_DEC_LOCK y +define_bool CONFIG_GENERIC_ISA_DMA y mainmenu_name "Linux/PowerPC Kernel Configuration"
arch/sh/config.in +1 -0
@@ -9,6 +9,7 @@ define_bool CONFIG_UID16 y define_bool CONFIG_RWSEM_GENERIC_SPINLOCK y define_bool CONFIG_RWSEM_XCHGADD_ALGORITHM n +define_bool CONFIG_GENERIC_ISA_DMA y source init/Config.in
arch/sparc/config.in +1 -0
@@ -6,6 +6,7 @@ define_bool CONFIG_UID16 y define_bool CONFIG_HIGHMEM y +define_bool CONFIG_GENERIC_ISA_DMA y source init/Config.in
arch/sparc64/config.in +1 -0
@@ -26,6 +26,7 @@ define_bool CONFIG_HAVE_DEC_LOCK y define_bool CONFIG_RWSEM_GENERIC_SPINLOCK n define_bool CONFIG_RWSEM_XCHGADD_ALGORITHM y +define_bool CONFIG_GENERIC_ISA_DMA y define_bool CONFIG_ISA n define_bool CONFIG_ISAPNP n define_bool CONFIG_EISA n
kernel/Makefile +3 -2
@@ -10,13 +10,14 @@ O_TARGET := kernel.o export-objs = signal.o sys.o kmod.o context.o ksyms.o pm.o exec_domain.o \ - printk.o platform.o suspend.o + printk.o platform.o suspend.o dma.o -obj-y = sched.o dma.o fork.o exec_domain.o panic.o printk.o \ +obj-y = sched.o fork.o exec_domain.o panic.o printk.o \ module.o exit.o itimer.o info.o time.o softirq.o resource.o \ sysctl.o capability.o ptrace.o timer.o user.o \ signal.o sys.o kmod.o context.o futex.o platform.o +obj-$(CONFIG_GENERIC_ISA_DMA) += dma.o obj-$(CONFIG_UID16) += uid16.o obj-$(CONFIG_MODULES) += ksyms.o obj-$(CONFIG_PM) += pm.o
kernel/dma.c +64 -19
110 lines not on this page · raw message
kernel/ksyms.c +0 -7
@@ -63,9 +63,6 @@extern void *sys_call_table;extern struct timezone sys_tz; -extern int request_dma (unsigned int dmanr,const char * deviceID); -extern void free_dma (unsigned int dmanr); -extern spinlock_t dma_spin_lock;#ifdef CONFIG_MODVERSIONS const struct module_symbol __export_Using_Versions
@@ -435,10 +433,6 @@EXPORT_SYMBOL (brw_kiovec);EXPORT_SYMBOL (kiobuf_wait_for_io); -/* dma handling */ -EXPORT_SYMBOL (request_dma); -EXPORT_SYMBOL (free_dma); -EXPORT_SYMBOL (dma_spin_lock);#ifdef HAVE_DISABLE_HLT EXPORT_SYMBOL (disable_hlt);EXPORT_SYMBOL (enable_hlt);
fs/proc/proc_misc.c +0 -8
@@ -394,13 +394,6 @@return proc_calc_metrics (page, start, off, count, eof, len); } -static int dma_read_proc (char *page,char **start,off_t off, -int count,int *eof,void *data) -{ -int len =get_dma_list (page); -return proc_calc_metrics (page, start, off, count, eof, len); -} -static int ioports_read_proc (char *page,char **start,off_t off,int count,int *eof,void *data) {
@@ -553,7 +546,6 @@ {"stat", kstat_read_proc}, {"devices", devices_read_proc}, {"filesystems", filesystems_read_proc}, - {"dma", dma_read_proc}, {"ioports", ioports_read_proc}, {"cmdline", cmdline_read_proc}, #ifdef CONFIG_SGI_DS1286
Signature · 2 lines
Russell King ([email protected]) The developer of ARM Linux http://www.arm.linux.org.uk/personal/aboutme.html
PATCH 1/1 CONFIG_GENERIC_ISA_DMA
In reply to Russell KingLinus, lkml,
The following patch adds support for CONFIG_GENERIC_ISA_DMA, which went into the 2.4-ac kernel series prior to 2.5 happening.
The following patch allows architectures to decide whether they want the generic ISA DMA functionality provided by kernel/dma.c and other supporting files.
In addition, we move the procfs "/proc/dma" support code out of fs/proc into kernel/dma.c, and adapt it to use the new seq_file code.
This patch is against 2.5.21.
arch/alpha/config.in +1 -0
@@ -7,6 +7,7 @@ define_bool CONFIG_UID16 n define_bool CONFIG_RWSEM_GENERIC_SPINLOCK n define_bool CONFIG_RWSEM_XCHGADD_ALGORITHM y +define_bool CONFIG_GENERIC_ISA_DMA y source init/Config.in
arch/i386/config.in +1 -0
@@ -9,6 +9,7 @@ define_bool CONFIG_SBUS n define_bool CONFIG_UID16 y +define_bool CONFIG_GENERIC_ISA_DMA y source init/Config.in
arch/m68k/config.in +1 -0
@@ -6,6 +6,7 @@ define_bool CONFIG_UID16 y define_bool CONFIG_RWSEM_GENERIC_SPINLOCK y define_bool CONFIG_RWSEM_XCHGADD_ALGORITHM n +define_bool CONFIG_GENERIC_ISA_DMA y mainmenu_name "Linux/68k Kernel Configuration"
arch/mips/config.in +1 -0
@@ -4,6 +4,7 @@ # define_bool CONFIG_MIPS y define_bool CONFIG_SMP n +define_bool CONFIG_GENERIC_ISA_DMA y mainmenu_name "Linux Kernel Configuration"
arch/mips64/config.in +1 -0
@@ -26,6 +26,7 @@ define_bool CONFIG_RWSEM_GENERIC_SPINLOCK y define_bool CONFIG_RWSEM_XCHGADD_ALGORITHM n +define_bool CONFIG_GENERIC_ISA_DMA y # # Select some configuration options automatically based on user selections
arch/parisc/config.in +1 -0
@@ -9,6 +9,7 @@ define_bool CONFIG_UID16 n define_bool CONFIG_RWSEM_GENERIC_SPINLOCK y define_bool CONFIG_RWSEM_XCHGADD_ALGORITHM n +define_bool CONFIG_GENERIC_ISA_DMA y source init/Config.in
arch/ppc/config.in +1 -0
@@ -7,6 +7,7 @@ define_bool CONFIG_RWSEM_GENERIC_SPINLOCK n define_bool CONFIG_RWSEM_XCHGADD_ALGORITHM y define_bool CONFIG_HAVE_DEC_LOCK y +define_bool CONFIG_GENERIC_ISA_DMA y mainmenu_name "Linux/PowerPC Kernel Configuration"
arch/sh/config.in +1 -0
@@ -9,6 +9,7 @@ define_bool CONFIG_UID16 y define_bool CONFIG_RWSEM_GENERIC_SPINLOCK y define_bool CONFIG_RWSEM_XCHGADD_ALGORITHM n +define_bool CONFIG_GENERIC_ISA_DMA y source init/Config.in
arch/sparc/config.in +1 -0
@@ -6,6 +6,7 @@ define_bool CONFIG_UID16 y define_bool CONFIG_HIGHMEM y +define_bool CONFIG_GENERIC_ISA_DMA y source init/Config.in
arch/sparc64/config.in +1 -0
@@ -26,6 +26,7 @@ define_bool CONFIG_HAVE_DEC_LOCK y define_bool CONFIG_RWSEM_GENERIC_SPINLOCK n define_bool CONFIG_RWSEM_XCHGADD_ALGORITHM y +define_bool CONFIG_GENERIC_ISA_DMA y define_bool CONFIG_ISA n define_bool CONFIG_ISAPNP n define_bool CONFIG_EISA n
kernel/Makefile +3 -2
@@ -10,13 +10,14 @@ O_TARGET := kernel.o export-objs = signal.o sys.o kmod.o context.o ksyms.o pm.o exec_domain.o \ - printk.o platform.o suspend.o + printk.o platform.o suspend.o dma.o -obj-y = sched.o dma.o fork.o exec_domain.o panic.o printk.o \ +obj-y = sched.o fork.o exec_domain.o panic.o printk.o \ module.o exit.o itimer.o time.o softirq.o resource.o \ sysctl.o capability.o ptrace.o timer.o user.o \ signal.o sys.o kmod.o context.o futex.o platform.o +obj-$(CONFIG_GENERIC_ISA_DMA) += dma.o obj-$(CONFIG_UID16) += uid16.o obj-$(CONFIG_MODULES) += ksyms.o obj-$(CONFIG_PM) += pm.o
kernel/dma.c +64 -19
110 lines not on this page · raw message
kernel/ksyms.c +0 -7
@@ -63,9 +63,6 @@extern void *sys_call_table;extern struct timezone sys_tz; -extern int request_dma (unsigned int dmanr,const char * deviceID); -extern void free_dma (unsigned int dmanr); -extern spinlock_t dma_spin_lock;#ifdef CONFIG_MODVERSIONS const struct module_symbol __export_Using_Versions
@@ -434,10 +432,6 @@EXPORT_SYMBOL (brw_kiovec);EXPORT_SYMBOL (kiobuf_wait_for_io); -/* dma handling */ -EXPORT_SYMBOL (request_dma); -EXPORT_SYMBOL (free_dma); -EXPORT_SYMBOL (dma_spin_lock);#ifdef HAVE_DISABLE_HLT EXPORT_SYMBOL (disable_hlt);EXPORT_SYMBOL (enable_hlt);
fs/proc/proc_misc.c +0 -8
@@ -394,13 +394,6 @@return proc_calc_metrics (page, start, off, count, eof, len); } -static int dma_read_proc (char *page,char **start,off_t off, -int count,int *eof,void *data) -{ -int len =get_dma_list (page); -return proc_calc_metrics (page, start, off, count, eof, len); -} -static int ioports_read_proc (char *page,char **start,off_t off,int count,int *eof,void *data) {
@@ -553,7 +546,6 @@ {"stat", kstat_read_proc}, {"devices", devices_read_proc}, {"filesystems", filesystems_read_proc}, - {"dma", dma_read_proc}, {"ioports", ioports_read_proc}, {"cmdline", cmdline_read_proc}, #ifdef CONFIG_SGI_DS1286
Signature · 2 lines
Russell King ([email protected]) The developer of ARM Linux http://www.arm.linux.org.uk/personal/aboutme.html