Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
linux-davinci
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
linux
linux-davinci
Commits
6cc92cdd
Commit
6cc92cdd
authored
Aug 08, 2007
by
Jeff Garzik
Committed by
David S. Miller
Oct 10, 2007
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[netdrvr] 8139cp, 8139too: convert to generic DMA
Signed-off-by:
Jeff Garzik
<
jeff@garzik.org
>
parent
ae94607d
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
27 additions
and
24 deletions
+27
-24
drivers/net/8139cp.c
drivers/net/8139cp.c
+17
-14
drivers/net/8139too.c
drivers/net/8139too.c
+10
-10
No files found.
drivers/net/8139cp.c
View file @
6cc92cdd
...
@@ -562,7 +562,7 @@ rx_status_loop:
...
@@ -562,7 +562,7 @@ rx_status_loop:
skb_reserve
(
new_skb
,
RX_OFFSET
);
skb_reserve
(
new_skb
,
RX_OFFSET
);
pci_unmap_single
(
cp
->
p
dev
,
mapping
,
dma_unmap_single
(
&
cp
->
pdev
->
dev
,
mapping
,
buflen
,
PCI_DMA_FROMDEVICE
);
buflen
,
PCI_DMA_FROMDEVICE
);
/* Handle checksum offloading for incoming packets. */
/* Handle checksum offloading for incoming packets. */
...
@@ -573,7 +573,7 @@ rx_status_loop:
...
@@ -573,7 +573,7 @@ rx_status_loop:
skb_put
(
skb
,
len
);
skb_put
(
skb
,
len
);
mapping
=
pci_map_single
(
cp
->
p
dev
,
new_skb
->
data
,
buflen
,
mapping
=
dma_map_single
(
&
cp
->
pdev
->
dev
,
new_skb
->
data
,
buflen
,
PCI_DMA_FROMDEVICE
);
PCI_DMA_FROMDEVICE
);
cp
->
rx_skb
[
rx_tail
]
=
new_skb
;
cp
->
rx_skb
[
rx_tail
]
=
new_skb
;
...
@@ -701,7 +701,7 @@ static void cp_tx (struct cp_private *cp)
...
@@ -701,7 +701,7 @@ static void cp_tx (struct cp_private *cp)
skb
=
cp
->
tx_skb
[
tx_tail
];
skb
=
cp
->
tx_skb
[
tx_tail
];
BUG_ON
(
!
skb
);
BUG_ON
(
!
skb
);
pci_unmap_single
(
cp
->
p
dev
,
le64_to_cpu
(
txd
->
addr
),
dma_unmap_single
(
&
cp
->
pdev
->
dev
,
le64_to_cpu
(
txd
->
addr
),
le32_to_cpu
(
txd
->
opts1
)
&
0xffff
,
le32_to_cpu
(
txd
->
opts1
)
&
0xffff
,
PCI_DMA_TODEVICE
);
PCI_DMA_TODEVICE
);
...
@@ -779,7 +779,7 @@ static int cp_start_xmit (struct sk_buff *skb, struct net_device *dev)
...
@@ -779,7 +779,7 @@ static int cp_start_xmit (struct sk_buff *skb, struct net_device *dev)
dma_addr_t
mapping
;
dma_addr_t
mapping
;
len
=
skb
->
len
;
len
=
skb
->
len
;
mapping
=
pci_map_single
(
cp
->
p
dev
,
skb
->
data
,
len
,
PCI_DMA_TODEVICE
);
mapping
=
dma_map_single
(
&
cp
->
pdev
->
dev
,
skb
->
data
,
len
,
PCI_DMA_TODEVICE
);
CP_VLAN_TX_TAG
(
txd
,
vlan_tag
);
CP_VLAN_TX_TAG
(
txd
,
vlan_tag
);
txd
->
addr
=
cpu_to_le64
(
mapping
);
txd
->
addr
=
cpu_to_le64
(
mapping
);
wmb
();
wmb
();
...
@@ -815,7 +815,7 @@ static int cp_start_xmit (struct sk_buff *skb, struct net_device *dev)
...
@@ -815,7 +815,7 @@ static int cp_start_xmit (struct sk_buff *skb, struct net_device *dev)
*/
*/
first_eor
=
eor
;
first_eor
=
eor
;
first_len
=
skb_headlen
(
skb
);
first_len
=
skb_headlen
(
skb
);
first_mapping
=
pci_map_single
(
cp
->
p
dev
,
skb
->
data
,
first_mapping
=
dma_map_single
(
&
cp
->
pdev
->
dev
,
skb
->
data
,
first_len
,
PCI_DMA_TODEVICE
);
first_len
,
PCI_DMA_TODEVICE
);
cp
->
tx_skb
[
entry
]
=
skb
;
cp
->
tx_skb
[
entry
]
=
skb
;
entry
=
NEXT_TX
(
entry
);
entry
=
NEXT_TX
(
entry
);
...
@@ -827,7 +827,7 @@ static int cp_start_xmit (struct sk_buff *skb, struct net_device *dev)
...
@@ -827,7 +827,7 @@ static int cp_start_xmit (struct sk_buff *skb, struct net_device *dev)
dma_addr_t
mapping
;
dma_addr_t
mapping
;
len
=
this_frag
->
size
;
len
=
this_frag
->
size
;
mapping
=
pci_map_single
(
cp
->
p
dev
,
mapping
=
dma_map_single
(
&
cp
->
pdev
->
dev
,
((
void
*
)
page_address
(
this_frag
->
page
)
+
((
void
*
)
page_address
(
this_frag
->
page
)
+
this_frag
->
page_offset
),
this_frag
->
page_offset
),
len
,
PCI_DMA_TODEVICE
);
len
,
PCI_DMA_TODEVICE
);
...
@@ -1066,8 +1066,8 @@ static int cp_refill_rx (struct cp_private *cp)
...
@@ -1066,8 +1066,8 @@ static int cp_refill_rx (struct cp_private *cp)
skb_reserve
(
skb
,
RX_OFFSET
);
skb_reserve
(
skb
,
RX_OFFSET
);
mapping
=
pci_map_single
(
cp
->
pdev
,
skb
->
data
,
cp
->
rx_buf_sz
,
mapping
=
dma_map_single
(
&
cp
->
pdev
->
dev
,
skb
->
data
,
PCI_DMA_FROMDEVICE
);
cp
->
rx_buf_sz
,
PCI_DMA_FROMDEVICE
);
cp
->
rx_skb
[
i
]
=
skb
;
cp
->
rx_skb
[
i
]
=
skb
;
cp
->
rx_ring
[
i
].
opts2
=
0
;
cp
->
rx_ring
[
i
].
opts2
=
0
;
...
@@ -1107,7 +1107,8 @@ static int cp_alloc_rings (struct cp_private *cp)
...
@@ -1107,7 +1107,8 @@ static int cp_alloc_rings (struct cp_private *cp)
{
{
void
*
mem
;
void
*
mem
;
mem
=
pci_alloc_consistent
(
cp
->
pdev
,
CP_RING_BYTES
,
&
cp
->
ring_dma
);
mem
=
dma_alloc_coherent
(
&
cp
->
pdev
->
dev
,
CP_RING_BYTES
,
&
cp
->
ring_dma
,
GFP_KERNEL
);
if
(
!
mem
)
if
(
!
mem
)
return
-
ENOMEM
;
return
-
ENOMEM
;
...
@@ -1125,7 +1126,7 @@ static void cp_clean_rings (struct cp_private *cp)
...
@@ -1125,7 +1126,7 @@ static void cp_clean_rings (struct cp_private *cp)
for
(
i
=
0
;
i
<
CP_RX_RING_SIZE
;
i
++
)
{
for
(
i
=
0
;
i
<
CP_RX_RING_SIZE
;
i
++
)
{
if
(
cp
->
rx_skb
[
i
])
{
if
(
cp
->
rx_skb
[
i
])
{
desc
=
cp
->
rx_ring
+
i
;
desc
=
cp
->
rx_ring
+
i
;
pci_unmap_single
(
cp
->
pdev
,
le64_to_cpu
(
desc
->
addr
),
dma_unmap_single
(
&
cp
->
pdev
->
dev
,
le64_to_cpu
(
desc
->
addr
),
cp
->
rx_buf_sz
,
PCI_DMA_FROMDEVICE
);
cp
->
rx_buf_sz
,
PCI_DMA_FROMDEVICE
);
dev_kfree_skb
(
cp
->
rx_skb
[
i
]);
dev_kfree_skb
(
cp
->
rx_skb
[
i
]);
}
}
...
@@ -1136,7 +1137,7 @@ static void cp_clean_rings (struct cp_private *cp)
...
@@ -1136,7 +1137,7 @@ static void cp_clean_rings (struct cp_private *cp)
struct
sk_buff
*
skb
=
cp
->
tx_skb
[
i
];
struct
sk_buff
*
skb
=
cp
->
tx_skb
[
i
];
desc
=
cp
->
tx_ring
+
i
;
desc
=
cp
->
tx_ring
+
i
;
pci_unmap_single
(
cp
->
pdev
,
le64_to_cpu
(
desc
->
addr
),
dma_unmap_single
(
&
cp
->
pdev
->
dev
,
le64_to_cpu
(
desc
->
addr
),
le32_to_cpu
(
desc
->
opts1
)
&
0xffff
,
le32_to_cpu
(
desc
->
opts1
)
&
0xffff
,
PCI_DMA_TODEVICE
);
PCI_DMA_TODEVICE
);
if
(
le32_to_cpu
(
desc
->
opts1
)
&
LastFrag
)
if
(
le32_to_cpu
(
desc
->
opts1
)
&
LastFrag
)
...
@@ -1155,7 +1156,8 @@ static void cp_clean_rings (struct cp_private *cp)
...
@@ -1155,7 +1156,8 @@ static void cp_clean_rings (struct cp_private *cp)
static
void
cp_free_rings
(
struct
cp_private
*
cp
)
static
void
cp_free_rings
(
struct
cp_private
*
cp
)
{
{
cp_clean_rings
(
cp
);
cp_clean_rings
(
cp
);
pci_free_consistent
(
cp
->
pdev
,
CP_RING_BYTES
,
cp
->
rx_ring
,
cp
->
ring_dma
);
dma_free_coherent
(
&
cp
->
pdev
->
dev
,
CP_RING_BYTES
,
cp
->
rx_ring
,
cp
->
ring_dma
);
cp
->
rx_ring
=
NULL
;
cp
->
rx_ring
=
NULL
;
cp
->
tx_ring
=
NULL
;
cp
->
tx_ring
=
NULL
;
}
}
...
@@ -1519,7 +1521,8 @@ static void cp_get_ethtool_stats (struct net_device *dev,
...
@@ -1519,7 +1521,8 @@ static void cp_get_ethtool_stats (struct net_device *dev,
dma_addr_t
dma
;
dma_addr_t
dma
;
int
i
;
int
i
;
nic_stats
=
pci_alloc_consistent
(
cp
->
pdev
,
sizeof
(
*
nic_stats
),
&
dma
);
nic_stats
=
dma_alloc_coherent
(
&
cp
->
pdev
->
dev
,
sizeof
(
*
nic_stats
),
&
dma
,
GFP_KERNEL
);
if
(
!
nic_stats
)
if
(
!
nic_stats
)
return
;
return
;
...
@@ -1554,7 +1557,7 @@ static void cp_get_ethtool_stats (struct net_device *dev,
...
@@ -1554,7 +1557,7 @@ static void cp_get_ethtool_stats (struct net_device *dev,
tmp_stats
[
i
++
]
=
cp
->
cp_stats
.
rx_frags
;
tmp_stats
[
i
++
]
=
cp
->
cp_stats
.
rx_frags
;
BUG_ON
(
i
!=
CP_NUM_STATS
);
BUG_ON
(
i
!=
CP_NUM_STATS
);
pci_free_consistent
(
cp
->
p
dev
,
sizeof
(
*
nic_stats
),
nic_stats
,
dma
);
dma_free_coherent
(
&
cp
->
pdev
->
dev
,
sizeof
(
*
nic_stats
),
nic_stats
,
dma
);
}
}
static
const
struct
ethtool_ops
cp_ethtool_ops
=
{
static
const
struct
ethtool_ops
cp_ethtool_ops
=
{
...
...
drivers/net/8139too.c
View file @
6cc92cdd
...
@@ -1316,18 +1316,18 @@ static int rtl8139_open (struct net_device *dev)
...
@@ -1316,18 +1316,18 @@ static int rtl8139_open (struct net_device *dev)
if
(
retval
)
if
(
retval
)
return
retval
;
return
retval
;
tp
->
tx_bufs
=
pci_alloc_consistent
(
tp
->
pci_
dev
,
TX_BUF_TOT_LEN
,
tp
->
tx_bufs
=
dma_alloc_coherent
(
&
tp
->
pci_dev
->
dev
,
TX_BUF_TOT_LEN
,
&
tp
->
tx_bufs_dma
);
&
tp
->
tx_bufs_dma
,
GFP_KERNEL
);
tp
->
rx_ring
=
pci_alloc_consistent
(
tp
->
pci_
dev
,
RX_BUF_TOT_LEN
,
tp
->
rx_ring
=
dma_alloc_coherent
(
&
tp
->
pci_dev
->
dev
,
RX_BUF_TOT_LEN
,
&
tp
->
rx_ring_dma
);
&
tp
->
rx_ring_dma
,
GFP_KERNEL
);
if
(
tp
->
tx_bufs
==
NULL
||
tp
->
rx_ring
==
NULL
)
{
if
(
tp
->
tx_bufs
==
NULL
||
tp
->
rx_ring
==
NULL
)
{
free_irq
(
dev
->
irq
,
dev
);
free_irq
(
dev
->
irq
,
dev
);
if
(
tp
->
tx_bufs
)
if
(
tp
->
tx_bufs
)
pci_free_consistent
(
tp
->
pci_
dev
,
TX_BUF_TOT_LEN
,
dma_free_coherent
(
&
tp
->
pci_dev
->
dev
,
TX_BUF_TOT_LEN
,
tp
->
tx_bufs
,
tp
->
tx_bufs_dma
);
tp
->
tx_bufs
,
tp
->
tx_bufs_dma
);
if
(
tp
->
rx_ring
)
if
(
tp
->
rx_ring
)
pci_free_consistent
(
tp
->
pci_
dev
,
RX_BUF_TOT_LEN
,
dma_free_coherent
(
&
tp
->
pci_dev
->
dev
,
RX_BUF_TOT_LEN
,
tp
->
rx_ring
,
tp
->
rx_ring_dma
);
tp
->
rx_ring
,
tp
->
rx_ring_dma
);
return
-
ENOMEM
;
return
-
ENOMEM
;
...
@@ -2246,10 +2246,10 @@ static int rtl8139_close (struct net_device *dev)
...
@@ -2246,10 +2246,10 @@ static int rtl8139_close (struct net_device *dev)
rtl8139_tx_clear
(
tp
);
rtl8139_tx_clear
(
tp
);
pci_free_consistent
(
tp
->
pci_
dev
,
RX_BUF_TOT_LEN
,
dma_free_coherent
(
&
tp
->
pci_dev
->
dev
,
RX_BUF_TOT_LEN
,
tp
->
rx_ring
,
tp
->
rx_ring_dma
);
tp
->
rx_ring
,
tp
->
rx_ring_dma
);
pci_free_consistent
(
tp
->
pci_
dev
,
TX_BUF_TOT_LEN
,
dma_free_coherent
(
&
tp
->
pci_dev
->
dev
,
TX_BUF_TOT_LEN
,
tp
->
tx_bufs
,
tp
->
tx_bufs_dma
);
tp
->
tx_bufs
,
tp
->
tx_bufs_dma
);
tp
->
rx_ring
=
NULL
;
tp
->
rx_ring
=
NULL
;
tp
->
tx_bufs
=
NULL
;
tp
->
tx_bufs
=
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