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
edc25b0d
Commit
edc25b0d
authored
May 28, 2003
by
Jeff Garzik
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[netdrvr r8169] use alloc_etherdev, pci_disable_device
parent
7cc3fd49
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
27 additions
and
17 deletions
+27
-17
drivers/net/r8169.c
drivers/net/r8169.c
+27
-17
No files found.
drivers/net/r8169.c
View file @
edc25b0d
...
@@ -365,8 +365,8 @@ rtl8169_init_board(struct pci_dev *pdev, struct net_device **dev_out,
...
@@ -365,8 +365,8 @@ rtl8169_init_board(struct pci_dev *pdev, struct net_device **dev_out,
*
ioaddr_out
=
NULL
;
*
ioaddr_out
=
NULL
;
*
dev_out
=
NULL
;
*
dev_out
=
NULL
;
// dev zeroed in
init
_etherdev
// dev zeroed in
alloc
_etherdev
dev
=
init_etherdev
(
NULL
,
sizeof
(
*
tp
));
dev
=
alloc_etherdev
(
sizeof
(
*
tp
));
if
(
dev
==
NULL
)
{
if
(
dev
==
NULL
)
{
printk
(
KERN_ERR
PFX
"unable to alloc new ethernet
\n
"
);
printk
(
KERN_ERR
PFX
"unable to alloc new ethernet
\n
"
);
return
-
ENOMEM
;
return
-
ENOMEM
;
...
@@ -391,18 +391,18 @@ rtl8169_init_board(struct pci_dev *pdev, struct net_device **dev_out,
...
@@ -391,18 +391,18 @@ rtl8169_init_board(struct pci_dev *pdev, struct net_device **dev_out,
printk
(
KERN_ERR
PFX
printk
(
KERN_ERR
PFX
"region #1 not an MMIO resource, aborting
\n
"
);
"region #1 not an MMIO resource, aborting
\n
"
);
rc
=
-
ENODEV
;
rc
=
-
ENODEV
;
goto
err_out
;
goto
err_out
_disable
;
}
}
// check for weird/broken PCI region reporting
// check for weird/broken PCI region reporting
if
(
mmio_len
<
RTL_MIN_IO_SIZE
)
{
if
(
mmio_len
<
RTL_MIN_IO_SIZE
)
{
printk
(
KERN_ERR
PFX
"Invalid PCI region size(s), aborting
\n
"
);
printk
(
KERN_ERR
PFX
"Invalid PCI region size(s), aborting
\n
"
);
rc
=
-
ENODEV
;
rc
=
-
ENODEV
;
goto
err_out
;
goto
err_out
_disable
;
}
}
rc
=
pci_request_regions
(
pdev
,
dev
->
name
);
rc
=
pci_request_regions
(
pdev
,
dev
->
name
);
if
(
rc
)
if
(
rc
)
goto
err_out
;
goto
err_out
_disable
;
// enable PCI bus-mastering
// enable PCI bus-mastering
pci_set_master
(
pdev
);
pci_set_master
(
pdev
);
...
@@ -450,8 +450,10 @@ rtl8169_init_board(struct pci_dev *pdev, struct net_device **dev_out,
...
@@ -450,8 +450,10 @@ rtl8169_init_board(struct pci_dev *pdev, struct net_device **dev_out,
err_out_free_res:
err_out_free_res:
pci_release_regions
(
pdev
);
pci_release_regions
(
pdev
);
err_out_disable:
pci_disable_device
(
pdev
);
err_out:
err_out:
unregister_netdev
(
dev
);
kfree
(
dev
);
kfree
(
dev
);
return
rc
;
return
rc
;
}
}
...
@@ -464,7 +466,7 @@ rtl8169_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
...
@@ -464,7 +466,7 @@ rtl8169_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
void
*
ioaddr
=
NULL
;
void
*
ioaddr
=
NULL
;
static
int
board_idx
=
-
1
;
static
int
board_idx
=
-
1
;
static
int
printed_version
=
0
;
static
int
printed_version
=
0
;
int
i
;
int
i
,
rc
;
int
option
=
-
1
,
Cap10_100
=
0
,
Cap1000
=
0
;
int
option
=
-
1
,
Cap10_100
=
0
,
Cap1000
=
0
;
assert
(
pdev
!=
NULL
);
assert
(
pdev
!=
NULL
);
...
@@ -477,20 +479,18 @@ rtl8169_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
...
@@ -477,20 +479,18 @@ rtl8169_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
printed_version
=
1
;
printed_version
=
1
;
}
}
i
=
rtl8169_init_board
(
pdev
,
&
dev
,
&
ioaddr
);
rc
=
rtl8169_init_board
(
pdev
,
&
dev
,
&
ioaddr
);
if
(
i
<
0
)
{
if
(
rc
)
return
i
;
return
rc
;
}
tp
=
dev
->
priv
;
tp
=
dev
->
priv
;
assert
(
ioaddr
!=
NULL
);
assert
(
ioaddr
!=
NULL
);
assert
(
dev
!=
NULL
);
assert
(
dev
!=
NULL
);
assert
(
tp
!=
NULL
);
assert
(
tp
!=
NULL
);
// Get MAC address
//
// Get MAC address
. FIXME: read EEPROM
for
(
i
=
0
;
i
<
MAC_ADDR_LEN
;
i
++
)
{
for
(
i
=
0
;
i
<
MAC_ADDR_LEN
;
i
++
)
dev
->
dev_addr
[
i
]
=
RTL_R8
(
MAC0
+
i
);
dev
->
dev_addr
[
i
]
=
RTL_R8
(
MAC0
+
i
);
}
dev
->
open
=
rtl8169_open
;
dev
->
open
=
rtl8169_open
;
dev
->
hard_start_xmit
=
rtl8169_start_xmit
;
dev
->
hard_start_xmit
=
rtl8169_start_xmit
;
...
@@ -507,11 +507,20 @@ rtl8169_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
...
@@ -507,11 +507,20 @@ rtl8169_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
tp
->
pci_dev
=
pdev
;
tp
->
pci_dev
=
pdev
;
tp
->
mmio_addr
=
ioaddr
;
tp
->
mmio_addr
=
ioaddr
;
spin_lock_init
(
&
tp
->
lock
);
rc
=
register_netdev
(
dev
);
if
(
rc
)
{
iounmap
(
ioaddr
);
pci_release_regions
(
pdev
);
pci_disable_device
(
pdev
);
kfree
(
dev
);
return
rc
;
}
printk
(
KERN_DEBUG
"%s: Identified chip type is '%s'.
\n
"
,
dev
->
name
,
printk
(
KERN_DEBUG
"%s: Identified chip type is '%s'.
\n
"
,
dev
->
name
,
rtl_chip_info
[
tp
->
chipset
].
name
);
rtl_chip_info
[
tp
->
chipset
].
name
);
spin_lock_init
(
&
tp
->
lock
);
pci_set_drvdata
(
pdev
,
dev
);
pci_set_drvdata
(
pdev
,
dev
);
printk
(
KERN_INFO
"%s: %s at 0x%lx, "
printk
(
KERN_INFO
"%s: %s at 0x%lx, "
...
@@ -623,7 +632,7 @@ static void __devexit
...
@@ -623,7 +632,7 @@ static void __devexit
rtl8169_remove_one
(
struct
pci_dev
*
pdev
)
rtl8169_remove_one
(
struct
pci_dev
*
pdev
)
{
{
struct
net_device
*
dev
=
pci_get_drvdata
(
pdev
);
struct
net_device
*
dev
=
pci_get_drvdata
(
pdev
);
struct
rtl8169_private
*
tp
=
(
struct
rtl8169_private
*
)
(
dev
->
priv
)
;
struct
rtl8169_private
*
tp
=
dev
->
priv
;
assert
(
dev
!=
NULL
);
assert
(
dev
!=
NULL
);
assert
(
tp
!=
NULL
);
assert
(
tp
!=
NULL
);
...
@@ -636,6 +645,7 @@ rtl8169_remove_one(struct pci_dev *pdev)
...
@@ -636,6 +645,7 @@ rtl8169_remove_one(struct pci_dev *pdev)
memset
(
dev
,
0xBC
,
memset
(
dev
,
0xBC
,
sizeof
(
struct
net_device
)
+
sizeof
(
struct
rtl8169_private
));
sizeof
(
struct
net_device
)
+
sizeof
(
struct
rtl8169_private
));
pci_disable_device
(
pdev
);
kfree
(
dev
);
kfree
(
dev
);
pci_set_drvdata
(
pdev
,
NULL
);
pci_set_drvdata
(
pdev
,
NULL
);
}
}
...
...
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