Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
linux-davinci-2.6.23
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-2.6.23
Commits
867b3e77
Commit
867b3e77
authored
Jan 08, 2010
by
Jean-Paul Saman
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
davinci-audio: use mutex iso semaphore
parent
443bdfed
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
11 additions
and
11 deletions
+11
-11
sound/oss/davinci-audio-aic32.c
sound/oss/davinci-audio-aic32.c
+2
-2
sound/oss/davinci-audio-aic33.c
sound/oss/davinci-audio-aic33.c
+0
-1
sound/oss/davinci-audio.c
sound/oss/davinci-audio.c
+8
-7
sound/oss/davinci-audio.h
sound/oss/davinci-audio.h
+1
-1
No files found.
sound/oss/davinci-audio-aic32.c
View file @
867b3e77
...
...
@@ -24,6 +24,7 @@
#include <linux/sound.h>
#include <linux/soundcard.h>
#include <linux/clk.h>
#include <sound/davincisound.h>
#include <asm/gpio.h>
...
...
@@ -256,7 +257,6 @@ static audio_state_t aic32_state = {
.
hw_remove
=
__exit_p
(
davinci_aic32_remove
),
.
hw_suspend
=
davinci_aic32_suspend
,
.
hw_resume
=
davinci_aic32_resume
,
.
sem
=
__SEMAPHORE_INIT
(
aic32_state
.
sem
,
1
),
};
/* This will be defined in the audio.h */
...
...
@@ -1308,7 +1308,7 @@ static int davinci_aic32_probe(void)
aic32_local
.
volume
=
DEFAULT_OUTPUT_VOLUME
;
aic32_local
.
line
=
DEFAULT_INPUT_VOLUME
;
/* either of SOUND_MASK_LINE/SOUND_MASK_MIC */
aic32_local
.
recsrc
=
SOUND_MASK_LINE
;
aic32_local
.
recsrc
=
SOUND_MASK_LINE
;
aic32_local
.
igain
=
DEFAULT_INPUT_IGAIN
;
aic32_local
.
ogain
=
DEFAULT_INPUT_OGAIN
;
aic32_local
.
nochan
=
STEREO
;
...
...
sound/oss/davinci-audio-aic33.c
View file @
867b3e77
...
...
@@ -238,7 +238,6 @@ static audio_state_t aic33_state = {
.
hw_remove
=
__exit_p
(
davinci_aic33_remove
),
.
hw_suspend
=
davinci_aic33_suspend
,
.
hw_resume
=
davinci_aic33_resume
,
.
sem
=
__SEMAPHORE_INIT
(
aic33_state
.
sem
,
1
),
};
/* This will be defined in the audio.h */
...
...
sound/oss/davinci-audio.c
View file @
867b3e77
...
...
@@ -47,11 +47,11 @@
#include <linux/delay.h>
#include <linux/platform_device.h>
#include <linux/completion.h>
#include <linux/mutex.h>
#include <asm/uaccess.h>
#include <asm/io.h>
#include <asm/hardware.h>
#include <asm/semaphore.h>
#include "davinci-audio-dma-intfc.h"
#include "davinci-audio.h"
...
...
@@ -438,7 +438,7 @@ int audio_register_codec(audio_state_t * codec_state)
}
memcpy
(
&
audio_state
,
codec_state
,
sizeof
(
audio_state_t
));
sema_init
(
&
audio_state
.
sem
,
1
);
mutex_init
(
&
audio_state
.
mutex
);
ret
=
platform_device_register
(
&
davinci_audio_device
);
if
(
ret
!=
0
)
{
...
...
@@ -487,6 +487,7 @@ int audio_unregister_codec(audio_state_t * codec_state)
platform_driver_unregister
(
&
davinci_audio_driver
);
platform_device_unregister
(
&
davinci_audio_device
);
mutex_destroy
(
&
audio_state
.
mutex
);
memset
(
&
audio_state
,
0
,
sizeof
(
audio_state_t
));
FN_OUT
(
0
);
...
...
@@ -1051,11 +1052,11 @@ static int audio_open(struct inode *inode, struct file *file)
}
if
(
file
->
f_flags
&
O_NONBLOCK
)
{
if
(
down_trylock
(
&
state
->
sem
)
)
if
(
mutex_trylock
(
&
state
->
mutex
)
==
0
)
return
-
EAGAIN
;
}
else
down
(
&
state
->
sem
);
mutex_lock
(
&
state
->
mutex
);
/* access control */
err
=
-
ENODEV
;
...
...
@@ -1126,7 +1127,7 @@ static int audio_open(struct inode *inode, struct file *file)
err
=
0
;
out:
up
(
&
state
->
sem
);
mutex_unlock
(
&
state
->
mutex
);
if
(
err
)
{
module_put
(
state
->
owner
);
module_put
(
THIS_MODULE
);
...
...
@@ -1148,7 +1149,7 @@ static int audio_release(struct inode *inode, struct file *file)
FN_IN
;
down
(
&
state
->
sem
);
mutex_lock
(
&
state
->
mutex
);
if
(
file
->
f_mode
&
FMODE_READ
)
{
audio_discard_buf
(
is
);
...
...
@@ -1174,7 +1175,7 @@ static int audio_release(struct inode *inode, struct file *file)
state
->
wr_ref
=
0
;
}
up
(
&
state
->
sem
);
mutex_unlock
(
&
state
->
mutex
);
module_put
(
state
->
owner
);
module_put
(
THIS_MODULE
);
...
...
sound/oss/davinci-audio.h
View file @
867b3e77
...
...
@@ -92,7 +92,7 @@ typedef struct {
int
(
*
hw_suspend
)
(
void
);
int
(
*
hw_resume
)
(
void
);
struct
pm_dev
*
pm_dev
;
struct
semaphore
sem
;
/* to protect against races in attach() */
struct
mutex
mutex
;
/* to protect against races in attach() */
}
audio_state_t
;
#ifdef AUDIO_PM
...
...
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