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
1921bab2
Commit
1921bab2
authored
Aug 11, 2009
by
Mark Brown
Browse files
Options
Browse Files
Download
Plain Diff
Merge commit '
a5479e38
' into for-2.6.32
parents
17244c24
a5479e38
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
33 additions
and
15 deletions
+33
-15
include/sound/soc-dai.h
include/sound/soc-dai.h
+3
-2
sound/soc/codecs/wm9081.c
sound/soc/codecs/wm9081.c
+3
-2
sound/soc/pxa/magician.c
sound/soc/pxa/magician.c
+1
-1
sound/soc/pxa/pxa-ssp.c
sound/soc/pxa/pxa-ssp.c
+20
-7
sound/soc/soc-core.c
sound/soc/soc-core.c
+6
-3
No files found.
include/sound/soc-dai.h
View file @
1921bab2
...
...
@@ -112,7 +112,7 @@ int snd_soc_dai_set_pll(struct snd_soc_dai *dai,
int
snd_soc_dai_set_fmt
(
struct
snd_soc_dai
*
dai
,
unsigned
int
fmt
);
int
snd_soc_dai_set_tdm_slot
(
struct
snd_soc_dai
*
dai
,
unsigned
int
mask
,
int
slots
);
unsigned
int
tx_mask
,
unsigned
int
rx_mask
,
int
slots
,
int
slot_width
);
int
snd_soc_dai_set_tristate
(
struct
snd_soc_dai
*
dai
,
int
tristate
);
...
...
@@ -146,7 +146,8 @@ struct snd_soc_dai_ops {
*/
int
(
*
set_fmt
)(
struct
snd_soc_dai
*
dai
,
unsigned
int
fmt
);
int
(
*
set_tdm_slot
)(
struct
snd_soc_dai
*
dai
,
unsigned
int
mask
,
int
slots
);
unsigned
int
tx_mask
,
unsigned
int
rx_mask
,
int
slots
,
int
slot_width
);
int
(
*
set_tristate
)(
struct
snd_soc_dai
*
dai
,
int
tristate
);
/*
...
...
sound/soc/codecs/wm9081.c
View file @
1921bab2
...
...
@@ -1149,8 +1149,9 @@ static int wm9081_set_sysclk(struct snd_soc_dai *codec_dai,
return
0
;
}
/* FIXME: Needs to handle slot_width */
static
int
wm9081_set_tdm_slot
(
struct
snd_soc_dai
*
dai
,
unsigned
int
mask
,
int
slots
)
unsigned
int
tx_mask
,
unsigned
int
rx_mask
,
int
slots
,
int
slot_width
)
{
struct
snd_soc_codec
*
codec
=
dai
->
codec
;
unsigned
int
aif1
=
snd_soc_read
(
codec
,
WM9081_AUDIO_INTERFACE_1
);
...
...
@@ -1162,7 +1163,7 @@ static int wm9081_set_tdm_slot(struct snd_soc_dai *dai,
aif1
|=
(
slots
-
1
)
<<
WM9081_AIFDAC_TDM_MODE_SHIFT
;
switch
(
mask
)
{
switch
(
rx_
mask
)
{
case
1
:
break
;
case
2
:
...
...
sound/soc/pxa/magician.c
View file @
1921bab2
...
...
@@ -190,7 +190,7 @@ static int magician_playback_hw_params(struct snd_pcm_substream *substream,
if
(
ret
<
0
)
return
ret
;
ret
=
snd_soc_dai_set_tdm_slot
(
cpu_dai
,
1
,
1
);
ret
=
snd_soc_dai_set_tdm_slot
(
cpu_dai
,
1
,
0
,
1
,
width
);
if
(
ret
<
0
)
return
ret
;
...
...
sound/soc/pxa/pxa-ssp.c
View file @
1921bab2
...
...
@@ -375,21 +375,34 @@ static int pxa_ssp_set_dai_pll(struct snd_soc_dai *cpu_dai,
* Set the active slots in TDM/Network mode
*/
static
int
pxa_ssp_set_dai_tdm_slot
(
struct
snd_soc_dai
*
cpu_dai
,
unsigned
int
mask
,
int
slots
)
unsigned
int
tx_mask
,
unsigned
int
rx_mask
,
int
slots
,
int
slot_width
)
{
struct
ssp_priv
*
priv
=
cpu_dai
->
private_data
;
struct
ssp_device
*
ssp
=
priv
->
dev
.
ssp
;
u32
sscr0
;
sscr0
=
ssp_read_reg
(
ssp
,
SSCR0
)
&
~
SSCR0_SlotsPerFrm
(
7
);
sscr0
=
ssp_read_reg
(
ssp
,
SSCR0
);
sscr0
&=
~
(
SSCR0_MOD
|
SSCR0_SlotsPerFrm
(
8
)
|
SSCR0_EDSS
|
SSCR0_DSS
);
/* set slot width */
if
(
slot_width
>
16
)
sscr0
|=
SSCR0_EDSS
|
SSCR0_DataSize
(
slot_width
-
16
);
else
sscr0
|=
SSCR0_DataSize
(
slot_width
);
if
(
slots
>
1
)
{
/* enable network mode */
sscr0
|=
SSCR0_MOD
;
/* set number of active slots */
sscr0
|=
SSCR0_SlotsPerFrm
(
slots
);
ssp_write_reg
(
ssp
,
SSCR0
,
sscr0
);
/* set active slot mask */
ssp_write_reg
(
ssp
,
SSTSA
,
mask
);
ssp_write_reg
(
ssp
,
SSRSA
,
mask
);
ssp_write_reg
(
ssp
,
SSTSA
,
tx_mask
);
ssp_write_reg
(
ssp
,
SSRSA
,
rx_mask
);
}
ssp_write_reg
(
ssp
,
SSCR0
,
sscr0
);
return
0
;
}
...
...
sound/soc/soc-core.c
View file @
1921bab2
...
...
@@ -2223,17 +2223,20 @@ EXPORT_SYMBOL_GPL(snd_soc_dai_set_fmt);
/**
* snd_soc_dai_set_tdm_slot - configure DAI TDM.
* @dai: DAI
* @mask: DAI specific mask representing used slots.
* @tx_mask: bitmask representing active TX slots.
* @rx_mask: bitmask representing active RX slots.
* @slots: Number of slots in use.
* @slot_width: Width in bits for each slot.
*
* Configures a DAI for TDM operation. Both mask and slots are codec and DAI
* specific.
*/
int
snd_soc_dai_set_tdm_slot
(
struct
snd_soc_dai
*
dai
,
unsigned
int
mask
,
int
slots
)
unsigned
int
tx_mask
,
unsigned
int
rx_mask
,
int
slots
,
int
slot_width
)
{
if
(
dai
->
ops
&&
dai
->
ops
->
set_tdm_slot
)
return
dai
->
ops
->
set_tdm_slot
(
dai
,
mask
,
slots
);
return
dai
->
ops
->
set_tdm_slot
(
dai
,
tx_mask
,
rx_mask
,
slots
,
slot_width
);
else
return
-
EINVAL
;
}
...
...
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