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
862fc81b
Commit
862fc81b
authored
Jun 08, 2006
by
Jeff Garzik
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'upstream-fixes' into upstream
parents
987024ca
2e84abe7
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
22 additions
and
9 deletions
+22
-9
drivers/net/wireless/bcm43xx/bcm43xx_dma.c
drivers/net/wireless/bcm43xx/bcm43xx_dma.c
+22
-9
No files found.
drivers/net/wireless/bcm43xx/bcm43xx_dma.c
View file @
862fc81b
...
...
@@ -624,25 +624,28 @@ err_destroy_tx0:
static
u16
generate_cookie
(
struct
bcm43xx_dmaring
*
ring
,
int
slot
)
{
u16
cookie
=
0x
0
000
;
u16
cookie
=
0x
F
000
;
/* Use the upper 4 bits of the cookie as
* DMA controller ID and store the slot number
* in the lower 12 bits
* in the lower 12 bits.
* Note that the cookie must never be 0, as this
* is a special value used in RX path.
*/
switch
(
ring
->
mmio_base
)
{
default:
assert
(
0
);
case
BCM43xx_MMIO_DMA1_BASE
:
cookie
=
0xA000
;
break
;
case
BCM43xx_MMIO_DMA2_BASE
:
cookie
=
0x
1
000
;
cookie
=
0x
B
000
;
break
;
case
BCM43xx_MMIO_DMA3_BASE
:
cookie
=
0x
2
000
;
cookie
=
0x
C
000
;
break
;
case
BCM43xx_MMIO_DMA4_BASE
:
cookie
=
0x
3
000
;
cookie
=
0x
D
000
;
break
;
}
assert
(((
u16
)
slot
&
0xF000
)
==
0x0000
);
...
...
@@ -660,16 +663,16 @@ struct bcm43xx_dmaring * parse_cookie(struct bcm43xx_private *bcm,
struct
bcm43xx_dmaring
*
ring
=
NULL
;
switch
(
cookie
&
0xF000
)
{
case
0x
0
000
:
case
0x
A
000
:
ring
=
dma
->
tx_ring0
;
break
;
case
0x
1
000
:
case
0x
B
000
:
ring
=
dma
->
tx_ring1
;
break
;
case
0x
2
000
:
case
0x
C
000
:
ring
=
dma
->
tx_ring2
;
break
;
case
0x
3
000
:
case
0x
D
000
:
ring
=
dma
->
tx_ring3
;
break
;
default:
...
...
@@ -839,8 +842,18 @@ static void dma_rx(struct bcm43xx_dmaring *ring,
/* We received an xmit status. */
struct
bcm43xx_hwxmitstatus
*
hw
=
(
struct
bcm43xx_hwxmitstatus
*
)
skb
->
data
;
struct
bcm43xx_xmitstatus
stat
;
int
i
=
0
;
stat
.
cookie
=
le16_to_cpu
(
hw
->
cookie
);
while
(
stat
.
cookie
==
0
)
{
if
(
unlikely
(
++
i
>=
10000
))
{
assert
(
0
);
break
;
}
udelay
(
2
);
barrier
();
stat
.
cookie
=
le16_to_cpu
(
hw
->
cookie
);
}
stat
.
flags
=
hw
->
flags
;
stat
.
cnt1
=
hw
->
cnt1
;
stat
.
cnt2
=
hw
->
cnt2
;
...
...
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