Commit 234bb3c6 authored by Ian Abbott's avatar Ian Abbott Committed by Greg Kroah-Hartman

staging: comedi: Add kernel config for default buffer sizes

Allow the default values for the module parameters for the default
initial buffer size and default maximum buffer size to be specified in
the kernel configuration.

I'm not sure what the defaults for the defaults for the defaults should
be, but 64 KiB seems to small, so I used values suggested by Bernd Porr,
which are 2048 KiB for the default initial buffer size and 20480 for the
default maximum buffer size.
Signed-off-by: default avatarIan Abbott <abbotti@mev.co.uk>
Cc: Bernd Porr <berndporr@f2s.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 4d7df821
...@@ -14,6 +14,26 @@ config COMEDI_DEBUG ...@@ -14,6 +14,26 @@ config COMEDI_DEBUG
This is an option for use by developers; most people should This is an option for use by developers; most people should
say N here. This enables comedi core and driver debugging. say N here. This enables comedi core and driver debugging.
config COMEDI_DEFAULT_BUF_SIZE_KB
int "Comedi default initial asynchronous buffer size in KiB"
default "2048"
depends on COMEDI != n
---help---
This is the default asynchronous buffer size which is used for
commands running in the background in kernel space. This
defaults to 2048 KiB of memory so that a 16 channel card
running at 10 kHz has of 2-4 seconds of buffer.
config COMEDI_DEFAULT_BUF_MAXSIZE_KB
int "Comedi default maximum asynchronous buffer size in KiB"
default "20480"
depends on COMEDI != n
---help---
This is the default maximum asynchronous buffer size which can
be requested by a userspace program without root privileges.
This is set to 20480 KiB so that a fast I/O card with 16
channels running at 100 kHz has 2-4 seconds of buffer.
menuconfig COMEDI_MISC_DRIVERS menuconfig COMEDI_MISC_DRIVERS
tristate "Comedi misc drivers" tristate "Comedi misc drivers"
depends on COMEDI depends on COMEDI
......
...@@ -55,9 +55,6 @@ MODULE_AUTHOR("http://www.comedi.org"); ...@@ -55,9 +55,6 @@ MODULE_AUTHOR("http://www.comedi.org");
MODULE_DESCRIPTION("Comedi core module"); MODULE_DESCRIPTION("Comedi core module");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
#define DEFAULT_BUF_MAXSIZE_KB 64
#define DEFAULT_BUF_SIZE_KB 64
#ifdef CONFIG_COMEDI_DEBUG #ifdef CONFIG_COMEDI_DEBUG
int comedi_debug; int comedi_debug;
EXPORT_SYMBOL(comedi_debug); EXPORT_SYMBOL(comedi_debug);
...@@ -78,17 +75,18 @@ MODULE_PARM_DESC(comedi_num_legacy_minors, ...@@ -78,17 +75,18 @@ MODULE_PARM_DESC(comedi_num_legacy_minors,
"number of comedi minor devices to reserve for non-auto-configured devices (default 0)" "number of comedi minor devices to reserve for non-auto-configured devices (default 0)"
); );
unsigned int comedi_default_buf_size_kb = DEFAULT_BUF_SIZE_KB; unsigned int comedi_default_buf_size_kb = CONFIG_COMEDI_DEFAULT_BUF_SIZE_KB;
module_param(comedi_default_buf_size_kb, uint, S_IRUGO | S_IWUSR); module_param(comedi_default_buf_size_kb, uint, S_IRUGO | S_IWUSR);
MODULE_PARM_DESC(comedi_default_buf_size_kb, MODULE_PARM_DESC(comedi_default_buf_size_kb,
"default asynchronous buffer size in KiB (default " "default asynchronous buffer size in KiB (default "
__MODULE_STRING(DEFAULT_BUF_SIZE_KB) ")"); __MODULE_STRING(CONFIG_COMEDI_DEFAULT_BUF_SIZE_KB) ")");
unsigned int comedi_default_buf_maxsize_kb = DEFAULT_BUF_MAXSIZE_KB; unsigned int comedi_default_buf_maxsize_kb
= CONFIG_COMEDI_DEFAULT_BUF_MAXSIZE_KB;
module_param(comedi_default_buf_maxsize_kb, uint, S_IRUGO | S_IWUSR); module_param(comedi_default_buf_maxsize_kb, uint, S_IRUGO | S_IWUSR);
MODULE_PARM_DESC(comedi_default_buf_maxsize_kb, MODULE_PARM_DESC(comedi_default_buf_maxsize_kb,
"default maximum size of asynchronous buffer in KiB (default " "default maximum size of asynchronous buffer in KiB (default "
__MODULE_STRING(DEFAULT_BUF_MAXSIZE_KB) ")"); __MODULE_STRING(CONFIG_COMEDI_DEFAULT_BUF_MAXSIZE_KB) ")");
static DEFINE_SPINLOCK(comedi_file_info_table_lock); static DEFINE_SPINLOCK(comedi_file_info_table_lock);
static struct comedi_device_file_info static struct comedi_device_file_info
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment