Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
2ed9f81e
Commit
2ed9f81e
authored
Aug 13, 2003
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Plain Diff
Merge
bk://linux-dj.bkbits.net/agpgart
into home.osdl.org:/home/torvalds/v2.5/linux
parents
e1237147
c36cf3b5
Changes
11
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
44 additions
and
98 deletions
+44
-98
drivers/char/agp/agp.h
drivers/char/agp/agp.h
+1
-0
drivers/char/agp/ali-agp.c
drivers/char/agp/ali-agp.c
+4
-12
drivers/char/agp/amd-k7-agp.c
drivers/char/agp/amd-k7-agp.c
+2
-12
drivers/char/agp/backend.c
drivers/char/agp/backend.c
+5
-1
drivers/char/agp/generic.c
drivers/char/agp/generic.c
+10
-4
drivers/char/agp/intel-agp.c
drivers/char/agp/intel-agp.c
+2
-12
drivers/char/agp/nvidia-agp.c
drivers/char/agp/nvidia-agp.c
+2
-14
drivers/char/agp/sis-agp.c
drivers/char/agp/sis-agp.c
+2
-12
drivers/char/agp/sworks-agp.c
drivers/char/agp/sworks-agp.c
+3
-6
drivers/char/agp/uninorth-agp.c
drivers/char/agp/uninorth-agp.c
+3
-12
drivers/char/agp/via-agp.c
drivers/char/agp/via-agp.c
+10
-13
No files found.
drivers/char/agp/agp.h
View file @
2ed9f81e
...
@@ -395,6 +395,7 @@ unsigned long agp_generic_mask_memory(unsigned long addr, int type);
...
@@ -395,6 +395,7 @@ unsigned long agp_generic_mask_memory(unsigned long addr, int type);
#define AGPSTAT 0x4
#define AGPSTAT 0x4
#define AGPCMD 0x8
#define AGPCMD 0x8
#define AGPNISTAT 0xc
#define AGPNISTAT 0xc
#define AGPCTRL 0x10
#define AGPNEPG 0x16
#define AGPNEPG 0x16
#define AGPNICMD 0x20
#define AGPNICMD 0x20
...
...
drivers/char/agp/ali-agp.c
View file @
2ed9f81e
...
@@ -9,8 +9,6 @@
...
@@ -9,8 +9,6 @@
#include <linux/agp_backend.h>
#include <linux/agp_backend.h>
#include "agp.h"
#include "agp.h"
static
int
agp_try_unsupported
__initdata
=
0
;
static
int
ali_fetch_size
(
void
)
static
int
ali_fetch_size
(
void
)
{
{
int
i
;
int
i
;
...
@@ -292,16 +290,10 @@ static int __init agp_ali_probe(struct pci_dev *pdev,
...
@@ -292,16 +290,10 @@ static int __init agp_ali_probe(struct pci_dev *pdev,
goto
found
;
goto
found
;
}
}
if
(
!
agp_try_unsupported
)
{
printk
(
KERN_ERR
PFX
"Unsupported ALi chipset (device id: %04x)
\n
"
,
printk
(
KERN_ERR
PFX
"Unsupported ALi chipset (device id: %04x),"
" you might want to try agp_try_unsupported=1.
\n
"
,
pdev
->
device
);
pdev
->
device
);
return
-
ENODEV
;
return
-
ENODEV
;
}
printk
(
KERN_WARNING
PFX
"Trying generic ALi routines"
" for device id: %04x
\n
"
,
pdev
->
device
);
found:
found:
bridge
=
agp_alloc_bridge
();
bridge
=
agp_alloc_bridge
();
...
@@ -328,6 +320,7 @@ static int __init agp_ali_probe(struct pci_dev *pdev,
...
@@ -328,6 +320,7 @@ static int __init agp_ali_probe(struct pci_dev *pdev,
devs
[
j
].
chipset_name
=
"M1641"
;
devs
[
j
].
chipset_name
=
"M1641"
;
break
;
break
;
case
0x43
:
case
0x43
:
devs
[
j
].
chipset_name
=
"M????"
;
break
;
break
;
case
0x47
:
case
0x47
:
devs
[
j
].
chipset_name
=
"M1647"
;
devs
[
j
].
chipset_name
=
"M1647"
;
...
@@ -397,7 +390,6 @@ static void __exit agp_ali_cleanup(void)
...
@@ -397,7 +390,6 @@ static void __exit agp_ali_cleanup(void)
module_init
(
agp_ali_init
);
module_init
(
agp_ali_init
);
module_exit
(
agp_ali_cleanup
);
module_exit
(
agp_ali_cleanup
);
MODULE_PARM
(
agp_try_unsupported
,
"1i"
);
MODULE_AUTHOR
(
"Dave Jones <davej@codemonkey.org.uk>"
);
MODULE_AUTHOR
(
"Dave Jones <davej@codemonkey.org.uk>"
);
MODULE_LICENSE
(
"GPL and additional rights"
);
MODULE_LICENSE
(
"GPL and additional rights"
);
drivers/char/agp/amd-k7-agp.c
View file @
2ed9f81e
...
@@ -11,8 +11,6 @@
...
@@ -11,8 +11,6 @@
#include <linux/mm.h>
#include <linux/mm.h>
#include "agp.h"
#include "agp.h"
static
int
agp_try_unsupported
__initdata
=
0
;
struct
amd_page_map
{
struct
amd_page_map
{
unsigned
long
*
real
;
unsigned
long
*
real
;
unsigned
long
*
remapped
;
unsigned
long
*
remapped
;
...
@@ -404,16 +402,9 @@ static int __init agp_amdk7_probe(struct pci_dev *pdev,
...
@@ -404,16 +402,9 @@ static int __init agp_amdk7_probe(struct pci_dev *pdev,
}
}
}
}
if
(
!
agp_try_unsupported
)
{
printk
(
KERN_ERR
PFX
"Unsupported AMD chipset (device id: %04x)
\n
"
,
printk
(
KERN_ERR
PFX
"Unsupported AMD chipset (device id: %04x),"
" you might want to try agp_try_unsupported=1.
\n
"
,
pdev
->
device
);
pdev
->
device
);
return
-
ENODEV
;
return
-
ENODEV
;
}
printk
(
KERN_WARNING
PFX
"Trying generic AMD routines"
" for device id: %04x
\n
"
,
pdev
->
device
);
found:
found:
bridge
=
agp_alloc_bridge
();
bridge
=
agp_alloc_bridge
();
...
@@ -476,5 +467,4 @@ static void __exit agp_amdk7_cleanup(void)
...
@@ -476,5 +467,4 @@ static void __exit agp_amdk7_cleanup(void)
module_init
(
agp_amdk7_init
);
module_init
(
agp_amdk7_init
);
module_exit
(
agp_amdk7_cleanup
);
module_exit
(
agp_amdk7_cleanup
);
MODULE_PARM
(
agp_try_unsupported
,
"1i"
);
MODULE_LICENSE
(
"GPL and additional rights"
);
MODULE_LICENSE
(
"GPL and additional rights"
);
drivers/char/agp/backend.c
View file @
2ed9f81e
...
@@ -106,7 +106,11 @@ static int agp_find_max(void)
...
@@ -106,7 +106,11 @@ static int agp_find_max(void)
{
{
long
memory
,
index
,
result
;
long
memory
,
index
,
result
;
memory
=
(
num_physpages
<<
PAGE_SHIFT
)
>>
20
;
#if PAGE_SHIFT < 20
memory
=
num_physpages
>>
(
20
-
PAGE_SHIFT
);
#else
memory
=
num_physpages
<<
(
PAGE_SHIFT
-
20
);
#endif
index
=
1
;
index
=
1
;
while
((
memory
>
maxes_table
[
index
].
mem
)
&&
(
index
<
8
))
while
((
memory
>
maxes_table
[
index
].
mem
)
&&
(
index
<
8
))
...
...
drivers/char/agp/generic.c
View file @
2ed9f81e
...
@@ -459,9 +459,9 @@ static void agp_v3_parse_one(u32 *mode, u32 *cmd, u32 *tmp)
...
@@ -459,9 +459,9 @@ static void agp_v3_parse_one(u32 *mode, u32 *cmd, u32 *tmp)
/* Clear out unwanted bits. */
/* Clear out unwanted bits. */
if
(
*
cmd
&
AGPSTAT3_8X
)
if
(
*
cmd
&
AGPSTAT3_8X
)
*
cmd
=
~
(
AGPSTAT3_4X
|
AGPSTAT3_RSVD
);
*
cmd
&
=
~
(
AGPSTAT3_4X
|
AGPSTAT3_RSVD
);
if
(
*
cmd
&
AGPSTAT3_4X
)
if
(
*
cmd
&
AGPSTAT3_4X
)
*
cmd
=
~
(
AGPSTAT3_8X
|
AGPSTAT3_RSVD
);
*
cmd
&
=
~
(
AGPSTAT3_8X
|
AGPSTAT3_RSVD
);
}
}
//FIXME: This doesn't smell right.
//FIXME: This doesn't smell right.
...
@@ -545,7 +545,7 @@ EXPORT_SYMBOL(get_agp_version);
...
@@ -545,7 +545,7 @@ EXPORT_SYMBOL(get_agp_version);
void
agp_generic_enable
(
u32
mode
)
void
agp_generic_enable
(
u32
mode
)
{
{
u32
command
;
u32
command
,
temp
;
u32
agp3
;
u32
agp3
;
get_agp_version
(
agp_bridge
);
get_agp_version
(
agp_bridge
);
...
@@ -577,6 +577,12 @@ void agp_generic_enable(u32 mode)
...
@@ -577,6 +577,12 @@ void agp_generic_enable(u32 mode)
agp_device_command
(
command
,
TRUE
);
agp_device_command
(
command
,
TRUE
);
return
;
return
;
}
else
{
}
else
{
/* Disable calibration cycle in RX91<1> when not in AGP3.0 mode of operation.*/
command
&=
~
(
7
<<
10
)
;
pci_read_config_dword
(
agp_bridge
->
dev
,
agp_bridge
->
capndx
+
AGPCTRL
,
&
temp
);
temp
|=
(
1
<<
9
);
pci_write_config_dword
(
agp_bridge
->
dev
,
agp_bridge
->
capndx
+
AGPCTRL
,
temp
);
printk
(
KERN_INFO
PFX
"Device is in legacy mode,"
printk
(
KERN_INFO
PFX
"Device is in legacy mode,"
" falling back to 2.x
\n
"
);
" falling back to 2.x
\n
"
);
}
}
...
...
drivers/char/agp/intel-agp.c
View file @
2ed9f81e
...
@@ -13,9 +13,6 @@
...
@@ -13,9 +13,6 @@
#include <linux/agp_backend.h>
#include <linux/agp_backend.h>
#include "agp.h"
#include "agp.h"
static
int
agp_try_unsupported
__initdata
=
0
;
static
struct
aper_size_info_fixed
intel_i810_sizes
[]
=
static
struct
aper_size_info_fixed
intel_i810_sizes
[]
=
{
{
{
64
,
16384
,
4
},
{
64
,
16384
,
4
},
...
@@ -1358,15 +1355,9 @@ static int __init agp_intel_probe(struct pci_dev *pdev,
...
@@ -1358,15 +1355,9 @@ static int __init agp_intel_probe(struct pci_dev *pdev,
name
=
"E7205"
;
name
=
"E7205"
;
break
;
break
;
default:
default:
if
(
!
agp_try_unsupported
)
{
printk
(
KERN_ERR
PFX
"Unsupported Intel chipset (device id: %04x)
\n
"
,
printk
(
KERN_ERR
PFX
"Unsupported Intel chipset (device id: %04x),"
" you might want to try agp_try_unsupported=1.
\n
"
,
pdev
->
device
);
pdev
->
device
);
return
-
ENODEV
;
return
-
ENODEV
;
}
bridge
->
driver
=
&
intel_generic_driver
;
break
;
};
};
bridge
->
dev
=
pdev
;
bridge
->
dev
=
pdev
;
...
@@ -1485,6 +1476,5 @@ static void __exit agp_intel_cleanup(void)
...
@@ -1485,6 +1476,5 @@ static void __exit agp_intel_cleanup(void)
module_init
(
agp_intel_init
);
module_init
(
agp_intel_init
);
module_exit
(
agp_intel_cleanup
);
module_exit
(
agp_intel_cleanup
);
MODULE_PARM
(
agp_try_unsupported
,
"1i"
);
MODULE_AUTHOR
(
"Dave Jones <davej@codemonkey.org.uk>"
);
MODULE_AUTHOR
(
"Dave Jones <davej@codemonkey.org.uk>"
);
MODULE_LICENSE
(
"GPL and additional rights"
);
MODULE_LICENSE
(
"GPL and additional rights"
);
drivers/char/agp/nvidia-agp.c
View file @
2ed9f81e
...
@@ -25,9 +25,6 @@
...
@@ -25,9 +25,6 @@
#define NVIDIA_3_APBASE 0x50
#define NVIDIA_3_APBASE 0x50
#define NVIDIA_3_APLIMIT 0x54
#define NVIDIA_3_APLIMIT 0x54
static
int
agp_try_unsupported
__initdata
=
0
;
static
struct
_nvidia_private
{
static
struct
_nvidia_private
{
struct
pci_dev
*
dev_1
;
struct
pci_dev
*
dev_1
;
struct
pci_dev
*
dev_2
;
struct
pci_dev
*
dev_2
;
...
@@ -299,18 +296,10 @@ static int __init agp_nvidia_probe(struct pci_dev *pdev,
...
@@ -299,18 +296,10 @@ static int __init agp_nvidia_probe(struct pci_dev *pdev,
nvidia_private
.
wbc_mask
=
0x80000000
;
nvidia_private
.
wbc_mask
=
0x80000000
;
break
;
break
;
default:
default:
if
(
!
agp_try_unsupported
)
{
printk
(
KERN_ERR
PFX
"Unsupported NVIDIA chipset (device id: %04x)
\n
"
,
printk
(
KERN_ERR
PFX
"Unsupported NVIDIA chipset (device id: %04x),"
" you might want to try agp_try_unsupported=1.
\n
"
,
pdev
->
device
);
pdev
->
device
);
return
-
ENODEV
;
return
-
ENODEV
;
}
}
printk
(
KERN_WARNING
PFX
"Trying generic NVIDIA routines for device id: %04x
\n
"
,
pdev
->
device
);
break
;
}
bridge
=
agp_alloc_bridge
();
bridge
=
agp_alloc_bridge
();
if
(
!
bridge
)
if
(
!
bridge
)
...
@@ -372,7 +361,6 @@ static void __exit agp_nvidia_cleanup(void)
...
@@ -372,7 +361,6 @@ static void __exit agp_nvidia_cleanup(void)
module_init
(
agp_nvidia_init
);
module_init
(
agp_nvidia_init
);
module_exit
(
agp_nvidia_cleanup
);
module_exit
(
agp_nvidia_cleanup
);
MODULE_PARM
(
agp_try_unsupported
,
"1i"
);
MODULE_LICENSE
(
"GPL and additional rights"
);
MODULE_LICENSE
(
"GPL and additional rights"
);
MODULE_AUTHOR
(
"NVIDIA Corporation"
);
MODULE_AUTHOR
(
"NVIDIA Corporation"
);
drivers/char/agp/sis-agp.c
View file @
2ed9f81e
...
@@ -8,8 +8,6 @@
...
@@ -8,8 +8,6 @@
#include <linux/agp_backend.h>
#include <linux/agp_backend.h>
#include "agp.h"
#include "agp.h"
static
int
agp_try_unsupported
__initdata
=
0
;
static
int
sis_fetch_size
(
void
)
static
int
sis_fetch_size
(
void
)
{
{
u8
temp_size
;
u8
temp_size
;
...
@@ -187,16 +185,9 @@ static int __init agp_sis_probe(struct pci_dev *pdev,
...
@@ -187,16 +185,9 @@ static int __init agp_sis_probe(struct pci_dev *pdev,
}
}
}
}
if
(
!
agp_try_unsupported
)
{
printk
(
KERN_ERR
PFX
"Unsupported SiS chipset (device id: %04x)
\n
"
,
printk
(
KERN_ERR
PFX
"Unsupported SiS chipset (device id: %04x),"
" you might want to try agp_try_unsupported=1.
\n
"
,
pdev
->
device
);
pdev
->
device
);
return
-
ENODEV
;
return
-
ENODEV
;
}
printk
(
KERN_WARNING
PFX
"Trying generic SiS routines"
" for device id: %04x
\n
"
,
pdev
->
device
);
found:
found:
bridge
=
agp_alloc_bridge
();
bridge
=
agp_alloc_bridge
();
...
@@ -258,5 +249,4 @@ static void __exit agp_sis_cleanup(void)
...
@@ -258,5 +249,4 @@ static void __exit agp_sis_cleanup(void)
module_init
(
agp_sis_init
);
module_init
(
agp_sis_init
);
module_exit
(
agp_sis_cleanup
);
module_exit
(
agp_sis_cleanup
);
MODULE_PARM
(
agp_try_unsupported
,
"1i"
);
MODULE_LICENSE
(
"GPL and additional rights"
);
MODULE_LICENSE
(
"GPL and additional rights"
);
drivers/char/agp/sworks-agp.c
View file @
2ed9f81e
...
@@ -8,8 +8,6 @@
...
@@ -8,8 +8,6 @@
#include <linux/agp_backend.h>
#include <linux/agp_backend.h>
#include "agp.h"
#include "agp.h"
static
int
agp_try_unsupported
__initdata
=
0
;
struct
serverworks_page_map
{
struct
serverworks_page_map
{
unsigned
long
*
real
;
unsigned
long
*
real
;
unsigned
long
*
remapped
;
unsigned
long
*
remapped
;
...
@@ -457,9 +455,9 @@ static int __init agp_serverworks_probe(struct pci_dev *pdev,
...
@@ -457,9 +455,9 @@ static int __init agp_serverworks_probe(struct pci_dev *pdev,
case
0x0007
:
case
0x0007
:
break
;
break
;
default:
default:
if
(
!
agp_try_unsupported
)
printk
(
KERN_ERR
PFX
"Unsupported Serverworks chipset "
"(device id: %04x)
\n
"
,
pdev
->
device
);
return
-
ENODEV
;
return
-
ENODEV
;
break
;
}
}
serverworks_private
.
svrwrks_dev
=
bridge_dev
;
serverworks_private
.
svrwrks_dev
=
bridge_dev
;
...
@@ -542,6 +540,5 @@ static void __exit agp_serverworks_cleanup(void)
...
@@ -542,6 +540,5 @@ static void __exit agp_serverworks_cleanup(void)
module_init
(
agp_serverworks_init
);
module_init
(
agp_serverworks_init
);
module_exit
(
agp_serverworks_cleanup
);
module_exit
(
agp_serverworks_cleanup
);
MODULE_PARM
(
agp_try_unsupported
,
"1i"
);
MODULE_LICENSE
(
"GPL and additional rights"
);
MODULE_LICENSE
(
"GPL and additional rights"
);
drivers/char/agp/uninorth-agp.c
View file @
2ed9f81e
...
@@ -10,8 +10,6 @@
...
@@ -10,8 +10,6 @@
#include <asm/pci-bridge.h>
#include <asm/pci-bridge.h>
#include "agp.h"
#include "agp.h"
static
int
agp_try_unsupported
__initdata
=
0
;
static
int
uninorth_fetch_size
(
void
)
static
int
uninorth_fetch_size
(
void
)
{
{
int
i
;
int
i
;
...
@@ -324,15 +322,9 @@ static int __init agp_uninorth_probe(struct pci_dev *pdev,
...
@@ -324,15 +322,9 @@ static int __init agp_uninorth_probe(struct pci_dev *pdev,
}
}
}
}
if
(
!
agp_try_unsupported
)
{
printk
(
KERN_ERR
PFX
"Unsupported Apple chipset (device id: %04x).
\n
"
,
printk
(
KERN_ERR
PFX
"Unsupported Apple chipset"
pdev
->
device
);
" (device id: %04x).
\n
"
,
pdev
->
device
);
printk
(
KERN_ERR
PFX
"You might want to try"
" agp_try_unsupported=1
\n
"
);
return
-
ENODEV
;
return
-
ENODEV
;
}
printk
(
KERN_ERR
PFX
"Trying generic Uninorth routines"
" for device id %04x
\n
"
,
pdev
->
device
);
found:
found:
bridge
=
agp_alloc_bridge
();
bridge
=
agp_alloc_bridge
();
...
@@ -392,6 +384,5 @@ static void __exit agp_uninorth_cleanup(void)
...
@@ -392,6 +384,5 @@ static void __exit agp_uninorth_cleanup(void)
module_init
(
agp_uninorth_init
);
module_init
(
agp_uninorth_init
);
module_exit
(
agp_uninorth_cleanup
);
module_exit
(
agp_uninorth_cleanup
);
MODULE_PARM
(
agp_try_unsupported
,
"1i"
);
MODULE_AUTHOR
(
"Ben Herrenschmidt & Paul Mackerras"
);
MODULE_AUTHOR
(
"Ben Herrenschmidt & Paul Mackerras"
);
MODULE_LICENSE
(
"GPL"
);
MODULE_LICENSE
(
"GPL"
);
drivers/char/agp/via-agp.c
View file @
2ed9f81e
...
@@ -9,9 +9,6 @@
...
@@ -9,9 +9,6 @@
#include <linux/agp_backend.h>
#include <linux/agp_backend.h>
#include "agp.h"
#include "agp.h"
static
int
agp_try_unsupported
__initdata
=
0
;
static
int
via_fetch_size
(
void
)
static
int
via_fetch_size
(
void
)
{
{
int
i
;
int
i
;
...
@@ -123,6 +120,14 @@ static int via_configure_agp3(void)
...
@@ -123,6 +120,14 @@ static int via_configure_agp3(void)
/* attbase - aperture GATT base */
/* attbase - aperture GATT base */
pci_write_config_dword
(
agp_bridge
->
dev
,
VIA_AGP3_ATTBASE
,
pci_write_config_dword
(
agp_bridge
->
dev
,
VIA_AGP3_ATTBASE
,
agp_bridge
->
gatt_bus_addr
&
0xfffff000
);
agp_bridge
->
gatt_bus_addr
&
0xfffff000
);
/* 1. Enable GTLB in RX90<7>, all AGP aperture access needs to fetch
* translation table first.
* 2. Enable AGP aperture in RX91<0>. This bit controls the enabling of the
* graphics AGP aperture for the AGP3.0 port.
*/
pci_read_config_dword
(
agp_bridge
->
dev
,
VIA_AGP3_GARTCTRL
,
&
temp
);
pci_write_config_dword
(
agp_bridge
->
dev
,
VIA_AGP3_GARTCTRL
,
temp
|
(
3
<<
7
));
return
0
;
return
0
;
}
}
...
@@ -382,16 +387,9 @@ static int __init agp_via_probe(struct pci_dev *pdev,
...
@@ -382,16 +387,9 @@ static int __init agp_via_probe(struct pci_dev *pdev,
}
}
}
}
if
(
!
agp_try_unsupported
)
{
printk
(
KERN_ERR
PFX
"Unsupported VIA chipset (device id: %04x)
\n
"
,
printk
(
KERN_ERR
PFX
"Unsupported VIA chipset (device id: %04x),"
" you might want to try agp_try_unsupported=1.
\n
"
,
pdev
->
device
);
pdev
->
device
);
return
-
ENODEV
;
return
-
ENODEV
;
}
printk
(
KERN_WARNING
PFX
"Trying generic VIA routines"
" for device id: %04x
\n
"
,
pdev
->
device
);
found:
found:
bridge
=
agp_alloc_bridge
();
bridge
=
agp_alloc_bridge
();
...
@@ -470,6 +468,5 @@ static void __exit agp_via_cleanup(void)
...
@@ -470,6 +468,5 @@ static void __exit agp_via_cleanup(void)
module_init
(
agp_via_init
);
module_init
(
agp_via_init
);
module_exit
(
agp_via_cleanup
);
module_exit
(
agp_via_cleanup
);
MODULE_PARM
(
agp_try_unsupported
,
"1i"
);
MODULE_LICENSE
(
"GPL and additional rights"
);
MODULE_LICENSE
(
"GPL and additional rights"
);
MODULE_AUTHOR
(
"Dave Jones <davej@codemonkey.org.uk>"
);
MODULE_AUTHOR
(
"Dave Jones <davej@codemonkey.org.uk>"
);
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment