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
c0840b27
Commit
c0840b27
authored
Oct 24, 2013
by
Mark Brown
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'asoc/topic/pxa' into asoc-next
parents
8018abf6
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 @
c0840b27
...
@@ -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 @
c0840b27
...
@@ -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 @
c0840b27
...
@@ -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 @
c0840b27
...
@@ -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 @
c0840b27
...
@@ -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 @
c0840b27
...
@@ -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 @
c0840b27
...
@@ -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 @
c0840b27
...
@@ -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 @
c0840b27
...
@@ -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 @
c0840b27
...
@@ -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 @
c0840b27
...
@@ -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 @
c0840b27
...
@@ -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 @
c0840b27
...
@@ -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