summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--linux-core/drmP.h5
-rw-r--r--linux-core/drm_drv.c28
-rw-r--r--linux-core/drm_init.c85
-rw-r--r--linux-core/drm_stub.c9
4 files changed, 7 insertions, 120 deletions
diff --git a/linux-core/drmP.h b/linux-core/drmP.h
index 8af9f359..49cd9049 100644
--- a/linux-core/drmP.h
+++ b/linux-core/drmP.h
@@ -188,7 +188,7 @@
#if DRM_DEBUG_CODE
#define DRM_DEBUG(fmt, arg...) \
do { \
- if ( drm_flags & DRM_FLAG_DEBUG ) \
+ if ( drm_debug ) \
printk(KERN_DEBUG \
"[" DRM_NAME ":%s] " fmt , \
__FUNCTION__ , ##arg); \
@@ -726,8 +726,6 @@ static inline int drm_core_has_MTRR(struct drm_device *dev)
/*@{*/
/* Misc. support (drm_init.h) */
-extern int drm_flags;
-extern void drm_parse_options(char *s);
extern int drm_cpu_valid(void);
/* Driver support (drm_drv.h) */
@@ -919,6 +917,7 @@ extern int drm_get_dev(struct pci_dev *pdev, const struct pci_device_id *ent,
extern int drm_put_dev(drm_device_t * dev);
extern int drm_get_head(drm_device_t * dev, drm_head_t *head);
extern int drm_put_head(drm_head_t * head);
+extern unsigned int drm_debug; /* 1 to enable debug output */
extern unsigned int cards_limit;
extern drm_head_t **drm_heads;
extern struct drm_sysfs_class *drm_class;
diff --git a/linux-core/drm_drv.c b/linux-core/drm_drv.c
index 79c0229c..55289e16 100644
--- a/linux-core/drm_drv.c
+++ b/linux-core/drm_drv.c
@@ -55,25 +55,6 @@
#include "drm_core.h"
static void __exit drm_cleanup(drm_device_t * dev);
-
-#ifndef MODULE
-/** Use an additional macro to avoid preprocessor troubles */
-#define DRM_OPTIONS_FUNC drm_options
-/**
- * Called by the kernel to parse command-line options passed via the
- * boot-loader (e.g., LILO). It calls the insmod option routine,
- * parse_options().
- */
-static int __init drm_options(char *str)
-{
- drm_parse_options(str);
- return 1;
-}
-
-__setup(DRIVER_NAME "=", DRM_OPTIONS_FUNC);
-#undef DRM_OPTIONS_FUNC
-#endif
-
int drm_fb_loaded = 0;
/** Ioctl table */
@@ -289,11 +270,6 @@ void __exit drm_cleanup_pci(struct pci_dev *pdev)
}
EXPORT_SYMBOL(drm_cleanup_pci);
-#ifdef MODULE
-static char *drm_opts = NULL;
-#endif
-MODULE_PARM(drm_opts, "s");
-
/**
* Module initialization. Called via init_module at module load time, or via
* linux/init/main.c (this is not currently supported).
@@ -316,10 +292,6 @@ int drm_init(struct drm_driver *driver,
DRM_DEBUG("\n");
-#ifdef MODULE
- drm_parse_options(drm_opts);
-#endif
-
drm_mem_init();
for (i = 0; (pciidlist[i].vendor != 0) && !drm_fb_loaded; i++) {
diff --git a/linux-core/drm_init.c b/linux-core/drm_init.c
index 65413474..0d3c1d88 100644
--- a/linux-core/drm_init.c
+++ b/linux-core/drm_init.c
@@ -35,91 +35,6 @@
#include "drmP.h"
-/** Debug flags. Set by parse_option(). */
-#if 0
-int drm_flags = DRM_FLAG_DEBUG;
-#else
-int drm_flags = 0;
-#endif
-EXPORT_SYMBOL(drm_flags);
-
-/**
- * Parse a single option.
- *
- * \param s option string.
- *
- * \sa See parse_options() for details.
- */
-static void drm_parse_option(char *s)
-{
- char *c, *r;
-
- DRM_DEBUG("\"%s\"\n", s);
- if (!s || !*s)
- return;
- for (c = s; *c && *c != ':'; c++) ; /* find : or \0 */
- if (*c)
- r = c + 1;
- else
- r = NULL; /* remember remainder */
- *c = '\0'; /* terminate */
- if (!strcmp(s, "debug")) {
- drm_flags |= DRM_FLAG_DEBUG;
- DRM_INFO("Debug messages ON\n");
- return;
- }
- DRM_ERROR("\"%s\" is not a valid option\n", s);
- return;
-}
-
-/**
- * Parse the insmod "drm_opts=" options, or the command-line
- * options passed to the kernel via LILO.
- *
- * \param s contains option_list without the 'drm_opts=' part.
- *
- * The grammar of the format is as
- * follows:
- *
- * \code
- * drm ::= 'drm_opts=' option_list
- * option_list ::= option [ ';' option_list ]
- * option ::= 'device:' major
- * | 'debug'
- * | 'noctx'
- * major ::= INTEGER
- * \endcode
- *
- * - device=major,minor specifies the device number used for /dev/drm
- * - if major == 0 then the misc device is used
- * - if major == 0 and minor == 0 then dynamic misc allocation is used
- * - debug=on specifies that debugging messages will be printk'd
- * - debug=trace specifies that each function call will be logged via printk
- * - debug=off turns off all debugging options
- *
- * \todo Actually only the \e presence of the 'debug' option is currently
- * checked.
- */
-
-void drm_parse_options(char *s)
-{
- char *h, *t, *n;
-
- DRM_DEBUG("\"%s\"\n", s ? : "");
- if (!s || !*s)
- return;
-
- for (h = t = n = s; h && *h; h = n) {
- for (; *t && *t != ';'; t++) ; /* find ; or \0 */
- if (*t)
- n = t + 1;
- else
- n = NULL; /* remember next */
- *t = '\0'; /* terminate */
- drm_parse_option(h); /* parse */
- }
-}
-
/**
* Check whether DRI will run on this CPU.
*
diff --git a/linux-core/drm_stub.c b/linux-core/drm_stub.c
index 95ecd2d4..b52e4b51 100644
--- a/linux-core/drm_stub.c
+++ b/linux-core/drm_stub.c
@@ -37,16 +37,17 @@
#include "drm_core.h"
unsigned int cards_limit = 16; /* Enough for one machine */
-unsigned int debug = 0; /* 1 to enable debug output */
+unsigned int drm_debug = 0; /* 1 to enable debug output */
+EXPORT_SYMBOL(drm_debug);
MODULE_AUTHOR(DRIVER_AUTHOR);
MODULE_DESCRIPTION(DRIVER_DESC);
MODULE_LICENSE("GPL and additional rights");
MODULE_PARM_DESC(cards_limit, "Maximum number of graphics cards");
-MODULE_PARM_DESC(debug, "Enable debug output");
+MODULE_PARM_DESC(drm_debug, "Enable debug output");
-module_param(cards_limit, int, 0444);
-module_param(debug, int, 0666);
+module_param(cards_limit, int, S_IRUGO);
+module_param(drm_debug, int, S_IRUGO|S_IWUGO);
drm_head_t **drm_heads;
struct drm_sysfs_class *drm_class;