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
nexedi
linux
Commits
ee4351da
Commit
ee4351da
authored
Nov 05, 2002
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Plain Diff
Merge
parents
d472b9dc
25fbb358
Changes
32
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
32 changed files
with
700 additions
and
746 deletions
+700
-746
CREDITS
CREDITS
+1
-1
MAINTAINERS
MAINTAINERS
+1
-1
drivers/char/ChangeLog
drivers/char/ChangeLog
+1
-1
drivers/ide/legacy/ide-cs.c
drivers/ide/legacy/ide-cs.c
+60
-50
drivers/mtd/ftl.c
drivers/mtd/ftl.c
+2
-2
drivers/net/pcmcia/ax8390.h
drivers/net/pcmcia/ax8390.h
+0
-187
drivers/net/pcmcia/axnet_cs.c
drivers/net/pcmcia/axnet_cs.c
+143
-152
drivers/net/pcmcia/fmvj18x_cs.c
drivers/net/pcmcia/fmvj18x_cs.c
+136
-50
drivers/net/pcmcia/nmclan_cs.c
drivers/net/pcmcia/nmclan_cs.c
+70
-2
drivers/net/pcmcia/pcnet_cs.c
drivers/net/pcmcia/pcnet_cs.c
+9
-5
drivers/net/pcmcia/ray_cs.c
drivers/net/pcmcia/ray_cs.c
+1
-1
drivers/net/pcmcia/smc91c92_cs.c
drivers/net/pcmcia/smc91c92_cs.c
+191
-170
drivers/net/wireless/airo_cs.c
drivers/net/wireless/airo_cs.c
+1
-1
drivers/net/wireless/wavelan.p.h
drivers/net/wireless/wavelan.p.h
+1
-1
drivers/parport/parport_cs.c
drivers/parport/parport_cs.c
+32
-84
drivers/pcmcia/cardbus.c
drivers/pcmcia/cardbus.c
+7
-7
drivers/pcmcia/cirrus.h
drivers/pcmcia/cirrus.h
+1
-1
drivers/pcmcia/cistpl.c
drivers/pcmcia/cistpl.c
+10
-9
drivers/pcmcia/cs_internal.h
drivers/pcmcia/cs_internal.h
+5
-5
drivers/pcmcia/i82365.c
drivers/pcmcia/i82365.c
+1
-1
drivers/pcmcia/i82365.h
drivers/pcmcia/i82365.h
+1
-1
drivers/pcmcia/o2micro.h
drivers/pcmcia/o2micro.h
+1
-1
drivers/pcmcia/ricoh.h
drivers/pcmcia/ricoh.h
+1
-1
drivers/pcmcia/tcic.c
drivers/pcmcia/tcic.c
+2
-2
drivers/pcmcia/tcic.h
drivers/pcmcia/tcic.h
+1
-1
drivers/pcmcia/ti113x.h
drivers/pcmcia/ti113x.h
+1
-1
drivers/pcmcia/topic.h
drivers/pcmcia/topic.h
+1
-1
drivers/pcmcia/vg468.h
drivers/pcmcia/vg468.h
+1
-1
include/linux/mtd/ftl.h
include/linux/mtd/ftl.h
+1
-1
include/linux/pnpbios.h
include/linux/pnpbios.h
+1
-1
include/pcmcia/ciscode.h
include/pcmcia/ciscode.h
+15
-3
net/core/dev.c
net/core/dev.c
+1
-1
No files found.
CREDITS
View file @
ee4351da
...
@@ -1284,7 +1284,7 @@ S: 14059 Berlin
...
@@ -1284,7 +1284,7 @@ S: 14059 Berlin
S: Germany
S: Germany
N: David Hinds
N: David Hinds
E: d
hinds@zen.stanford.edu
E: d
ahinds@users.sourceforge.net
W: http://tao.stanford.edu/~dhinds
W: http://tao.stanford.edu/~dhinds
D: PCMCIA and CardBus stuff, PCMCIA-HOWTO, PCMCIA client drivers
D: PCMCIA and CardBus stuff, PCMCIA-HOWTO, PCMCIA client drivers
S: 2019 W. Middlefield Rd #1
S: 2019 W. Middlefield Rd #1
...
...
MAINTAINERS
View file @
ee4351da
...
@@ -1315,7 +1315,7 @@ S: Maintained
...
@@ -1315,7 +1315,7 @@ S: Maintained
PCMCIA SUBSYSTEM
PCMCIA SUBSYSTEM
P: David Hinds
P: David Hinds
M: d
hinds@zen.stanford.edu
M: d
ahinds@users.sourceforge.net
L: linux-kernel@vger.kernel.org
L: linux-kernel@vger.kernel.org
W: http://pcmcia-cs.sourceforge.net
W: http://pcmcia-cs.sourceforge.net
S: Maintained
S: Maintained
...
...
drivers/char/ChangeLog
View file @
ee4351da
...
@@ -550,7 +550,7 @@ Thu Jan 17 01:17:20 1995 Theodore Y. Ts'o (tytso@rt-11)
...
@@ -550,7 +550,7 @@ Thu Jan 17 01:17:20 1995 Theodore Y. Ts'o (tytso@rt-11)
the StarTech 16650 chip. Treat it as a 16450 for now,
the StarTech 16650 chip. Treat it as a 16450 for now,
because of its FIFO bugs.
because of its FIFO bugs.
Thu Jan 5 21:21:57 1995 <d
hinds@allegro.stanford.edu
>
Thu Jan 5 21:21:57 1995 <d
ahinds@users.sourceforge.net
>
* serial.c: (receive_char): Added counter to prevent infinite loop
* serial.c: (receive_char): Added counter to prevent infinite loop
when a PCMCIA serial device is ejected.
when a PCMCIA serial device is ejected.
...
...
drivers/ide/legacy/ide-cs.c
View file @
ee4351da
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
A driver for PCMCIA IDE/ATA disk cards
A driver for PCMCIA IDE/ATA disk cards
ide
_cs.c 1.26 1999/11/16 02:10:49
ide
-cs.c 1.3 2002/10/26 05:45:31
The contents of this file are subject to the Mozilla Public
The contents of this file are subject to the Mozilla Public
License Version 1.1 (the "License"); you may not use this file
License Version 1.1 (the "License"); you may not use this file
...
@@ -15,12 +15,12 @@
...
@@ -15,12 +15,12 @@
rights and limitations under the License.
rights and limitations under the License.
The initial developer of the original code is David A. Hinds
The initial developer of the original code is David A. Hinds
<d
hinds@pcmcia.sourceforge.org
>. Portions created by David A. Hinds
<d
ahinds@users.sourceforge.net
>. Portions created by David A. Hinds
are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
Alternatively, the contents of this file may be used under the
Alternatively, the contents of this file may be used under the
terms of the GNU General Public License version 2 (the "GPL"), in
which
terms of the GNU General Public License version 2 (the "GPL"), in
case the provisions of the GPL are applicable instead of the
which
case the provisions of the GPL are applicable instead of the
above. If you wish to allow the use of your version of this file
above. If you wish to allow the use of your version of this file
only under the terms of the GPL and not to allow others to use
only under the terms of the GPL and not to allow others to use
your version of this file under the MPL, indicate your decision
your version of this file under the MPL, indicate your decision
...
@@ -40,10 +40,9 @@
...
@@ -40,10 +40,9 @@
#include <linux/string.h>
#include <linux/string.h>
#include <linux/timer.h>
#include <linux/timer.h>
#include <linux/ioport.h>
#include <linux/ioport.h>
#include <linux/ide.h>
#include <linux/hdreg.h>
#include <linux/hdreg.h>
#include <linux/major.h>
#include <linux/major.h>
#include <linux/ide.h>
#include <asm/io.h>
#include <asm/io.h>
#include <asm/system.h>
#include <asm/system.h>
...
@@ -53,38 +52,37 @@
...
@@ -53,38 +52,37 @@
#include <pcmcia/cistpl.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/ds.h>
#include <pcmcia/ds.h>
#include <pcmcia/cisreg.h>
#include <pcmcia/cisreg.h>
#include <pcmcia/ciscode.h>
#ifdef PCMCIA_DEBUG
static
int
pc_debug
=
PCMCIA_DEBUG
;
MODULE_PARM
(
pc_debug
,
"i"
);
#define DEBUG(n, args...) if (pc_debug>(n)) printk(KERN_DEBUG args)
static
char
*
version
=
"ide_cs.c 1.26 1999/11/16 02:10:49 (David Hinds)"
;
#else
#define DEBUG(n, args...)
#endif
/*====================================================================*/
/*====================================================================*/
/* Parameters that can be set with 'insmod' */
/* Module parameters */
MODULE_AUTHOR
(
"David Hinds <dahinds@users.sourceforge.net>"
);
MODULE_DESCRIPTION
(
"PCMCIA ATA/IDE card driver"
);
MODULE_LICENSE
(
"Dual MPL/GPL"
);
#define INT_MODULE_PARM(n, v) static int n = v; MODULE_PARM(n, "i")
/* Bit map of interrupts to choose from */
/* Bit map of interrupts to choose from */
static
u_int
irq_mask
=
0xdeb8
;
INT_MODULE_PARM
(
irq_mask
,
0xdeb8
)
;
static
int
irq_list
[
4
]
=
{
-
1
};
static
int
irq_list
[
4
]
=
{
-
1
};
MODULE_PARM
(
irq_mask
,
"i"
);
MODULE_PARM
(
irq_list
,
"1-4i"
);
MODULE_PARM
(
irq_list
,
"1-4i"
);
MODULE_LICENSE
(
"GPL"
);
#ifdef PCMCIA_DEBUG
INT_MODULE_PARM
(
pc_debug
,
PCMCIA_DEBUG
);
#define DEBUG(n, args...) if (pc_debug>(n)) printk(KERN_DEBUG args)
static
char
*
version
=
"ide-cs.c 1.3 2002/10/26 05:45:31 (David Hinds)"
;
#else
#define DEBUG(n, args...)
#endif
/*====================================================================*/
/*====================================================================*/
static
const
char
ide_major
[]
=
{
static
const
char
ide_major
[]
=
{
IDE0_MAJOR
,
IDE1_MAJOR
,
IDE2_MAJOR
,
IDE3_MAJOR
,
IDE0_MAJOR
,
IDE1_MAJOR
,
IDE2_MAJOR
,
IDE3_MAJOR
,
#ifdef IDE4_MAJOR
IDE4_MAJOR
,
IDE5_MAJOR
IDE4_MAJOR
,
IDE5_MAJOR
#endif
};
};
typedef
struct
ide_info_t
{
typedef
struct
ide_info_t
{
...
@@ -94,7 +92,6 @@ typedef struct ide_info_t {
...
@@ -94,7 +92,6 @@ typedef struct ide_info_t {
int
hd
;
int
hd
;
}
ide_info_t
;
}
ide_info_t
;
static
void
ide_config
(
dev_link_t
*
link
);
static
void
ide_release
(
u_long
arg
);
static
void
ide_release
(
u_long
arg
);
static
int
ide_event
(
event_t
event
,
int
priority
,
static
int
ide_event
(
event_t
event
,
int
priority
,
event_callback_args_t
*
args
);
event_callback_args_t
*
args
);
...
@@ -227,12 +224,12 @@ while ((last_ret=CardServices(last_fn=(fn), args))!=0) goto cs_failed
...
@@ -227,12 +224,12 @@ while ((last_ret=CardServices(last_fn=(fn), args))!=0) goto cs_failed
#define CFG_CHECK(fn, args...) \
#define CFG_CHECK(fn, args...) \
if (CardServices(fn, args) != 0) goto next_entry
if (CardServices(fn, args) != 0) goto next_entry
int
idecs_register
(
int
arg1
,
int
arg2
,
int
irq
)
static
int
idecs_register
(
int
io
,
int
ctl
,
int
irq
)
{
{
hw_regs_t
hw
;
hw_regs_t
hw
;
ide_init_hwif_ports
(
&
hw
,
(
ide_ioreg_t
)
arg1
,
(
ide_ioreg_t
)
arg2
,
NULL
);
ide_init_hwif_ports
(
&
hw
,
(
ide_ioreg_t
)
io
,
(
ide_ioreg_t
)
ctl
,
NULL
);
hw
.
irq
=
irq
;
hw
.
irq
=
irq
;
hw
.
chipset
=
ide_pci
;
/* this enables IRQ sharing w/ PCI irqs */
hw
.
chipset
=
ide_pci
;
return
ide_register_hw
(
&
hw
,
NULL
);
return
ide_register_hw
(
&
hw
,
NULL
);
}
}
...
@@ -246,7 +243,7 @@ void ide_config(dev_link_t *link)
...
@@ -246,7 +243,7 @@ void ide_config(dev_link_t *link)
config_info_t
conf
;
config_info_t
conf
;
cistpl_cftable_entry_t
*
cfg
=
&
parse
.
cftable_entry
;
cistpl_cftable_entry_t
*
cfg
=
&
parse
.
cftable_entry
;
cistpl_cftable_entry_t
dflt
=
{
0
};
cistpl_cftable_entry_t
dflt
=
{
0
};
int
i
,
pass
,
last_ret
,
last_fn
,
hd
=-
1
,
io_base
,
ctl_base
;
int
i
,
pass
,
last_ret
,
last_fn
,
hd
,
io_base
,
ctl_base
,
is_kme
=
0
;
DEBUG
(
0
,
"ide_config(0x%p)
\n
"
,
link
);
DEBUG
(
0
,
"ide_config(0x%p)
\n
"
,
link
);
...
@@ -260,6 +257,14 @@ void ide_config(dev_link_t *link)
...
@@ -260,6 +257,14 @@ void ide_config(dev_link_t *link)
link
->
conf
.
ConfigBase
=
parse
.
config
.
base
;
link
->
conf
.
ConfigBase
=
parse
.
config
.
base
;
link
->
conf
.
Present
=
parse
.
config
.
rmask
[
0
];
link
->
conf
.
Present
=
parse
.
config
.
rmask
[
0
];
tuple
.
DesiredTuple
=
CISTPL_MANFID
;
if
(
!
CardServices
(
GetFirstTuple
,
handle
,
&
tuple
)
&&
!
CardServices
(
GetTupleData
,
handle
,
&
tuple
)
&&
!
CardServices
(
ParseTuple
,
handle
,
&
tuple
,
&
parse
))
is_kme
=
((
parse
.
manfid
.
manf
==
MANFID_KME
)
&&
((
parse
.
manfid
.
card
==
PRODID_KME_KXLC005_A
)
||
(
parse
.
manfid
.
card
==
PRODID_KME_KXLC005_B
)));
/* Configure card */
/* Configure card */
link
->
state
|=
DEV_CONFIG
;
link
->
state
|=
DEV_CONFIG
;
...
@@ -303,7 +308,7 @@ void ide_config(dev_link_t *link)
...
@@ -303,7 +308,7 @@ void ide_config(dev_link_t *link)
if
(
io
->
nwin
==
2
)
{
if
(
io
->
nwin
==
2
)
{
link
->
io
.
NumPorts1
=
8
;
link
->
io
.
NumPorts1
=
8
;
link
->
io
.
BasePort2
=
io
->
win
[
1
].
base
;
link
->
io
.
BasePort2
=
io
->
win
[
1
].
base
;
link
->
io
.
NumPorts2
=
1
;
link
->
io
.
NumPorts2
=
(
is_kme
)
?
2
:
1
;
CFG_CHECK
(
RequestIO
,
link
->
handle
,
&
link
->
io
);
CFG_CHECK
(
RequestIO
,
link
->
handle
,
&
link
->
io
);
io_base
=
link
->
io
.
BasePort1
;
io_base
=
link
->
io
.
BasePort1
;
ctl_base
=
link
->
io
.
BasePort2
;
ctl_base
=
link
->
io
.
BasePort2
;
...
@@ -337,14 +342,17 @@ void ide_config(dev_link_t *link)
...
@@ -337,14 +342,17 @@ void ide_config(dev_link_t *link)
if
(
link
->
io
.
NumPorts2
)
if
(
link
->
io
.
NumPorts2
)
release_region
(
link
->
io
.
BasePort2
,
link
->
io
.
NumPorts2
);
release_region
(
link
->
io
.
BasePort2
,
link
->
io
.
NumPorts2
);
/* disable drive interrupts during IDE probe */
outb
(
0x02
,
ctl_base
);
/* special setup for KXLC005 card */
if
(
is_kme
)
outb
(
0x81
,
ctl_base
+
1
);
/* retry registration in case device is still spinning up */
/* retry registration in case device is still spinning up */
for
(
i
=
0
;
i
<
10
;
i
++
)
{
for
(
hd
=
-
1
,
i
=
0
;
i
<
10
;
i
++
)
{
if
(
ctl_base
)
outb
(
0x02
,
ctl_base
);
/* Set nIEN = disable device interrupts */
hd
=
idecs_register
(
io_base
,
ctl_base
,
link
->
irq
.
AssignedIRQ
);
hd
=
idecs_register
(
io_base
,
ctl_base
,
link
->
irq
.
AssignedIRQ
);
if
(
hd
>=
0
)
break
;
if
(
hd
>=
0
)
break
;
if
(
link
->
io
.
NumPorts1
==
0x20
)
{
if
(
link
->
io
.
NumPorts1
==
0x20
)
{
if
(
ctl_base
)
outb
(
0x02
,
ctl_base
+
0x10
);
outb
(
0x02
,
ctl_base
+
0x10
);
hd
=
idecs_register
(
io_base
+
0x10
,
ctl_base
+
0x10
,
hd
=
idecs_register
(
io_base
+
0x10
,
ctl_base
+
0x10
,
link
->
irq
.
AssignedIRQ
);
link
->
irq
.
AssignedIRQ
);
...
@@ -358,7 +366,7 @@ void ide_config(dev_link_t *link)
...
@@ -358,7 +366,7 @@ void ide_config(dev_link_t *link)
}
}
if
(
hd
<
0
)
{
if
(
hd
<
0
)
{
printk
(
KERN_NOTICE
"ide
_cs: ide_register() at 0x%03x & 0x%0
3x"
printk
(
KERN_NOTICE
"ide
-cs: ide_register() at 0x%3x & 0x%
3x"
", irq %u failed
\n
"
,
io_base
,
ctl_base
,
", irq %u failed
\n
"
,
io_base
,
ctl_base
,
link
->
irq
.
AssignedIRQ
);
link
->
irq
.
AssignedIRQ
);
goto
failed
;
goto
failed
;
...
@@ -371,7 +379,7 @@ void ide_config(dev_link_t *link)
...
@@ -371,7 +379,7 @@ void ide_config(dev_link_t *link)
info
->
node
.
minor
=
0
;
info
->
node
.
minor
=
0
;
info
->
hd
=
hd
;
info
->
hd
=
hd
;
link
->
dev
=
&
info
->
node
;
link
->
dev
=
&
info
->
node
;
printk
(
KERN_INFO
"ide
_
cs: %s: Vcc = %d.%d, Vpp = %d.%d
\n
"
,
printk
(
KERN_INFO
"ide
-
cs: %s: Vcc = %d.%d, Vpp = %d.%d
\n
"
,
info
->
node
.
dev_name
,
link
->
conf
.
Vcc
/
10
,
link
->
conf
.
Vcc
%
10
,
info
->
node
.
dev_name
,
link
->
conf
.
Vcc
/
10
,
link
->
conf
.
Vcc
%
10
,
link
->
conf
.
Vpp1
/
10
,
link
->
conf
.
Vpp1
%
10
);
link
->
conf
.
Vpp1
/
10
,
link
->
conf
.
Vpp1
%
10
);
...
@@ -382,6 +390,7 @@ void ide_config(dev_link_t *link)
...
@@ -382,6 +390,7 @@ void ide_config(dev_link_t *link)
cs_error
(
link
->
handle
,
last_fn
,
last_ret
);
cs_error
(
link
->
handle
,
last_fn
,
last_ret
);
failed:
failed:
ide_release
((
u_long
)
link
);
ide_release
((
u_long
)
link
);
link
->
state
&=
~
DEV_CONFIG_PENDING
;
}
/* ide_config */
}
/* ide_config */
...
@@ -402,13 +411,14 @@ void ide_release(u_long arg)
...
@@ -402,13 +411,14 @@ void ide_release(u_long arg)
if
(
info
->
ndev
)
{
if
(
info
->
ndev
)
{
ide_unregister
(
info
->
hd
);
ide_unregister
(
info
->
hd
);
/* deal with brain dead IDE resource management */
request_region
(
link
->
io
.
BasePort1
,
link
->
io
.
NumPorts1
,
info
->
node
.
dev_name
);
if
(
link
->
io
.
NumPorts2
)
request_region
(
link
->
io
.
BasePort2
,
link
->
io
.
NumPorts2
,
info
->
node
.
dev_name
);
MOD_DEC_USE_COUNT
;
MOD_DEC_USE_COUNT
;
}
}
request_region
(
link
->
io
.
BasePort1
,
link
->
io
.
NumPorts1
,
"ide-cs"
);
if
(
link
->
io
.
NumPorts2
)
request_region
(
link
->
io
.
BasePort2
,
link
->
io
.
NumPorts2
,
"ide-cs"
);
info
->
ndev
=
0
;
info
->
ndev
=
0
;
link
->
dev
=
NULL
;
link
->
dev
=
NULL
;
...
@@ -472,9 +482,9 @@ static int __init init_ide_cs(void)
...
@@ -472,9 +482,9 @@ static int __init init_ide_cs(void)
DEBUG
(
0
,
"%s
\n
"
,
version
);
DEBUG
(
0
,
"%s
\n
"
,
version
);
CardServices
(
GetCardServicesInfo
,
&
serv
);
CardServices
(
GetCardServicesInfo
,
&
serv
);
if
(
serv
.
Revision
!=
CS_RELEASE_CODE
)
{
if
(
serv
.
Revision
!=
CS_RELEASE_CODE
)
{
printk
(
KERN_NOTICE
"ide
_
cs: Card Services release "
printk
(
KERN_NOTICE
"ide
-
cs: Card Services release "
"does not match!
\n
"
);
"does not match!
\n
"
);
return
-
1
;
return
-
EINVAL
;
}
}
register_pccard_driver
(
&
dev_info
,
&
ide_attach
,
&
ide_detach
);
register_pccard_driver
(
&
dev_info
,
&
ide_attach
,
&
ide_detach
);
return
0
;
return
0
;
...
@@ -482,7 +492,7 @@ static int __init init_ide_cs(void)
...
@@ -482,7 +492,7 @@ static int __init init_ide_cs(void)
static
void
__exit
exit_ide_cs
(
void
)
static
void
__exit
exit_ide_cs
(
void
)
{
{
DEBUG
(
0
,
"ide
_
cs: unloading
\n
"
);
DEBUG
(
0
,
"ide
-
cs: unloading
\n
"
);
unregister_pccard_driver
(
&
dev_info
);
unregister_pccard_driver
(
&
dev_info
);
while
(
dev_list
!=
NULL
)
while
(
dev_list
!=
NULL
)
ide_detach
(
dev_list
);
ide_detach
(
dev_list
);
...
...
drivers/mtd/ftl.c
View file @
ee4351da
...
@@ -26,7 +26,7 @@
...
@@ -26,7 +26,7 @@
rights and limitations under the License.
rights and limitations under the License.
The initial developer of the original code is David A. Hinds
The initial developer of the original code is David A. Hinds
<d
hinds@pcmcia.sourceforge.org
>. Portions created by David A. Hinds
<d
ahinds@users.sourceforge.net
>. Portions created by David A. Hinds
are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
Alternatively, the contents of this file may be used under the
Alternatively, the contents of this file may be used under the
...
@@ -1302,5 +1302,5 @@ module_init(init_ftl);
...
@@ -1302,5 +1302,5 @@ module_init(init_ftl);
module_exit
(
cleanup_ftl
);
module_exit
(
cleanup_ftl
);
MODULE_LICENSE
(
"Dual MPL/GPL"
);
MODULE_LICENSE
(
"Dual MPL/GPL"
);
MODULE_AUTHOR
(
"David Hinds <d
hinds@sonic
.net>"
);
MODULE_AUTHOR
(
"David Hinds <d
ahinds@users.sourceforge
.net>"
);
MODULE_DESCRIPTION
(
"Support code for Flash Translation Layer, used on PCMCIA devices and M-Systems DiskOnChip 1000"
);
MODULE_DESCRIPTION
(
"Support code for Flash Translation Layer, used on PCMCIA devices and M-Systems DiskOnChip 1000"
);
drivers/net/pcmcia/ax8390.h
deleted
100644 → 0
View file @
d472b9dc
/* Generic NS8390 register definitions. */
/* This file is part of Donald Becker's 8390 drivers, and is distributed
under the same license. Auto-loading of 8390.o only in v2.2 - Paul G.
Some of these names and comments originated from the Crynwr
packet drivers, which are distributed under the GPL. */
#ifndef _8390_h
#define _8390_h
#include <linux/config.h>
#include <linux/if_ether.h>
#include <linux/ioport.h>
#include <linux/skbuff.h>
#define TX_2X_PAGES 12
#define TX_1X_PAGES 6
/* Should always use two Tx slots to get back-to-back transmits. */
#define EI_PINGPONG
#ifdef EI_PINGPONG
#define TX_PAGES TX_2X_PAGES
#else
#define TX_PAGES TX_1X_PAGES
#endif
#define ETHER_ADDR_LEN 6
/* The 8390 specific per-packet-header format. */
struct
e8390_pkt_hdr
{
unsigned
char
status
;
/* status */
unsigned
char
next
;
/* pointer to next packet. */
unsigned
short
count
;
/* header + packet length in bytes */
};
#ifdef notdef
extern
int
ei_debug
;
#else
#define ei_debug 1
#endif
static
int
ethdev_init
(
struct
net_device
*
dev
);
static
void
NS8390_init
(
struct
net_device
*
dev
,
int
startp
);
static
int
ei_open
(
struct
net_device
*
dev
);
static
int
ei_close
(
struct
net_device
*
dev
);
static
void
ei_interrupt
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
);
/* Most of these entries should be in 'struct net_device' (or most of the
things in there should be here!) */
/* You have one of these per-board */
struct
ei_device
{
const
char
*
name
;
void
(
*
reset_8390
)(
struct
net_device
*
);
void
(
*
get_8390_hdr
)(
struct
net_device
*
,
struct
e8390_pkt_hdr
*
,
int
);
void
(
*
block_output
)(
struct
net_device
*
,
int
,
const
unsigned
char
*
,
int
);
void
(
*
block_input
)(
struct
net_device
*
,
int
,
struct
sk_buff
*
,
int
);
unsigned
char
mcfilter
[
8
];
unsigned
open
:
1
;
unsigned
word16
:
1
;
/* We have the 16-bit (vs 8-bit) version of the card. */
unsigned
txing
:
1
;
/* Transmit Active */
unsigned
irqlock
:
1
;
/* 8390's intrs disabled when '1'. */
unsigned
dmaing
:
1
;
/* Remote DMA Active */
unsigned
char
tx_start_page
,
rx_start_page
,
stop_page
;
unsigned
char
current_page
;
/* Read pointer in buffer */
unsigned
char
interface_num
;
/* Net port (AUI, 10bT.) to use. */
unsigned
char
txqueue
;
/* Tx Packet buffer queue length. */
short
tx1
,
tx2
;
/* Packet lengths for ping-pong tx. */
short
lasttx
;
/* Alpha version consistency check. */
unsigned
char
reg0
;
/* Register '0' in a WD8013 */
unsigned
char
reg5
;
/* Register '5' in a WD8013 */
unsigned
char
saved_irq
;
/* Original dev->irq value. */
struct
net_device_stats
stat
;
/* The new statistics table. */
u32
*
reg_offset
;
/* Register mapping table */
spinlock_t
page_lock
;
/* Page register locks */
unsigned
long
priv
;
/* Private field to store bus IDs etc. */
};
/* The maximum number of 8390 interrupt service routines called per IRQ. */
#define MAX_SERVICE 12
/* The maximum time waited (in jiffies) before assuming a Tx failed. (20ms) */
#define TX_TIMEOUT (20*HZ/100)
#define ei_status (*(struct ei_device *)(dev->priv))
/* Some generic ethernet register configurations. */
#define E8390_TX_IRQ_MASK 0xa
/* For register EN0_ISR */
#define E8390_RX_IRQ_MASK 0x5
#define E8390_RXCONFIG 0x44
/* EN0_RXCR: broadcasts, no multicast,errors */
#define E8390_RXOFF 0x20
/* EN0_RXCR: Accept no packets */
#define E8390_TXCONFIG 0x00
/* EN0_TXCR: Normal transmit mode */
#define E8390_TXOFF 0x02
/* EN0_TXCR: Transmitter off */
/* Register accessed at EN_CMD, the 8390 base addr. */
#define E8390_STOP 0x01
/* Stop and reset the chip */
#define E8390_START 0x02
/* Start the chip, clear reset */
#define E8390_TRANS 0x04
/* Transmit a frame */
#define E8390_RREAD 0x08
/* Remote read */
#define E8390_RWRITE 0x10
/* Remote write */
#define E8390_NODMA 0x20
/* Remote DMA */
#define E8390_PAGE0 0x00
/* Select page chip registers */
#define E8390_PAGE1 0x40
/* using the two high-order bits */
#define E8390_PAGE2 0x80
/* Page 3 is invalid. */
/*
* Only generate indirect loads given a machine that needs them.
*/
#if defined(CONFIG_MAC) || defined(CONFIG_AMIGA_PCMCIA) || \
defined(CONFIG_ARIADNE2) || defined(CONFIG_ARIADNE2_MODULE) || \
defined(CONFIG_HYDRA) || defined(CONFIG_HYDRA_MODULE)
#define EI_SHIFT(x) (ei_local->reg_offset[x])
#else
#define EI_SHIFT(x) (x)
#endif
#define E8390_CMD EI_SHIFT(0x00)
/* The command register (for all pages) */
/* Page 0 register offsets. */
#define EN0_CLDALO EI_SHIFT(0x01)
/* Low byte of current local dma addr RD */
#define EN0_STARTPG EI_SHIFT(0x01)
/* Starting page of ring bfr WR */
#define EN0_CLDAHI EI_SHIFT(0x02)
/* High byte of current local dma addr RD */
#define EN0_STOPPG EI_SHIFT(0x02)
/* Ending page +1 of ring bfr WR */
#define EN0_BOUNDARY EI_SHIFT(0x03)
/* Boundary page of ring bfr RD WR */
#define EN0_TSR EI_SHIFT(0x04)
/* Transmit status reg RD */
#define EN0_TPSR EI_SHIFT(0x04)
/* Transmit starting page WR */
#define EN0_NCR EI_SHIFT(0x05)
/* Number of collision reg RD */
#define EN0_TCNTLO EI_SHIFT(0x05)
/* Low byte of tx byte count WR */
#define EN0_FIFO EI_SHIFT(0x06)
/* FIFO RD */
#define EN0_TCNTHI EI_SHIFT(0x06)
/* High byte of tx byte count WR */
#define EN0_ISR EI_SHIFT(0x07)
/* Interrupt status reg RD WR */
#define EN0_CRDALO EI_SHIFT(0x08)
/* low byte of current remote dma address RD */
#define EN0_RSARLO EI_SHIFT(0x08)
/* Remote start address reg 0 */
#define EN0_CRDAHI EI_SHIFT(0x09)
/* high byte, current remote dma address RD */
#define EN0_RSARHI EI_SHIFT(0x09)
/* Remote start address reg 1 */
#define EN0_RCNTLO EI_SHIFT(0x0a)
/* Remote byte count reg WR */
#define EN0_RCNTHI EI_SHIFT(0x0b)
/* Remote byte count reg WR */
#define EN0_RSR EI_SHIFT(0x0c)
/* rx status reg RD */
#define EN0_RXCR EI_SHIFT(0x0c)
/* RX configuration reg WR */
#define EN0_TXCR EI_SHIFT(0x0d)
/* TX configuration reg WR */
#define EN0_COUNTER0 EI_SHIFT(0x0d)
/* Rcv alignment error counter RD */
#define EN0_DCFG EI_SHIFT(0x0e)
/* Data configuration reg WR */
#define EN0_COUNTER1 EI_SHIFT(0x0e)
/* Rcv CRC error counter RD */
#define EN0_IMR EI_SHIFT(0x0f)
/* Interrupt mask reg WR */
#define EN0_COUNTER2 EI_SHIFT(0x0f)
/* Rcv missed frame error counter RD */
/* Bits in EN0_ISR - Interrupt status register */
#define ENISR_RX 0x01
/* Receiver, no error */
#define ENISR_TX 0x02
/* Transmitter, no error */
#define ENISR_RX_ERR 0x04
/* Receiver, with error */
#define ENISR_TX_ERR 0x08
/* Transmitter, with error */
#define ENISR_OVER 0x10
/* Receiver overwrote the ring */
#define ENISR_COUNTERS 0x20
/* Counters need emptying */
#define ENISR_RDC 0x40
/* remote dma complete */
#define ENISR_RESET 0x80
/* Reset completed */
#define ENISR_ALL 0x3f
/* Interrupts we will enable */
/* Bits in EN0_DCFG - Data config register */
#define ENDCFG_WTS 0x01
/* word transfer mode selection */
/* Page 1 register offsets. */
#define EN1_PHYS EI_SHIFT(0x01)
/* This board's physical enet addr RD WR */
#define EN1_PHYS_SHIFT(i) EI_SHIFT(i+1)
/* Get and set mac address */
#define EN1_CURPAG EI_SHIFT(0x07)
/* Current memory page RD WR */
#define EN1_MULT EI_SHIFT(0x08)
/* Multicast filter mask array (8 bytes) RD WR */
#define EN1_MULT_SHIFT(i) EI_SHIFT(8+i)
/* Get and set multicast filter */
/* Bits in received packet status byte and EN0_RSR*/
#define ENRSR_RXOK 0x01
/* Received a good packet */
#define ENRSR_CRC 0x02
/* CRC error */
#define ENRSR_FAE 0x04
/* frame alignment error */
#define ENRSR_FO 0x08
/* FIFO overrun */
#define ENRSR_MPA 0x10
/* missed pkt */
#define ENRSR_PHY 0x20
/* physical/multicast address */
#define ENRSR_DIS 0x40
/* receiver disable. set in monitor mode */
#define ENRSR_DEF 0x80
/* deferring */
/* Transmitted packet status, EN0_TSR. */
#define ENTSR_PTX 0x01
/* Packet transmitted without error */
#define ENTSR_ND 0x02
/* The transmit wasn't deferred. */
#define ENTSR_COL 0x04
/* The transmit collided at least once. */
#define ENTSR_ABT 0x08
/* The transmit collided 16 times, and was deferred. */
#define ENTSR_CRS 0x10
/* The carrier sense was lost. */
#define ENTSR_FU 0x20
/* A "FIFO underrun" occurred during transmit. */
#define ENTSR_CDH 0x40
/* The collision detect "heartbeat" signal was lost. */
#define ENTSR_OWC 0x80
/* There was an out-of-window collision. */
#endif
/* _8390_h */
drivers/net/pcmcia/axnet_cs.c
View file @
ee4351da
This diff is collapsed.
Click to expand it.
drivers/net/pcmcia/fmvj18x_cs.c
View file @
ee4351da
This diff is collapsed.
Click to expand it.
drivers/net/pcmcia/nmclan_cs.c
View file @
ee4351da
...
@@ -106,6 +106,10 @@ Log: nmclan_cs.c,v
...
@@ -106,6 +106,10 @@ Log: nmclan_cs.c,v
---------------------------------------------------------------------------- */
---------------------------------------------------------------------------- */
#define DRV_NAME "nmclan_cs"
#define DRV_VERSION "0.16"
/* ----------------------------------------------------------------------------
/* ----------------------------------------------------------------------------
Conditional Compilation Options
Conditional Compilation Options
---------------------------------------------------------------------------- */
---------------------------------------------------------------------------- */
...
@@ -130,6 +134,9 @@ Include Files
...
@@ -130,6 +134,9 @@ Include Files
#include <linux/interrupt.h>
#include <linux/interrupt.h>
#include <linux/in.h>
#include <linux/in.h>
#include <linux/delay.h>
#include <linux/delay.h>
#include <linux/ethtool.h>
#include <asm/uaccess.h>
#include <asm/io.h>
#include <asm/io.h>
#include <asm/system.h>
#include <asm/system.h>
#include <asm/bitops.h>
#include <asm/bitops.h>
...
@@ -375,7 +382,7 @@ Private Global Variables
...
@@ -375,7 +382,7 @@ Private Global Variables
static
char
rcsid
[]
=
static
char
rcsid
[]
=
"nmclan_cs.c,v 0.16 1995/07/01 06:42:17 rpao Exp rpao"
;
"nmclan_cs.c,v 0.16 1995/07/01 06:42:17 rpao Exp rpao"
;
static
char
*
version
=
static
char
*
version
=
"nmclan_cs 0.16
(Roger C. Pao)"
;
DRV_NAME
" "
DRV_VERSION
"
(Roger C. Pao)"
;
#endif
#endif
static
dev_info_t
dev_info
=
"nmclan_cs"
;
static
dev_info_t
dev_info
=
"nmclan_cs"
;
...
@@ -430,8 +437,8 @@ static void mace_interrupt(int irq, void *dev_id, struct pt_regs *regs);
...
@@ -430,8 +437,8 @@ static void mace_interrupt(int irq, void *dev_id, struct pt_regs *regs);
static
struct
net_device_stats
*
mace_get_stats
(
struct
net_device
*
dev
);
static
struct
net_device_stats
*
mace_get_stats
(
struct
net_device
*
dev
);
static
int
mace_rx
(
struct
net_device
*
dev
,
unsigned
char
RxCnt
);
static
int
mace_rx
(
struct
net_device
*
dev
,
unsigned
char
RxCnt
);
static
void
restore_multicast_list
(
struct
net_device
*
dev
);
static
void
restore_multicast_list
(
struct
net_device
*
dev
);
static
void
set_multicast_list
(
struct
net_device
*
dev
);
static
void
set_multicast_list
(
struct
net_device
*
dev
);
static
int
mace_ioctl
(
struct
net_device
*
dev
,
struct
ifreq
*
rq
,
int
cmd
);
static
dev_link_t
*
nmclan_attach
(
void
);
static
dev_link_t
*
nmclan_attach
(
void
);
static
void
nmclan_detach
(
dev_link_t
*
);
static
void
nmclan_detach
(
dev_link_t
*
);
...
@@ -513,6 +520,7 @@ static dev_link_t *nmclan_attach(void)
...
@@ -513,6 +520,7 @@ static dev_link_t *nmclan_attach(void)
dev
->
set_config
=
&
mace_config
;
dev
->
set_config
=
&
mace_config
;
dev
->
get_stats
=
&
mace_get_stats
;
dev
->
get_stats
=
&
mace_get_stats
;
dev
->
set_multicast_list
=
&
set_multicast_list
;
dev
->
set_multicast_list
=
&
set_multicast_list
;
dev
->
do_ioctl
=
&
mace_ioctl
;
ether_setup
(
dev
);
ether_setup
(
dev
);
dev
->
open
=
&
mace_open
;
dev
->
open
=
&
mace_open
;
dev
->
stop
=
&
mace_close
;
dev
->
stop
=
&
mace_close
;
...
@@ -1002,6 +1010,66 @@ static int mace_close(struct net_device *dev)
...
@@ -1002,6 +1010,66 @@ static int mace_close(struct net_device *dev)
return
0
;
return
0
;
}
/* mace_close */
}
/* mace_close */
static
int
netdev_ethtool_ioctl
(
struct
net_device
*
dev
,
void
*
useraddr
)
{
u32
ethcmd
;
/* dev_ioctl() in ../../net/core/dev.c has already checked
capable(CAP_NET_ADMIN), so don't bother with that here. */
if
(
get_user
(
ethcmd
,
(
u32
*
)
useraddr
))
return
-
EFAULT
;
switch
(
ethcmd
)
{
case
ETHTOOL_GDRVINFO
:
{
struct
ethtool_drvinfo
info
=
{
ETHTOOL_GDRVINFO
};
strcpy
(
info
.
driver
,
DRV_NAME
);
strcpy
(
info
.
version
,
DRV_VERSION
);
sprintf
(
info
.
bus_info
,
"PCMCIA 0x%lx"
,
dev
->
base_addr
);
if
(
copy_to_user
(
useraddr
,
&
info
,
sizeof
(
info
)))
return
-
EFAULT
;
return
0
;
}
#ifdef PCMCIA_DEBUG
/* get message-level */
case
ETHTOOL_GMSGLVL
:
{
struct
ethtool_value
edata
=
{
ETHTOOL_GMSGLVL
};
edata
.
data
=
pc_debug
;
if
(
copy_to_user
(
useraddr
,
&
edata
,
sizeof
(
edata
)))
return
-
EFAULT
;
return
0
;
}
/* set message-level */
case
ETHTOOL_SMSGLVL
:
{
struct
ethtool_value
edata
;
if
(
copy_from_user
(
&
edata
,
useraddr
,
sizeof
(
edata
)))
return
-
EFAULT
;
pc_debug
=
edata
.
data
;
return
0
;
}
#endif
default:
break
;
}
return
-
EOPNOTSUPP
;
}
static
int
mace_ioctl
(
struct
net_device
*
dev
,
struct
ifreq
*
rq
,
int
cmd
)
{
switch
(
cmd
)
{
case
SIOCETHTOOL
:
return
netdev_ethtool_ioctl
(
dev
,
(
void
*
)
rq
->
ifr_data
);
default:
return
-
EOPNOTSUPP
;
}
return
0
;
}
/* ----------------------------------------------------------------------------
/* ----------------------------------------------------------------------------
mace_start_xmit
mace_start_xmit
This routine begins the packet transmit function. When completed,
This routine begins the packet transmit function. When completed,
...
...
drivers/net/pcmcia/pcnet_cs.c
View file @
ee4351da
...
@@ -11,7 +11,7 @@
...
@@ -11,7 +11,7 @@
Copyright (C) 1999 David A. Hinds -- dahinds@users.sourceforge.net
Copyright (C) 1999 David A. Hinds -- dahinds@users.sourceforge.net
pcnet_cs.c 1.14
4 2001/11/07 04:06:56
pcnet_cs.c 1.14
9 2002/06/29 06:27:37
The network driver code is based on Donald Becker's NE2000 code:
The network driver code is based on Donald Becker's NE2000 code:
...
@@ -75,7 +75,7 @@ static int pc_debug = PCMCIA_DEBUG;
...
@@ -75,7 +75,7 @@ static int pc_debug = PCMCIA_DEBUG;
MODULE_PARM
(
pc_debug
,
"i"
);
MODULE_PARM
(
pc_debug
,
"i"
);
#define DEBUG(n, args...) if (pc_debug>(n)) printk(KERN_DEBUG args)
#define DEBUG(n, args...) if (pc_debug>(n)) printk(KERN_DEBUG args)
static
char
*
version
=
static
char
*
version
=
"pcnet_cs.c 1.14
4 2001/11/07 04:06:56
(David Hinds)"
;
"pcnet_cs.c 1.14
9 2002/06/29 06:27:37
(David Hinds)"
;
#else
#else
#define DEBUG(n, args...)
#define DEBUG(n, args...)
#endif
#endif
...
@@ -765,12 +765,13 @@ static void pcnet_config(dev_link_t *link)
...
@@ -765,12 +765,13 @@ static void pcnet_config(dev_link_t *link)
strcpy
(
info
->
node
.
dev_name
,
dev
->
name
);
strcpy
(
info
->
node
.
dev_name
,
dev
->
name
);
link
->
dev
=
&
info
->
node
;
link
->
dev
=
&
info
->
node
;
link
->
state
&=
~
DEV_CONFIG_PENDING
;
if
(
info
->
flags
&
(
IS_DL10019
|
IS_DL10022
))
{
if
(
info
->
flags
&
(
IS_DL10019
|
IS_DL10022
))
{
u_char
id
=
inb
(
dev
->
base_addr
+
0x1a
);
u_char
id
=
inb
(
dev
->
base_addr
+
0x1a
);
dev
->
do_ioctl
=
&
ei_ioctl
;
dev
->
do_ioctl
=
&
ei_ioctl
;
mii_phy_probe
(
dev
);
mii_phy_probe
(
dev
);
if
((
id
==
0x30
)
&&
!
info
->
pna_phy
&&
(
info
->
eth_phy
==
4
))
info
->
eth_phy
=
0
;
printk
(
KERN_INFO
"%s: NE2000 (DL100%d rev %02x): "
,
printk
(
KERN_INFO
"%s: NE2000 (DL100%d rev %02x): "
,
dev
->
name
,
((
info
->
flags
&
IS_DL10022
)
?
22
:
19
),
id
);
dev
->
name
,
((
info
->
flags
&
IS_DL10022
)
?
22
:
19
),
id
);
if
(
info
->
pna_phy
)
if
(
info
->
pna_phy
)
...
@@ -787,12 +788,14 @@ static void pcnet_config(dev_link_t *link)
...
@@ -787,12 +788,14 @@ static void pcnet_config(dev_link_t *link)
printk
(
" hw_addr "
);
printk
(
" hw_addr "
);
for
(
i
=
0
;
i
<
6
;
i
++
)
for
(
i
=
0
;
i
<
6
;
i
++
)
printk
(
"%02X%s"
,
dev
->
dev_addr
[
i
],
((
i
<
5
)
?
":"
:
"
\n
"
));
printk
(
"%02X%s"
,
dev
->
dev_addr
[
i
],
((
i
<
5
)
?
":"
:
"
\n
"
));
link
->
state
&=
~
DEV_CONFIG_PENDING
;
return
;
return
;
cs_failed:
cs_failed:
cs_error
(
link
->
handle
,
last_fn
,
last_ret
);
cs_error
(
link
->
handle
,
last_fn
,
last_ret
);
failed:
failed:
pcnet_release
((
u_long
)
link
);
pcnet_release
((
u_long
)
link
);
link
->
state
&=
~
DEV_CONFIG_PENDING
;
return
;
return
;
}
/* pcnet_config */
}
/* pcnet_config */
...
@@ -856,7 +859,7 @@ static int pcnet_event(event_t event, int priority,
...
@@ -856,7 +859,7 @@ static int pcnet_event(event_t event, int priority,
}
}
break
;
break
;
case
CS_EVENT_CARD_INSERTION
:
case
CS_EVENT_CARD_INSERTION
:
link
->
state
|=
DEV_PRESENT
;
link
->
state
|=
DEV_PRESENT
|
DEV_CONFIG_PENDING
;
pcnet_config
(
link
);
pcnet_config
(
link
);
break
;
break
;
case
CS_EVENT_PM_SUSPEND
:
case
CS_EVENT_PM_SUSPEND
:
...
@@ -1052,6 +1055,7 @@ static int pcnet_close(struct net_device *dev)
...
@@ -1052,6 +1055,7 @@ static int pcnet_close(struct net_device *dev)
DEBUG
(
2
,
"pcnet_close('%s')
\n
"
,
dev
->
name
);
DEBUG
(
2
,
"pcnet_close('%s')
\n
"
,
dev
->
name
);
ei_close
(
dev
);
free_irq
(
dev
->
irq
,
dev
);
free_irq
(
dev
->
irq
,
dev
);
link
->
open
--
;
link
->
open
--
;
...
@@ -1621,7 +1625,7 @@ static int __init init_pcnet_cs(void)
...
@@ -1621,7 +1625,7 @@ static int __init init_pcnet_cs(void)
if
(
serv
.
Revision
!=
CS_RELEASE_CODE
)
{
if
(
serv
.
Revision
!=
CS_RELEASE_CODE
)
{
printk
(
KERN_NOTICE
"pcnet_cs: Card Services release "
printk
(
KERN_NOTICE
"pcnet_cs: Card Services release "
"does not match!
\n
"
);
"does not match!
\n
"
);
return
-
1
;
return
-
EINVAL
;
}
}
register_pccard_driver
(
&
dev_info
,
&
pcnet_attach
,
&
pcnet_detach
);
register_pccard_driver
(
&
dev_info
,
&
pcnet_attach
,
&
pcnet_detach
);
return
0
;
return
0
;
...
...
drivers/net/pcmcia/ray_cs.c
View file @
ee4351da
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
*
*
* A PCMCIA client driver for the Raylink wireless LAN card.
* A PCMCIA client driver for the Raylink wireless LAN card.
* The starting point for this module was the skeleton.c in the
* The starting point for this module was the skeleton.c in the
* PCMCIA 2.9.12 package written by David Hinds, d
hinds@allegro.stanford.edu
* PCMCIA 2.9.12 package written by David Hinds, d
ahinds@users.sourceforge.net
*
*
*
*
* Copyright (c) 1998 Corey Thomas (corey@world.std.com)
* Copyright (c) 1998 Corey Thomas (corey@world.std.com)
...
...
drivers/net/pcmcia/smc91c92_cs.c
View file @
ee4351da
This diff is collapsed.
Click to expand it.
drivers/net/wireless/airo_cs.c
View file @
ee4351da
...
@@ -15,7 +15,7 @@
...
@@ -15,7 +15,7 @@
In addition this module was derived from dummy_cs.
In addition this module was derived from dummy_cs.
The initial developer of dummy_cs is David A. Hinds
The initial developer of dummy_cs is David A. Hinds
<d
hinds@hyper.stanford.edu
>. Portions created by David A. Hinds
<d
ahinds@users.sourceforge.net
>. Portions created by David A. Hinds
are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
======================================================================*/
======================================================================*/
...
...
drivers/net/wireless/wavelan.p.h
View file @
ee4351da
...
@@ -143,7 +143,7 @@
...
@@ -143,7 +143,7 @@
* Yunzhou Li <yunzhou@strat.iol.unh.edu> finished this work.
* Yunzhou Li <yunzhou@strat.iol.unh.edu> finished this work.
* Joe Finney <joe@comp.lancs.ac.uk> patched the driver to start
* Joe Finney <joe@comp.lancs.ac.uk> patched the driver to start
* 2.00 cards correctly (2.4 GHz with frequency selection).
* 2.00 cards correctly (2.4 GHz with frequency selection).
* David Hinds <d
hinds@hyper.stanford.edu
> integrated the whole in his
* David Hinds <d
ahinds@users.sourceforge.net
> integrated the whole in his
* PCMCIA package (and bug corrections).
* PCMCIA package (and bug corrections).
*
*
* I (Jean Tourrilhes - jt@hplb.hpl.hp.com) then started to make some
* I (Jean Tourrilhes - jt@hplb.hpl.hp.com) then started to make some
...
...
drivers/parport/parport_cs.c
View file @
ee4351da
...
@@ -5,7 +5,7 @@
...
@@ -5,7 +5,7 @@
(specifically, for the Quatech SPP-100 EPP card: other cards will
(specifically, for the Quatech SPP-100 EPP card: other cards will
probably require driver tweaks)
probably require driver tweaks)
parport_cs.c 1.2
0 2000/11/02 23:15:05
parport_cs.c 1.2
9 2002/10/11 06:57:41
The contents of this file are subject to the Mozilla Public
The contents of this file are subject to the Mozilla Public
License Version 1.1 (the "License"); you may not use this file
License Version 1.1 (the "License"); you may not use this file
...
@@ -34,9 +34,7 @@
...
@@ -34,9 +34,7 @@
======================================================================*/
======================================================================*/
#include <linux/kernel.h>
#include <linux/kernel.h>
#include <linux/version.h>
#include <linux/module.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/init.h>
#include <linux/sched.h>
#include <linux/sched.h>
...
@@ -45,7 +43,6 @@
...
@@ -45,7 +43,6 @@
#include <linux/string.h>
#include <linux/string.h>
#include <linux/timer.h>
#include <linux/timer.h>
#include <linux/ioport.h>
#include <linux/ioport.h>
#include <linux/major.h>
#include <linux/parport.h>
#include <linux/parport.h>
#include <linux/parport_pc.h>
#include <linux/parport_pc.h>
...
@@ -58,32 +55,31 @@
...
@@ -58,32 +55,31 @@
#include <pcmcia/cisreg.h>
#include <pcmcia/cisreg.h>
#include <pcmcia/ciscode.h>
#include <pcmcia/ciscode.h>
#ifdef PCMCIA_DEBUG
/*====================================================================*/
static
int
pc_debug
=
PCMCIA_DEBUG
;
MODULE_PARM
(
pc_debug
,
"i"
);
#define DEBUG(n, args...) if (pc_debug>(n)) printk(KERN_DEBUG args)
static
char
*
version
=
"parport_cs.c 1.20 2000/11/02 23:15:05 (David Hinds)"
;
#else
#define DEBUG(n, args...)
#endif
#ifndef VERSION
/* Module parameters */
#define VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
#endif
/*====================================================================*/
MODULE_AUTHOR
(
"David Hinds <dahinds@users.sourceforge.net>"
);
MODULE_DESCRIPTION
(
"PCMCIA parallel port card driver"
);
MODULE_LICENSE
(
"Dual MPL/GPL"
);
/* Parameters that can be set with 'insmod' */
#define INT_MODULE_PARM(n, v) static int n = v; MODULE_PARM(n, "i")
/* Bit map of interrupts to choose from */
/* Bit map of interrupts to choose from */
static
u_int
irq_mask
=
0xdeb8
;
INT_MODULE_PARM
(
irq_mask
,
0xdeb8
)
;
static
int
irq_list
[
4
]
=
{
-
1
};
static
int
irq_list
[
4
]
=
{
-
1
};
static
int
epp_mode
=
1
;
MODULE_PARM
(
irq_mask
,
"i"
);
MODULE_PARM
(
irq_list
,
"1-4i"
);
MODULE_PARM
(
irq_list
,
"1-4i"
);
MODULE_PARM
(
epp_mode
,
"i"
);
INT_MODULE_PARM
(
epp_mode
,
1
);
#ifdef PCMCIA_DEBUG
INT_MODULE_PARM
(
pc_debug
,
PCMCIA_DEBUG
);
#define DEBUG(n, args...) if (pc_debug>(n)) printk(KERN_DEBUG args)
static
char
*
version
=
"parport_cs.c 1.29 2002/10/11 06:57:41 (David Hinds)"
;
#else
#define DEBUG(n, args...)
#endif
/*====================================================================*/
/*====================================================================*/
...
@@ -106,8 +102,6 @@ static int parport_event(event_t event, int priority,
...
@@ -106,8 +102,6 @@ static int parport_event(event_t event, int priority,
static
dev_info_t
dev_info
=
"parport_cs"
;
static
dev_info_t
dev_info
=
"parport_cs"
;
static
dev_link_t
*
dev_list
=
NULL
;
static
dev_link_t
*
dev_list
=
NULL
;
extern
struct
parport_operations
parport_pc_ops
;
/*====================================================================*/
/*====================================================================*/
static
void
cs_error
(
client_handle_t
handle
,
int
func
,
int
ret
)
static
void
cs_error
(
client_handle_t
handle
,
int
func
,
int
ret
)
...
@@ -228,12 +222,6 @@ while ((last_ret=CardServices(last_fn=(fn), args))!=0) goto cs_failed
...
@@ -228,12 +222,6 @@ while ((last_ret=CardServices(last_fn=(fn), args))!=0) goto cs_failed
#define CFG_CHECK(fn, args...) \
#define CFG_CHECK(fn, args...) \
if (CardServices(fn, args) != 0) goto next_entry
if (CardServices(fn, args) != 0) goto next_entry
static
struct
{
u_int
flag
;
char
*
name
;
}
mode
[]
=
{
{
PARPORT_MODE_TRISTATE
,
"PS2"
},
{
PARPORT_MODE_EPP
,
"EPP"
},
{
PARPORT_MODE_ECP
,
"ECP"
},
};
void
parport_config
(
dev_link_t
*
link
)
void
parport_config
(
dev_link_t
*
link
)
{
{
client_handle_t
handle
=
link
->
handle
;
client_handle_t
handle
=
link
->
handle
;
...
@@ -245,7 +233,7 @@ void parport_config(dev_link_t *link)
...
@@ -245,7 +233,7 @@ void parport_config(dev_link_t *link)
cistpl_cftable_entry_t
*
cfg
=
&
parse
.
cftable_entry
;
cistpl_cftable_entry_t
*
cfg
=
&
parse
.
cftable_entry
;
cistpl_cftable_entry_t
dflt
=
{
0
};
cistpl_cftable_entry_t
dflt
=
{
0
};
struct
parport
*
p
;
struct
parport
*
p
;
int
i
,
last_ret
,
last_fn
;
int
last_ret
,
last_fn
;
DEBUG
(
0
,
"parport_config(0x%p)
\n
"
,
link
);
DEBUG
(
0
,
"parport_config(0x%p)
\n
"
,
link
);
...
@@ -297,6 +285,9 @@ void parport_config(dev_link_t *link)
...
@@ -297,6 +285,9 @@ void parport_config(dev_link_t *link)
CS_CHECK
(
RequestIRQ
,
handle
,
&
link
->
irq
);
CS_CHECK
(
RequestIRQ
,
handle
,
&
link
->
irq
);
CS_CHECK
(
RequestConfiguration
,
handle
,
&
link
->
conf
);
CS_CHECK
(
RequestConfiguration
,
handle
,
&
link
->
conf
);
release_region
(
link
->
io
.
BasePort1
,
link
->
io
.
NumPorts1
);
if
(
link
->
io
.
NumPorts2
)
release_region
(
link
->
io
.
BasePort2
,
link
->
io
.
NumPorts2
);
p
=
parport_pc_probe_port
(
link
->
io
.
BasePort1
,
link
->
io
.
BasePort2
,
p
=
parport_pc_probe_port
(
link
->
io
.
BasePort1
,
link
->
io
.
BasePort2
,
link
->
irq
.
AssignedIRQ
,
PARPORT_DMA_NONE
,
link
->
irq
.
AssignedIRQ
,
PARPORT_DMA_NONE
,
NULL
);
NULL
);
...
@@ -307,19 +298,6 @@ void parport_config(dev_link_t *link)
...
@@ -307,19 +298,6 @@ void parport_config(dev_link_t *link)
goto
failed
;
goto
failed
;
}
}
#if (LINUX_VERSION_CODE < VERSION(2,3,6))
#if (LINUX_VERSION_CODE >= VERSION(2,2,8))
p
->
private_data
=
kmalloc
(
sizeof
(
struct
parport_pc_private
),
GFP_KERNEL
);
((
struct
parport_pc_private
*
)(
p
->
private_data
))
->
ctr
=
0x0c
;
#endif
parport_proc_register
(
p
);
p
->
flags
|=
PARPORT_FLAG_COMA
;
parport_pc_write_econtrol
(
p
,
0x00
);
parport_pc_write_control
(
p
,
0x0c
);
parport_pc_write_data
(
p
,
0x00
);
#endif
p
->
modes
|=
PARPORT_MODE_PCSPP
;
p
->
modes
|=
PARPORT_MODE_PCSPP
;
if
(
epp_mode
)
if
(
epp_mode
)
p
->
modes
|=
PARPORT_MODE_TRISTATE
|
PARPORT_MODE_EPP
;
p
->
modes
|=
PARPORT_MODE_TRISTATE
|
PARPORT_MODE_EPP
;
...
@@ -329,14 +307,6 @@ void parport_config(dev_link_t *link)
...
@@ -329,14 +307,6 @@ void parport_config(dev_link_t *link)
info
->
port
=
p
;
info
->
port
=
p
;
strcpy
(
info
->
node
.
dev_name
,
p
->
name
);
strcpy
(
info
->
node
.
dev_name
,
p
->
name
);
link
->
dev
=
&
info
->
node
;
link
->
dev
=
&
info
->
node
;
printk
(
KERN_INFO
"%s: PC-style PCMCIA at %#x"
,
p
->
name
,
link
->
io
.
BasePort1
);
if
(
link
->
io
.
NumPorts2
)
printk
(
" & %#x"
,
link
->
io
.
BasePort2
);
printk
(
", irq %u [SPP"
,
link
->
irq
.
AssignedIRQ
);
for
(
i
=
0
;
i
<
5
;
i
++
)
if
(
p
->
modes
&
mode
[
i
].
flag
)
printk
(
",%s"
,
mode
[
i
].
name
);
printk
(
"]
\n
"
);
link
->
state
&=
~
DEV_CONFIG_PENDING
;
link
->
state
&=
~
DEV_CONFIG_PENDING
;
return
;
return
;
...
@@ -345,6 +315,7 @@ void parport_config(dev_link_t *link)
...
@@ -345,6 +315,7 @@ void parport_config(dev_link_t *link)
cs_error
(
link
->
handle
,
last_fn
,
last_ret
);
cs_error
(
link
->
handle
,
last_fn
,
last_ret
);
failed:
failed:
parport_cs_release
((
u_long
)
link
);
parport_cs_release
((
u_long
)
link
);
link
->
state
&=
~
DEV_CONFIG_PENDING
;
}
/* parport_config */
}
/* parport_config */
...
@@ -365,15 +336,12 @@ void parport_cs_release(u_long arg)
...
@@ -365,15 +336,12 @@ void parport_cs_release(u_long arg)
if
(
info
->
ndev
)
{
if
(
info
->
ndev
)
{
struct
parport
*
p
=
info
->
port
;
struct
parport
*
p
=
info
->
port
;
#if (LINUX_VERSION_CODE < VERSION(2,3,6))
parport_pc_unregister_port
(
p
);
if
(
!
(
p
->
flags
&
PARPORT_FLAG_COMA
))
request_region
(
link
->
io
.
BasePort1
,
link
->
io
.
NumPorts1
,
parport_quiesce
(
p
);
info
->
node
.
dev_name
);
#endif
if
(
link
->
io
.
NumPorts2
)
parport_proc_unregister
(
p
);
request_region
(
link
->
io
.
BasePort2
,
link
->
io
.
NumPorts2
,
#if (LINUX_VERSION_CODE >= VERSION(2,2,8))
info
->
node
.
dev_name
);
kfree
(
p
->
private_data
);
#endif
parport_unregister_port
(
p
);
}
}
info
->
ndev
=
0
;
info
->
ndev
=
0
;
link
->
dev
=
NULL
;
link
->
dev
=
NULL
;
...
@@ -430,24 +398,6 @@ int parport_event(event_t event, int priority,
...
@@ -430,24 +398,6 @@ int parport_event(event_t event, int priority,
/*====================================================================*/
/*====================================================================*/
#if (LINUX_VERSION_CODE < VERSION(2,3,6))
static
void
inc_use_count
(
void
)
{
MOD_INC_USE_COUNT
;
parport_pc_ops
.
inc_use_count
();
}
static
void
dec_use_count
(
void
)
{
MOD_DEC_USE_COUNT
;
parport_pc_ops
.
dec_use_count
();
}
#endif
/*====================================================================*/
static
int
__init
init_parport_cs
(
void
)
static
int
__init
init_parport_cs
(
void
)
{
{
servinfo_t
serv
;
servinfo_t
serv
;
...
@@ -456,9 +406,8 @@ static int __init init_parport_cs(void)
...
@@ -456,9 +406,8 @@ static int __init init_parport_cs(void)
if
(
serv
.
Revision
!=
CS_RELEASE_CODE
)
{
if
(
serv
.
Revision
!=
CS_RELEASE_CODE
)
{
printk
(
KERN_NOTICE
"parport_cs: Card Services release "
printk
(
KERN_NOTICE
"parport_cs: Card Services release "
"does not match!
\n
"
);
"does not match!
\n
"
);
return
-
1
;
return
-
EINVAL
;
}
}
register_pccard_driver
(
&
dev_info
,
&
parport_attach
,
&
parport_detach
);
register_pccard_driver
(
&
dev_info
,
&
parport_attach
,
&
parport_detach
);
return
0
;
return
0
;
}
}
...
@@ -473,4 +422,3 @@ static void __exit exit_parport_cs(void)
...
@@ -473,4 +422,3 @@ static void __exit exit_parport_cs(void)
module_init
(
init_parport_cs
);
module_init
(
init_parport_cs
);
module_exit
(
exit_parport_cs
);
module_exit
(
exit_parport_cs
);
MODULE_LICENSE
(
"Dual MPL/GPL"
);
drivers/pcmcia/cardbus.c
View file @
ee4351da
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
Cardbus device configuration
Cardbus device configuration
cardbus.c 1.
63 1999/11/08 20:47:02
cardbus.c 1.
87 2002/10/24 06:11:41
The contents of this file are subject to the Mozilla Public
The contents of this file are subject to the Mozilla Public
License Version 1.1 (the "License"); you may not use this file
License Version 1.1 (the "License"); you may not use this file
...
@@ -15,7 +15,7 @@
...
@@ -15,7 +15,7 @@
rights and limitations under the License.
rights and limitations under the License.
The initial developer of the original code is David A. Hinds
The initial developer of the original code is David A. Hinds
<d
hinds@pcmcia.sourceforge.org
>. Portions created by David A. Hinds
<d
ahinds@users.sourceforge.net
>. Portions created by David A. Hinds
are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
Alternatively, the contents of this file may be used under the
Alternatively, the contents of this file may be used under the
...
@@ -175,7 +175,7 @@ static int cb_setup_cis_mem(socket_info_t * s, struct pci_dev *dev, struct resou
...
@@ -175,7 +175,7 @@ static int cb_setup_cis_mem(socket_info_t * s, struct pci_dev *dev, struct resou
=====================================================================*/
=====================================================================*/
void
read_cb_mem
(
socket_info_t
*
s
,
u_char
fn
,
int
space
,
int
read_cb_mem
(
socket_info_t
*
s
,
u_char
fn
,
int
space
,
u_int
addr
,
u_int
len
,
void
*
ptr
)
u_int
addr
,
u_int
len
,
void
*
ptr
)
{
{
struct
pci_dev
*
dev
;
struct
pci_dev
*
dev
;
...
@@ -194,7 +194,7 @@ void read_cb_mem(socket_info_t * s, u_char fn, int space,
...
@@ -194,7 +194,7 @@ void read_cb_mem(socket_info_t * s, u_char fn, int space,
goto
fail
;
goto
fail
;
for
(;
len
;
addr
++
,
ptr
++
,
len
--
)
for
(;
len
;
addr
++
,
ptr
++
,
len
--
)
pci_readb
(
dev
,
addr
,
(
u_char
*
)
ptr
);
pci_readb
(
dev
,
addr
,
(
u_char
*
)
ptr
);
return
;
return
0
;
}
}
res
=
dev
->
resource
+
space
-
1
;
res
=
dev
->
resource
+
space
-
1
;
...
@@ -214,11 +214,11 @@ void read_cb_mem(socket_info_t * s, u_char fn, int space,
...
@@ -214,11 +214,11 @@ void read_cb_mem(socket_info_t * s, u_char fn, int space,
goto
fail
;
goto
fail
;
memcpy_fromio
(
ptr
,
s
->
cb_cis_virt
+
addr
,
len
);
memcpy_fromio
(
ptr
,
s
->
cb_cis_virt
+
addr
,
len
);
return
;
return
0
;
fail:
fail:
memset
(
ptr
,
0xff
,
len
);
memset
(
ptr
,
0xff
,
len
);
return
;
return
-
1
;
}
}
/*=====================================================================
/*=====================================================================
...
...
drivers/pcmcia/cirrus.h
View file @
ee4351da
...
@@ -12,7 +12,7 @@
...
@@ -12,7 +12,7 @@
* limitations under the License.
* limitations under the License.
*
*
* The initial developer of the original code is David A. Hinds
* The initial developer of the original code is David A. Hinds
* <d
hinds@pcmcia.sourceforge.org
>. Portions created by David A. Hinds
* <d
ahinds@users.sourceforge.net
>. Portions created by David A. Hinds
* are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
* are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
*
*
* Alternatively, the contents of this file may be used under the
* Alternatively, the contents of this file may be used under the
...
...
drivers/pcmcia/cistpl.c
View file @
ee4351da
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
PCMCIA Card Information Structure parser
PCMCIA Card Information Structure parser
cistpl.c 1.9
7 2001/10/04 03:33:49
cistpl.c 1.9
9 2002/10/24 06:11:48
The contents of this file are subject to the Mozilla Public
The contents of this file are subject to the Mozilla Public
License Version 1.1 (the "License"); you may not use this file
License Version 1.1 (the "License"); you may not use this file
...
@@ -109,7 +109,7 @@ static void set_cis_map(socket_info_t *s, pccard_mem_map *mem)
...
@@ -109,7 +109,7 @@ static void set_cis_map(socket_info_t *s, pccard_mem_map *mem)
}
}
}
}
void
read_cis_mem
(
socket_info_t
*
s
,
int
attr
,
u_int
addr
,
int
read_cis_mem
(
socket_info_t
*
s
,
int
attr
,
u_int
addr
,
u_int
len
,
void
*
ptr
)
u_int
len
,
void
*
ptr
)
{
{
pccard_mem_map
*
mem
=
&
s
->
cis_mem
;
pccard_mem_map
*
mem
=
&
s
->
cis_mem
;
...
@@ -118,7 +118,7 @@ void read_cis_mem(socket_info_t *s, int attr, u_int addr,
...
@@ -118,7 +118,7 @@ void read_cis_mem(socket_info_t *s, int attr, u_int addr,
DEBUG
(
3
,
"cs: read_cis_mem(%d, %#x, %u)
\n
"
,
attr
,
addr
,
len
);
DEBUG
(
3
,
"cs: read_cis_mem(%d, %#x, %u)
\n
"
,
attr
,
addr
,
len
);
if
(
setup_cis_mem
(
s
)
!=
0
)
{
if
(
setup_cis_mem
(
s
)
!=
0
)
{
memset
(
ptr
,
0xff
,
len
);
memset
(
ptr
,
0xff
,
len
);
return
;
return
-
1
;
}
}
mem
->
flags
=
MAP_ACTIVE
|
((
cis_width
)
?
MAP_16BIT
:
0
);
mem
->
flags
=
MAP_ACTIVE
|
((
cis_width
)
?
MAP_16BIT
:
0
);
...
@@ -156,6 +156,7 @@ void read_cis_mem(socket_info_t *s, int attr, u_int addr,
...
@@ -156,6 +156,7 @@ void read_cis_mem(socket_info_t *s, int attr, u_int addr,
DEBUG
(
3
,
"cs: %#2.2x %#2.2x %#2.2x %#2.2x ...
\n
"
,
DEBUG
(
3
,
"cs: %#2.2x %#2.2x %#2.2x %#2.2x ...
\n
"
,
*
(
u_char
*
)(
ptr
+
0
),
*
(
u_char
*
)(
ptr
+
1
),
*
(
u_char
*
)(
ptr
+
0
),
*
(
u_char
*
)(
ptr
+
1
),
*
(
u_char
*
)(
ptr
+
2
),
*
(
u_char
*
)(
ptr
+
3
));
*
(
u_char
*
)(
ptr
+
2
),
*
(
u_char
*
)(
ptr
+
3
));
return
0
;
}
}
void
write_cis_mem
(
socket_info_t
*
s
,
int
attr
,
u_int
addr
,
void
write_cis_mem
(
socket_info_t
*
s
,
int
attr
,
u_int
addr
,
...
@@ -270,7 +271,7 @@ static int setup_cis_mem(socket_info_t *s)
...
@@ -270,7 +271,7 @@ static int setup_cis_mem(socket_info_t *s)
if
(
find_mem_region
(
&
s
->
cis_mem
.
sys_start
,
s
->
cap
.
map_size
,
if
(
find_mem_region
(
&
s
->
cis_mem
.
sys_start
,
s
->
cap
.
map_size
,
s
->
cap
.
map_size
,
low
,
"card services"
,
s
))
{
s
->
cap
.
map_size
,
low
,
"card services"
,
s
))
{
printk
(
KERN_NOTICE
"cs: unable to map card memory!
\n
"
);
printk
(
KERN_NOTICE
"cs: unable to map card memory!
\n
"
);
return
CS_OUT_OF_RESOURCE
;
return
-
1
;
}
}
s
->
cis_mem
.
sys_stop
=
s
->
cis_mem
.
sys_start
+
s
->
cap
.
map_size
-
1
;
s
->
cis_mem
.
sys_stop
=
s
->
cis_mem
.
sys_start
+
s
->
cap
.
map_size
-
1
;
s
->
cis_virt
=
bus_ioremap
(
s
->
cap
.
bus
,
s
->
cis_mem
.
sys_start
,
s
->
cis_virt
=
bus_ioremap
(
s
->
cap
.
bus
,
s
->
cis_mem
.
sys_start
,
...
@@ -303,7 +304,7 @@ void release_cis_mem(socket_info_t *s)
...
@@ -303,7 +304,7 @@ void release_cis_mem(socket_info_t *s)
static
void
read_cis_cache
(
socket_info_t
*
s
,
int
attr
,
u_int
addr
,
static
void
read_cis_cache
(
socket_info_t
*
s
,
int
attr
,
u_int
addr
,
u_int
len
,
void
*
ptr
)
u_int
len
,
void
*
ptr
)
{
{
int
i
;
int
i
,
ret
;
char
*
caddr
;
char
*
caddr
;
if
(
s
->
fake_cis
)
{
if
(
s
->
fake_cis
)
{
...
@@ -326,12 +327,12 @@ static void read_cis_cache(socket_info_t *s, int attr, u_int addr,
...
@@ -326,12 +327,12 @@ static void read_cis_cache(socket_info_t *s, int attr, u_int addr,
}
}
#ifdef CONFIG_CARDBUS
#ifdef CONFIG_CARDBUS
if
(
s
->
state
&
SOCKET_CARDBUS
)
if
(
s
->
state
&
SOCKET_CARDBUS
)
read_cb_mem
(
s
,
0
,
attr
,
addr
,
len
,
ptr
);
re
t
=
re
ad_cb_mem
(
s
,
0
,
attr
,
addr
,
len
,
ptr
);
else
else
#endif
#endif
read_cis_mem
(
s
,
attr
,
addr
,
len
,
ptr
);
re
t
=
re
ad_cis_mem
(
s
,
attr
,
addr
,
len
,
ptr
);
/* Copy data into the cache, if there is room */
/* Copy data into the cache, if there is room */
if
((
i
<
MAX_CIS_TABLE
)
&&
if
((
ret
==
0
)
&&
(
i
<
MAX_CIS_TABLE
)
&&
(
caddr
+
len
<
s
->
cis_cache
+
MAX_CIS_DATA
))
{
(
caddr
+
len
<
s
->
cis_cache
+
MAX_CIS_DATA
))
{
s
->
cis_table
[
i
].
addr
=
addr
;
s
->
cis_table
[
i
].
addr
=
addr
;
s
->
cis_table
[
i
].
len
=
len
;
s
->
cis_table
[
i
].
len
=
len
;
...
...
drivers/pcmcia/cs_internal.h
View file @
ee4351da
/*
/*
* cs_internal.h 1.5
4 2000/10/26 20:10:55
* cs_internal.h 1.5
7 2002/10/24 06:11:43
*
*
* The contents of this file are subject to the Mozilla Public License
* The contents of this file are subject to the Mozilla Public License
* Version 1.1 (the "License"); you may not use this file except in
* Version 1.1 (the "License"); you may not use this file except in
...
@@ -202,12 +202,12 @@ int cb_config(socket_info_t *s);
...
@@ -202,12 +202,12 @@ int cb_config(socket_info_t *s);
void
cb_release
(
socket_info_t
*
s
);
void
cb_release
(
socket_info_t
*
s
);
void
cb_enable
(
socket_info_t
*
s
);
void
cb_enable
(
socket_info_t
*
s
);
void
cb_disable
(
socket_info_t
*
s
);
void
cb_disable
(
socket_info_t
*
s
);
void
read_cb_mem
(
socket_info_t
*
s
,
u_char
fn
,
int
space
,
int
read_cb_mem
(
socket_info_t
*
s
,
u_char
fn
,
int
space
,
u_int
addr
,
u_int
len
,
void
*
ptr
);
u_int
addr
,
u_int
len
,
void
*
ptr
);
void
cb_release_cis_mem
(
socket_info_t
*
s
);
void
cb_release_cis_mem
(
socket_info_t
*
s
);
/* In cistpl.c */
/* In cistpl.c */
void
read_cis_mem
(
socket_info_t
*
s
,
int
attr
,
int
read_cis_mem
(
socket_info_t
*
s
,
int
attr
,
u_int
addr
,
u_int
len
,
void
*
ptr
);
u_int
addr
,
u_int
len
,
void
*
ptr
);
void
write_cis_mem
(
socket_info_t
*
s
,
int
attr
,
void
write_cis_mem
(
socket_info_t
*
s
,
int
attr
,
u_int
addr
,
u_int
len
,
void
*
ptr
);
u_int
addr
,
u_int
len
,
void
*
ptr
);
...
...
drivers/pcmcia/i82365.c
View file @
ee4351da
...
@@ -15,7 +15,7 @@
...
@@ -15,7 +15,7 @@
rights and limitations under the License.
rights and limitations under the License.
The initial developer of the original code is David A. Hinds
The initial developer of the original code is David A. Hinds
<d
hinds@pcmcia.sourceforge.org
>. Portions created by David A. Hinds
<d
ahinds@users.sourceforge.net
>. Portions created by David A. Hinds
are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
Alternatively, the contents of this file may be used under the
Alternatively, the contents of this file may be used under the
...
...
drivers/pcmcia/i82365.h
View file @
ee4351da
...
@@ -12,7 +12,7 @@
...
@@ -12,7 +12,7 @@
* limitations under the License.
* limitations under the License.
*
*
* The initial developer of the original code is David A. Hinds
* The initial developer of the original code is David A. Hinds
* <d
hinds@pcmcia.sourceforge.org
>. Portions created by David A. Hinds
* <d
ahinds@users.sourceforge.net
>. Portions created by David A. Hinds
* are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
* are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
*
*
* Alternatively, the contents of this file may be used under the
* Alternatively, the contents of this file may be used under the
...
...
drivers/pcmcia/o2micro.h
View file @
ee4351da
...
@@ -12,7 +12,7 @@
...
@@ -12,7 +12,7 @@
* limitations under the License.
* limitations under the License.
*
*
* The initial developer of the original code is David A. Hinds
* The initial developer of the original code is David A. Hinds
* <d
hinds@pcmcia.sourceforge.org
>. Portions created by David A. Hinds
* <d
ahinds@users.sourceforge.net
>. Portions created by David A. Hinds
* are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
* are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
*
*
* Alternatively, the contents of this file may be used under the
* Alternatively, the contents of this file may be used under the
...
...
drivers/pcmcia/ricoh.h
View file @
ee4351da
...
@@ -12,7 +12,7 @@
...
@@ -12,7 +12,7 @@
* limitations under the License.
* limitations under the License.
*
*
* The initial developer of the original code is David A. Hinds
* The initial developer of the original code is David A. Hinds
* <d
hinds@pcmcia.sourceforge.org
>. Portions created by David A. Hinds
* <d
ahinds@users.sourceforge.net
>. Portions created by David A. Hinds
* are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
* are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
*
*
* Alternatively, the contents of this file may be used under the
* Alternatively, the contents of this file may be used under the
...
...
drivers/pcmcia/tcic.c
View file @
ee4351da
...
@@ -15,7 +15,7 @@
...
@@ -15,7 +15,7 @@
rights and limitations under the License.
rights and limitations under the License.
The initial developer of the original code is David A. Hinds
The initial developer of the original code is David A. Hinds
<d
hinds@pcmcia.sourceforge.org
>. Portions created by David A. Hinds
<d
ahinds@users.sourceforge.net
>. Portions created by David A. Hinds
are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
Alternatively, the contents of this file may be used under the
Alternatively, the contents of this file may be used under the
...
@@ -67,7 +67,7 @@ static const char *version =
...
@@ -67,7 +67,7 @@ static const char *version =
#define DEBUG(n, args...)
#define DEBUG(n, args...)
#endif
#endif
MODULE_AUTHOR
(
"David Hinds <d
hinds@pcmcia.sourceforge.org
>"
);
MODULE_AUTHOR
(
"David Hinds <d
ahinds@users.sourceforge.net
>"
);
MODULE_DESCRIPTION
(
"Databook TCIC-2 PCMCIA socket driver"
);
MODULE_DESCRIPTION
(
"Databook TCIC-2 PCMCIA socket driver"
);
MODULE_LICENSE
(
"Dual MPL/GPL"
);
MODULE_LICENSE
(
"Dual MPL/GPL"
);
...
...
drivers/pcmcia/tcic.h
View file @
ee4351da
...
@@ -12,7 +12,7 @@
...
@@ -12,7 +12,7 @@
* limitations under the License.
* limitations under the License.
*
*
* The initial developer of the original code is David A. Hinds
* The initial developer of the original code is David A. Hinds
* <d
hinds@pcmcia.sourceforge.org
>. Portions created by David A. Hinds
* <d
ahinds@users.sourceforge.net
>. Portions created by David A. Hinds
* are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
* are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
*
*
* Alternatively, the contents of this file may be used under the
* Alternatively, the contents of this file may be used under the
...
...
drivers/pcmcia/ti113x.h
View file @
ee4351da
...
@@ -12,7 +12,7 @@
...
@@ -12,7 +12,7 @@
* limitations under the License.
* limitations under the License.
*
*
* The initial developer of the original code is David A. Hinds
* The initial developer of the original code is David A. Hinds
* <d
hinds@pcmcia.sourceforge.org
>. Portions created by David A. Hinds
* <d
ahinds@users.sourceforge.net
>. Portions created by David A. Hinds
* are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
* are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
*
*
* Alternatively, the contents of this file may be used under the
* Alternatively, the contents of this file may be used under the
...
...
drivers/pcmcia/topic.h
View file @
ee4351da
...
@@ -12,7 +12,7 @@
...
@@ -12,7 +12,7 @@
* limitations under the License.
* limitations under the License.
*
*
* The initial developer of the original code is David A. Hinds
* The initial developer of the original code is David A. Hinds
* <d
hinds@hyper.stanford.edu
>. Portions created by David A. Hinds
* <d
ahinds@users.sourceforge.net
>. Portions created by David A. Hinds
* are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
* are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
*
*
* Alternatively, the contents of this file may be used under the
* Alternatively, the contents of this file may be used under the
...
...
drivers/pcmcia/vg468.h
View file @
ee4351da
...
@@ -12,7 +12,7 @@
...
@@ -12,7 +12,7 @@
* limitations under the License.
* limitations under the License.
*
*
* The initial developer of the original code is David A. Hinds
* The initial developer of the original code is David A. Hinds
* <d
hinds@pcmcia.sourceforge.org
>. Portions created by David A. Hinds
* <d
ahinds@users.sourceforge.net
>. Portions created by David A. Hinds
* are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
* are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
*
*
* Alternatively, the contents of this file may be used under the
* Alternatively, the contents of this file may be used under the
...
...
include/linux/mtd/ftl.h
View file @
ee4351da
...
@@ -15,7 +15,7 @@
...
@@ -15,7 +15,7 @@
* limitations under the License.
* limitations under the License.
*
*
* The initial developer of the original code is David A. Hinds
* The initial developer of the original code is David A. Hinds
* <d
hinds@pcmcia.sourceforge.org
>. Portions created by David A. Hinds
* <d
ahinds@users.sourceforge.net
>. Portions created by David A. Hinds
* are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
* are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
*
*
* Alternatively, the contents of this file may be used under the
* Alternatively, the contents of this file may be used under the
...
...
include/linux/pnpbios.h
View file @
ee4351da
...
@@ -3,7 +3,7 @@
...
@@ -3,7 +3,7 @@
*
*
* Original BIOS code (C) 1998 Christian Schmidt (chr.schmidt@tu-bs.de)
* Original BIOS code (C) 1998 Christian Schmidt (chr.schmidt@tu-bs.de)
* PnP handler parts (c) 1998 Tom Lees <tom@lpsg.demon.co.uk>
* PnP handler parts (c) 1998 Tom Lees <tom@lpsg.demon.co.uk>
* Minor reorganizations by David Hinds <d
hinds@zen.stanford.edu
>
* Minor reorganizations by David Hinds <d
ahinds@users.sourceforge.net
>
*
*
* This program is free software; you can redistribute it and/or modify it
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* under the terms of the GNU General Public License as published by the
...
...
include/pcmcia/ciscode.h
View file @
ee4351da
/*
/*
* ciscode.h 1.
45 2000/08/12 02:08:23
* ciscode.h 1.
56 2002/10/25 06:37:30
*
*
* The contents of this file are subject to the Mozilla Public License
* The contents of this file are subject to the Mozilla Public License
* Version 1.1 (the "License"); you may not use this file except in
* Version 1.1 (the "License"); you may not use this file except in
...
@@ -16,8 +16,8 @@
...
@@ -16,8 +16,8 @@
* are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
* are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
*
*
* Alternatively, the contents of this file may be used under the
* Alternatively, the contents of this file may be used under the
* terms of the GNU General Public License version 2 (the "GPL"), in
which
* terms of the GNU General Public License version 2 (the "GPL"), in
* case the provisions of the GPL are applicable instead of the
*
which
case the provisions of the GPL are applicable instead of the
* above. If you wish to allow the use of your version of this file
* above. If you wish to allow the use of your version of this file
* only under the terms of the GPL and not to allow others to use
* only under the terms of the GPL and not to allow others to use
* your version of this file under the MPL, indicate your decision by
* your version of this file under the MPL, indicate your decision by
...
@@ -60,6 +60,10 @@
...
@@ -60,6 +60,10 @@
#define PRODID_INTEL_DUAL_RS232 0x0301
#define PRODID_INTEL_DUAL_RS232 0x0301
#define PRODID_INTEL_2PLUS 0x8422
#define PRODID_INTEL_2PLUS 0x8422
#define MANFID_KME 0x0032
#define PRODID_KME_KXLC005_A 0x0704
#define PRODID_KME_KXLC005_B 0x2904
#define MANFID_LINKSYS 0x0143
#define MANFID_LINKSYS 0x0143
#define PRODID_LINKSYS_PCMLM28 0xc0ab
#define PRODID_LINKSYS_PCMLM28 0xc0ab
#define PRODID_LINKSYS_3400 0x3341
#define PRODID_LINKSYS_3400 0x3341
...
@@ -94,6 +98,8 @@
...
@@ -94,6 +98,8 @@
#define PRODID_OSITECH_JACK_336 0x0007
#define PRODID_OSITECH_JACK_336 0x0007
#define PRODID_OSITECH_SEVEN 0x0008
#define PRODID_OSITECH_SEVEN 0x0008
#define MANFID_OXSEMI 0x0279
#define MANFID_PIONEER 0x000b
#define MANFID_PIONEER 0x000b
#define MANFID_PSION 0x016c
#define MANFID_PSION 0x016c
...
@@ -103,7 +109,10 @@
...
@@ -103,7 +109,10 @@
#define PRODID_QUATECH_SPP100 0x0003
#define PRODID_QUATECH_SPP100 0x0003
#define PRODID_QUATECH_DUAL_RS232 0x0012
#define PRODID_QUATECH_DUAL_RS232 0x0012
#define PRODID_QUATECH_DUAL_RS232_D1 0x0007
#define PRODID_QUATECH_DUAL_RS232_D1 0x0007
#define PRODID_QUATECH_DUAL_RS232_D2 0x0052
#define PRODID_QUATECH_QUAD_RS232 0x001b
#define PRODID_QUATECH_QUAD_RS232 0x001b
#define PRODID_QUATECH_DUAL_RS422 0x000e
#define PRODID_QUATECH_QUAD_RS422 0x0045
#define MANFID_SMC 0x0108
#define MANFID_SMC 0x0108
#define PRODID_SMC_ETHER 0x0105
#define PRODID_SMC_ETHER 0x0105
...
@@ -118,9 +127,12 @@
...
@@ -118,9 +127,12 @@
#define MANFID_TDK 0x0105
#define MANFID_TDK 0x0105
#define PRODID_TDK_CF010 0x0900
#define PRODID_TDK_CF010 0x0900
#define PRODID_TDK_GN3410 0x4815
#define MANFID_TOSHIBA 0x0098
#define MANFID_TOSHIBA 0x0098
#define MANFID_UNGERMANN 0x02c0
#define MANFID_XIRCOM 0x0105
#define MANFID_XIRCOM 0x0105
#endif
/* _LINUX_CISCODE_H */
#endif
/* _LINUX_CISCODE_H */
net/core/dev.c
View file @
ee4351da
...
@@ -14,7 +14,7 @@
...
@@ -14,7 +14,7 @@
* Additional Authors:
* Additional Authors:
* Florian la Roche <rzsfl@rz.uni-sb.de>
* Florian la Roche <rzsfl@rz.uni-sb.de>
* Alan Cox <gw4pts@gw4pts.ampr.org>
* Alan Cox <gw4pts@gw4pts.ampr.org>
* David Hinds <d
hinds@allegro.stanford.edu
>
* David Hinds <d
ahinds@users.sourceforge.net
>
* Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>
* Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>
* Adam Sulmicki <adam@cfar.umd.edu>
* Adam Sulmicki <adam@cfar.umd.edu>
* Pekka Riikonen <priikone@poesidon.pspt.fi>
* Pekka Riikonen <priikone@poesidon.pspt.fi>
...
...
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