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
05cf9dd8
Commit
05cf9dd8
authored
Dec 02, 2012
by
Mark Brown
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'asoc/topic/samsung' into asoc-next
parents
897074d8
1974a042
Changes
6
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
190 additions
and
88 deletions
+190
-88
include/linux/platform_data/asoc-s3c.h
include/linux/platform_data/asoc-s3c.h
+0
-6
sound/soc/samsung/ac97.c
sound/soc/samsung/ac97.c
+3
-3
sound/soc/samsung/bells.c
sound/soc/samsung/bells.c
+165
-57
sound/soc/samsung/i2s.c
sound/soc/samsung/i2s.c
+10
-10
sound/soc/samsung/pcm.c
sound/soc/samsung/pcm.c
+6
-6
sound/soc/samsung/spdif.c
sound/soc/samsung/spdif.c
+6
-6
No files found.
include/linux/platform_data/asoc-s3c.h
View file @
05cf9dd8
...
@@ -38,12 +38,6 @@ struct samsung_i2s {
...
@@ -38,12 +38,6 @@ struct samsung_i2s {
#define QUIRK_NEED_RSTCLR (1 << 3)
#define QUIRK_NEED_RSTCLR (1 << 3)
/* Quirks of the I2S controller */
/* Quirks of the I2S controller */
u32
quirks
;
u32
quirks
;
/*
* Array of clock names that can be used to generate I2S signals.
* Also corresponds to clocks of I2SMOD[10]
*/
const
char
**
src_clk
;
dma_addr_t
idma_addr
;
dma_addr_t
idma_addr
;
};
};
...
...
sound/soc/samsung/ac97.c
View file @
05cf9dd8
...
@@ -442,7 +442,7 @@ static __devinit int s3c_ac97_probe(struct platform_device *pdev)
...
@@ -442,7 +442,7 @@ static __devinit int s3c_ac97_probe(struct platform_device *pdev)
ret
=
-
ENODEV
;
ret
=
-
ENODEV
;
goto
err2
;
goto
err2
;
}
}
clk_enable
(
s3c_ac97
.
ac97_clk
);
clk_
prepare_
enable
(
s3c_ac97
.
ac97_clk
);
if
(
ac97_pdata
->
cfg_gpio
(
pdev
))
{
if
(
ac97_pdata
->
cfg_gpio
(
pdev
))
{
dev_err
(
&
pdev
->
dev
,
"Unable to configure gpio
\n
"
);
dev_err
(
&
pdev
->
dev
,
"Unable to configure gpio
\n
"
);
...
@@ -468,7 +468,7 @@ static __devinit int s3c_ac97_probe(struct platform_device *pdev)
...
@@ -468,7 +468,7 @@ static __devinit int s3c_ac97_probe(struct platform_device *pdev)
free_irq
(
irq_res
->
start
,
NULL
);
free_irq
(
irq_res
->
start
,
NULL
);
err4:
err4:
err3:
err3:
clk_disable
(
s3c_ac97
.
ac97_clk
);
clk_disable
_unprepare
(
s3c_ac97
.
ac97_clk
);
clk_put
(
s3c_ac97
.
ac97_clk
);
clk_put
(
s3c_ac97
.
ac97_clk
);
err2:
err2:
iounmap
(
s3c_ac97
.
regs
);
iounmap
(
s3c_ac97
.
regs
);
...
@@ -488,7 +488,7 @@ static __devexit int s3c_ac97_remove(struct platform_device *pdev)
...
@@ -488,7 +488,7 @@ static __devexit int s3c_ac97_remove(struct platform_device *pdev)
if
(
irq_res
)
if
(
irq_res
)
free_irq
(
irq_res
->
start
,
NULL
);
free_irq
(
irq_res
->
start
,
NULL
);
clk_disable
(
s3c_ac97
.
ac97_clk
);
clk_disable
_unprepare
(
s3c_ac97
.
ac97_clk
);
clk_put
(
s3c_ac97
.
ac97_clk
);
clk_put
(
s3c_ac97
.
ac97_clk
);
iounmap
(
s3c_ac97
.
regs
);
iounmap
(
s3c_ac97
.
regs
);
...
...
sound/soc/samsung/bells.c
View file @
05cf9dd8
This diff is collapsed.
Click to expand it.
sound/soc/samsung/i2s.c
View file @
05cf9dd8
...
@@ -49,8 +49,6 @@ struct i2s_dai {
...
@@ -49,8 +49,6 @@ struct i2s_dai {
struct
clk
*
clk
;
struct
clk
*
clk
;
/* Clock for generating I2S signals */
/* Clock for generating I2S signals */
struct
clk
*
op_clk
;
struct
clk
*
op_clk
;
/* Array of clock names for op_clk */
const
char
**
src_clk
;
/* Pointer to the Primary_Fifo if this is Sec_Fifo, NULL otherwise */
/* Pointer to the Primary_Fifo if this is Sec_Fifo, NULL otherwise */
struct
i2s_dai
*
pri_dai
;
struct
i2s_dai
*
pri_dai
;
/* Pointer to the Secondary_Fifo if it has one, NULL otherwise */
/* Pointer to the Secondary_Fifo if it has one, NULL otherwise */
...
@@ -423,7 +421,7 @@ static int i2s_set_sysclk(struct snd_soc_dai *dai,
...
@@ -423,7 +421,7 @@ static int i2s_set_sysclk(struct snd_soc_dai *dai,
if
(
i2s
->
op_clk
)
{
if
(
i2s
->
op_clk
)
{
if
((
clk_id
&&
!
(
mod
&
MOD_IMS_SYSMUX
))
||
if
((
clk_id
&&
!
(
mod
&
MOD_IMS_SYSMUX
))
||
(
!
clk_id
&&
(
mod
&
MOD_IMS_SYSMUX
)))
{
(
!
clk_id
&&
(
mod
&
MOD_IMS_SYSMUX
)))
{
clk_disable
(
i2s
->
op_clk
);
clk_disable
_unprepare
(
i2s
->
op_clk
);
clk_put
(
i2s
->
op_clk
);
clk_put
(
i2s
->
op_clk
);
}
else
{
}
else
{
i2s
->
rclk_srcrate
=
i2s
->
rclk_srcrate
=
...
@@ -432,9 +430,13 @@ static int i2s_set_sysclk(struct snd_soc_dai *dai,
...
@@ -432,9 +430,13 @@ static int i2s_set_sysclk(struct snd_soc_dai *dai,
}
}
}
}
i2s
->
op_clk
=
clk_get
(
&
i2s
->
pdev
->
dev
,
if
(
clk_id
)
i2s
->
src_clk
[
clk_id
]);
i2s
->
op_clk
=
clk_get
(
&
i2s
->
pdev
->
dev
,
clk_enable
(
i2s
->
op_clk
);
"i2s_opclk1"
);
else
i2s
->
op_clk
=
clk_get
(
&
i2s
->
pdev
->
dev
,
"i2s_opclk0"
);
clk_prepare_enable
(
i2s
->
op_clk
);
i2s
->
rclk_srcrate
=
clk_get_rate
(
i2s
->
op_clk
);
i2s
->
rclk_srcrate
=
clk_get_rate
(
i2s
->
op_clk
);
/* Over-ride the other's */
/* Over-ride the other's */
...
@@ -880,7 +882,7 @@ static int samsung_i2s_dai_probe(struct snd_soc_dai *dai)
...
@@ -880,7 +882,7 @@ static int samsung_i2s_dai_probe(struct snd_soc_dai *dai)
iounmap
(
i2s
->
addr
);
iounmap
(
i2s
->
addr
);
return
-
ENOENT
;
return
-
ENOENT
;
}
}
clk_enable
(
i2s
->
clk
);
clk_
prepare_
enable
(
i2s
->
clk
);
if
(
other
)
{
if
(
other
)
{
other
->
addr
=
i2s
->
addr
;
other
->
addr
=
i2s
->
addr
;
...
@@ -922,7 +924,7 @@ static int samsung_i2s_dai_remove(struct snd_soc_dai *dai)
...
@@ -922,7 +924,7 @@ static int samsung_i2s_dai_remove(struct snd_soc_dai *dai)
if
(
i2s
->
quirks
&
QUIRK_NEED_RSTCLR
)
if
(
i2s
->
quirks
&
QUIRK_NEED_RSTCLR
)
writel
(
0
,
i2s
->
addr
+
I2SCON
);
writel
(
0
,
i2s
->
addr
+
I2SCON
);
clk_disable
(
i2s
->
clk
);
clk_disable
_unprepare
(
i2s
->
clk
);
clk_put
(
i2s
->
clk
);
clk_put
(
i2s
->
clk
);
iounmap
(
i2s
->
addr
);
iounmap
(
i2s
->
addr
);
...
@@ -1067,7 +1069,6 @@ static __devinit int samsung_i2s_probe(struct platform_device *pdev)
...
@@ -1067,7 +1069,6 @@ static __devinit int samsung_i2s_probe(struct platform_device *pdev)
(
struct
s3c2410_dma_client
*
)
&
pri_dai
->
dma_capture
;
(
struct
s3c2410_dma_client
*
)
&
pri_dai
->
dma_capture
;
pri_dai
->
dma_playback
.
channel
=
dma_pl_chan
;
pri_dai
->
dma_playback
.
channel
=
dma_pl_chan
;
pri_dai
->
dma_capture
.
channel
=
dma_cp_chan
;
pri_dai
->
dma_capture
.
channel
=
dma_cp_chan
;
pri_dai
->
src_clk
=
i2s_cfg
->
src_clk
;
pri_dai
->
dma_playback
.
dma_size
=
4
;
pri_dai
->
dma_playback
.
dma_size
=
4
;
pri_dai
->
dma_capture
.
dma_size
=
4
;
pri_dai
->
dma_capture
.
dma_size
=
4
;
pri_dai
->
base
=
regs_base
;
pri_dai
->
base
=
regs_base
;
...
@@ -1088,7 +1089,6 @@ static __devinit int samsung_i2s_probe(struct platform_device *pdev)
...
@@ -1088,7 +1089,6 @@ static __devinit int samsung_i2s_probe(struct platform_device *pdev)
(
struct
s3c2410_dma_client
*
)
&
sec_dai
->
dma_playback
;
(
struct
s3c2410_dma_client
*
)
&
sec_dai
->
dma_playback
;
/* Use iDMA always if SysDMA not provided */
/* Use iDMA always if SysDMA not provided */
sec_dai
->
dma_playback
.
channel
=
dma_pl_sec_chan
?
:
-
1
;
sec_dai
->
dma_playback
.
channel
=
dma_pl_sec_chan
?
:
-
1
;
sec_dai
->
src_clk
=
i2s_cfg
->
src_clk
;
sec_dai
->
dma_playback
.
dma_size
=
4
;
sec_dai
->
dma_playback
.
dma_size
=
4
;
sec_dai
->
base
=
regs_base
;
sec_dai
->
base
=
regs_base
;
sec_dai
->
quirks
=
quirks
;
sec_dai
->
quirks
=
quirks
;
...
...
sound/soc/samsung/pcm.c
View file @
05cf9dd8
...
@@ -543,7 +543,7 @@ static __devinit int s3c_pcm_dev_probe(struct platform_device *pdev)
...
@@ -543,7 +543,7 @@ static __devinit int s3c_pcm_dev_probe(struct platform_device *pdev)
ret
=
PTR_ERR
(
pcm
->
cclk
);
ret
=
PTR_ERR
(
pcm
->
cclk
);
goto
err1
;
goto
err1
;
}
}
clk_enable
(
pcm
->
cclk
);
clk_
prepare_
enable
(
pcm
->
cclk
);
/* record our pcm structure for later use in the callbacks */
/* record our pcm structure for later use in the callbacks */
dev_set_drvdata
(
&
pdev
->
dev
,
pcm
);
dev_set_drvdata
(
&
pdev
->
dev
,
pcm
);
...
@@ -568,7 +568,7 @@ static __devinit int s3c_pcm_dev_probe(struct platform_device *pdev)
...
@@ -568,7 +568,7 @@ static __devinit int s3c_pcm_dev_probe(struct platform_device *pdev)
ret
=
-
ENOENT
;
ret
=
-
ENOENT
;
goto
err4
;
goto
err4
;
}
}
clk_enable
(
pcm
->
pclk
);
clk_
prepare_
enable
(
pcm
->
pclk
);
s3c_pcm_stereo_in
[
pdev
->
id
].
dma_addr
=
mem_res
->
start
s3c_pcm_stereo_in
[
pdev
->
id
].
dma_addr
=
mem_res
->
start
+
S3C_PCM_RXFIFO
;
+
S3C_PCM_RXFIFO
;
...
@@ -592,14 +592,14 @@ static __devinit int s3c_pcm_dev_probe(struct platform_device *pdev)
...
@@ -592,14 +592,14 @@ static __devinit int s3c_pcm_dev_probe(struct platform_device *pdev)
return
0
;
return
0
;
err5:
err5:
clk_disable
(
pcm
->
pclk
);
clk_disable
_unprepare
(
pcm
->
pclk
);
clk_put
(
pcm
->
pclk
);
clk_put
(
pcm
->
pclk
);
err4:
err4:
iounmap
(
pcm
->
regs
);
iounmap
(
pcm
->
regs
);
err3:
err3:
release_mem_region
(
mem_res
->
start
,
resource_size
(
mem_res
));
release_mem_region
(
mem_res
->
start
,
resource_size
(
mem_res
));
err2:
err2:
clk_disable
(
pcm
->
cclk
);
clk_disable
_unprepare
(
pcm
->
cclk
);
clk_put
(
pcm
->
cclk
);
clk_put
(
pcm
->
cclk
);
err1:
err1:
return
ret
;
return
ret
;
...
@@ -619,8 +619,8 @@ static __devexit int s3c_pcm_dev_remove(struct platform_device *pdev)
...
@@ -619,8 +619,8 @@ static __devexit int s3c_pcm_dev_remove(struct platform_device *pdev)
mem_res
=
platform_get_resource
(
pdev
,
IORESOURCE_MEM
,
0
);
mem_res
=
platform_get_resource
(
pdev
,
IORESOURCE_MEM
,
0
);
release_mem_region
(
mem_res
->
start
,
resource_size
(
mem_res
));
release_mem_region
(
mem_res
->
start
,
resource_size
(
mem_res
));
clk_disable
(
pcm
->
cclk
);
clk_disable
_unprepare
(
pcm
->
cclk
);
clk_disable
(
pcm
->
pclk
);
clk_disable
_unprepare
(
pcm
->
pclk
);
clk_put
(
pcm
->
pclk
);
clk_put
(
pcm
->
pclk
);
clk_put
(
pcm
->
cclk
);
clk_put
(
pcm
->
cclk
);
...
...
sound/soc/samsung/spdif.c
View file @
05cf9dd8
...
@@ -397,7 +397,7 @@ static __devinit int spdif_probe(struct platform_device *pdev)
...
@@ -397,7 +397,7 @@ static __devinit int spdif_probe(struct platform_device *pdev)
ret
=
-
ENOENT
;
ret
=
-
ENOENT
;
goto
err0
;
goto
err0
;
}
}
clk_enable
(
spdif
->
pclk
);
clk_
prepare_
enable
(
spdif
->
pclk
);
spdif
->
sclk
=
clk_get
(
&
pdev
->
dev
,
"sclk_spdif"
);
spdif
->
sclk
=
clk_get
(
&
pdev
->
dev
,
"sclk_spdif"
);
if
(
IS_ERR
(
spdif
->
sclk
))
{
if
(
IS_ERR
(
spdif
->
sclk
))
{
...
@@ -405,7 +405,7 @@ static __devinit int spdif_probe(struct platform_device *pdev)
...
@@ -405,7 +405,7 @@ static __devinit int spdif_probe(struct platform_device *pdev)
ret
=
-
ENOENT
;
ret
=
-
ENOENT
;
goto
err1
;
goto
err1
;
}
}
clk_enable
(
spdif
->
sclk
);
clk_
prepare_
enable
(
spdif
->
sclk
);
/* Request S/PDIF Register's memory region */
/* Request S/PDIF Register's memory region */
if
(
!
request_mem_region
(
mem_res
->
start
,
if
(
!
request_mem_region
(
mem_res
->
start
,
...
@@ -444,10 +444,10 @@ static __devinit int spdif_probe(struct platform_device *pdev)
...
@@ -444,10 +444,10 @@ static __devinit int spdif_probe(struct platform_device *pdev)
err3:
err3:
release_mem_region
(
mem_res
->
start
,
resource_size
(
mem_res
));
release_mem_region
(
mem_res
->
start
,
resource_size
(
mem_res
));
err2:
err2:
clk_disable
(
spdif
->
sclk
);
clk_disable
_unprepare
(
spdif
->
sclk
);
clk_put
(
spdif
->
sclk
);
clk_put
(
spdif
->
sclk
);
err1:
err1:
clk_disable
(
spdif
->
pclk
);
clk_disable
_unprepare
(
spdif
->
pclk
);
clk_put
(
spdif
->
pclk
);
clk_put
(
spdif
->
pclk
);
err0:
err0:
return
ret
;
return
ret
;
...
@@ -466,9 +466,9 @@ static __devexit int spdif_remove(struct platform_device *pdev)
...
@@ -466,9 +466,9 @@ static __devexit int spdif_remove(struct platform_device *pdev)
if
(
mem_res
)
if
(
mem_res
)
release_mem_region
(
mem_res
->
start
,
resource_size
(
mem_res
));
release_mem_region
(
mem_res
->
start
,
resource_size
(
mem_res
));
clk_disable
(
spdif
->
sclk
);
clk_disable
_unprepare
(
spdif
->
sclk
);
clk_put
(
spdif
->
sclk
);
clk_put
(
spdif
->
sclk
);
clk_disable
(
spdif
->
pclk
);
clk_disable
_unprepare
(
spdif
->
pclk
);
clk_put
(
spdif
->
pclk
);
clk_put
(
spdif
->
pclk
);
return
0
;
return
0
;
...
...
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