Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
6ee00c16
Commit
6ee00c16
authored
Feb 11, 2013
by
Mark Brown
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'asoc/topic/simple-card' into asoc-next
parents
2944c2f5
a4a2992c
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
119 additions
and
120 deletions
+119
-120
arch/arm/mach-shmobile/board-ap4evb.c
arch/arm/mach-shmobile/board-ap4evb.c
+17
-18
arch/arm/mach-shmobile/board-armadillo800eva.c
arch/arm/mach-shmobile/board-armadillo800eva.c
+17
-17
arch/arm/mach-shmobile/board-kzm9g.c
arch/arm/mach-shmobile/board-kzm9g.c
+10
-10
arch/arm/mach-shmobile/board-mackerel.c
arch/arm/mach-shmobile/board-mackerel.c
+17
-18
arch/sh/boards/mach-ecovec24/setup.c
arch/sh/boards/mach-ecovec24/setup.c
+9
-10
arch/sh/boards/mach-se/7724/setup.c
arch/sh/boards/mach-se/7724/setup.c
+10
-11
include/sound/simple_card.h
include/sound/simple_card.h
+6
-6
sound/soc/generic/simple-card.c
sound/soc/generic/simple-card.c
+33
-30
No files found.
arch/arm/mach-shmobile/board-ap4evb.c
View file @
6ee00c16
...
...
@@ -686,21 +686,21 @@ static struct platform_device fsi_device = {
},
};
static
struct
asoc_simple_dai_init_info
fsi2_ak4643_init_info
=
{
.
fmt
=
SND_SOC_DAIFMT_LEFT_J
,
.
codec_daifmt
=
SND_SOC_DAIFMT_CBM_CFM
,
.
cpu_daifmt
=
SND_SOC_DAIFMT_CBS_CFS
,
.
sysclk
=
11289600
,
};
static
struct
asoc_simple_card_info
fsi2_ak4643_info
=
{
.
name
=
"AK4643"
,
.
card
=
"FSI2A-AK4643"
,
.
cpu_dai
=
"fsia-dai"
,
.
codec
=
"ak4642-codec.0-0013"
,
.
platform
=
"sh_fsi2"
,
.
codec_dai
=
"ak4642-hifi"
,
.
init
=
&
fsi2_ak4643_init_info
,
.
daifmt
=
SND_SOC_DAIFMT_LEFT_J
,
.
cpu_dai
=
{
.
name
=
"fsia-dai"
,
.
fmt
=
SND_SOC_DAIFMT_CBS_CFS
,
},
.
codec_dai
=
{
.
name
=
"ak4642-hifi"
,
.
fmt
=
SND_SOC_DAIFMT_CBM_CFM
,
.
sysclk
=
11289600
,
},
};
static
struct
platform_device
fsi_ak4643_device
=
{
...
...
@@ -809,19 +809,18 @@ static struct platform_device lcdc1_device = {
},
};
static
struct
asoc_simple_dai_init_info
fsi2_hdmi_init_info
=
{
.
cpu_daifmt
=
SND_SOC_DAIFMT_CBM_CFM
|
SND_SOC_DAIFMT_IB_NF
,
};
static
struct
asoc_simple_card_info
fsi2_hdmi_info
=
{
.
name
=
"HDMI"
,
.
card
=
"FSI2B-HDMI"
,
.
cpu_dai
=
"fsib-dai"
,
.
codec
=
"sh-mobile-hdmi"
,
.
platform
=
"sh_fsi2"
,
.
codec_dai
=
"sh_mobile_hdmi-hifi"
,
.
init
=
&
fsi2_hdmi_init_info
,
.
cpu_dai
=
{
.
name
=
"fsib-dai"
,
.
fmt
=
SND_SOC_DAIFMT_CBM_CFM
|
SND_SOC_DAIFMT_IB_NF
,
},
.
codec_dai
=
{
.
name
=
"sh_mobile_hdmi-hifi"
,
},
};
static
struct
platform_device
fsi_hdmi_device
=
{
...
...
arch/arm/mach-shmobile/board-armadillo800eva.c
View file @
6ee00c16
...
...
@@ -806,21 +806,21 @@ static struct platform_device fsi_device = {
};
/* FSI-WM8978 */
static
struct
asoc_simple_dai_init_info
fsi_wm8978_init_info
=
{
.
fmt
=
SND_SOC_DAIFMT_I2S
,
.
codec_daifmt
=
SND_SOC_DAIFMT_CBM_CFM
|
SND_SOC_DAIFMT_NB_NF
,
.
cpu_daifmt
=
SND_SOC_DAIFMT_CBS_CFS
,
.
sysclk
=
12288000
,
};
static
struct
asoc_simple_card_info
fsi_wm8978_info
=
{
.
name
=
"wm8978"
,
.
card
=
"FSI2A-WM8978"
,
.
cpu_dai
=
"fsia-dai"
,
.
codec
=
"wm8978.0-001a"
,
.
platform
=
"sh_fsi2"
,
.
codec_dai
=
"wm8978-hifi"
,
.
init
=
&
fsi_wm8978_init_info
,
.
daifmt
=
SND_SOC_DAIFMT_I2S
,
.
cpu_dai
=
{
.
name
=
"fsia-dai"
,
.
fmt
=
SND_SOC_DAIFMT_CBS_CFS
|
SND_SOC_DAIFMT_IB_NF
,
},
.
codec_dai
=
{
.
name
=
"wm8978-hifi"
,
.
fmt
=
SND_SOC_DAIFMT_CBM_CFM
|
SND_SOC_DAIFMT_NB_NF
,
.
sysclk
=
12288000
,
},
};
static
struct
platform_device
fsi_wm8978_device
=
{
...
...
@@ -832,18 +832,18 @@ static struct platform_device fsi_wm8978_device = {
};
/* FSI-HDMI */
static
struct
asoc_simple_dai_init_info
fsi2_hdmi_init_info
=
{
.
cpu_daifmt
=
SND_SOC_DAIFMT_CBM_CFM
,
};
static
struct
asoc_simple_card_info
fsi2_hdmi_info
=
{
.
name
=
"HDMI"
,
.
card
=
"FSI2B-HDMI"
,
.
cpu_dai
=
"fsib-dai"
,
.
codec
=
"sh-mobile-hdmi"
,
.
platform
=
"sh_fsi2"
,
.
codec_dai
=
"sh_mobile_hdmi-hifi"
,
.
init
=
&
fsi2_hdmi_init_info
,
.
cpu_dai
=
{
.
name
=
"fsib-dai"
,
.
fmt
=
SND_SOC_DAIFMT_CBM_CFM
,
},
.
codec_dai
=
{
.
name
=
"sh_mobile_hdmi-hifi"
,
},
};
static
struct
platform_device
fsi_hdmi_device
=
{
...
...
arch/arm/mach-shmobile/board-kzm9g.c
View file @
6ee00c16
...
...
@@ -525,21 +525,21 @@ static struct platform_device fsi_device = {
},
};
static
struct
asoc_simple_dai_init_info
fsi2_ak4648_init_info
=
{
.
fmt
=
SND_SOC_DAIFMT_LEFT_J
,
.
codec_daifmt
=
SND_SOC_DAIFMT_CBM_CFM
,
.
cpu_daifmt
=
SND_SOC_DAIFMT_CBS_CFS
,
.
sysclk
=
11289600
,
};
static
struct
asoc_simple_card_info
fsi2_ak4648_info
=
{
.
name
=
"AK4648"
,
.
card
=
"FSI2A-AK4648"
,
.
cpu_dai
=
"fsia-dai"
,
.
codec
=
"ak4642-codec.0-0012"
,
.
platform
=
"sh_fsi2"
,
.
codec_dai
=
"ak4642-hifi"
,
.
init
=
&
fsi2_ak4648_init_info
,
.
daifmt
=
SND_SOC_DAIFMT_LEFT_J
,
.
cpu_dai
=
{
.
name
=
"fsia-dai"
,
.
fmt
=
SND_SOC_DAIFMT_CBS_CFS
,
},
.
codec_dai
=
{
.
name
=
"ak4642-hifi"
,
.
fmt
=
SND_SOC_DAIFMT_CBM_CFM
,
.
sysclk
=
11289600
,
},
};
static
struct
platform_device
fsi_ak4648_device
=
{
...
...
arch/arm/mach-shmobile/board-mackerel.c
View file @
6ee00c16
...
...
@@ -502,19 +502,18 @@ static struct platform_device hdmi_lcdc_device = {
},
};
static
struct
asoc_simple_dai_init_info
fsi2_hdmi_init_info
=
{
.
cpu_daifmt
=
SND_SOC_DAIFMT_CBM_CFM
|
SND_SOC_DAIFMT_IB_NF
,
};
static
struct
asoc_simple_card_info
fsi2_hdmi_info
=
{
.
name
=
"HDMI"
,
.
card
=
"FSI2B-HDMI"
,
.
cpu_dai
=
"fsib-dai"
,
.
codec
=
"sh-mobile-hdmi"
,
.
platform
=
"sh_fsi2"
,
.
codec_dai
=
"sh_mobile_hdmi-hifi"
,
.
init
=
&
fsi2_hdmi_init_info
,
.
cpu_dai
=
{
.
name
=
"fsib-dai"
,
.
fmt
=
SND_SOC_DAIFMT_CBM_CFM
|
SND_SOC_DAIFMT_IB_NF
,
},
.
codec_dai
=
{
.
name
=
"sh_mobile_hdmi-hifi"
,
},
};
static
struct
platform_device
fsi_hdmi_device
=
{
...
...
@@ -893,21 +892,21 @@ static struct platform_device fsi_device = {
},
};
static
struct
asoc_simple_dai_init_info
fsi2_ak4643_init_info
=
{
.
fmt
=
SND_SOC_DAIFMT_LEFT_J
,
.
codec_daifmt
=
SND_SOC_DAIFMT_CBM_CFM
,
.
cpu_daifmt
=
SND_SOC_DAIFMT_CBS_CFS
,
.
sysclk
=
11289600
,
};
static
struct
asoc_simple_card_info
fsi2_ak4643_info
=
{
.
name
=
"AK4643"
,
.
card
=
"FSI2A-AK4643"
,
.
cpu_dai
=
"fsia-dai"
,
.
codec
=
"ak4642-codec.0-0013"
,
.
platform
=
"sh_fsi2"
,
.
codec_dai
=
"ak4642-hifi"
,
.
init
=
&
fsi2_ak4643_init_info
,
.
daifmt
=
SND_SOC_DAIFMT_LEFT_J
,
.
cpu_dai
=
{
.
name
=
"fsia-dai"
,
.
fmt
=
SND_SOC_DAIFMT_CBS_CFS
,
},
.
codec_dai
=
{
.
name
=
"ak4642-hifi"
,
.
fmt
=
SND_SOC_DAIFMT_CBM_CFM
,
.
sysclk
=
11289600
,
},
};
static
struct
platform_device
fsi_ak4643_device
=
{
...
...
arch/sh/boards/mach-ecovec24/setup.c
View file @
6ee00c16
...
...
@@ -907,21 +907,20 @@ static struct platform_device fsi_device = {
.
resource
=
fsi_resources
,
};
static
struct
asoc_simple_dai_init_info
fsi_da7210_init_info
=
{
.
fmt
=
SND_SOC_DAIFMT_I2S
,
.
codec_daifmt
=
SND_SOC_DAIFMT_CBM_CFM
,
.
cpu_daifmt
=
SND_SOC_DAIFMT_CBS_CFS
|
SND_SOC_DAIFMT_IB_NF
,
};
static
struct
asoc_simple_card_info
fsi_da7210_info
=
{
.
name
=
"DA7210"
,
.
card
=
"FSIB-DA7210"
,
.
cpu_dai
=
"fsib-dai"
,
.
codec
=
"da7210.0-001a"
,
.
platform
=
"sh_fsi.0"
,
.
codec_dai
=
"da7210-hifi"
,
.
init
=
&
fsi_da7210_init_info
,
.
daifmt
=
SND_SOC_DAIFMT_I2S
,
.
cpu_dai
=
{
.
name
=
"fsib-dai"
,
.
fmt
=
SND_SOC_DAIFMT_CBS_CFS
|
SND_SOC_DAIFMT_IB_NF
,
},
.
codec_dai
=
{
.
name
=
"da7210-hifi"
,
.
fmt
=
SND_SOC_DAIFMT_CBM_CFM
,
},
};
static
struct
platform_device
fsi_da7210_device
=
{
...
...
arch/sh/boards/mach-se/7724/setup.c
View file @
6ee00c16
...
...
@@ -299,22 +299,21 @@ static struct platform_device fsi_device = {
.
resource
=
fsi_resources
,
};
static
struct
asoc_simple_dai_init_info
fsi2_ak4642_init_info
=
{
.
fmt
=
SND_SOC_DAIFMT_LEFT_J
,
.
codec_daifmt
=
SND_SOC_DAIFMT_CBM_CFM
,
.
cpu_daifmt
=
SND_SOC_DAIFMT_CBS_CFS
|
SND_SOC_DAIFMT_IB_NF
,
.
sysclk
=
11289600
,
};
static
struct
asoc_simple_card_info
fsi_ak4642_info
=
{
.
name
=
"AK4642"
,
.
card
=
"FSIA-AK4642"
,
.
cpu_dai
=
"fsia-dai"
,
.
codec
=
"ak4642-codec.0-0012"
,
.
platform
=
"sh_fsi.0"
,
.
codec_dai
=
"ak4642-hifi"
,
.
init
=
&
fsi2_ak4642_init_info
,
.
daifmt
=
SND_SOC_DAIFMT_LEFT_J
,
.
cpu_dai
=
{
.
name
=
"fsia-dai"
,
.
fmt
=
SND_SOC_DAIFMT_CBS_CFS
|
SND_SOC_DAIFMT_IB_NF
,
},
.
codec_dai
=
{
.
name
=
"ak4642-hifi"
,
.
fmt
=
SND_SOC_DAIFMT_CBM_CFM
,
.
sysclk
=
11289600
,
},
};
static
struct
platform_device
fsi_ak4642_device
=
{
...
...
include/sound/simple_card.h
View file @
6ee00c16
...
...
@@ -14,21 +14,21 @@
#include <sound/soc.h>
struct
asoc_simple_dai_init_info
{
struct
asoc_simple_dai
{
const
char
*
name
;
unsigned
int
fmt
;
unsigned
int
cpu_daifmt
;
unsigned
int
codec_daifmt
;
unsigned
int
sysclk
;
};
struct
asoc_simple_card_info
{
const
char
*
name
;
const
char
*
card
;
const
char
*
cpu_dai
;
const
char
*
codec
;
const
char
*
platform
;
const
char
*
codec_dai
;
struct
asoc_simple_dai_init_info
*
init
;
/* for snd_link.init */
unsigned
int
daifmt
;
struct
asoc_simple_dai
cpu_dai
;
struct
asoc_simple_dai
codec_dai
;
/* used in simple-card.c */
struct
snd_soc_dai_link
snd_link
;
...
...
sound/soc/generic/simple-card.c
View file @
6ee00c16
...
...
@@ -16,33 +16,38 @@
#define asoc_simple_get_card_info(p) \
container_of(p->dai_link, struct asoc_simple_card_info, snd_link)
static
int
__asoc_simple_card_dai_init
(
struct
snd_soc_dai
*
dai
,
struct
asoc_simple_dai
*
set
,
unsigned
int
daifmt
)
{
int
ret
=
0
;
daifmt
|=
set
->
fmt
;
if
(
!
ret
&&
daifmt
)
ret
=
snd_soc_dai_set_fmt
(
dai
,
daifmt
);
if
(
!
ret
&&
set
->
sysclk
)
ret
=
snd_soc_dai_set_sysclk
(
dai
,
0
,
set
->
sysclk
,
0
);
return
ret
;
}
static
int
asoc_simple_card_dai_init
(
struct
snd_soc_pcm_runtime
*
rtd
)
{
struct
asoc_simple_card_info
*
cinfo
=
asoc_simple_get_card_info
(
rtd
);
struct
asoc_simple_dai_init_info
*
iinfo
=
cinfo
->
init
;
struct
asoc_simple_card_info
*
info
=
asoc_simple_get_card_info
(
rtd
);
struct
snd_soc_dai
*
codec
=
rtd
->
codec_dai
;
struct
snd_soc_dai
*
cpu
=
rtd
->
cpu_dai
;
unsigned
int
cpu_daifmt
=
iinfo
->
fmt
|
iinfo
->
cpu_daifmt
;
unsigned
int
codec_daifmt
=
iinfo
->
fmt
|
iinfo
->
codec_daifmt
;
unsigned
int
daifmt
=
info
->
daifmt
;
int
ret
;
if
(
codec_daifmt
)
{
ret
=
snd_soc_dai_set_fmt
(
codec
,
codec_daifmt
);
if
(
ret
<
0
)
return
ret
;
}
if
(
iinfo
->
sysclk
)
{
ret
=
snd_soc_dai_set_sysclk
(
codec
,
0
,
iinfo
->
sysclk
,
0
);
if
(
ret
<
0
)
return
ret
;
}
ret
=
__asoc_simple_card_dai_init
(
codec
,
&
info
->
codec_dai
,
daifmt
);
if
(
ret
<
0
)
return
ret
;
if
(
cpu_daifmt
)
{
ret
=
snd_soc_dai_set_fmt
(
cpu
,
cpu_daifmt
);
if
(
ret
<
0
)
return
ret
;
}
ret
=
__asoc_simple_card_dai_init
(
cpu
,
&
info
->
cpu_dai
,
daifmt
);
if
(
ret
<
0
)
return
ret
;
return
0
;
}
...
...
@@ -50,19 +55,20 @@ static int asoc_simple_card_dai_init(struct snd_soc_pcm_runtime *rtd)
static
int
asoc_simple_card_probe
(
struct
platform_device
*
pdev
)
{
struct
asoc_simple_card_info
*
cinfo
=
pdev
->
dev
.
platform_data
;
struct
device
*
dev
=
&
pdev
->
dev
;
if
(
!
cinfo
)
{
dev_err
(
&
pdev
->
dev
,
"no info for asoc-simple-card
\n
"
);
dev_err
(
dev
,
"no info for asoc-simple-card
\n
"
);
return
-
EINVAL
;
}
if
(
!
cinfo
->
name
||
!
cinfo
->
card
||
!
cinfo
->
cpu_dai
||
!
cinfo
->
codec
||
!
cinfo
->
platform
||
!
cinfo
->
codec_dai
)
{
dev_err
(
&
pdev
->
dev
,
"insufficient asoc_simple_card_info settings
\n
"
);
!
cinfo
->
cpu_dai
.
name
||
!
cinfo
->
codec_dai
.
name
)
{
dev_err
(
dev
,
"insufficient asoc_simple_card_info settings
\n
"
);
return
-
EINVAL
;
}
...
...
@@ -71,14 +77,11 @@ static int asoc_simple_card_probe(struct platform_device *pdev)
*/
cinfo
->
snd_link
.
name
=
cinfo
->
name
;
cinfo
->
snd_link
.
stream_name
=
cinfo
->
name
;
cinfo
->
snd_link
.
cpu_dai_name
=
cinfo
->
cpu_dai
;
cinfo
->
snd_link
.
cpu_dai_name
=
cinfo
->
cpu_dai
.
name
;
cinfo
->
snd_link
.
platform_name
=
cinfo
->
platform
;
cinfo
->
snd_link
.
codec_name
=
cinfo
->
codec
;
cinfo
->
snd_link
.
codec_dai_name
=
cinfo
->
codec_dai
;
/* enable snd_link.init if cinfo has settings */
if
(
cinfo
->
init
)
cinfo
->
snd_link
.
init
=
asoc_simple_card_dai_init
;
cinfo
->
snd_link
.
codec_dai_name
=
cinfo
->
codec_dai
.
name
;
cinfo
->
snd_link
.
init
=
asoc_simple_card_dai_init
;
/*
* init snd_soc_card
...
...
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