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
469cb928
Commit
469cb928
authored
Nov 08, 2013
by
Mark Brown
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'asoc/topic/pxa' into asoc-next
parents
df8aabe4
7db1698f
Changes
13
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
46 additions
and
48 deletions
+46
-48
sound/arm/pxa2xx-ac97-lib.c
sound/arm/pxa2xx-ac97-lib.c
+10
-17
sound/soc/pxa/brownstone.c
sound/soc/pxa/brownstone.c
+1
-0
sound/soc/pxa/corgi.c
sound/soc/pxa/corgi.c
+1
-0
sound/soc/pxa/e740_wm9705.c
sound/soc/pxa/e740_wm9705.c
+1
-0
sound/soc/pxa/e750_wm9705.c
sound/soc/pxa/e750_wm9705.c
+1
-0
sound/soc/pxa/e800_wm9712.c
sound/soc/pxa/e800_wm9712.c
+1
-0
sound/soc/pxa/imote2.c
sound/soc/pxa/imote2.c
+1
-0
sound/soc/pxa/mioa701_wm9713.c
sound/soc/pxa/mioa701_wm9713.c
+1
-0
sound/soc/pxa/palm27x.c
sound/soc/pxa/palm27x.c
+1
-0
sound/soc/pxa/poodle.c
sound/soc/pxa/poodle.c
+1
-0
sound/soc/pxa/pxa2xx-ac97.c
sound/soc/pxa/pxa2xx-ac97.c
+25
-31
sound/soc/pxa/tosa.c
sound/soc/pxa/tosa.c
+1
-0
sound/soc/pxa/ttc-dkb.c
sound/soc/pxa/ttc-dkb.c
+1
-0
No files found.
sound/arm/pxa2xx-ac97-lib.c
View file @
469cb928
...
@@ -117,8 +117,7 @@ static inline void pxa_ac97_warm_pxa25x(void)
...
@@ -117,8 +117,7 @@ static inline void pxa_ac97_warm_pxa25x(void)
{
{
gsr_bits
=
0
;
gsr_bits
=
0
;
GCR
|=
GCR_WARM_RST
|
GCR_PRIRDY_IEN
|
GCR_SECRDY_IEN
;
GCR
|=
GCR_WARM_RST
;
wait_event_timeout
(
gsr_wq
,
gsr_bits
&
(
GSR_PCR
|
GSR_SCR
),
1
);
}
}
static
inline
void
pxa_ac97_cold_pxa25x
(
void
)
static
inline
void
pxa_ac97_cold_pxa25x
(
void
)
...
@@ -129,8 +128,6 @@ static inline void pxa_ac97_cold_pxa25x(void)
...
@@ -129,8 +128,6 @@ static inline void pxa_ac97_cold_pxa25x(void)
gsr_bits
=
0
;
gsr_bits
=
0
;
GCR
=
GCR_COLD_RST
;
GCR
=
GCR_COLD_RST
;
GCR
|=
GCR_CDONE_IE
|
GCR_SDONE_IE
;
wait_event_timeout
(
gsr_wq
,
gsr_bits
&
(
GSR_PCR
|
GSR_SCR
),
1
);
}
}
#endif
#endif
...
@@ -149,8 +146,6 @@ static inline void pxa_ac97_warm_pxa27x(void)
...
@@ -149,8 +146,6 @@ static inline void pxa_ac97_warm_pxa27x(void)
static
inline
void
pxa_ac97_cold_pxa27x
(
void
)
static
inline
void
pxa_ac97_cold_pxa27x
(
void
)
{
{
unsigned
int
timeout
;
GCR
&=
GCR_COLD_RST
;
/* clear everything but nCRST */
GCR
&=
GCR_COLD_RST
;
/* clear everything but nCRST */
GCR
&=
~
GCR_COLD_RST
;
/* then assert nCRST */
GCR
&=
~
GCR_COLD_RST
;
/* then assert nCRST */
...
@@ -161,29 +156,20 @@ static inline void pxa_ac97_cold_pxa27x(void)
...
@@ -161,29 +156,20 @@ static inline void pxa_ac97_cold_pxa27x(void)
udelay
(
5
);
udelay
(
5
);
clk_disable
(
ac97conf_clk
);
clk_disable
(
ac97conf_clk
);
GCR
=
GCR_COLD_RST
|
GCR_WARM_RST
;
GCR
=
GCR_COLD_RST
|
GCR_WARM_RST
;
timeout
=
100
;
/* wait for the codec-ready bit to be set */
while
(
!
((
GSR
|
gsr_bits
)
&
(
GSR_PCR
|
GSR_SCR
))
&&
timeout
--
)
mdelay
(
1
);
}
}
#endif
#endif
#ifdef CONFIG_PXA3xx
#ifdef CONFIG_PXA3xx
static
inline
void
pxa_ac97_warm_pxa3xx
(
void
)
static
inline
void
pxa_ac97_warm_pxa3xx
(
void
)
{
{
int
timeout
=
100
;
gsr_bits
=
0
;
gsr_bits
=
0
;
/* Can't use interrupts */
/* Can't use interrupts */
GCR
|=
GCR_WARM_RST
;
GCR
|=
GCR_WARM_RST
;
while
(
!
((
GSR
|
gsr_bits
)
&
(
GSR_PCR
|
GSR_SCR
))
&&
timeout
--
)
mdelay
(
1
);
}
}
static
inline
void
pxa_ac97_cold_pxa3xx
(
void
)
static
inline
void
pxa_ac97_cold_pxa3xx
(
void
)
{
{
int
timeout
=
1000
;
/* Hold CLKBPB for 100us */
/* Hold CLKBPB for 100us */
GCR
=
0
;
GCR
=
0
;
GCR
=
GCR_CLKBPB
;
GCR
=
GCR_CLKBPB
;
...
@@ -199,14 +185,13 @@ static inline void pxa_ac97_cold_pxa3xx(void)
...
@@ -199,14 +185,13 @@ static inline void pxa_ac97_cold_pxa3xx(void)
GCR
&=
~
(
GCR_PRIRDY_IEN
|
GCR_SECRDY_IEN
);
GCR
&=
~
(
GCR_PRIRDY_IEN
|
GCR_SECRDY_IEN
);
GCR
=
GCR_WARM_RST
|
GCR_COLD_RST
;
GCR
=
GCR_WARM_RST
|
GCR_COLD_RST
;
while
(
!
(
GSR
&
(
GSR_PCR
|
GSR_SCR
))
&&
timeout
--
)
mdelay
(
10
);
}
}
#endif
#endif
bool
pxa2xx_ac97_try_warm_reset
(
struct
snd_ac97
*
ac97
)
bool
pxa2xx_ac97_try_warm_reset
(
struct
snd_ac97
*
ac97
)
{
{
unsigned
long
gsr
;
unsigned
long
gsr
;
unsigned
int
timeout
=
100
;
#ifdef CONFIG_PXA25x
#ifdef CONFIG_PXA25x
if
(
cpu_is_pxa25x
())
if
(
cpu_is_pxa25x
())
...
@@ -224,6 +209,10 @@ bool pxa2xx_ac97_try_warm_reset(struct snd_ac97 *ac97)
...
@@ -224,6 +209,10 @@ bool pxa2xx_ac97_try_warm_reset(struct snd_ac97 *ac97)
else
else
#endif
#endif
BUG
();
BUG
();
while
(
!
((
GSR
|
gsr_bits
)
&
(
GSR_PCR
|
GSR_SCR
))
&&
timeout
--
)
mdelay
(
1
);
gsr
=
GSR
|
gsr_bits
;
gsr
=
GSR
|
gsr_bits
;
if
(
!
(
gsr
&
(
GSR_PCR
|
GSR_SCR
)))
{
if
(
!
(
gsr
&
(
GSR_PCR
|
GSR_SCR
)))
{
printk
(
KERN_INFO
"%s: warm reset timeout (GSR=%#lx)
\n
"
,
printk
(
KERN_INFO
"%s: warm reset timeout (GSR=%#lx)
\n
"
,
...
@@ -239,6 +228,7 @@ EXPORT_SYMBOL_GPL(pxa2xx_ac97_try_warm_reset);
...
@@ -239,6 +228,7 @@ EXPORT_SYMBOL_GPL(pxa2xx_ac97_try_warm_reset);
bool
pxa2xx_ac97_try_cold_reset
(
struct
snd_ac97
*
ac97
)
bool
pxa2xx_ac97_try_cold_reset
(
struct
snd_ac97
*
ac97
)
{
{
unsigned
long
gsr
;
unsigned
long
gsr
;
unsigned
int
timeout
=
1000
;
#ifdef CONFIG_PXA25x
#ifdef CONFIG_PXA25x
if
(
cpu_is_pxa25x
())
if
(
cpu_is_pxa25x
())
...
@@ -257,6 +247,9 @@ bool pxa2xx_ac97_try_cold_reset(struct snd_ac97 *ac97)
...
@@ -257,6 +247,9 @@ bool pxa2xx_ac97_try_cold_reset(struct snd_ac97 *ac97)
#endif
#endif
BUG
();
BUG
();
while
(
!
((
GSR
|
gsr_bits
)
&
(
GSR_PCR
|
GSR_SCR
))
&&
timeout
--
)
mdelay
(
1
);
gsr
=
GSR
|
gsr_bits
;
gsr
=
GSR
|
gsr_bits
;
if
(
!
(
gsr
&
(
GSR_PCR
|
GSR_SCR
)))
{
if
(
!
(
gsr
&
(
GSR_PCR
|
GSR_SCR
)))
{
printk
(
KERN_INFO
"%s: cold reset timeout (GSR=%#lx)
\n
"
,
printk
(
KERN_INFO
"%s: cold reset timeout (GSR=%#lx)
\n
"
,
...
...
sound/soc/pxa/brownstone.c
View file @
469cb928
...
@@ -163,6 +163,7 @@ static struct platform_driver mmp_driver = {
...
@@ -163,6 +163,7 @@ static struct platform_driver mmp_driver = {
.
driver
=
{
.
driver
=
{
.
name
=
"brownstone-audio"
,
.
name
=
"brownstone-audio"
,
.
owner
=
THIS_MODULE
,
.
owner
=
THIS_MODULE
,
.
pm
=
&
snd_soc_pm_ops
,
},
},
.
probe
=
brownstone_probe
,
.
probe
=
brownstone_probe
,
.
remove
=
brownstone_remove
,
.
remove
=
brownstone_remove
,
...
...
sound/soc/pxa/corgi.c
View file @
469cb928
...
@@ -329,6 +329,7 @@ static struct platform_driver corgi_driver = {
...
@@ -329,6 +329,7 @@ static struct platform_driver corgi_driver = {
.
driver
=
{
.
driver
=
{
.
name
=
"corgi-audio"
,
.
name
=
"corgi-audio"
,
.
owner
=
THIS_MODULE
,
.
owner
=
THIS_MODULE
,
.
pm
=
&
snd_soc_pm_ops
,
},
},
.
probe
=
corgi_probe
,
.
probe
=
corgi_probe
,
.
remove
=
corgi_remove
,
.
remove
=
corgi_remove
,
...
...
sound/soc/pxa/e740_wm9705.c
View file @
469cb928
...
@@ -178,6 +178,7 @@ static struct platform_driver e740_driver = {
...
@@ -178,6 +178,7 @@ static struct platform_driver e740_driver = {
.
driver
=
{
.
driver
=
{
.
name
=
"e740-audio"
,
.
name
=
"e740-audio"
,
.
owner
=
THIS_MODULE
,
.
owner
=
THIS_MODULE
,
.
pm
=
&
snd_soc_pm_ops
,
},
},
.
probe
=
e740_probe
,
.
probe
=
e740_probe
,
.
remove
=
e740_remove
,
.
remove
=
e740_remove
,
...
...
sound/soc/pxa/e750_wm9705.c
View file @
469cb928
...
@@ -160,6 +160,7 @@ static struct platform_driver e750_driver = {
...
@@ -160,6 +160,7 @@ static struct platform_driver e750_driver = {
.
driver
=
{
.
driver
=
{
.
name
=
"e750-audio"
,
.
name
=
"e750-audio"
,
.
owner
=
THIS_MODULE
,
.
owner
=
THIS_MODULE
,
.
pm
=
&
snd_soc_pm_ops
,
},
},
.
probe
=
e750_probe
,
.
probe
=
e750_probe
,
.
remove
=
e750_remove
,
.
remove
=
e750_remove
,
...
...
sound/soc/pxa/e800_wm9712.c
View file @
469cb928
...
@@ -150,6 +150,7 @@ static struct platform_driver e800_driver = {
...
@@ -150,6 +150,7 @@ static struct platform_driver e800_driver = {
.
driver
=
{
.
driver
=
{
.
name
=
"e800-audio"
,
.
name
=
"e800-audio"
,
.
owner
=
THIS_MODULE
,
.
owner
=
THIS_MODULE
,
.
pm
=
&
snd_soc_pm_ops
,
},
},
.
probe
=
e800_probe
,
.
probe
=
e800_probe
,
.
remove
=
e800_remove
,
.
remove
=
e800_remove
,
...
...
sound/soc/pxa/imote2.c
View file @
469cb928
...
@@ -91,6 +91,7 @@ static struct platform_driver imote2_driver = {
...
@@ -91,6 +91,7 @@ static struct platform_driver imote2_driver = {
.
driver
=
{
.
driver
=
{
.
name
=
"imote2-audio"
,
.
name
=
"imote2-audio"
,
.
owner
=
THIS_MODULE
,
.
owner
=
THIS_MODULE
,
.
pm
=
&
snd_soc_pm_ops
,
},
},
.
probe
=
imote2_probe
,
.
probe
=
imote2_probe
,
.
remove
=
imote2_remove
,
.
remove
=
imote2_remove
,
...
...
sound/soc/pxa/mioa701_wm9713.c
View file @
469cb928
...
@@ -215,6 +215,7 @@ static struct platform_driver mioa701_wm9713_driver = {
...
@@ -215,6 +215,7 @@ static struct platform_driver mioa701_wm9713_driver = {
.
driver
=
{
.
driver
=
{
.
name
=
"mioa701-wm9713"
,
.
name
=
"mioa701-wm9713"
,
.
owner
=
THIS_MODULE
,
.
owner
=
THIS_MODULE
,
.
pm
=
&
snd_soc_pm_ops
,
},
},
};
};
...
...
sound/soc/pxa/palm27x.c
View file @
469cb928
...
@@ -181,6 +181,7 @@ static struct platform_driver palm27x_wm9712_driver = {
...
@@ -181,6 +181,7 @@ static struct platform_driver palm27x_wm9712_driver = {
.
driver
=
{
.
driver
=
{
.
name
=
"palm27x-asoc"
,
.
name
=
"palm27x-asoc"
,
.
owner
=
THIS_MODULE
,
.
owner
=
THIS_MODULE
,
.
pm
=
&
snd_soc_pm_ops
,
},
},
};
};
...
...
sound/soc/pxa/poodle.c
View file @
469cb928
...
@@ -303,6 +303,7 @@ static struct platform_driver poodle_driver = {
...
@@ -303,6 +303,7 @@ static struct platform_driver poodle_driver = {
.
driver
=
{
.
driver
=
{
.
name
=
"poodle-audio"
,
.
name
=
"poodle-audio"
,
.
owner
=
THIS_MODULE
,
.
owner
=
THIS_MODULE
,
.
pm
=
&
snd_soc_pm_ops
,
},
},
.
probe
=
poodle_probe
,
.
probe
=
poodle_probe
,
.
remove
=
poodle_remove
,
.
remove
=
poodle_remove
,
...
...
sound/soc/pxa/pxa2xx-ac97.c
View file @
469cb928
...
@@ -89,33 +89,6 @@ static struct snd_dmaengine_dai_dma_data pxa2xx_ac97_pcm_mic_mono_in = {
...
@@ -89,33 +89,6 @@ static struct snd_dmaengine_dai_dma_data pxa2xx_ac97_pcm_mic_mono_in = {
.
filter_data
=
&
pxa2xx_ac97_pcm_aux_mic_mono_req
,
.
filter_data
=
&
pxa2xx_ac97_pcm_aux_mic_mono_req
,
};
};
#ifdef CONFIG_PM
static
int
pxa2xx_ac97_suspend
(
struct
snd_soc_dai
*
dai
)
{
return
pxa2xx_ac97_hw_suspend
();
}
static
int
pxa2xx_ac97_resume
(
struct
snd_soc_dai
*
dai
)
{
return
pxa2xx_ac97_hw_resume
();
}
#else
#define pxa2xx_ac97_suspend NULL
#define pxa2xx_ac97_resume NULL
#endif
static
int
pxa2xx_ac97_probe
(
struct
snd_soc_dai
*
dai
)
{
return
pxa2xx_ac97_hw_probe
(
to_platform_device
(
dai
->
dev
));
}
static
int
pxa2xx_ac97_remove
(
struct
snd_soc_dai
*
dai
)
{
pxa2xx_ac97_hw_remove
(
to_platform_device
(
dai
->
dev
));
return
0
;
}
static
int
pxa2xx_ac97_hw_params
(
struct
snd_pcm_substream
*
substream
,
static
int
pxa2xx_ac97_hw_params
(
struct
snd_pcm_substream
*
substream
,
struct
snd_pcm_hw_params
*
params
,
struct
snd_pcm_hw_params
*
params
,
struct
snd_soc_dai
*
cpu_dai
)
struct
snd_soc_dai
*
cpu_dai
)
...
@@ -185,10 +158,6 @@ static struct snd_soc_dai_driver pxa_ac97_dai_driver[] = {
...
@@ -185,10 +158,6 @@ static struct snd_soc_dai_driver pxa_ac97_dai_driver[] = {
{
{
.
name
=
"pxa2xx-ac97"
,
.
name
=
"pxa2xx-ac97"
,
.
ac97_control
=
1
,
.
ac97_control
=
1
,
.
probe
=
pxa2xx_ac97_probe
,
.
remove
=
pxa2xx_ac97_remove
,
.
suspend
=
pxa2xx_ac97_suspend
,
.
resume
=
pxa2xx_ac97_resume
,
.
playback
=
{
.
playback
=
{
.
stream_name
=
"AC97 Playback"
,
.
stream_name
=
"AC97 Playback"
,
.
channels_min
=
2
,
.
channels_min
=
2
,
...
@@ -246,6 +215,12 @@ static int pxa2xx_ac97_dev_probe(struct platform_device *pdev)
...
@@ -246,6 +215,12 @@ static int pxa2xx_ac97_dev_probe(struct platform_device *pdev)
return
-
ENXIO
;
return
-
ENXIO
;
}
}
ret
=
pxa2xx_ac97_hw_probe
(
pdev
);
if
(
ret
)
{
dev_err
(
&
pdev
->
dev
,
"PXA2xx AC97 hw probe error (%d)
\n
"
,
ret
);
return
ret
;
}
ret
=
snd_soc_set_ac97_ops
(
&
pxa2xx_ac97_ops
);
ret
=
snd_soc_set_ac97_ops
(
&
pxa2xx_ac97_ops
);
if
(
ret
!=
0
)
if
(
ret
!=
0
)
return
ret
;
return
ret
;
...
@@ -262,15 +237,34 @@ static int pxa2xx_ac97_dev_remove(struct platform_device *pdev)
...
@@ -262,15 +237,34 @@ static int pxa2xx_ac97_dev_remove(struct platform_device *pdev)
{
{
snd_soc_unregister_component
(
&
pdev
->
dev
);
snd_soc_unregister_component
(
&
pdev
->
dev
);
snd_soc_set_ac97_ops
(
NULL
);
snd_soc_set_ac97_ops
(
NULL
);
pxa2xx_ac97_hw_remove
(
pdev
);
return
0
;
return
0
;
}
}
#ifdef CONFIG_PM_SLEEP
static
int
pxa2xx_ac97_dev_suspend
(
struct
device
*
dev
)
{
return
pxa2xx_ac97_hw_suspend
();
}
static
int
pxa2xx_ac97_dev_resume
(
struct
device
*
dev
)
{
return
pxa2xx_ac97_hw_resume
();
}
static
SIMPLE_DEV_PM_OPS
(
pxa2xx_ac97_pm_ops
,
pxa2xx_ac97_dev_suspend
,
pxa2xx_ac97_dev_resume
);
#endif
static
struct
platform_driver
pxa2xx_ac97_driver
=
{
static
struct
platform_driver
pxa2xx_ac97_driver
=
{
.
probe
=
pxa2xx_ac97_dev_probe
,
.
probe
=
pxa2xx_ac97_dev_probe
,
.
remove
=
pxa2xx_ac97_dev_remove
,
.
remove
=
pxa2xx_ac97_dev_remove
,
.
driver
=
{
.
driver
=
{
.
name
=
"pxa2xx-ac97"
,
.
name
=
"pxa2xx-ac97"
,
.
owner
=
THIS_MODULE
,
.
owner
=
THIS_MODULE
,
#ifdef CONFIG_PM_SLEEP
.
pm
=
&
pxa2xx_ac97_pm_ops
,
#endif
},
},
};
};
...
...
sound/soc/pxa/tosa.c
View file @
469cb928
...
@@ -275,6 +275,7 @@ static struct platform_driver tosa_driver = {
...
@@ -275,6 +275,7 @@ static struct platform_driver tosa_driver = {
.
driver
=
{
.
driver
=
{
.
name
=
"tosa-audio"
,
.
name
=
"tosa-audio"
,
.
owner
=
THIS_MODULE
,
.
owner
=
THIS_MODULE
,
.
pm
=
&
snd_soc_pm_ops
,
},
},
.
probe
=
tosa_probe
,
.
probe
=
tosa_probe
,
.
remove
=
tosa_remove
,
.
remove
=
tosa_remove
,
...
...
sound/soc/pxa/ttc-dkb.c
View file @
469cb928
...
@@ -160,6 +160,7 @@ static struct platform_driver ttc_dkb_driver = {
...
@@ -160,6 +160,7 @@ static struct platform_driver ttc_dkb_driver = {
.
driver
=
{
.
driver
=
{
.
name
=
"ttc-dkb-audio"
,
.
name
=
"ttc-dkb-audio"
,
.
owner
=
THIS_MODULE
,
.
owner
=
THIS_MODULE
,
.
pm
=
&
snd_soc_pm_ops
,
},
},
.
probe
=
ttc_dkb_probe
,
.
probe
=
ttc_dkb_probe
,
.
remove
=
ttc_dkb_remove
,
.
remove
=
ttc_dkb_remove
,
...
...
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