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
Kirill Smelkov
linux
Commits
13419625
Commit
13419625
authored
Apr 12, 2013
by
Mark Brown
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'asoc/topic/component' into asoc-next
parents
604c724b
89cab462
Changes
59
Show whitespace changes
Inline
Side-by-side
Showing
59 changed files
with
522 additions
and
171 deletions
+522
-171
include/sound/soc-dai.h
include/sound/soc-dai.h
+0
-8
include/sound/soc.h
include/sound/soc.h
+20
-0
sound/soc/atmel/atmel_ssc_dai.c
sound/soc/atmel/atmel_ssc_dai.c
+8
-3
sound/soc/au1x/ac97c.c
sound/soc/au1x/ac97c.c
+7
-2
sound/soc/au1x/i2sc.c
sound/soc/au1x/i2sc.c
+7
-2
sound/soc/au1x/psc-ac97.c
sound/soc/au1x/psc-ac97.c
+7
-2
sound/soc/au1x/psc-i2s.c
sound/soc/au1x/psc-i2s.c
+7
-2
sound/soc/blackfin/bf5xx-ac97.c
sound/soc/blackfin/bf5xx-ac97.c
+7
-2
sound/soc/blackfin/bf5xx-i2s.c
sound/soc/blackfin/bf5xx-i2s.c
+7
-2
sound/soc/blackfin/bf5xx-tdm.c
sound/soc/blackfin/bf5xx-tdm.c
+7
-2
sound/soc/blackfin/bf6xx-i2s.c
sound/soc/blackfin/bf6xx-i2s.c
+7
-2
sound/soc/cirrus/ep93xx-ac97.c
sound/soc/cirrus/ep93xx-ac97.c
+7
-2
sound/soc/cirrus/ep93xx-i2s.c
sound/soc/cirrus/ep93xx-i2s.c
+7
-2
sound/soc/davinci/davinci-i2s.c
sound/soc/davinci/davinci-i2s.c
+10
-5
sound/soc/davinci/davinci-mcasp.c
sound/soc/davinci/davinci-mcasp.c
+10
-5
sound/soc/davinci/davinci-vcif.c
sound/soc/davinci/davinci-vcif.c
+8
-3
sound/soc/dwc/designware_i2s.c
sound/soc/dwc/designware_i2s.c
+7
-2
sound/soc/fsl/fsl_ssi.c
sound/soc/fsl/fsl_ssi.c
+8
-3
sound/soc/fsl/imx-ssi.c
sound/soc/fsl/imx-ssi.c
+8
-3
sound/soc/fsl/mpc5200_psc_ac97.c
sound/soc/fsl/mpc5200_psc_ac97.c
+6
-2
sound/soc/fsl/mpc5200_psc_i2s.c
sound/soc/fsl/mpc5200_psc_i2s.c
+7
-2
sound/soc/jz4740/jz4740-i2s.c
sound/soc/jz4740/jz4740-i2s.c
+7
-2
sound/soc/kirkwood/kirkwood-i2s.c
sound/soc/kirkwood/kirkwood-i2s.c
+8
-3
sound/soc/mid-x86/sst_platform.c
sound/soc/mid-x86/sst_platform.c
+6
-2
sound/soc/mxs/mxs-saif.c
sound/soc/mxs/mxs-saif.c
+8
-3
sound/soc/nuc900/nuc900-ac97.c
sound/soc/nuc900/nuc900-ac97.c
+7
-2
sound/soc/omap/omap-dmic.c
sound/soc/omap/omap-dmic.c
+7
-2
sound/soc/omap/omap-hdmi.c
sound/soc/omap/omap-hdmi.c
+7
-2
sound/soc/omap/omap-mcbsp.c
sound/soc/omap/omap-mcbsp.c
+7
-2
sound/soc/omap/omap-mcpdm.c
sound/soc/omap/omap-mcpdm.c
+7
-2
sound/soc/pxa/mmp-sspa.c
sound/soc/pxa/mmp-sspa.c
+7
-2
sound/soc/pxa/pxa-ssp.c
sound/soc/pxa/pxa-ssp.c
+7
-2
sound/soc/pxa/pxa2xx-ac97.c
sound/soc/pxa/pxa2xx-ac97.c
+7
-4
sound/soc/pxa/pxa2xx-i2s.c
sound/soc/pxa/pxa2xx-i2s.c
+7
-2
sound/soc/s6000/s6000-i2s.c
sound/soc/s6000/s6000-i2s.c
+7
-2
sound/soc/samsung/ac97.c
sound/soc/samsung/ac97.c
+8
-4
sound/soc/samsung/goni_wm8994.c
sound/soc/samsung/goni_wm8994.c
+8
-3
sound/soc/samsung/i2s.c
sound/soc/samsung/i2s.c
+10
-4
sound/soc/samsung/pcm.c
sound/soc/samsung/pcm.c
+8
-3
sound/soc/samsung/s3c-i2s-v2.c
sound/soc/samsung/s3c-i2s-v2.c
+5
-4
sound/soc/samsung/s3c-i2s-v2.h
sound/soc/samsung/s3c-i2s-v2.h
+4
-3
sound/soc/samsung/s3c2412-i2s.c
sound/soc/samsung/s3c2412-i2s.c
+9
-3
sound/soc/samsung/s3c24xx-i2s.c
sound/soc/samsung/s3c24xx-i2s.c
+8
-3
sound/soc/samsung/spdif.c
sound/soc/samsung/spdif.c
+8
-3
sound/soc/sh/fsi.c
sound/soc/sh/fsi.c
+8
-4
sound/soc/sh/hac.c
sound/soc/sh/hac.c
+7
-3
sound/soc/sh/migor.c
sound/soc/sh/migor.c
+1
-1
sound/soc/sh/siu_dai.c
sound/soc/sh/siu_dai.c
+8
-3
sound/soc/sh/ssi.c
sound/soc/sh/ssi.c
+7
-3
sound/soc/soc-core.c
sound/soc/soc-core.c
+91
-8
sound/soc/spear/spdif_in.c
sound/soc/spear/spdif_in.c
+7
-2
sound/soc/spear/spdif_out.c
sound/soc/spear/spdif_out.c
+7
-2
sound/soc/tegra/tegra20_ac97.c
sound/soc/tegra/tegra20_ac97.c
+10
-5
sound/soc/tegra/tegra20_i2s.c
sound/soc/tegra/tegra20_i2s.c
+10
-5
sound/soc/tegra/tegra20_spdif.c
sound/soc/tegra/tegra20_spdif.c
+10
-5
sound/soc/tegra/tegra30_i2s.c
sound/soc/tegra/tegra30_i2s.c
+10
-5
sound/soc/tegra/tegra_wm9712.c
sound/soc/tegra/tegra_wm9712.c
+1
-1
sound/soc/txx9/txx9aclc-ac97.c
sound/soc/txx9/txx9aclc-ac97.c
+7
-2
sound/soc/ux500/ux500_msp_dai.c
sound/soc/ux500/ux500_msp_dai.c
+9
-4
No files found.
include/sound/soc-dai.h
View file @
13419625
...
...
@@ -95,14 +95,6 @@ struct snd_soc_dai_driver;
struct
snd_soc_dai
;
struct
snd_ac97_bus_ops
;
/* Digital Audio Interface registration */
int
snd_soc_register_dai
(
struct
device
*
dev
,
struct
snd_soc_dai_driver
*
dai_drv
);
void
snd_soc_unregister_dai
(
struct
device
*
dev
);
int
snd_soc_register_dais
(
struct
device
*
dev
,
struct
snd_soc_dai_driver
*
dai_drv
,
size_t
count
);
void
snd_soc_unregister_dais
(
struct
device
*
dev
,
size_t
count
);
/* Digital Audio Interface clocking API.*/
int
snd_soc_dai_set_sysclk
(
struct
snd_soc_dai
*
dai
,
int
clk_id
,
unsigned
int
freq
,
int
dir
);
...
...
include/sound/soc.h
View file @
13419625
...
...
@@ -324,6 +324,8 @@ struct snd_soc_dai_link;
struct
snd_soc_platform_driver
;
struct
snd_soc_codec
;
struct
snd_soc_codec_driver
;
struct
snd_soc_component
;
struct
snd_soc_component_driver
;
struct
soc_enum
;
struct
snd_soc_jack
;
struct
snd_soc_jack_zone
;
...
...
@@ -377,6 +379,10 @@ int snd_soc_register_codec(struct device *dev,
const
struct
snd_soc_codec_driver
*
codec_drv
,
struct
snd_soc_dai_driver
*
dai_drv
,
int
num_dai
);
void
snd_soc_unregister_codec
(
struct
device
*
dev
);
int
snd_soc_register_component
(
struct
device
*
dev
,
const
struct
snd_soc_component_driver
*
cmpnt_drv
,
struct
snd_soc_dai_driver
*
dai_drv
,
int
num_dai
);
void
snd_soc_unregister_component
(
struct
device
*
dev
);
int
snd_soc_codec_volatile_register
(
struct
snd_soc_codec
*
codec
,
unsigned
int
reg
);
int
snd_soc_codec_readable_register
(
struct
snd_soc_codec
*
codec
,
...
...
@@ -841,6 +847,20 @@ struct snd_soc_platform {
#endif
};
struct
snd_soc_component_driver
{
const
char
*
name
;
};
struct
snd_soc_component
{
const
char
*
name
;
int
id
;
int
num_dai
;
struct
device
*
dev
;
struct
list_head
list
;
const
struct
snd_soc_component_driver
*
driver
;
};
struct
snd_soc_dai_link
{
/* config - must be set by machine driver */
const
char
*
name
;
/* Codec name */
...
...
sound/soc/atmel/atmel_ssc_dai.c
View file @
13419625
...
...
@@ -750,13 +750,18 @@ static struct snd_soc_dai_driver atmel_ssc_dai = {
.
ops
=
&
atmel_ssc_dai_ops
,
};
static
const
struct
snd_soc_component_driver
atmel_ssc_component
=
{
.
name
=
"atmel-ssc"
,
};
static
int
asoc_ssc_init
(
struct
device
*
dev
)
{
struct
platform_device
*
pdev
=
to_platform_device
(
dev
);
struct
ssc_device
*
ssc
=
platform_get_drvdata
(
pdev
);
int
ret
;
ret
=
snd_soc_register_dai
(
dev
,
&
atmel_ssc_dai
);
ret
=
snd_soc_register_component
(
dev
,
&
atmel_ssc_component
,
&
atmel_ssc_dai
,
1
);
if
(
ret
)
{
dev_err
(
dev
,
"Could not register DAI: %d
\n
"
,
ret
);
goto
err
;
...
...
@@ -775,7 +780,7 @@ static int asoc_ssc_init(struct device *dev)
return
0
;
err_unregister_dai:
snd_soc_unregister_
dai
(
dev
);
snd_soc_unregister_
component
(
dev
);
err:
return
ret
;
}
...
...
@@ -790,7 +795,7 @@ static void asoc_ssc_exit(struct device *dev)
else
atmel_pcm_pdc_platform_unregister
(
dev
);
snd_soc_unregister_
dai
(
dev
);
snd_soc_unregister_
component
(
dev
);
}
/**
...
...
sound/soc/au1x/ac97c.c
View file @
13419625
...
...
@@ -223,6 +223,10 @@ static struct snd_soc_dai_driver au1xac97c_dai_driver = {
.
ops
=
&
alchemy_ac97c_ops
,
};
static
const
struct
snd_soc_component_driver
au1xac97c_component
=
{
.
name
=
"au1xac97c"
,
};
static
int
au1xac97c_drvprobe
(
struct
platform_device
*
pdev
)
{
int
ret
;
...
...
@@ -268,7 +272,8 @@ static int au1xac97c_drvprobe(struct platform_device *pdev)
platform_set_drvdata
(
pdev
,
ctx
);
ret
=
snd_soc_register_dai
(
&
pdev
->
dev
,
&
au1xac97c_dai_driver
);
ret
=
snd_soc_register_component
(
&
pdev
->
dev
,
&
au1xac97c_component
,
&
au1xac97c_dai_driver
,
1
);
if
(
ret
)
return
ret
;
...
...
@@ -280,7 +285,7 @@ static int au1xac97c_drvremove(struct platform_device *pdev)
{
struct
au1xpsc_audio_data
*
ctx
=
platform_get_drvdata
(
pdev
);
snd_soc_unregister_
dai
(
&
pdev
->
dev
);
snd_soc_unregister_
component
(
&
pdev
->
dev
);
WR
(
ctx
,
AC97_ENABLE
,
EN_D
);
/* clock off, disable */
...
...
sound/soc/au1x/i2sc.c
View file @
13419625
...
...
@@ -225,6 +225,10 @@ static struct snd_soc_dai_driver au1xi2s_dai_driver = {
.
ops
=
&
au1xi2s_dai_ops
,
};
static
const
struct
snd_soc_component_driver
au1xi2s_component
=
{
.
name
=
"au1xi2s"
,
};
static
int
au1xi2s_drvprobe
(
struct
platform_device
*
pdev
)
{
struct
resource
*
iores
,
*
dmares
;
...
...
@@ -260,14 +264,15 @@ static int au1xi2s_drvprobe(struct platform_device *pdev)
platform_set_drvdata
(
pdev
,
ctx
);
return
snd_soc_register_dai
(
&
pdev
->
dev
,
&
au1xi2s_dai_driver
);
return
snd_soc_register_component
(
&
pdev
->
dev
,
&
au1xi2s_component
,
&
au1xi2s_dai_driver
,
1
);
}
static
int
au1xi2s_drvremove
(
struct
platform_device
*
pdev
)
{
struct
au1xpsc_audio_data
*
ctx
=
platform_get_drvdata
(
pdev
);
snd_soc_unregister_
dai
(
&
pdev
->
dev
);
snd_soc_unregister_
component
(
&
pdev
->
dev
);
WR
(
ctx
,
I2S_ENABLE
,
EN_D
);
/* clock off, disable */
...
...
sound/soc/au1x/psc-ac97.c
View file @
13419625
...
...
@@ -361,6 +361,10 @@ static const struct snd_soc_dai_driver au1xpsc_ac97_dai_template = {
.
ops
=
&
au1xpsc_ac97_dai_ops
,
};
static
const
struct
snd_soc_component_driver
au1xpsc_ac97_component
=
{
.
name
=
"au1xpsc-ac97"
,
};
static
int
au1xpsc_ac97_drvprobe
(
struct
platform_device
*
pdev
)
{
int
ret
;
...
...
@@ -419,7 +423,8 @@ static int au1xpsc_ac97_drvprobe(struct platform_device *pdev)
platform_set_drvdata
(
pdev
,
wd
);
ret
=
snd_soc_register_dai
(
&
pdev
->
dev
,
&
wd
->
dai_drv
);
ret
=
snd_soc_register_component
(
&
pdev
->
dev
,
&
au1xpsc_ac97_component
,
&
wd
->
dai_drv
,
1
);
if
(
ret
)
return
ret
;
...
...
@@ -431,7 +436,7 @@ static int au1xpsc_ac97_drvremove(struct platform_device *pdev)
{
struct
au1xpsc_audio_data
*
wd
=
platform_get_drvdata
(
pdev
);
snd_soc_unregister_
dai
(
&
pdev
->
dev
);
snd_soc_unregister_
component
(
&
pdev
->
dev
);
/* disable PSC completely */
au_writel
(
0
,
AC97_CFG
(
wd
));
...
...
sound/soc/au1x/psc-i2s.c
View file @
13419625
...
...
@@ -288,6 +288,10 @@ static const struct snd_soc_dai_driver au1xpsc_i2s_dai_template = {
.
ops
=
&
au1xpsc_i2s_dai_ops
,
};
static
const
struct
snd_soc_component_driver
au1xpsc_i2s_component
=
{
.
name
=
"au1xpsc-i2s"
,
};
static
int
au1xpsc_i2s_drvprobe
(
struct
platform_device
*
pdev
)
{
struct
resource
*
iores
,
*
dmares
;
...
...
@@ -350,14 +354,15 @@ static int au1xpsc_i2s_drvprobe(struct platform_device *pdev)
platform_set_drvdata
(
pdev
,
wd
);
return
snd_soc_register_dai
(
&
pdev
->
dev
,
&
wd
->
dai_drv
);
return
snd_soc_register_component
(
&
pdev
->
dev
,
&
au1xpsc_i2s_component
,
&
wd
->
dai_drv
,
1
);
}
static
int
au1xpsc_i2s_drvremove
(
struct
platform_device
*
pdev
)
{
struct
au1xpsc_audio_data
*
wd
=
platform_get_drvdata
(
pdev
);
snd_soc_unregister_
dai
(
&
pdev
->
dev
);
snd_soc_unregister_
component
(
&
pdev
->
dev
);
au_writel
(
0
,
I2S_CFG
(
wd
));
au_sync
();
...
...
sound/soc/blackfin/bf5xx-ac97.c
View file @
13419625
...
...
@@ -282,6 +282,10 @@ static struct snd_soc_dai_driver bfin_ac97_dai = {
.
formats
=
SNDRV_PCM_FMTBIT_S16_LE
,
},
};
static
const
struct
snd_soc_component_driver
bfin_ac97_component
=
{
.
name
=
"bfin-ac97"
,
};
static
int
asoc_bfin_ac97_probe
(
struct
platform_device
*
pdev
)
{
struct
sport_device
*
sport_handle
;
...
...
@@ -331,7 +335,8 @@ static int asoc_bfin_ac97_probe(struct platform_device *pdev)
goto
sport_config_err
;
}
ret
=
snd_soc_register_dai
(
&
pdev
->
dev
,
&
bfin_ac97_dai
);
ret
=
snd_soc_register_component
(
&
pdev
->
dev
,
&
bfin_ac97_component
,
&
bfin_ac97_dai
,
1
);
if
(
ret
)
{
pr_err
(
"Failed to register DAI: %d
\n
"
,
ret
);
goto
sport_config_err
;
...
...
@@ -356,7 +361,7 @@ static int asoc_bfin_ac97_remove(struct platform_device *pdev)
{
struct
sport_device
*
sport_handle
=
platform_get_drvdata
(
pdev
);
snd_soc_unregister_
dai
(
&
pdev
->
dev
);
snd_soc_unregister_
component
(
&
pdev
->
dev
);
sport_done
(
sport_handle
);
#ifdef CONFIG_SND_BF5XX_HAVE_COLD_RESET
gpio_free
(
CONFIG_SND_BF5XX_RESET_GPIO_NUM
);
...
...
sound/soc/blackfin/bf5xx-i2s.c
View file @
13419625
...
...
@@ -245,6 +245,10 @@ static struct snd_soc_dai_driver bf5xx_i2s_dai = {
.
ops
=
&
bf5xx_i2s_dai_ops
,
};
static
const
struct
snd_soc_component_driver
bf5xx_i2s_component
=
{
.
name
=
"bf5xx-i2s"
,
};
static
int
bf5xx_i2s_probe
(
struct
platform_device
*
pdev
)
{
struct
sport_device
*
sport_handle
;
...
...
@@ -257,7 +261,8 @@ static int bf5xx_i2s_probe(struct platform_device *pdev)
return
-
ENODEV
;
/* register with the ASoC layers */
ret
=
snd_soc_register_dai
(
&
pdev
->
dev
,
&
bf5xx_i2s_dai
);
ret
=
snd_soc_register_component
(
&
pdev
->
dev
,
&
bf5xx_i2s_component
,
&
bf5xx_i2s_dai
,
1
);
if
(
ret
)
{
pr_err
(
"Failed to register DAI: %d
\n
"
,
ret
);
sport_done
(
sport_handle
);
...
...
@@ -273,7 +278,7 @@ static int bf5xx_i2s_remove(struct platform_device *pdev)
pr_debug
(
"%s enter
\n
"
,
__func__
);
snd_soc_unregister_
dai
(
&
pdev
->
dev
);
snd_soc_unregister_
component
(
&
pdev
->
dev
);
sport_done
(
sport_handle
);
return
0
;
...
...
sound/soc/blackfin/bf5xx-tdm.c
View file @
13419625
...
...
@@ -249,6 +249,10 @@ static struct snd_soc_dai_driver bf5xx_tdm_dai = {
.
ops
=
&
bf5xx_tdm_dai_ops
,
};
static
const
struct
snd_soc_component_driver
bf5xx_tdm_component
=
{
.
name
=
"bf5xx-tdm"
,
};
static
int
bfin_tdm_probe
(
struct
platform_device
*
pdev
)
{
struct
sport_device
*
sport_handle
;
...
...
@@ -282,7 +286,8 @@ static int bfin_tdm_probe(struct platform_device *pdev)
goto
sport_config_err
;
}
ret
=
snd_soc_register_dai
(
&
pdev
->
dev
,
&
bf5xx_tdm_dai
);
ret
=
snd_soc_register_component
(
&
pdev
->
dev
,
&
bf5xx_tdm_component
,
&
bf5xx_tdm_dai
,
1
);
if
(
ret
)
{
pr_err
(
"Failed to register DAI: %d
\n
"
,
ret
);
goto
sport_config_err
;
...
...
@@ -299,7 +304,7 @@ static int bfin_tdm_remove(struct platform_device *pdev)
{
struct
sport_device
*
sport_handle
=
platform_get_drvdata
(
pdev
);
snd_soc_unregister_
dai
(
&
pdev
->
dev
);
snd_soc_unregister_
component
(
&
pdev
->
dev
);
sport_done
(
sport_handle
);
return
0
;
...
...
sound/soc/blackfin/bf6xx-i2s.c
View file @
13419625
...
...
@@ -186,6 +186,10 @@ static struct snd_soc_dai_driver bfin_i2s_dai = {
.
ops
=
&
bfin_i2s_dai_ops
,
};
static
const
struct
snd_soc_component_driver
bfin_i2s_component
=
{
.
name
=
"bfin-i2s"
,
};
static
int
bfin_i2s_probe
(
struct
platform_device
*
pdev
)
{
struct
sport_device
*
sport
;
...
...
@@ -197,7 +201,8 @@ static int bfin_i2s_probe(struct platform_device *pdev)
return
-
ENODEV
;
/* register with the ASoC layers */
ret
=
snd_soc_register_dai
(
dev
,
&
bfin_i2s_dai
);
ret
=
snd_soc_register_component
(
dev
,
&
bfin_i2s_component
,
&
bfin_i2s_dai
,
1
);
if
(
ret
)
{
dev_err
(
dev
,
"Failed to register DAI: %d
\n
"
,
ret
);
sport_delete
(
sport
);
...
...
@@ -212,7 +217,7 @@ static int bfin_i2s_remove(struct platform_device *pdev)
{
struct
sport_device
*
sport
=
platform_get_drvdata
(
pdev
);
snd_soc_unregister_
dai
(
&
pdev
->
dev
);
snd_soc_unregister_
component
(
&
pdev
->
dev
);
sport_delete
(
sport
);
return
0
;
...
...
sound/soc/cirrus/ep93xx-ac97.c
View file @
13419625
...
...
@@ -353,6 +353,10 @@ static struct snd_soc_dai_driver ep93xx_ac97_dai = {
.
ops
=
&
ep93xx_ac97_dai_ops
,
};
static
const
struct
snd_soc_component_driver
ep93xx_ac97_component
=
{
.
name
=
"ep93xx-ac97"
,
};
static
int
ep93xx_ac97_probe
(
struct
platform_device
*
pdev
)
{
struct
ep93xx_ac97_info
*
info
;
...
...
@@ -390,7 +394,8 @@ static int ep93xx_ac97_probe(struct platform_device *pdev)
ep93xx_ac97_info
=
info
;
platform_set_drvdata
(
pdev
,
info
);
ret
=
snd_soc_register_dai
(
&
pdev
->
dev
,
&
ep93xx_ac97_dai
);
ret
=
snd_soc_register_component
(
&
pdev
->
dev
,
&
ep93xx_ac97_component
,
&
ep93xx_ac97_dai
,
1
);
if
(
ret
)
goto
fail
;
...
...
@@ -407,7 +412,7 @@ static int ep93xx_ac97_remove(struct platform_device *pdev)
{
struct
ep93xx_ac97_info
*
info
=
platform_get_drvdata
(
pdev
);
snd_soc_unregister_
dai
(
&
pdev
->
dev
);
snd_soc_unregister_
component
(
&
pdev
->
dev
);
/* disable the AC97 controller */
ep93xx_ac97_write_reg
(
info
,
AC97GCR
,
0
);
...
...
sound/soc/cirrus/ep93xx-i2s.c
View file @
13419625
...
...
@@ -366,6 +366,10 @@ static struct snd_soc_dai_driver ep93xx_i2s_dai = {
.
ops
=
&
ep93xx_i2s_dai_ops
,
};
static
const
struct
snd_soc_component_driver
ep93xx_i2s_component
=
{
.
name
=
"ep93xx-i2s"
,
};
static
int
ep93xx_i2s_probe
(
struct
platform_device
*
pdev
)
{
struct
ep93xx_i2s_info
*
info
;
...
...
@@ -405,7 +409,8 @@ static int ep93xx_i2s_probe(struct platform_device *pdev)
dev_set_drvdata
(
&
pdev
->
dev
,
info
);
info
->
dma_params
=
ep93xx_i2s_dma_params
;
err
=
snd_soc_register_dai
(
&
pdev
->
dev
,
&
ep93xx_i2s_dai
);
err
=
snd_soc_register_component
(
&
pdev
->
dev
,
&
ep93xx_i2s_component
,
&
ep93xx_i2s_dai
,
1
);
if
(
err
)
goto
fail_put_lrclk
;
...
...
@@ -426,7 +431,7 @@ static int ep93xx_i2s_remove(struct platform_device *pdev)
{
struct
ep93xx_i2s_info
*
info
=
dev_get_drvdata
(
&
pdev
->
dev
);
snd_soc_unregister_
dai
(
&
pdev
->
dev
);
snd_soc_unregister_
component
(
&
pdev
->
dev
);
dev_set_drvdata
(
&
pdev
->
dev
,
NULL
);
clk_put
(
info
->
lrclk
);
clk_put
(
info
->
sclk
);
...
...
sound/soc/davinci/davinci-i2s.c
View file @
13419625
...
...
@@ -645,6 +645,10 @@ static struct snd_soc_dai_driver davinci_i2s_dai = {
};
static
const
struct
snd_soc_component_driver
davinci_i2s_component
=
{
.
name
=
"davinci-i2s"
,
};
static
int
davinci_i2s_probe
(
struct
platform_device
*
pdev
)
{
struct
snd_platform_data
*
pdata
=
pdev
->
dev
.
platform_data
;
...
...
@@ -727,20 +731,21 @@ static int davinci_i2s_probe(struct platform_device *pdev)
dev_set_drvdata
(
&
pdev
->
dev
,
dev
);
ret
=
snd_soc_register_dai
(
&
pdev
->
dev
,
&
davinci_i2s_dai
);
ret
=
snd_soc_register_component
(
&
pdev
->
dev
,
&
davinci_i2s_component
,
&
davinci_i2s_dai
,
1
);
if
(
ret
!=
0
)
goto
err_release_clk
;
ret
=
davinci_soc_platform_register
(
&
pdev
->
dev
);
if
(
ret
)
{
dev_err
(
&
pdev
->
dev
,
"register PCM failed: %d
\n
"
,
ret
);
goto
err_unregister_
dai
;
goto
err_unregister_
component
;
}
return
0
;
err_unregister_
dai
:
snd_soc_unregister_
dai
(
&
pdev
->
dev
);
err_unregister_
component
:
snd_soc_unregister_
component
(
&
pdev
->
dev
);
err_release_clk:
clk_disable
(
dev
->
clk
);
clk_put
(
dev
->
clk
);
...
...
@@ -751,7 +756,7 @@ static int davinci_i2s_remove(struct platform_device *pdev)
{
struct
davinci_mcbsp_dev
*
dev
=
dev_get_drvdata
(
&
pdev
->
dev
);
snd_soc_unregister_
dai
(
&
pdev
->
dev
);
snd_soc_unregister_
component
(
&
pdev
->
dev
);
davinci_soc_platform_unregister
(
&
pdev
->
dev
);
clk_disable
(
dev
->
clk
);
...
...
sound/soc/davinci/davinci-mcasp.c
View file @
13419625
...
...
@@ -962,6 +962,10 @@ static struct snd_soc_dai_driver davinci_mcasp_dai[] = {
};
static
const
struct
snd_soc_component_driver
davinci_mcasp_component
=
{
.
name
=
"davinci-mcasp"
,
};
static
const
struct
of_device_id
mcasp_dt_ids
[]
=
{
{
.
compatible
=
"ti,dm646x-mcasp-audio"
,
...
...
@@ -1170,7 +1174,8 @@ static int davinci_mcasp_probe(struct platform_device *pdev)
dma_data
->
channel
=
res
->
start
;
dev_set_drvdata
(
&
pdev
->
dev
,
dev
);
ret
=
snd_soc_register_dai
(
&
pdev
->
dev
,
&
davinci_mcasp_dai
[
pdata
->
op_mode
]);
ret
=
snd_soc_register_component
(
&
pdev
->
dev
,
&
davinci_mcasp_component
,
&
davinci_mcasp_dai
[
pdata
->
op_mode
],
1
);
if
(
ret
!=
0
)
goto
err_release_clk
;
...
...
@@ -1178,13 +1183,13 @@ static int davinci_mcasp_probe(struct platform_device *pdev)
ret
=
davinci_soc_platform_register
(
&
pdev
->
dev
);
if
(
ret
)
{
dev_err
(
&
pdev
->
dev
,
"register PCM failed: %d
\n
"
,
ret
);
goto
err_unregister_
dai
;
goto
err_unregister_
component
;
}
return
0
;
err_unregister_
dai
:
snd_soc_unregister_
dai
(
&
pdev
->
dev
);
err_unregister_
component
:
snd_soc_unregister_
component
(
&
pdev
->
dev
);
err_release_clk:
pm_runtime_put_sync
(
&
pdev
->
dev
);
pm_runtime_disable
(
&
pdev
->
dev
);
...
...
@@ -1194,7 +1199,7 @@ static int davinci_mcasp_probe(struct platform_device *pdev)
static
int
davinci_mcasp_remove
(
struct
platform_device
*
pdev
)
{
snd_soc_unregister_
dai
(
&
pdev
->
dev
);
snd_soc_unregister_
component
(
&
pdev
->
dev
);
davinci_soc_platform_unregister
(
&
pdev
->
dev
);
pm_runtime_put_sync
(
&
pdev
->
dev
);
...
...
sound/soc/davinci/davinci-vcif.c
View file @
13419625
...
...
@@ -204,6 +204,10 @@ static struct snd_soc_dai_driver davinci_vcif_dai = {
};
static
const
struct
snd_soc_component_driver
davinci_vcif_component
=
{
.
name
=
"davinci-vcif"
,
};
static
int
davinci_vcif_probe
(
struct
platform_device
*
pdev
)
{
struct
davinci_vc
*
davinci_vc
=
pdev
->
dev
.
platform_data
;
...
...
@@ -234,7 +238,8 @@ static int davinci_vcif_probe(struct platform_device *pdev)
dev_set_drvdata
(
&
pdev
->
dev
,
davinci_vcif_dev
);
ret
=
snd_soc_register_dai
(
&
pdev
->
dev
,
&
davinci_vcif_dai
);
ret
=
snd_soc_register_component
(
&
pdev
->
dev
,
&
davinci_vcif_component
,
&
davinci_vcif_dai
,
1
);
if
(
ret
!=
0
)
{
dev_err
(
&
pdev
->
dev
,
"could not register dai
\n
"
);
return
ret
;
...
...
@@ -243,7 +248,7 @@ static int davinci_vcif_probe(struct platform_device *pdev)
ret
=
davinci_soc_platform_register
(
&
pdev
->
dev
);
if
(
ret
)
{
dev_err
(
&
pdev
->
dev
,
"register PCM failed: %d
\n
"
,
ret
);
snd_soc_unregister_
dai
(
&
pdev
->
dev
);
snd_soc_unregister_
component
(
&
pdev
->
dev
);
return
ret
;
}
...
...
@@ -252,7 +257,7 @@ static int davinci_vcif_probe(struct platform_device *pdev)
static
int
davinci_vcif_remove
(
struct
platform_device
*
pdev
)
{
snd_soc_unregister_
dai
(
&
pdev
->
dev
);
snd_soc_unregister_
component
(
&
pdev
->
dev
);
davinci_soc_platform_unregister
(
&
pdev
->
dev
);
return
0
;
...
...
sound/soc/dwc/designware_i2s.c
View file @
13419625
...
...
@@ -297,6 +297,10 @@ static struct snd_soc_dai_ops dw_i2s_dai_ops = {
.
trigger
=
dw_i2s_trigger
,
};
static
const
struct
snd_soc_component_driver
dw_i2s_component
=
{
.
name
=
"dw-i2s"
,
};
#ifdef CONFIG_PM
static
int
dw_i2s_suspend
(
struct
snd_soc_dai
*
dai
)
...
...
@@ -413,7 +417,8 @@ static int dw_i2s_probe(struct platform_device *pdev)
dev
->
dev
=
&
pdev
->
dev
;
dev_set_drvdata
(
&
pdev
->
dev
,
dev
);
ret
=
snd_soc_register_dai
(
&
pdev
->
dev
,
dw_i2s_dai
);
ret
=
snd_soc_register_component
(
&
pdev
->
dev
,
&
dw_i2s_component
,
dw_i2s_dai
,
1
);
if
(
ret
!=
0
)
{
dev_err
(
&
pdev
->
dev
,
"not able to register dai
\n
"
);
goto
err_set_drvdata
;
...
...
@@ -434,7 +439,7 @@ static int dw_i2s_remove(struct platform_device *pdev)
{
struct
dw_i2s_dev
*
dev
=
dev_get_drvdata
(
&
pdev
->
dev
);
snd_soc_unregister_
dai
(
&
pdev
->
dev
);
snd_soc_unregister_
component
(
&
pdev
->
dev
);
dev_set_drvdata
(
&
pdev
->
dev
,
NULL
);
clk_put
(
dev
->
clk
);
...
...
sound/soc/fsl/fsl_ssi.c
View file @
13419625
...
...
@@ -574,6 +574,10 @@ static struct snd_soc_dai_driver fsl_ssi_dai_template = {
.
ops
=
&
fsl_ssi_dai_ops
,
};
static
const
struct
snd_soc_component_driver
fsl_ssi_component
=
{
.
name
=
"fsl-ssi"
,
};
/* Show the statistics of a flag only if its interrupt is enabled. The
* compiler will optimze this code to a no-op if the interrupt is not
* enabled.
...
...
@@ -782,7 +786,8 @@ static int fsl_ssi_probe(struct platform_device *pdev)
/* Register with ASoC */
dev_set_drvdata
(
&
pdev
->
dev
,
ssi_private
);
ret
=
snd_soc_register_dai
(
&
pdev
->
dev
,
&
ssi_private
->
cpu_dai_drv
);
ret
=
snd_soc_register_component
(
&
pdev
->
dev
,
&
fsl_ssi_component
,
&
ssi_private
->
cpu_dai_drv
,
1
);
if
(
ret
)
{
dev_err
(
&
pdev
->
dev
,
"failed to register DAI: %d
\n
"
,
ret
);
goto
error_dev
;
...
...
@@ -835,7 +840,7 @@ static int fsl_ssi_probe(struct platform_device *pdev)
error_dai:
if
(
ssi_private
->
ssi_on_imx
)
platform_device_unregister
(
ssi_private
->
imx_pcm_pdev
);
snd_soc_unregister_
dai
(
&
pdev
->
dev
);
snd_soc_unregister_
component
(
&
pdev
->
dev
);
error_dev:
dev_set_drvdata
(
&
pdev
->
dev
,
NULL
);
...
...
@@ -873,7 +878,7 @@ static int fsl_ssi_remove(struct platform_device *pdev)
clk_disable_unprepare
(
ssi_private
->
clk
);
clk_put
(
ssi_private
->
clk
);
}
snd_soc_unregister_
dai
(
&
pdev
->
dev
);
snd_soc_unregister_
component
(
&
pdev
->
dev
);
device_remove_file
(
&
pdev
->
dev
,
&
ssi_private
->
dev_attr
);
free_irq
(
ssi_private
->
irq
,
ssi_private
);
...
...
sound/soc/fsl/imx-ssi.c
View file @
13419625
...
...
@@ -413,6 +413,10 @@ static struct snd_soc_dai_driver imx_ac97_dai = {
.
ops
=
&
imx_ssi_pcm_dai_ops
,
};
static
const
struct
snd_soc_component_driver
imx_component
=
{
.
name
=
DRV_NAME
,
};
static
void
setup_channel_to_ac97
(
struct
imx_ssi
*
imx_ssi
)
{
void
__iomem
*
base
=
imx_ssi
->
base
;
...
...
@@ -591,7 +595,8 @@ static int imx_ssi_probe(struct platform_device *pdev)
platform_set_drvdata
(
pdev
,
ssi
);
ret
=
snd_soc_register_dai
(
&
pdev
->
dev
,
dai
);
ret
=
snd_soc_register_component
(
&
pdev
->
dev
,
&
imx_component
,
dai
,
1
);
if
(
ret
)
{
dev_err
(
&
pdev
->
dev
,
"register DAI failed
\n
"
);
goto
failed_register
;
...
...
@@ -632,7 +637,7 @@ static int imx_ssi_probe(struct platform_device *pdev)
failed_pdev_fiq_add:
platform_device_put
(
ssi
->
soc_platform_pdev_fiq
);
failed_pdev_fiq_alloc:
snd_soc_unregister_
dai
(
&
pdev
->
dev
);
snd_soc_unregister_
component
(
&
pdev
->
dev
);
failed_register:
release_mem_region
(
res
->
start
,
resource_size
(
res
));
failed_get_resource:
...
...
@@ -650,7 +655,7 @@ static int imx_ssi_remove(struct platform_device *pdev)
platform_device_unregister
(
ssi
->
soc_platform_pdev
);
platform_device_unregister
(
ssi
->
soc_platform_pdev_fiq
);
snd_soc_unregister_
dai
(
&
pdev
->
dev
);
snd_soc_unregister_
component
(
&
pdev
->
dev
);
if
(
ssi
->
flags
&
IMX_SSI_USE_AC97
)
ac97_ssi
=
NULL
;
...
...
sound/soc/fsl/mpc5200_psc_ac97.c
View file @
13419625
...
...
@@ -270,6 +270,9 @@ static struct snd_soc_dai_driver psc_ac97_dai[] = {
.
ops
=
&
psc_ac97_digital_ops
,
}
};
static
const
struct
snd_soc_component_driver
psc_ac97_component
=
{
.
name
=
DRV_NAME
,
};
/* ---------------------------------------------------------------------
...
...
@@ -287,7 +290,8 @@ static int psc_ac97_of_probe(struct platform_device *op)
if
(
rc
!=
0
)
return
rc
;
rc
=
snd_soc_register_dais
(
&
op
->
dev
,
psc_ac97_dai
,
ARRAY_SIZE
(
psc_ac97_dai
));
rc
=
snd_soc_register_component
(
&
op
->
dev
,
&
psc_ac97_component
,
psc_ac97_dai
,
ARRAY_SIZE
(
psc_ac97_dai
));
if
(
rc
!=
0
)
{
dev_err
(
&
op
->
dev
,
"Failed to register DAI
\n
"
);
return
rc
;
...
...
@@ -313,7 +317,7 @@ static int psc_ac97_of_probe(struct platform_device *op)
static
int
psc_ac97_of_remove
(
struct
platform_device
*
op
)
{
mpc5200_audio_dma_destroy
(
op
);
snd_soc_unregister_
dais
(
&
op
->
dev
,
ARRAY_SIZE
(
psc_ac97_dai
)
);
snd_soc_unregister_
component
(
&
op
->
dev
);
return
0
;
}
...
...
sound/soc/fsl/mpc5200_psc_i2s.c
View file @
13419625
...
...
@@ -148,6 +148,10 @@ static struct snd_soc_dai_driver psc_i2s_dai[] = {{
.
ops
=
&
psc_i2s_dai_ops
,
}
};
static
const
struct
snd_soc_component_driver
psc_i2s_component
=
{
.
name
=
"mpc5200-i2s"
,
};
/* ---------------------------------------------------------------------
* OF platform bus binding code:
* - Probe/remove operations
...
...
@@ -163,7 +167,8 @@ static int psc_i2s_of_probe(struct platform_device *op)
if
(
rc
!=
0
)
return
rc
;
rc
=
snd_soc_register_dais
(
&
op
->
dev
,
psc_i2s_dai
,
ARRAY_SIZE
(
psc_i2s_dai
));
rc
=
snd_soc_register_component
(
&
op
->
dev
,
&
psc_i2s_component
,
psc_i2s_dai
,
ARRAY_SIZE
(
psc_i2s_dai
));
if
(
rc
!=
0
)
{
pr_err
(
"Failed to register DAI
\n
"
);
return
rc
;
...
...
@@ -208,7 +213,7 @@ static int psc_i2s_of_probe(struct platform_device *op)
static
int
psc_i2s_of_remove
(
struct
platform_device
*
op
)
{
mpc5200_audio_dma_destroy
(
op
);
snd_soc_unregister_
dais
(
&
op
->
dev
,
ARRAY_SIZE
(
psc_i2s_dai
)
);
snd_soc_unregister_
component
(
&
op
->
dev
);
return
0
;
}
...
...
sound/soc/jz4740/jz4740-i2s.c
View file @
13419625
...
...
@@ -425,6 +425,10 @@ static struct snd_soc_dai_driver jz4740_i2s_dai = {
.
resume
=
jz4740_i2s_resume
,
};
static
const
struct
snd_soc_component_driver
jz4740_i2s_component
=
{
.
name
=
"jz4740-i2s"
,
};
static
int
jz4740_i2s_dev_probe
(
struct
platform_device
*
pdev
)
{
struct
jz4740_i2s
*
i2s
;
...
...
@@ -469,7 +473,8 @@ static int jz4740_i2s_dev_probe(struct platform_device *pdev)
}
platform_set_drvdata
(
pdev
,
i2s
);
ret
=
snd_soc_register_dai
(
&
pdev
->
dev
,
&
jz4740_i2s_dai
);
ret
=
snd_soc_register_component
(
&
pdev
->
dev
,
&
jz4740_i2s_component
,
&
jz4740_i2s_dai
,
1
);
if
(
ret
)
{
dev_err
(
&
pdev
->
dev
,
"Failed to register DAI
\n
"
);
...
...
@@ -496,7 +501,7 @@ static int jz4740_i2s_dev_remove(struct platform_device *pdev)
{
struct
jz4740_i2s
*
i2s
=
platform_get_drvdata
(
pdev
);
snd_soc_unregister_
dai
(
&
pdev
->
dev
);
snd_soc_unregister_
component
(
&
pdev
->
dev
);
clk_put
(
i2s
->
clk_i2s
);
clk_put
(
i2s
->
clk_aic
);
...
...
sound/soc/kirkwood/kirkwood-i2s.c
View file @
13419625
...
...
@@ -451,6 +451,10 @@ static struct snd_soc_dai_driver kirkwood_i2s_dai_extclk = {
.
ops
=
&
kirkwood_i2s_dai_ops
,
};
static
const
struct
snd_soc_component_driver
kirkwood_i2s_component
=
{
.
name
=
DRV_NAME
,
};
static
int
kirkwood_i2s_dev_probe
(
struct
platform_device
*
pdev
)
{
struct
kirkwood_asoc_platform_data
*
data
=
pdev
->
dev
.
platform_data
;
...
...
@@ -524,10 +528,11 @@ static int kirkwood_i2s_dev_probe(struct platform_device *pdev)
priv
->
ctl_rec
|=
KIRKWOOD_RECCTL_BURST_128
;
}
err
=
snd_soc_register_dai
(
&
pdev
->
dev
,
soc_dai
);
err
=
snd_soc_register_component
(
&
pdev
->
dev
,
&
kirkwood_i2s_component
,
soc_dai
,
1
);
if
(
!
err
)
return
0
;
dev_err
(
&
pdev
->
dev
,
"snd_soc_register_
dai
failed
\n
"
);
dev_err
(
&
pdev
->
dev
,
"snd_soc_register_
component
failed
\n
"
);
if
(
!
IS_ERR
(
priv
->
extclk
))
{
clk_disable_unprepare
(
priv
->
extclk
);
...
...
@@ -542,7 +547,7 @@ static int kirkwood_i2s_dev_remove(struct platform_device *pdev)
{
struct
kirkwood_dma_data
*
priv
=
dev_get_drvdata
(
&
pdev
->
dev
);
snd_soc_unregister_
dai
(
&
pdev
->
dev
);
snd_soc_unregister_
component
(
&
pdev
->
dev
);
if
(
!
IS_ERR
(
priv
->
extclk
))
{
clk_disable_unprepare
(
priv
->
extclk
);
...
...
sound/soc/mid-x86/sst_platform.c
View file @
13419625
...
...
@@ -165,6 +165,10 @@ static struct snd_soc_dai_driver sst_platform_dai[] = {
},
};
static
const
struct
snd_soc_component_driver
sst_component
=
{
.
name
=
"sst"
,
};
/* helper functions */
static
inline
void
sst_set_stream_status
(
struct
sst_runtime_stream
*
stream
,
int
state
)
...
...
@@ -683,7 +687,7 @@ static int sst_platform_probe(struct platform_device *pdev)
return
ret
;
}
ret
=
snd_soc_register_
dais
(
&
pdev
->
dev
,
ret
=
snd_soc_register_
component
(
&
pdev
->
dev
,
&
sst_component
,
sst_platform_dai
,
ARRAY_SIZE
(
sst_platform_dai
));
if
(
ret
)
{
pr_err
(
"registering cpu dais failed
\n
"
);
...
...
@@ -695,7 +699,7 @@ static int sst_platform_probe(struct platform_device *pdev)
static
int
sst_platform_remove
(
struct
platform_device
*
pdev
)
{
snd_soc_unregister_
dais
(
&
pdev
->
dev
,
ARRAY_SIZE
(
sst_platform_dai
)
);
snd_soc_unregister_
component
(
&
pdev
->
dev
);
snd_soc_unregister_platform
(
&
pdev
->
dev
);
pr_debug
(
"sst_platform_remove success
\n
"
);
return
0
;
...
...
sound/soc/mxs/mxs-saif.c
View file @
13419625
...
...
@@ -627,6 +627,10 @@ static struct snd_soc_dai_driver mxs_saif_dai = {
.
ops
=
&
mxs_saif_dai_ops
,
};
static
const
struct
snd_soc_component_driver
mxs_saif_component
=
{
.
name
=
"mxs-saif"
,
};
static
irqreturn_t
mxs_saif_irq
(
int
irq
,
void
*
dev_id
)
{
struct
mxs_saif
*
saif
=
dev_id
;
...
...
@@ -763,7 +767,8 @@ static int mxs_saif_probe(struct platform_device *pdev)
platform_set_drvdata
(
pdev
,
saif
);
ret
=
snd_soc_register_dai
(
&
pdev
->
dev
,
&
mxs_saif_dai
);
ret
=
snd_soc_register_component
(
&
pdev
->
dev
,
&
mxs_saif_component
,
&
mxs_saif_dai
,
1
);
if
(
ret
)
{
dev_err
(
&
pdev
->
dev
,
"register DAI failed
\n
"
);
return
ret
;
...
...
@@ -778,7 +783,7 @@ static int mxs_saif_probe(struct platform_device *pdev)
return
0
;
failed_pdev_alloc:
snd_soc_unregister_
dai
(
&
pdev
->
dev
);
snd_soc_unregister_
component
(
&
pdev
->
dev
);
return
ret
;
}
...
...
@@ -786,7 +791,7 @@ static int mxs_saif_probe(struct platform_device *pdev)
static
int
mxs_saif_remove
(
struct
platform_device
*
pdev
)
{
mxs_pcm_platform_unregister
(
&
pdev
->
dev
);
snd_soc_unregister_
dai
(
&
pdev
->
dev
);
snd_soc_unregister_
component
(
&
pdev
->
dev
);
return
0
;
}
...
...
sound/soc/nuc900/nuc900-ac97.c
View file @
13419625
...
...
@@ -314,6 +314,10 @@ static struct snd_soc_dai_driver nuc900_ac97_dai = {
.
ops
=
&
nuc900_ac97_dai_ops
,
};
static
const
struct
snd_soc_component_driver
nuc900_ac97_component
=
{
.
name
=
"nuc900-ac97"
,
};
static
int
nuc900_ac97_drvprobe
(
struct
platform_device
*
pdev
)
{
struct
nuc900_audio
*
nuc900_audio
;
...
...
@@ -361,7 +365,8 @@ static int nuc900_ac97_drvprobe(struct platform_device *pdev)
nuc900_ac97_data
=
nuc900_audio
;
ret
=
snd_soc_register_dai
(
&
pdev
->
dev
,
&
nuc900_ac97_dai
);
ret
=
snd_soc_register_component
(
&
pdev
->
dev
,
&
nuc900_ac97_component
,
&
nuc900_ac97_dai
,
1
);
if
(
ret
)
goto
out3
;
...
...
@@ -384,7 +389,7 @@ static int nuc900_ac97_drvprobe(struct platform_device *pdev)
static
int
nuc900_ac97_drvremove
(
struct
platform_device
*
pdev
)
{
snd_soc_unregister_
dai
(
&
pdev
->
dev
);
snd_soc_unregister_
component
(
&
pdev
->
dev
);
clk_put
(
nuc900_ac97_data
->
clk
);
iounmap
(
nuc900_ac97_data
->
mmio
);
...
...
sound/soc/omap/omap-dmic.c
View file @
13419625
...
...
@@ -448,6 +448,10 @@ static struct snd_soc_dai_driver omap_dmic_dai = {
.
ops
=
&
omap_dmic_dai_ops
,
};
static
const
struct
snd_soc_component_driver
omap_dmic_component
=
{
.
name
=
"omap-dmic"
,
};
static
int
asoc_dmic_probe
(
struct
platform_device
*
pdev
)
{
struct
omap_dmic
*
dmic
;
...
...
@@ -507,7 +511,8 @@ static int asoc_dmic_probe(struct platform_device *pdev)
goto
err_put_clk
;
}
ret
=
snd_soc_register_dai
(
&
pdev
->
dev
,
&
omap_dmic_dai
);
ret
=
snd_soc_register_component
(
&
pdev
->
dev
,
&
omap_dmic_component
,
&
omap_dmic_dai
,
1
);
if
(
ret
)
goto
err_put_clk
;
...
...
@@ -522,7 +527,7 @@ static int asoc_dmic_remove(struct platform_device *pdev)
{
struct
omap_dmic
*
dmic
=
platform_get_drvdata
(
pdev
);
snd_soc_unregister_
dai
(
&
pdev
->
dev
);
snd_soc_unregister_
component
(
&
pdev
->
dev
);
clk_put
(
dmic
->
fclk
);
return
0
;
...
...
sound/soc/omap/omap-hdmi.c
View file @
13419625
...
...
@@ -264,6 +264,10 @@ static struct snd_soc_dai_driver omap_hdmi_dai = {
.
ops
=
&
omap_hdmi_dai_ops
,
};
static
const
struct
snd_soc_component_driver
omap_hdmi_component
=
{
.
name
=
DRV_NAME
,
};
static
int
omap_hdmi_probe
(
struct
platform_device
*
pdev
)
{
int
ret
;
...
...
@@ -321,7 +325,8 @@ static int omap_hdmi_probe(struct platform_device *pdev)
}
dev_set_drvdata
(
&
pdev
->
dev
,
hdmi_data
);
ret
=
snd_soc_register_dai
(
&
pdev
->
dev
,
&
omap_hdmi_dai
);
ret
=
snd_soc_register_component
(
&
pdev
->
dev
,
&
omap_hdmi_component
,
&
omap_hdmi_dai
,
1
);
return
ret
;
}
...
...
@@ -330,7 +335,7 @@ static int omap_hdmi_remove(struct platform_device *pdev)
{
struct
hdmi_priv
*
hdmi_data
=
dev_get_drvdata
(
&
pdev
->
dev
);
snd_soc_unregister_
dai
(
&
pdev
->
dev
);
snd_soc_unregister_
component
(
&
pdev
->
dev
);
if
(
hdmi_data
==
NULL
)
{
dev_err
(
&
pdev
->
dev
,
"cannot obtain HDMi data
\n
"
);
...
...
sound/soc/omap/omap-mcbsp.c
View file @
13419625
...
...
@@ -586,6 +586,10 @@ static struct snd_soc_dai_driver omap_mcbsp_dai = {
.
ops
=
&
mcbsp_dai_ops
,
};
static
const
struct
snd_soc_component_driver
omap_mcbsp_component
=
{
.
name
=
"omap-mcbsp"
,
};
static
int
omap_mcbsp_st_info_volsw
(
struct
snd_kcontrol
*
kcontrol
,
struct
snd_ctl_elem_info
*
uinfo
)
{
...
...
@@ -793,7 +797,8 @@ static int asoc_mcbsp_probe(struct platform_device *pdev)
ret
=
omap_mcbsp_init
(
pdev
);
if
(
!
ret
)
return
snd_soc_register_dai
(
&
pdev
->
dev
,
&
omap_mcbsp_dai
);
return
snd_soc_register_component
(
&
pdev
->
dev
,
&
omap_mcbsp_component
,
&
omap_mcbsp_dai
,
1
);
return
ret
;
}
...
...
@@ -802,7 +807,7 @@ static int asoc_mcbsp_remove(struct platform_device *pdev)
{
struct
omap_mcbsp
*
mcbsp
=
platform_get_drvdata
(
pdev
);
snd_soc_unregister_
dai
(
&
pdev
->
dev
);
snd_soc_unregister_
component
(
&
pdev
->
dev
);
if
(
mcbsp
->
pdata
->
ops
&&
mcbsp
->
pdata
->
ops
->
free
)
mcbsp
->
pdata
->
ops
->
free
(
mcbsp
->
id
);
...
...
sound/soc/omap/omap-mcpdm.c
View file @
13419625
...
...
@@ -420,6 +420,10 @@ static struct snd_soc_dai_driver omap_mcpdm_dai = {
.
ops
=
&
omap_mcpdm_dai_ops
,
};
static
const
struct
snd_soc_component_driver
omap_mcpdm_component
=
{
.
name
=
"omap-mcpdm"
,
};
void
omap_mcpdm_configure_dn_offsets
(
struct
snd_soc_pcm_runtime
*
rtd
,
u8
rx1
,
u8
rx2
)
{
...
...
@@ -480,12 +484,13 @@ static int asoc_mcpdm_probe(struct platform_device *pdev)
mcpdm
->
dev
=
&
pdev
->
dev
;
return
snd_soc_register_dai
(
&
pdev
->
dev
,
&
omap_mcpdm_dai
);
return
snd_soc_register_component
(
&
pdev
->
dev
,
&
omap_mcpdm_component
,
&
omap_mcpdm_dai
,
1
);
}
static
int
asoc_mcpdm_remove
(
struct
platform_device
*
pdev
)
{
snd_soc_unregister_
dai
(
&
pdev
->
dev
);
snd_soc_unregister_
component
(
&
pdev
->
dev
);
return
0
;
}
...
...
sound/soc/pxa/mmp-sspa.c
View file @
13419625
...
...
@@ -405,6 +405,10 @@ struct snd_soc_dai_driver mmp_sspa_dai = {
.
ops
=
&
mmp_sspa_dai_ops
,
};
static
const
struct
snd_soc_component_driver
mmp_sspa_component
=
{
.
name
=
"mmp-sspa"
,
};
static
int
asoc_mmp_sspa_probe
(
struct
platform_device
*
pdev
)
{
struct
sspa_priv
*
priv
;
...
...
@@ -450,7 +454,8 @@ static int asoc_mmp_sspa_probe(struct platform_device *pdev)
priv
->
dai_fmt
=
(
unsigned
int
)
-
1
;
platform_set_drvdata
(
pdev
,
priv
);
return
snd_soc_register_dai
(
&
pdev
->
dev
,
&
mmp_sspa_dai
);
return
snd_soc_register_component
(
&
pdev
->
dev
,
&
mmp_sspa_component
,
&
mmp_sspa_dai
,
1
);
}
static
int
asoc_mmp_sspa_remove
(
struct
platform_device
*
pdev
)
...
...
@@ -460,7 +465,7 @@ static int asoc_mmp_sspa_remove(struct platform_device *pdev)
clk_disable
(
priv
->
audio_clk
);
clk_put
(
priv
->
audio_clk
);
clk_put
(
priv
->
sysclk
);
snd_soc_unregister_
dai
(
&
pdev
->
dev
);
snd_soc_unregister_
component
(
&
pdev
->
dev
);
return
0
;
}
...
...
sound/soc/pxa/pxa-ssp.c
View file @
13419625
...
...
@@ -794,14 +794,19 @@ static struct snd_soc_dai_driver pxa_ssp_dai = {
.
ops
=
&
pxa_ssp_dai_ops
,
};
static
const
struct
snd_soc_component_driver
pxa_ssp_component
=
{
.
name
=
"pxa-ssp"
,
};
static
int
asoc_ssp_probe
(
struct
platform_device
*
pdev
)
{
return
snd_soc_register_dai
(
&
pdev
->
dev
,
&
pxa_ssp_dai
);
return
snd_soc_register_component
(
&
pdev
->
dev
,
&
pxa_ssp_component
,
&
pxa_ssp_dai
,
1
);
}
static
int
asoc_ssp_remove
(
struct
platform_device
*
pdev
)
{
snd_soc_unregister_
dai
(
&
pdev
->
dev
);
snd_soc_unregister_
component
(
&
pdev
->
dev
);
return
0
;
}
...
...
sound/soc/pxa/pxa2xx-ac97.c
View file @
13419625
...
...
@@ -47,6 +47,7 @@ struct snd_ac97_bus_ops soc_ac97_ops = {
.
warm_reset
=
pxa2xx_ac97_warm_reset
,
.
reset
=
pxa2xx_ac97_cold_reset
,
};
EXPORT_SYMBOL_GPL
(
soc_ac97_ops
);
static
struct
pxa2xx_pcm_dma_params
pxa2xx_ac97_pcm_stereo_out
=
{
.
name
=
"AC97 PCM Stereo out"
,
...
...
@@ -232,7 +233,9 @@ static struct snd_soc_dai_driver pxa_ac97_dai_driver[] = {
},
};
EXPORT_SYMBOL_GPL
(
soc_ac97_ops
);
static
const
struct
snd_soc_component_driver
pxa_ac97_component
=
{
.
name
=
"pxa-ac97"
,
};
static
int
pxa2xx_ac97_dev_probe
(
struct
platform_device
*
pdev
)
{
...
...
@@ -245,13 +248,13 @@ static int pxa2xx_ac97_dev_probe(struct platform_device *pdev)
* driver to do interesting things with the clocking to get us up
* and running.
*/
return
snd_soc_register_
dais
(
&
pdev
->
dev
,
pxa_ac97_dai_driver
,
ARRAY_SIZE
(
pxa_ac97_dai_driver
));
return
snd_soc_register_
component
(
&
pdev
->
dev
,
&
pxa_ac97_component
,
pxa_ac97_dai_driver
,
ARRAY_SIZE
(
pxa_ac97_dai_driver
));
}
static
int
pxa2xx_ac97_dev_remove
(
struct
platform_device
*
pdev
)
{
snd_soc_unregister_
dais
(
&
pdev
->
dev
,
ARRAY_SIZE
(
pxa_ac97_dai_driver
)
);
snd_soc_unregister_
component
(
&
pdev
->
dev
);
return
0
;
}
...
...
sound/soc/pxa/pxa2xx-i2s.c
View file @
13419625
...
...
@@ -360,14 +360,19 @@ static struct snd_soc_dai_driver pxa_i2s_dai = {
.
symmetric_rates
=
1
,
};
static
const
struct
snd_soc_component_driver
pxa_i2s_component
=
{
.
name
=
"pxa-i2s"
,
};
static
int
pxa2xx_i2s_drv_probe
(
struct
platform_device
*
pdev
)
{
return
snd_soc_register_dai
(
&
pdev
->
dev
,
&
pxa_i2s_dai
);
return
snd_soc_register_component
(
&
pdev
->
dev
,
&
pxa_i2s_component
,
&
pxa_i2s_dai
,
1
);
}
static
int
pxa2xx_i2s_drv_remove
(
struct
platform_device
*
pdev
)
{
snd_soc_unregister_
dai
(
&
pdev
->
dev
);
snd_soc_unregister_
component
(
&
pdev
->
dev
);
return
0
;
}
...
...
sound/soc/s6000/s6000-i2s.c
View file @
13419625
...
...
@@ -436,6 +436,10 @@ static struct snd_soc_dai_driver s6000_i2s_dai = {
.
ops
=
&
s6000_i2s_dai_ops
,
};
static
const
struct
snd_soc_component_driver
s6000_i2s_component
=
{
.
name
=
"s6000-i2s"
,
};
static
int
s6000_i2s_probe
(
struct
platform_device
*
pdev
)
{
struct
s6000_i2s_dev
*
dev
;
...
...
@@ -543,7 +547,8 @@ static int s6000_i2s_probe(struct platform_device *pdev)
S6_I2S_INT_UNDERRUN
|
S6_I2S_INT_OVERRUN
);
ret
=
snd_soc_register_dai
(
&
pdev
->
dev
,
&
s6000_i2s_dai
);
ret
=
snd_soc_register_component
(
&
pdev
->
dev
,
&
s6000_i2s_component
,
&
s6000_i2s_dai
,
1
);
if
(
ret
)
goto
err_release_dev
;
...
...
@@ -572,7 +577,7 @@ static void s6000_i2s_remove(struct platform_device *pdev)
struct
resource
*
region
;
void
__iomem
*
mmio
=
dev
->
scbbase
;
snd_soc_unregister_
dai
(
&
pdev
->
dev
);
snd_soc_unregister_
component
(
&
pdev
->
dev
);
s6000_i2s_stop_channel
(
dev
,
0
);
s6000_i2s_stop_channel
(
dev
,
1
);
...
...
sound/soc/samsung/ac97.c
View file @
13419625
...
...
@@ -370,6 +370,10 @@ static struct snd_soc_dai_driver s3c_ac97_dai[] = {
},
};
static
const
struct
snd_soc_component_driver
s3c_ac97_component
=
{
.
name
=
"s3c-ac97"
,
};
static
int
s3c_ac97_probe
(
struct
platform_device
*
pdev
)
{
struct
resource
*
mem_res
,
*
dmatx_res
,
*
dmarx_res
,
*
dmamic_res
,
*
irq_res
;
...
...
@@ -457,8 +461,8 @@ static int s3c_ac97_probe(struct platform_device *pdev)
goto
err4
;
}
ret
=
snd_soc_register_
dais
(
&
pdev
->
dev
,
s3c_ac97_dai
,
ARRAY_SIZE
(
s3c_ac97_dai
));
ret
=
snd_soc_register_
component
(
&
pdev
->
dev
,
&
s3c_ac97_component
,
s3c_ac97_dai
,
ARRAY_SIZE
(
s3c_ac97_dai
));
if
(
ret
)
goto
err5
;
...
...
@@ -470,7 +474,7 @@ static int s3c_ac97_probe(struct platform_device *pdev)
return
0
;
err6:
snd_soc_unregister_
dais
(
&
pdev
->
dev
,
ARRAY_SIZE
(
s3c_ac97_dai
)
);
snd_soc_unregister_
component
(
&
pdev
->
dev
);
err5:
free_irq
(
irq_res
->
start
,
NULL
);
err4:
...
...
@@ -490,7 +494,7 @@ static int s3c_ac97_remove(struct platform_device *pdev)
struct
resource
*
mem_res
,
*
irq_res
;
asoc_dma_platform_unregister
(
&
pdev
->
dev
);
snd_soc_unregister_
dais
(
&
pdev
->
dev
,
ARRAY_SIZE
(
s3c_ac97_dai
)
);
snd_soc_unregister_
component
(
&
pdev
->
dev
);
irq_res
=
platform_get_resource
(
pdev
,
IORESOURCE_IRQ
,
0
);
if
(
irq_res
)
...
...
sound/soc/samsung/goni_wm8994.c
View file @
13419625
...
...
@@ -218,6 +218,10 @@ static struct snd_soc_dai_driver voice_dai = {
.
formats
=
SNDRV_PCM_FMTBIT_S16_LE
,},
};
static
const
struct
snd_soc_component_driver
voice_component
=
{
.
name
=
"goni-voice"
,
};
static
struct
snd_soc_ops
goni_voice_ops
=
{
.
hw_params
=
goni_voice_hw_params
,
};
...
...
@@ -270,7 +274,8 @@ static int __init goni_init(void)
return
-
ENOMEM
;
/* register voice DAI here */
ret
=
snd_soc_register_dai
(
&
goni_snd_device
->
dev
,
&
voice_dai
);
ret
=
snd_soc_register_component
(
&
goni_snd_device
->
dev
,
&
voice_component
,
&
voice_dai
,
1
);
if
(
ret
)
{
platform_device_put
(
goni_snd_device
);
return
ret
;
...
...
@@ -280,7 +285,7 @@ static int __init goni_init(void)
ret
=
platform_device_add
(
goni_snd_device
);
if
(
ret
)
{
snd_soc_unregister_
dai
(
&
goni_snd_device
->
dev
);
snd_soc_unregister_
component
(
&
goni_snd_device
->
dev
);
platform_device_put
(
goni_snd_device
);
}
...
...
@@ -289,7 +294,7 @@ static int __init goni_init(void)
static
void
__exit
goni_exit
(
void
)
{
snd_soc_unregister_
dai
(
&
goni_snd_device
->
dev
);
snd_soc_unregister_
component
(
&
goni_snd_device
->
dev
);
platform_device_unregister
(
goni_snd_device
);
}
...
...
sound/soc/samsung/i2s.c
View file @
13419625
...
...
@@ -963,6 +963,10 @@ static const struct snd_soc_dai_ops samsung_i2s_dai_ops = {
.
delay
=
i2s_delay
,
};
static
const
struct
snd_soc_component_driver
samsung_i2s_component
=
{
.
name
=
"samsung-i2s"
,
};
#define SAMSUNG_I2S_RATES SNDRV_PCM_RATE_8000_96000
#define SAMSUNG_I2S_FMTS (SNDRV_PCM_FMTBIT_S8 | \
...
...
@@ -1114,8 +1118,9 @@ static int samsung_i2s_probe(struct platform_device *pdev)
dev_err
(
&
pdev
->
dev
,
"Unable to get drvdata
\n
"
);
return
-
EFAULT
;
}
snd_soc_register_dai
(
&
sec_dai
->
pdev
->
dev
,
&
sec_dai
->
i2s_dai_drv
);
snd_soc_register_component
(
&
sec_dai
->
pdev
->
dev
,
&
samsung_i2s_component
,
&
sec_dai
->
i2s_dai_drv
,
1
);
asoc_dma_platform_register
(
&
pdev
->
dev
);
return
0
;
}
...
...
@@ -1244,7 +1249,8 @@ static int samsung_i2s_probe(struct platform_device *pdev)
}
}
snd_soc_register_dai
(
&
pri_dai
->
pdev
->
dev
,
&
pri_dai
->
i2s_dai_drv
);
snd_soc_register_component
(
&
pri_dai
->
pdev
->
dev
,
&
samsung_i2s_component
,
&
pri_dai
->
i2s_dai_drv
,
1
);
pm_runtime_enable
(
&
pdev
->
dev
);
...
...
@@ -1283,7 +1289,7 @@ static int samsung_i2s_remove(struct platform_device *pdev)
i2s
->
sec_dai
=
NULL
;
asoc_dma_platform_unregister
(
&
pdev
->
dev
);
snd_soc_unregister_
dai
(
&
pdev
->
dev
);
snd_soc_unregister_
component
(
&
pdev
->
dev
);
return
0
;
}
...
...
sound/soc/samsung/pcm.c
View file @
13419625
...
...
@@ -490,6 +490,10 @@ static struct snd_soc_dai_driver s3c_pcm_dai[] = {
},
};
static
const
struct
snd_soc_component_driver
s3c_pcm_component
=
{
.
name
=
"s3c-pcm"
,
};
static
int
s3c_pcm_dev_probe
(
struct
platform_device
*
pdev
)
{
struct
s3c_pcm_info
*
pcm
;
...
...
@@ -583,7 +587,8 @@ static int s3c_pcm_dev_probe(struct platform_device *pdev)
pm_runtime_enable
(
&
pdev
->
dev
);
ret
=
snd_soc_register_dai
(
&
pdev
->
dev
,
&
s3c_pcm_dai
[
pdev
->
id
]);
ret
=
snd_soc_register_component
(
&
pdev
->
dev
,
&
s3c_pcm_component
,
&
s3c_pcm_dai
[
pdev
->
id
],
1
);
if
(
ret
!=
0
)
{
dev_err
(
&
pdev
->
dev
,
"failed to get register DAI: %d
\n
"
,
ret
);
goto
err5
;
...
...
@@ -598,7 +603,7 @@ static int s3c_pcm_dev_probe(struct platform_device *pdev)
return
0
;
err6:
snd_soc_unregister_
dai
(
&
pdev
->
dev
);
snd_soc_unregister_
component
(
&
pdev
->
dev
);
err5:
clk_disable_unprepare
(
pcm
->
pclk
);
clk_put
(
pcm
->
pclk
);
...
...
@@ -619,7 +624,7 @@ static int s3c_pcm_dev_remove(struct platform_device *pdev)
struct
resource
*
mem_res
;
asoc_dma_platform_unregister
(
&
pdev
->
dev
);
snd_soc_unregister_
dai
(
&
pdev
->
dev
);
snd_soc_unregister_
component
(
&
pdev
->
dev
);
pm_runtime_disable
(
&
pdev
->
dev
);
...
...
sound/soc/samsung/s3c-i2s-v2.c
View file @
13419625
...
...
@@ -731,8 +731,9 @@ static int s3c2412_i2s_resume(struct snd_soc_dai *dai)
#define s3c2412_i2s_resume NULL
#endif
int
s3c_i2sv2_register_dai
(
struct
device
*
dev
,
int
id
,
struct
snd_soc_dai_driver
*
drv
)
int
s3c_i2sv2_register_component
(
struct
device
*
dev
,
int
id
,
struct
snd_soc_component_driver
*
cmp_drv
,
struct
snd_soc_dai_driver
*
dai_drv
)
{
struct
snd_soc_dai_ops
*
ops
=
drv
->
ops
;
...
...
@@ -750,8 +751,8 @@ int s3c_i2sv2_register_dai(struct device *dev, int id,
drv
->
suspend
=
s3c2412_i2s_suspend
;
drv
->
resume
=
s3c2412_i2s_resume
;
return
snd_soc_register_
dai
(
dev
,
drv
);
return
snd_soc_register_
component
(
dev
,
cmp_drv
,
dai_drv
,
1
);
}
EXPORT_SYMBOL_GPL
(
s3c_i2sv2_register_
dai
);
EXPORT_SYMBOL_GPL
(
s3c_i2sv2_register_
component
);
MODULE_LICENSE
(
"GPL"
);
sound/soc/samsung/s3c-i2s-v2.h
View file @
13419625
...
...
@@ -92,7 +92,7 @@ extern int s3c_i2sv2_probe(struct snd_soc_dai *dai,
unsigned
long
base
);
/**
* s3c_i2sv2_register_
dai - register
dai with soc core
* s3c_i2sv2_register_
component - register component and
dai with soc core
* @dev: DAI device
* @id: DAI ID
* @drv: The driver structure to register
...
...
@@ -100,7 +100,8 @@ extern int s3c_i2sv2_probe(struct snd_soc_dai *dai,
* Fill in any missing fields and then register the given dai with the
* soc core.
*/
extern
int
s3c_i2sv2_register_dai
(
struct
device
*
dev
,
int
id
,
struct
snd_soc_dai_driver
*
drv
);
extern
int
s3c_i2sv2_register_component
(
struct
device
*
dev
,
int
id
,
struct
snd_soc_component_driver
*
cmp_drv
,
struct
snd_soc_dai_driver
*
dai_drv
);
#endif
/* __SND_SOC_S3C24XX_S3C_I2SV2_I2S_H */
sound/soc/samsung/s3c2412-i2s.c
View file @
13419625
...
...
@@ -160,11 +160,17 @@ static struct snd_soc_dai_driver s3c2412_i2s_dai = {
.
ops
=
&
s3c2412_i2s_dai_ops
,
};
static
const
struct
snd_soc_component_driver
s3c2412_i2s_component
=
{
.
name
=
"s3c2412-i2s"
,
};
static
int
s3c2412_iis_dev_probe
(
struct
platform_device
*
pdev
)
{
int
ret
=
0
;
ret
=
s3c_i2sv2_register_dai
(
&
pdev
->
dev
,
-
1
,
&
s3c2412_i2s_dai
);
ret
=
s3c_i2sv2_register_component
(
&
pdev
->
dev
,
-
1
,
&
s3c2412_i2s_component
,
&
s3c2412_i2s_dai
);
if
(
ret
)
{
pr_err
(
"failed to register the dai
\n
"
);
return
ret
;
...
...
@@ -178,14 +184,14 @@ static int s3c2412_iis_dev_probe(struct platform_device *pdev)
return
0
;
err:
snd_soc_unregister_
dai
(
&
pdev
->
dev
);
snd_soc_unregister_
component
(
&
pdev
->
dev
);
return
ret
;
}
static
int
s3c2412_iis_dev_remove
(
struct
platform_device
*
pdev
)
{
asoc_dma_platform_unregister
(
&
pdev
->
dev
);
snd_soc_unregister_
dai
(
&
pdev
->
dev
);
snd_soc_unregister_
component
(
&
pdev
->
dev
);
return
0
;
}
...
...
sound/soc/samsung/s3c24xx-i2s.c
View file @
13419625
...
...
@@ -465,11 +465,16 @@ static struct snd_soc_dai_driver s3c24xx_i2s_dai = {
.
ops
=
&
s3c24xx_i2s_dai_ops
,
};
static
const
struct
snd_soc_component_driver
s3c24xx_i2s_component
=
{
.
name
=
"s3c24xx-i2s"
,
};
static
int
s3c24xx_iis_dev_probe
(
struct
platform_device
*
pdev
)
{
int
ret
=
0
;
ret
=
snd_soc_register_dai
(
&
pdev
->
dev
,
&
s3c24xx_i2s_dai
);
ret
=
snd_soc_register_component
(
&
pdev
->
dev
,
&
s3c24xx_i2s_component
,
&
s3c24xx_i2s_dai
,
1
);
if
(
ret
)
{
pr_err
(
"failed to register the dai
\n
"
);
return
ret
;
...
...
@@ -483,14 +488,14 @@ static int s3c24xx_iis_dev_probe(struct platform_device *pdev)
return
0
;
err:
snd_soc_unregister_
dai
(
&
pdev
->
dev
);
snd_soc_unregister_
component
(
&
pdev
->
dev
);
return
ret
;
}
static
int
s3c24xx_iis_dev_remove
(
struct
platform_device
*
pdev
)
{
asoc_dma_platform_unregister
(
&
pdev
->
dev
);
snd_soc_unregister_
dai
(
&
pdev
->
dev
);
snd_soc_unregister_
component
(
&
pdev
->
dev
);
return
0
;
}
...
...
sound/soc/samsung/spdif.c
View file @
13419625
...
...
@@ -357,6 +357,10 @@ static struct snd_soc_dai_driver samsung_spdif_dai = {
.
resume
=
spdif_resume
,
};
static
const
struct
snd_soc_component_driver
samsung_spdif_component
=
{
.
name
=
"samsung-spdif"
,
};
static
int
spdif_probe
(
struct
platform_device
*
pdev
)
{
struct
s3c_audio_pdata
*
spdif_pdata
;
...
...
@@ -424,7 +428,8 @@ static int spdif_probe(struct platform_device *pdev)
dev_set_drvdata
(
&
pdev
->
dev
,
spdif
);
ret
=
snd_soc_register_dai
(
&
pdev
->
dev
,
&
samsung_spdif_dai
);
ret
=
snd_soc_register_component
(
&
pdev
->
dev
,
&
samsung_spdif_component
,
&
samsung_spdif_dai
,
1
);
if
(
ret
!=
0
)
{
dev_err
(
&
pdev
->
dev
,
"fail to register dai
\n
"
);
goto
err4
;
...
...
@@ -445,7 +450,7 @@ static int spdif_probe(struct platform_device *pdev)
return
0
;
err5:
snd_soc_unregister_
dai
(
&
pdev
->
dev
);
snd_soc_unregister_
component
(
&
pdev
->
dev
);
err4:
iounmap
(
spdif
->
regs
);
err3:
...
...
@@ -466,7 +471,7 @@ static int spdif_remove(struct platform_device *pdev)
struct
resource
*
mem_res
;
asoc_dma_platform_unregister
(
&
pdev
->
dev
);
snd_soc_unregister_
dai
(
&
pdev
->
dev
);
snd_soc_unregister_
component
(
&
pdev
->
dev
);
iounmap
(
spdif
->
regs
);
...
...
sound/soc/sh/fsi.c
View file @
13419625
...
...
@@ -1886,6 +1886,10 @@ static struct snd_soc_platform_driver fsi_soc_platform = {
.
pcm_free
=
fsi_pcm_free
,
};
static
const
struct
snd_soc_component_driver
fsi_soc_component
=
{
.
name
=
"fsi"
,
};
/*
* platform function
*/
...
...
@@ -2046,10 +2050,10 @@ static int fsi_probe(struct platform_device *pdev)
goto
exit_fsib
;
}
ret
=
snd_soc_register_
dais
(
&
pdev
->
dev
,
fsi_soc_dai
,
ARRAY_SIZE
(
fsi_soc_dai
));
ret
=
snd_soc_register_
component
(
&
pdev
->
dev
,
&
fsi_soc_component
,
fsi_soc_dai
,
ARRAY_SIZE
(
fsi_soc_dai
));
if
(
ret
<
0
)
{
dev_err
(
&
pdev
->
dev
,
"cannot snd
dai
register
\n
"
);
dev_err
(
&
pdev
->
dev
,
"cannot snd
component
register
\n
"
);
goto
exit_snd_soc
;
}
...
...
@@ -2074,7 +2078,7 @@ static int fsi_remove(struct platform_device *pdev)
pm_runtime_disable
(
&
pdev
->
dev
);
snd_soc_unregister_
dais
(
&
pdev
->
dev
,
ARRAY_SIZE
(
fsi_soc_dai
)
);
snd_soc_unregister_
component
(
&
pdev
->
dev
);
snd_soc_unregister_platform
(
&
pdev
->
dev
);
fsi_stream_remove
(
&
master
->
fsia
);
...
...
sound/soc/sh/hac.c
View file @
13419625
...
...
@@ -310,15 +310,19 @@ static struct snd_soc_dai_driver sh4_hac_dai[] = {
#endif
};
static
const
struct
snd_soc_component_driver
sh4_hac_component
=
{
.
name
=
"sh4-hac"
,
};
static
int
hac_soc_platform_probe
(
struct
platform_device
*
pdev
)
{
return
snd_soc_register_
dais
(
&
pdev
->
dev
,
sh4_hac_dai
,
ARRAY_SIZE
(
sh4_hac_dai
));
return
snd_soc_register_
component
(
&
pdev
->
dev
,
&
sh4_hac_component
,
sh4_hac_dai
,
ARRAY_SIZE
(
sh4_hac_dai
));
}
static
int
hac_soc_platform_remove
(
struct
platform_device
*
pdev
)
{
snd_soc_unregister_
dais
(
&
pdev
->
dev
,
ARRAY_SIZE
(
sh4_hac_dai
)
);
snd_soc_unregister_
component
(
&
pdev
->
dev
);
return
0
;
}
...
...
sound/soc/sh/migor.c
View file @
13419625
...
...
@@ -153,7 +153,7 @@ static int migor_dai_init(struct snd_soc_pcm_runtime *rtd)
static
struct
snd_soc_dai_link
migor_dai
=
{
.
name
=
"wm8978"
,
.
stream_name
=
"WM8978"
,
.
cpu_dai_name
=
"siu-
i2s-dai
"
,
.
cpu_dai_name
=
"siu-
pcm-audio
"
,
.
codec_dai_name
=
"wm8978-hifi"
,
.
platform_name
=
"siu-pcm-audio"
,
.
codec_name
=
"wm8978.0-001a"
,
...
...
sound/soc/sh/siu_dai.c
View file @
13419625
...
...
@@ -726,6 +726,10 @@ static struct snd_soc_dai_driver siu_i2s_dai = {
.
ops
=
&
siu_dai_ops
,
};
static
const
struct
snd_soc_component_driver
siu_i2s_component
=
{
.
name
=
"siu-i2s"
,
};
static
int
siu_probe
(
struct
platform_device
*
pdev
)
{
const
struct
firmware
*
fw_entry
;
...
...
@@ -783,7 +787,8 @@ static int siu_probe(struct platform_device *pdev)
dev_set_drvdata
(
&
pdev
->
dev
,
info
);
/* register using ARRAY version so we can keep dai name */
ret
=
snd_soc_register_dais
(
&
pdev
->
dev
,
&
siu_i2s_dai
,
1
);
ret
=
snd_soc_register_component
(
&
pdev
->
dev
,
&
siu_i2s_component
,
&
siu_i2s_dai
,
1
);
if
(
ret
<
0
)
goto
edaiinit
;
...
...
@@ -796,7 +801,7 @@ static int siu_probe(struct platform_device *pdev)
return
ret
;
esocregp:
snd_soc_unregister_
dai
(
&
pdev
->
dev
);
snd_soc_unregister_
component
(
&
pdev
->
dev
);
edaiinit:
iounmap
(
info
->
reg
);
emapreg:
...
...
@@ -823,7 +828,7 @@ static int siu_remove(struct platform_device *pdev)
pm_runtime_disable
(
&
pdev
->
dev
);
snd_soc_unregister_platform
(
&
pdev
->
dev
);
snd_soc_unregister_
dai
(
&
pdev
->
dev
);
snd_soc_unregister_
component
(
&
pdev
->
dev
);
iounmap
(
info
->
reg
);
iounmap
(
info
->
yram
);
...
...
sound/soc/sh/ssi.c
View file @
13419625
...
...
@@ -379,15 +379,19 @@ static struct snd_soc_dai_driver sh4_ssi_dai[] = {
#endif
};
static
const
struct
snd_soc_component_driver
sh4_ssi_component
=
{
.
name
=
"sh4-ssi"
,
};
static
int
sh4_soc_dai_probe
(
struct
platform_device
*
pdev
)
{
return
snd_soc_register_
dais
(
&
pdev
->
dev
,
sh4_ssi_dai
,
ARRAY_SIZE
(
sh4_ssi_dai
));
return
snd_soc_register_
component
(
&
pdev
->
dev
,
&
sh4_ssi_component
,
sh4_ssi_dai
,
ARRAY_SIZE
(
sh4_ssi_dai
));
}
static
int
sh4_soc_dai_remove
(
struct
platform_device
*
pdev
)
{
snd_soc_unregister_
dais
(
&
pdev
->
dev
,
ARRAY_SIZE
(
sh4_ssi_dai
)
);
snd_soc_unregister_
component
(
&
pdev
->
dev
);
return
0
;
}
...
...
sound/soc/soc-core.c
View file @
13419625
...
...
@@ -58,6 +58,7 @@ static DEFINE_MUTEX(client_mutex);
static
LIST_HEAD
(
dai_list
);
static
LIST_HEAD
(
platform_list
);
static
LIST_HEAD
(
codec_list
);
static
LIST_HEAD
(
component_list
);
/*
* This is a timeout to do a DAPM powerdown after a stream is closed().
...
...
@@ -3740,7 +3741,7 @@ static inline char *fmt_multiple_name(struct device *dev,
*
* @dai: DAI to register
*/
int
snd_soc_register_dai
(
struct
device
*
dev
,
static
int
snd_soc_register_dai
(
struct
device
*
dev
,
struct
snd_soc_dai_driver
*
dai_drv
)
{
struct
snd_soc_codec
*
codec
;
...
...
@@ -3787,14 +3788,13 @@ int snd_soc_register_dai(struct device *dev,
return
0
;
}
EXPORT_SYMBOL_GPL
(
snd_soc_register_dai
);
/**
* snd_soc_unregister_dai - Unregister a DAI from the ASoC core
*
* @dai: DAI to unregister
*/
void
snd_soc_unregister_dai
(
struct
device
*
dev
)
static
void
snd_soc_unregister_dai
(
struct
device
*
dev
)
{
struct
snd_soc_dai
*
dai
;
...
...
@@ -3813,7 +3813,6 @@ void snd_soc_unregister_dai(struct device *dev)
kfree
(
dai
->
name
);
kfree
(
dai
);
}
EXPORT_SYMBOL_GPL
(
snd_soc_unregister_dai
);
/**
* snd_soc_register_dais - Register multiple DAIs with the ASoC core
...
...
@@ -3821,7 +3820,7 @@ EXPORT_SYMBOL_GPL(snd_soc_unregister_dai);
* @dai: Array of DAIs to register
* @count: Number of DAIs
*/
int
snd_soc_register_dais
(
struct
device
*
dev
,
static
int
snd_soc_register_dais
(
struct
device
*
dev
,
struct
snd_soc_dai_driver
*
dai_drv
,
size_t
count
)
{
struct
snd_soc_codec
*
codec
;
...
...
@@ -3885,7 +3884,6 @@ int snd_soc_register_dais(struct device *dev,
return
ret
;
}
EXPORT_SYMBOL_GPL
(
snd_soc_register_dais
);
/**
* snd_soc_unregister_dais - Unregister multiple DAIs from the ASoC core
...
...
@@ -3893,14 +3891,13 @@ EXPORT_SYMBOL_GPL(snd_soc_register_dais);
* @dai: Array of DAIs to unregister
* @count: Number of DAIs
*/
void
snd_soc_unregister_dais
(
struct
device
*
dev
,
size_t
count
)
static
void
snd_soc_unregister_dais
(
struct
device
*
dev
,
size_t
count
)
{
int
i
;
for
(
i
=
0
;
i
<
count
;
i
++
)
snd_soc_unregister_dai
(
dev
);
}
EXPORT_SYMBOL_GPL
(
snd_soc_unregister_dais
);
/**
* snd_soc_register_platform - Register a platform with the ASoC core
...
...
@@ -4139,6 +4136,92 @@ void snd_soc_unregister_codec(struct device *dev)
}
EXPORT_SYMBOL_GPL
(
snd_soc_unregister_codec
);
/**
* snd_soc_register_component - Register a component with the ASoC core
*
*/
int
snd_soc_register_component
(
struct
device
*
dev
,
const
struct
snd_soc_component_driver
*
cmpnt_drv
,
struct
snd_soc_dai_driver
*
dai_drv
,
int
num_dai
)
{
struct
snd_soc_component
*
cmpnt
;
int
ret
;
dev_dbg
(
dev
,
"component register %s
\n
"
,
dev_name
(
dev
));
cmpnt
=
devm_kzalloc
(
dev
,
sizeof
(
*
cmpnt
),
GFP_KERNEL
);
if
(
!
cmpnt
)
{
dev_err
(
dev
,
"ASoC: Failed to allocate memory
\n
"
);
return
-
ENOMEM
;
}
cmpnt
->
name
=
fmt_single_name
(
dev
,
&
cmpnt
->
id
);
if
(
!
cmpnt
->
name
)
{
dev_err
(
dev
,
"ASoC: Failed to simplifying name
\n
"
);
return
-
ENOMEM
;
}
cmpnt
->
dev
=
dev
;
cmpnt
->
driver
=
cmpnt_drv
;
cmpnt
->
num_dai
=
num_dai
;
/*
* snd_soc_register_dai() uses fmt_single_name(), and
* snd_soc_register_dais() uses fmt_multiple_name()
* for dai->name which is used for name based matching
*/
if
(
1
==
num_dai
)
ret
=
snd_soc_register_dai
(
dev
,
dai_drv
);
else
ret
=
snd_soc_register_dais
(
dev
,
dai_drv
,
num_dai
);
if
(
ret
<
0
)
{
dev_err
(
dev
,
"ASoC: Failed to regster DAIs: %d
\n
"
,
ret
);
goto
error_component_name
;
}
mutex_lock
(
&
client_mutex
);
list_add
(
&
cmpnt
->
list
,
&
component_list
);
mutex_unlock
(
&
client_mutex
);
dev_dbg
(
cmpnt
->
dev
,
"ASoC: Registered component '%s'
\n
"
,
cmpnt
->
name
);
return
ret
;
error_component_name:
kfree
(
cmpnt
->
name
);
return
ret
;
}
EXPORT_SYMBOL_GPL
(
snd_soc_register_component
);
/**
* snd_soc_unregister_component - Unregister a component from the ASoC core
*
*/
void
snd_soc_unregister_component
(
struct
device
*
dev
)
{
struct
snd_soc_component
*
cmpnt
;
list_for_each_entry
(
cmpnt
,
&
component_list
,
list
)
{
if
(
dev
==
cmpnt
->
dev
)
goto
found
;
}
return
;
found:
snd_soc_unregister_dais
(
dev
,
cmpnt
->
num_dai
);
mutex_lock
(
&
client_mutex
);
list_del
(
&
cmpnt
->
list
);
mutex_unlock
(
&
client_mutex
);
dev_dbg
(
dev
,
"ASoC: Unregistered component '%s'
\n
"
,
cmpnt
->
name
);
kfree
(
cmpnt
->
name
);
}
EXPORT_SYMBOL_GPL
(
snd_soc_unregister_component
);
/* Retrieve a card's name from device tree */
int
snd_soc_of_parse_card_name
(
struct
snd_soc_card
*
card
,
const
char
*
propname
)
...
...
sound/soc/spear/spdif_in.c
View file @
13419625
...
...
@@ -170,6 +170,10 @@ struct snd_soc_dai_driver spdif_in_dai = {
.
ops
=
&
spdif_in_dai_ops
,
};
static
const
struct
snd_soc_component_driver
spdif_in_component
=
{
.
name
=
"spdif-in"
,
};
static
irqreturn_t
spdif_in_irq
(
int
irq
,
void
*
arg
)
{
struct
spdif_in_dev
*
host
=
(
struct
spdif_in_dev
*
)
arg
;
...
...
@@ -258,7 +262,8 @@ static int spdif_in_probe(struct platform_device *pdev)
return
ret
;
}
ret
=
snd_soc_register_dai
(
&
pdev
->
dev
,
&
spdif_in_dai
);
ret
=
snd_soc_register_component
(
&
pdev
->
dev
,
&
spdif_in_component
,
&
spdif_in_dai
,
1
);
if
(
ret
!=
0
)
{
clk_put
(
host
->
clk
);
return
ret
;
...
...
@@ -271,7 +276,7 @@ static int spdif_in_remove(struct platform_device *pdev)
{
struct
spdif_in_dev
*
host
=
dev_get_drvdata
(
&
pdev
->
dev
);
snd_soc_unregister_
dai
(
&
pdev
->
dev
);
snd_soc_unregister_
component
(
&
pdev
->
dev
);
dev_set_drvdata
(
&
pdev
->
dev
,
NULL
);
clk_put
(
host
->
clk
);
...
...
sound/soc/spear/spdif_out.c
View file @
13419625
...
...
@@ -270,6 +270,10 @@ static struct snd_soc_dai_driver spdif_out_dai = {
.
ops
=
&
spdif_out_dai_ops
,
};
static
const
struct
snd_soc_component_driver
spdif_out_component
=
{
.
name
=
"spdif-out"
,
};
static
int
spdif_out_probe
(
struct
platform_device
*
pdev
)
{
struct
spdif_out_dev
*
host
;
...
...
@@ -314,7 +318,8 @@ static int spdif_out_probe(struct platform_device *pdev)
dev_set_drvdata
(
&
pdev
->
dev
,
host
);
ret
=
snd_soc_register_dai
(
&
pdev
->
dev
,
&
spdif_out_dai
);
ret
=
snd_soc_register_component
(
&
pdev
->
dev
,
&
spdif_out_component
,
&
spdif_out_dai
,
1
);
if
(
ret
!=
0
)
{
clk_put
(
host
->
clk
);
return
ret
;
...
...
@@ -327,7 +332,7 @@ static int spdif_out_remove(struct platform_device *pdev)
{
struct
spdif_out_dev
*
host
=
dev_get_drvdata
(
&
pdev
->
dev
);
snd_soc_unregister_
dai
(
&
pdev
->
dev
);
snd_soc_unregister_
component
(
&
pdev
->
dev
);
dev_set_drvdata
(
&
pdev
->
dev
,
NULL
);
clk_put
(
host
->
clk
);
...
...
sound/soc/tegra/tegra20_ac97.c
View file @
13419625
...
...
@@ -248,6 +248,10 @@ static struct snd_soc_dai_driver tegra20_ac97_dai = {
.
ops
=
&
tegra20_ac97_dai_ops
,
};
static
const
struct
snd_soc_component_driver
tegra20_ac97_component
=
{
.
name
=
DRV_NAME
,
};
static
bool
tegra20_ac97_wr_rd_reg
(
struct
device
*
dev
,
unsigned
int
reg
)
{
switch
(
reg
)
{
...
...
@@ -398,7 +402,8 @@ static int tegra20_ac97_platform_probe(struct platform_device *pdev)
ac97
->
playback_dma_data
.
width
=
32
;
ac97
->
playback_dma_data
.
req_sel
=
of_dma
[
1
];
ret
=
snd_soc_register_dais
(
&
pdev
->
dev
,
&
tegra20_ac97_dai
,
1
);
ret
=
snd_soc_register_component
(
&
pdev
->
dev
,
&
tegra20_ac97_component
,
&
tegra20_ac97_dai
,
1
);
if
(
ret
)
{
dev_err
(
&
pdev
->
dev
,
"Could not register DAI: %d
\n
"
,
ret
);
ret
=
-
ENOMEM
;
...
...
@@ -408,7 +413,7 @@ static int tegra20_ac97_platform_probe(struct platform_device *pdev)
ret
=
tegra_pcm_platform_register
(
&
pdev
->
dev
);
if
(
ret
)
{
dev_err
(
&
pdev
->
dev
,
"Could not register PCM: %d
\n
"
,
ret
);
goto
err_unregister_
dai
;
goto
err_unregister_
component
;
}
ret
=
tegra_asoc_utils_init
(
&
ac97
->
util_data
,
&
pdev
->
dev
);
...
...
@@ -434,8 +439,8 @@ static int tegra20_ac97_platform_probe(struct platform_device *pdev)
tegra_asoc_utils_fini
(
&
ac97
->
util_data
);
err_unregister_pcm:
tegra_pcm_platform_unregister
(
&
pdev
->
dev
);
err_unregister_
dai
:
snd_soc_unregister_
dai
(
&
pdev
->
dev
);
err_unregister_
component
:
snd_soc_unregister_
component
(
&
pdev
->
dev
);
err_clk_put:
clk_put
(
ac97
->
clk_ac97
);
err:
...
...
@@ -447,7 +452,7 @@ static int tegra20_ac97_platform_remove(struct platform_device *pdev)
struct
tegra20_ac97
*
ac97
=
dev_get_drvdata
(
&
pdev
->
dev
);
tegra_pcm_platform_unregister
(
&
pdev
->
dev
);
snd_soc_unregister_
dai
(
&
pdev
->
dev
);
snd_soc_unregister_
component
(
&
pdev
->
dev
);
tegra_asoc_utils_fini
(
&
ac97
->
util_data
);
...
...
sound/soc/tegra/tegra20_i2s.c
View file @
13419625
...
...
@@ -276,6 +276,10 @@ static const struct snd_soc_dai_driver tegra20_i2s_dai_template = {
.
symmetric_rates
=
1
,
};
static
const
struct
snd_soc_component_driver
tegra20_i2s_component
=
{
.
name
=
DRV_NAME
,
};
static
bool
tegra20_i2s_wr_rd_reg
(
struct
device
*
dev
,
unsigned
int
reg
)
{
switch
(
reg
)
{
...
...
@@ -419,7 +423,8 @@ static int tegra20_i2s_platform_probe(struct platform_device *pdev)
goto
err_pm_disable
;
}
ret
=
snd_soc_register_dai
(
&
pdev
->
dev
,
&
i2s
->
dai
);
ret
=
snd_soc_register_component
(
&
pdev
->
dev
,
&
tegra20_i2s_component
,
&
i2s
->
dai
,
1
);
if
(
ret
)
{
dev_err
(
&
pdev
->
dev
,
"Could not register DAI: %d
\n
"
,
ret
);
ret
=
-
ENOMEM
;
...
...
@@ -429,13 +434,13 @@ static int tegra20_i2s_platform_probe(struct platform_device *pdev)
ret
=
tegra_pcm_platform_register
(
&
pdev
->
dev
);
if
(
ret
)
{
dev_err
(
&
pdev
->
dev
,
"Could not register PCM: %d
\n
"
,
ret
);
goto
err_unregister_
dai
;
goto
err_unregister_
component
;
}
return
0
;
err_unregister_
dai
:
snd_soc_unregister_
dai
(
&
pdev
->
dev
);
err_unregister_
component
:
snd_soc_unregister_
component
(
&
pdev
->
dev
);
err_suspend:
if
(
!
pm_runtime_status_suspended
(
&
pdev
->
dev
))
tegra20_i2s_runtime_suspend
(
&
pdev
->
dev
);
...
...
@@ -456,7 +461,7 @@ static int tegra20_i2s_platform_remove(struct platform_device *pdev)
tegra20_i2s_runtime_suspend
(
&
pdev
->
dev
);
tegra_pcm_platform_unregister
(
&
pdev
->
dev
);
snd_soc_unregister_
dai
(
&
pdev
->
dev
);
snd_soc_unregister_
component
(
&
pdev
->
dev
);
clk_put
(
i2s
->
clk_i2s
);
...
...
sound/soc/tegra/tegra20_spdif.c
View file @
13419625
...
...
@@ -182,6 +182,10 @@ static struct snd_soc_dai_driver tegra20_spdif_dai = {
.
ops
=
&
tegra20_spdif_dai_ops
,
};
static
const
struct
snd_soc_component_driver
tegra20_spdif_component
=
{
.
name
=
DRV_NAME
,
};
static
bool
tegra20_spdif_wr_rd_reg
(
struct
device
*
dev
,
unsigned
int
reg
)
{
switch
(
reg
)
{
...
...
@@ -329,7 +333,8 @@ static int tegra20_spdif_platform_probe(struct platform_device *pdev)
goto
err_pm_disable
;
}
ret
=
snd_soc_register_dai
(
&
pdev
->
dev
,
&
tegra20_spdif_dai
);
ret
=
snd_soc_register_component
(
&
pdev
->
dev
,
&
tegra20_spdif_component
,
&
tegra20_spdif_dai
,
1
);
if
(
ret
)
{
dev_err
(
&
pdev
->
dev
,
"Could not register DAI: %d
\n
"
,
ret
);
ret
=
-
ENOMEM
;
...
...
@@ -339,13 +344,13 @@ static int tegra20_spdif_platform_probe(struct platform_device *pdev)
ret
=
tegra_pcm_platform_register
(
&
pdev
->
dev
);
if
(
ret
)
{
dev_err
(
&
pdev
->
dev
,
"Could not register PCM: %d
\n
"
,
ret
);
goto
err_unregister_
dai
;
goto
err_unregister_
component
;
}
return
0
;
err_unregister_
dai
:
snd_soc_unregister_
dai
(
&
pdev
->
dev
);
err_unregister_
component
:
snd_soc_unregister_
component
(
&
pdev
->
dev
);
err_suspend:
if
(
!
pm_runtime_status_suspended
(
&
pdev
->
dev
))
tegra20_spdif_runtime_suspend
(
&
pdev
->
dev
);
...
...
@@ -366,7 +371,7 @@ static int tegra20_spdif_platform_remove(struct platform_device *pdev)
tegra20_spdif_runtime_suspend
(
&
pdev
->
dev
);
tegra_pcm_platform_unregister
(
&
pdev
->
dev
);
snd_soc_unregister_
dai
(
&
pdev
->
dev
);
snd_soc_unregister_
component
(
&
pdev
->
dev
);
clk_put
(
spdif
->
clk_spdif_out
);
...
...
sound/soc/tegra/tegra30_i2s.c
View file @
13419625
...
...
@@ -336,6 +336,10 @@ static const struct snd_soc_dai_driver tegra30_i2s_dai_template = {
.
symmetric_rates
=
1
,
};
static
const
struct
snd_soc_component_driver
tegra30_i2s_component
=
{
.
name
=
DRV_NAME
,
};
static
bool
tegra30_i2s_wr_rd_reg
(
struct
device
*
dev
,
unsigned
int
reg
)
{
switch
(
reg
)
{
...
...
@@ -464,7 +468,8 @@ static int tegra30_i2s_platform_probe(struct platform_device *pdev)
goto
err_pm_disable
;
}
ret
=
snd_soc_register_dai
(
&
pdev
->
dev
,
&
i2s
->
dai
);
ret
=
snd_soc_register_component
(
&
pdev
->
dev
,
&
tegra30_i2s_component
,
&
i2s
->
dai
,
1
);
if
(
ret
)
{
dev_err
(
&
pdev
->
dev
,
"Could not register DAI: %d
\n
"
,
ret
);
ret
=
-
ENOMEM
;
...
...
@@ -474,13 +479,13 @@ static int tegra30_i2s_platform_probe(struct platform_device *pdev)
ret
=
tegra_pcm_platform_register
(
&
pdev
->
dev
);
if
(
ret
)
{
dev_err
(
&
pdev
->
dev
,
"Could not register PCM: %d
\n
"
,
ret
);
goto
err_unregister_
dai
;
goto
err_unregister_
component
;
}
return
0
;
err_unregister_
dai
:
snd_soc_unregister_
dai
(
&
pdev
->
dev
);
err_unregister_
component
:
snd_soc_unregister_
component
(
&
pdev
->
dev
);
err_suspend:
if
(
!
pm_runtime_status_suspended
(
&
pdev
->
dev
))
tegra30_i2s_runtime_suspend
(
&
pdev
->
dev
);
...
...
@@ -501,7 +506,7 @@ static int tegra30_i2s_platform_remove(struct platform_device *pdev)
tegra30_i2s_runtime_suspend
(
&
pdev
->
dev
);
tegra_pcm_platform_unregister
(
&
pdev
->
dev
);
snd_soc_unregister_
dai
(
&
pdev
->
dev
);
snd_soc_unregister_
component
(
&
pdev
->
dev
);
clk_put
(
i2s
->
clk_i2s
);
...
...
sound/soc/tegra/tegra_wm9712.c
View file @
13419625
...
...
@@ -55,7 +55,7 @@ static int tegra_wm9712_init(struct snd_soc_pcm_runtime *rtd)
static
struct
snd_soc_dai_link
tegra_wm9712_dai
=
{
.
name
=
"AC97 HiFi"
,
.
stream_name
=
"AC97 HiFi"
,
.
cpu_dai_name
=
"tegra
-ac97-pcm
"
,
.
cpu_dai_name
=
"tegra
20-ac97
"
,
.
codec_dai_name
=
"wm9712-hifi"
,
.
codec_name
=
"wm9712-codec"
,
.
init
=
tegra_wm9712_init
,
...
...
sound/soc/txx9/txx9aclc-ac97.c
View file @
13419625
...
...
@@ -170,6 +170,10 @@ static struct snd_soc_dai_driver txx9aclc_ac97_dai = {
},
};
static
const
struct
snd_soc_component_driver
txx9aclc_ac97_component
=
{
.
name
=
"txx9aclc-ac97"
,
};
static
int
txx9aclc_ac97_dev_probe
(
struct
platform_device
*
pdev
)
{
struct
txx9aclc_plat_drvdata
*
drvdata
;
...
...
@@ -205,12 +209,13 @@ static int txx9aclc_ac97_dev_probe(struct platform_device *pdev)
if
(
err
<
0
)
return
err
;
return
snd_soc_register_dai
(
&
pdev
->
dev
,
&
txx9aclc_ac97_dai
);
return
snd_soc_register_component
(
&
pdev
->
dev
,
&
txx9aclc_ac97_component
,
&
txx9aclc_ac97_dai
,
1
);
}
static
int
txx9aclc_ac97_dev_remove
(
struct
platform_device
*
pdev
)
{
snd_soc_unregister_
dai
(
&
pdev
->
dev
);
snd_soc_unregister_
component
(
&
pdev
->
dev
);
return
0
;
}
...
...
sound/soc/ux500/ux500_msp_dai.c
View file @
13419625
...
...
@@ -768,6 +768,11 @@ static struct snd_soc_dai_driver ux500_msp_dai_drv[UX500_NBR_OF_DAI] = {
},
};
static
const
struct
snd_soc_component_driver
ux500_msp_component
=
{
.
name
=
"ux500-msp"
,
};
static
int
ux500_msp_drv_probe
(
struct
platform_device
*
pdev
)
{
struct
ux500_msp_i2s_drvdata
*
drvdata
;
...
...
@@ -825,8 +830,8 @@ static int ux500_msp_drv_probe(struct platform_device *pdev)
}
dev_set_drvdata
(
&
pdev
->
dev
,
drvdata
);
ret
=
snd_soc_register_
dai
(
&
pdev
->
dev
,
&
ux500_msp_dai_drv
[
drvdata
->
msp
->
id
]
);
ret
=
snd_soc_register_
component
(
&
pdev
->
dev
,
&
ux500_msp_component
,
&
ux500_msp_dai_drv
[
drvdata
->
msp
->
id
],
1
);
if
(
ret
<
0
)
{
dev_err
(
&
pdev
->
dev
,
"Error: %s: Failed to register MSP%d!
\n
"
,
__func__
,
drvdata
->
msp
->
id
);
...
...
@@ -844,7 +849,7 @@ static int ux500_msp_drv_probe(struct platform_device *pdev)
return
0
;
err_reg_plat:
snd_soc_unregister_
dais
(
&
pdev
->
dev
,
ARRAY_SIZE
(
ux500_msp_dai_drv
)
);
snd_soc_unregister_
component
(
&
pdev
->
dev
);
err_init_msp:
clk_put
(
drvdata
->
clk
);
err_clk:
...
...
@@ -861,7 +866,7 @@ static int ux500_msp_drv_remove(struct platform_device *pdev)
ux500_pcm_unregister_platform
(
pdev
);
snd_soc_unregister_
dais
(
&
pdev
->
dev
,
ARRAY_SIZE
(
ux500_msp_dai_drv
)
);
snd_soc_unregister_
component
(
&
pdev
->
dev
);
devm_regulator_put
(
drvdata
->
reg_vape
);
prcmu_qos_remove_requirement
(
PRCMU_QOS_APE_OPP
,
"ux500_msp_i2s"
);
...
...
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