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
4eaff7d6
Commit
4eaff7d6
authored
Jul 25, 2007
by
Stefan Richter
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
firewire: fw-ohci: dma_free_coherent needs IRQs enabled
Signed-off-by:
Stefan Richter
<
stefanr@s5r6.in-berlin.de
>
parent
25659f71
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
13 additions
and
7 deletions
+13
-7
drivers/firewire/fw-ohci.c
drivers/firewire/fw-ohci.c
+13
-7
No files found.
drivers/firewire/fw-ohci.c
View file @
4eaff7d6
...
...
@@ -907,6 +907,8 @@ static void bus_reset_tasklet(unsigned long data)
int
self_id_count
,
i
,
j
,
reg
;
int
generation
,
new_generation
;
unsigned
long
flags
;
void
*
free_rom
=
NULL
;
dma_addr_t
free_rom_bus
=
0
;
reg
=
reg_read
(
ohci
,
OHCI1394_NodeID
);
if
(
!
(
reg
&
OHCI1394_NodeID_idValid
))
{
...
...
@@ -970,8 +972,8 @@ static void bus_reset_tasklet(unsigned long data)
*/
if
(
ohci
->
next_config_rom
!=
NULL
)
{
dma_free_coherent
(
ohci
->
card
.
device
,
CONFIG_ROM_SIZE
,
ohci
->
config_rom
,
ohci
->
config_rom_bus
)
;
free_rom
=
ohci
->
config_rom
;
free_rom_bus
=
ohci
->
config_rom_bus
;
ohci
->
config_rom
=
ohci
->
next_config_rom
;
ohci
->
config_rom_bus
=
ohci
->
next_config_rom_bus
;
ohci
->
next_config_rom
=
NULL
;
...
...
@@ -990,6 +992,10 @@ static void bus_reset_tasklet(unsigned long data)
spin_unlock_irqrestore
(
&
ohci
->
lock
,
flags
);
if
(
free_rom
)
dma_free_coherent
(
ohci
->
card
.
device
,
CONFIG_ROM_SIZE
,
free_rom
,
free_rom_bus
);
fw_core_handle_bus_reset
(
&
ohci
->
card
,
ohci
->
node_id
,
generation
,
self_id_count
,
ohci
->
self_id_buffer
);
}
...
...
@@ -1186,7 +1192,7 @@ ohci_set_config_rom(struct fw_card *card, u32 *config_rom, size_t length)
{
struct
fw_ohci
*
ohci
;
unsigned
long
flags
;
int
retval
=
0
;
int
retval
=
-
EBUSY
;
__be32
*
next_config_rom
;
dma_addr_t
next_config_rom_bus
;
...
...
@@ -1240,10 +1246,7 @@ ohci_set_config_rom(struct fw_card *card, u32 *config_rom, size_t length)
reg_write
(
ohci
,
OHCI1394_ConfigROMmap
,
ohci
->
next_config_rom_bus
);
}
else
{
dma_free_coherent
(
ohci
->
card
.
device
,
CONFIG_ROM_SIZE
,
next_config_rom
,
next_config_rom_bus
);
retval
=
-
EBUSY
;
retval
=
0
;
}
spin_unlock_irqrestore
(
&
ohci
->
lock
,
flags
);
...
...
@@ -1257,6 +1260,9 @@ ohci_set_config_rom(struct fw_card *card, u32 *config_rom, size_t length)
*/
if
(
retval
==
0
)
fw_core_initiate_bus_reset
(
&
ohci
->
card
,
1
);
else
dma_free_coherent
(
ohci
->
card
.
device
,
CONFIG_ROM_SIZE
,
next_config_rom
,
next_config_rom_bus
);
return
retval
;
}
...
...
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