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
26b9b559
Commit
26b9b559
authored
Aug 26, 2011
by
Takashi Iwai
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'fix/asoc' into for-linus
parents
468c5458
18036b58
Changes
22
Show whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
95 additions
and
45 deletions
+95
-45
MAINTAINERS
MAINTAINERS
+1
-0
sound/soc/blackfin/bf5xx-ad193x.c
sound/soc/blackfin/bf5xx-ad193x.c
+1
-1
sound/soc/codecs/ad193x.c
sound/soc/codecs/ad193x.c
+2
-9
sound/soc/codecs/ad193x.h
sound/soc/codecs/ad193x.h
+3
-2
sound/soc/codecs/sta32x.c
sound/soc/codecs/sta32x.c
+1
-0
sound/soc/codecs/wm8962.c
sound/soc/codecs/wm8962.c
+8
-4
sound/soc/codecs/wm8996.c
sound/soc/codecs/wm8996.c
+18
-10
sound/soc/ep93xx/ep93xx-i2s.c
sound/soc/ep93xx/ep93xx-i2s.c
+3
-2
sound/soc/fsl/fsl_dma.c
sound/soc/fsl/fsl_dma.c
+2
-0
sound/soc/fsl/mpc8610_hpcd.c
sound/soc/fsl/mpc8610_hpcd.c
+9
-9
sound/soc/fsl/p1022_ds.c
sound/soc/fsl/p1022_ds.c
+3
-1
sound/soc/kirkwood/kirkwood-i2s.c
sound/soc/kirkwood/kirkwood-i2s.c
+1
-1
sound/soc/omap/ams-delta.c
sound/soc/omap/ams-delta.c
+4
-2
sound/soc/samsung/Kconfig
sound/soc/samsung/Kconfig
+1
-0
sound/soc/samsung/h1940_uda1380.c
sound/soc/samsung/h1940_uda1380.c
+1
-0
sound/soc/samsung/rx1950_uda1380.c
sound/soc/samsung/rx1950_uda1380.c
+1
-0
sound/soc/samsung/speyside_wm8962.c
sound/soc/samsung/speyside_wm8962.c
+6
-0
sound/soc/soc-core.c
sound/soc/soc-core.c
+1
-1
sound/soc/soc-io.c
sound/soc/soc-io.c
+23
-0
sound/soc/soc-jack.c
sound/soc/soc-jack.c
+1
-1
sound/soc/soc-pcm.c
sound/soc/soc-pcm.c
+3
-0
sound/soc/tegra/tegra_wm8903.c
sound/soc/tegra/tegra_wm8903.c
+2
-2
No files found.
MAINTAINERS
View file @
26b9b559
...
...
@@ -5532,6 +5532,7 @@ F: include/media/*7146*
SAMSUNG AUDIO (ASoC) DRIVERS
M: Jassi Brar <jassisinghbrar@gmail.com>
M: Sangbeom Kim <sbkim73@samsung.com>
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
S: Supported
F: sound/soc/samsung
...
...
sound/soc/blackfin/bf5xx-ad193x.c
View file @
26b9b559
...
...
@@ -56,7 +56,7 @@ static int bf5xx_ad193x_hw_params(struct snd_pcm_substream *substream,
switch
(
params_rate
(
params
))
{
case
48000
:
clk
=
12288
000
;
clk
=
24576
000
;
break
;
}
...
...
sound/soc/codecs/ad193x.c
View file @
26b9b559
...
...
@@ -27,11 +27,6 @@ struct ad193x_priv {
int
sysclk
;
};
/* ad193x register cache & default register settings */
static
const
u8
ad193x_reg
[
AD193X_NUM_REGS
]
=
{
0
,
0
,
0
,
0
,
0
,
0
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0
,
0
,
0
,
};
/*
* AD193X volume/mute/de-emphasis etc. controls
*/
...
...
@@ -307,7 +302,8 @@ static int ad193x_hw_params(struct snd_pcm_substream *substream,
snd_soc_write
(
codec
,
AD193X_PLL_CLK_CTRL0
,
reg
);
reg
=
snd_soc_read
(
codec
,
AD193X_DAC_CTRL2
);
reg
=
(
reg
&
(
~
AD193X_DAC_WORD_LEN_MASK
))
|
word_len
;
reg
=
(
reg
&
(
~
AD193X_DAC_WORD_LEN_MASK
))
|
(
word_len
<<
AD193X_DAC_WORD_LEN_SHFT
);
snd_soc_write
(
codec
,
AD193X_DAC_CTRL2
,
reg
);
reg
=
snd_soc_read
(
codec
,
AD193X_ADC_CTRL1
);
...
...
@@ -389,9 +385,6 @@ static int ad193x_probe(struct snd_soc_codec *codec)
static
struct
snd_soc_codec_driver
soc_codec_dev_ad193x
=
{
.
probe
=
ad193x_probe
,
.
reg_cache_default
=
ad193x_reg
,
.
reg_cache_size
=
AD193X_NUM_REGS
,
.
reg_word_size
=
sizeof
(
u16
),
};
#if defined(CONFIG_SPI_MASTER)
...
...
sound/soc/codecs/ad193x.h
View file @
26b9b559
...
...
@@ -34,7 +34,8 @@
#define AD193X_DAC_LEFT_HIGH (1 << 3)
#define AD193X_DAC_BCLK_INV (1 << 7)
#define AD193X_DAC_CTRL2 0x804
#define AD193X_DAC_WORD_LEN_MASK 0xC
#define AD193X_DAC_WORD_LEN_SHFT 3
#define AD193X_DAC_WORD_LEN_MASK 0x18
#define AD193X_DAC_MASTER_MUTE 1
#define AD193X_DAC_CHNL_MUTE 0x805
#define AD193X_DACL1_MUTE 0
...
...
@@ -63,7 +64,7 @@
#define AD193X_ADC_CTRL1 0x80f
#define AD193X_ADC_SERFMT_MASK 0x60
#define AD193X_ADC_SERFMT_STEREO (0 << 5)
#define AD193X_ADC_SERFMT_TDM (1 <<
2
)
#define AD193X_ADC_SERFMT_TDM (1 <<
5
)
#define AD193X_ADC_SERFMT_AUX (2 << 5)
#define AD193X_ADC_WORD_LEN_MASK 0x3
#define AD193X_ADC_CTRL2 0x810
...
...
sound/soc/codecs/sta32x.c
View file @
26b9b559
...
...
@@ -857,6 +857,7 @@ static __devinit int sta32x_i2c_probe(struct i2c_client *i2c,
ret
=
snd_soc_register_codec
(
&
i2c
->
dev
,
&
sta32x_codec
,
&
sta32x_dai
,
1
);
if
(
ret
!=
0
)
{
dev_err
(
&
i2c
->
dev
,
"Failed to register codec (%d)
\n
"
,
ret
);
kfree
(
sta32x
);
return
ret
;
}
...
...
sound/soc/codecs/wm8962.c
View file @
26b9b559
...
...
@@ -2221,6 +2221,8 @@ static int sysclk_event(struct snd_soc_dapm_widget *w,
switch
(
event
)
{
case
SND_SOC_DAPM_PRE_PMU
:
if
(
fll
)
{
try_wait_for_completion
(
&
wm8962
->
fll_lock
);
snd_soc_update_bits
(
codec
,
WM8962_FLL_CONTROL_1
,
WM8962_FLL_ENA
,
WM8962_FLL_ENA
);
if
(
wm8962
->
irq
)
{
...
...
@@ -2927,10 +2929,6 @@ static int wm8962_set_bias_level(struct snd_soc_codec *codec,
WM8962_BIAS_ENA
|
0x180
);
msleep
(
5
);
snd_soc_update_bits
(
codec
,
WM8962_CLOCKING2
,
WM8962_CLKREG_OVD
,
WM8962_CLKREG_OVD
);
}
/* VMID 2*250k */
...
...
@@ -3288,6 +3286,8 @@ static int wm8962_set_fll(struct snd_soc_codec *codec, int fll_id, int source,
snd_soc_write
(
codec
,
WM8962_FLL_CONTROL_7
,
fll_div
.
lambda
);
snd_soc_write
(
codec
,
WM8962_FLL_CONTROL_8
,
fll_div
.
n
);
try_wait_for_completion
(
&
wm8962
->
fll_lock
);
snd_soc_update_bits
(
codec
,
WM8962_FLL_CONTROL_1
,
WM8962_FLL_FRAC
|
WM8962_FLL_REFCLK_SRC_MASK
|
WM8962_FLL_ENA
,
fll1
);
...
...
@@ -3868,6 +3868,10 @@ static int wm8962_probe(struct snd_soc_codec *codec)
*/
snd_soc_update_bits
(
codec
,
WM8962_CLOCKING2
,
WM8962_SYSCLK_ENA
,
0
);
/* Ensure we have soft control over all registers */
snd_soc_update_bits
(
codec
,
WM8962_CLOCKING2
,
WM8962_CLKREG_OVD
,
WM8962_CLKREG_OVD
);
regulator_bulk_disable
(
ARRAY_SIZE
(
wm8962
->
supplies
),
wm8962
->
supplies
);
if
(
pdata
)
{
...
...
sound/soc/codecs/wm8996.c
View file @
26b9b559
...
...
@@ -420,7 +420,7 @@ static const char *sidetone_hpf_text[] = {
};
static
const
struct
soc_enum
sidetone_hpf
=
SOC_ENUM_SINGLE
(
WM8996_SIDETONE
,
7
,
6
,
sidetone_hpf_text
);
SOC_ENUM_SINGLE
(
WM8996_SIDETONE
,
7
,
7
,
sidetone_hpf_text
);
static
const
char
*
hpf_mode_text
[]
=
{
"HiFi"
,
"Custom"
,
"Voice"
...
...
@@ -988,15 +988,10 @@ SND_SOC_DAPM_MICBIAS("MICB1", WM8996_POWER_MANAGEMENT_1, 8, 0),
SND_SOC_DAPM_PGA
(
"IN1L PGA"
,
WM8996_POWER_MANAGEMENT_2
,
5
,
0
,
NULL
,
0
),
SND_SOC_DAPM_PGA
(
"IN1R PGA"
,
WM8996_POWER_MANAGEMENT_2
,
4
,
0
,
NULL
,
0
),
SND_SOC_DAPM_MUX
(
"IN1L Mux"
,
SND_SOC_NOPM
,
0
,
0
,
&
in1_mux
),
SND_SOC_DAPM_MUX
(
"IN1R Mux"
,
SND_SOC_NOPM
,
0
,
0
,
&
in1_mux
),
SND_SOC_DAPM_MUX
(
"IN2L Mux"
,
SND_SOC_NOPM
,
0
,
0
,
&
in2_mux
),
SND_SOC_DAPM_MUX
(
"IN2R Mux"
,
SND_SOC_NOPM
,
0
,
0
,
&
in2_mux
),
SND_SOC_DAPM_PGA
(
"IN1L"
,
WM8996_POWER_MANAGEMENT_7
,
2
,
0
,
NULL
,
0
),
SND_SOC_DAPM_PGA
(
"IN1R"
,
WM8996_POWER_MANAGEMENT_7
,
3
,
0
,
NULL
,
0
),
SND_SOC_DAPM_PGA
(
"IN2L"
,
WM8996_POWER_MANAGEMENT_7
,
6
,
0
,
NULL
,
0
),
SND_SOC_DAPM_PGA
(
"IN2R"
,
WM8996_POWER_MANAGEMENT_7
,
7
,
0
,
NULL
,
0
),
SND_SOC_DAPM_MUX
(
"IN1L Mux"
,
WM8996_POWER_MANAGEMENT_7
,
2
,
0
,
&
in1_mux
),
SND_SOC_DAPM_MUX
(
"IN1R Mux"
,
WM8996_POWER_MANAGEMENT_7
,
3
,
0
,
&
in1_mux
),
SND_SOC_DAPM_MUX
(
"IN2L Mux"
,
WM8996_POWER_MANAGEMENT_7
,
6
,
0
,
&
in2_mux
),
SND_SOC_DAPM_MUX
(
"IN2R Mux"
,
WM8996_POWER_MANAGEMENT_7
,
7
,
0
,
&
in2_mux
),
SND_SOC_DAPM_SUPPLY
(
"DMIC2"
,
WM8996_POWER_MANAGEMENT_7
,
9
,
0
,
NULL
,
0
),
SND_SOC_DAPM_SUPPLY
(
"DMIC1"
,
WM8996_POWER_MANAGEMENT_7
,
8
,
0
,
NULL
,
0
),
...
...
@@ -1213,6 +1208,16 @@ static const struct snd_soc_dapm_route wm8996_dapm_routes[] = {
{
"AIF2RX0"
,
NULL
,
"AIFCLK"
},
{
"AIF2RX1"
,
NULL
,
"AIFCLK"
},
{
"AIF1TX0"
,
NULL
,
"AIFCLK"
},
{
"AIF1TX1"
,
NULL
,
"AIFCLK"
},
{
"AIF1TX2"
,
NULL
,
"AIFCLK"
},
{
"AIF1TX3"
,
NULL
,
"AIFCLK"
},
{
"AIF1TX4"
,
NULL
,
"AIFCLK"
},
{
"AIF1TX5"
,
NULL
,
"AIFCLK"
},
{
"AIF2TX0"
,
NULL
,
"AIFCLK"
},
{
"AIF2TX1"
,
NULL
,
"AIFCLK"
},
{
"DSP1RXL"
,
NULL
,
"SYSDSPCLK"
},
{
"DSP1RXR"
,
NULL
,
"SYSDSPCLK"
},
{
"DSP2RXL"
,
NULL
,
"SYSDSPCLK"
},
...
...
@@ -2106,6 +2111,9 @@ static int wm8996_set_fll(struct snd_soc_codec *codec, int fll_id, int source,
snd_soc_write
(
codec
,
WM8996_FLL_EFS_1
,
fll_div
.
lambda
);
/* Clear any pending completions (eg, from failed startups) */
try_wait_for_completion
(
&
wm8996
->
fll_lock
);
snd_soc_update_bits
(
codec
,
WM8996_FLL_CONTROL_1
,
WM8996_FLL_ENA
,
WM8996_FLL_ENA
);
...
...
sound/soc/ep93xx/ep93xx-i2s.c
View file @
26b9b559
...
...
@@ -385,14 +385,14 @@ static int ep93xx_i2s_probe(struct platform_device *pdev)
res
=
platform_get_resource
(
pdev
,
IORESOURCE_MEM
,
0
);
if
(
!
res
)
{
err
=
-
ENODEV
;
goto
fail
;
goto
fail
_free_info
;
}
info
->
mem
=
request_mem_region
(
res
->
start
,
resource_size
(
res
),
pdev
->
name
);
if
(
!
info
->
mem
)
{
err
=
-
EBUSY
;
goto
fail
;
goto
fail
_free_info
;
}
info
->
regs
=
ioremap
(
info
->
mem
->
start
,
resource_size
(
info
->
mem
));
...
...
@@ -435,6 +435,7 @@ static int ep93xx_i2s_probe(struct platform_device *pdev)
iounmap
(
info
->
regs
);
fail_release_mem:
release_mem_region
(
info
->
mem
->
start
,
resource_size
(
info
->
mem
));
fail_free_info:
kfree
(
info
);
fail:
return
err
;
...
...
sound/soc/fsl/fsl_dma.c
View file @
26b9b559
...
...
@@ -879,10 +879,12 @@ static struct device_node *find_ssi_node(struct device_node *dma_channel_np)
* assume that device_node pointers are a valid comparison.
*/
np
=
of_parse_phandle
(
ssi_np
,
"fsl,playback-dma"
,
0
);
of_node_put
(
np
);
if
(
np
==
dma_channel_np
)
return
ssi_np
;
np
=
of_parse_phandle
(
ssi_np
,
"fsl,capture-dma"
,
0
);
of_node_put
(
np
);
if
(
np
==
dma_channel_np
)
return
ssi_np
;
}
...
...
sound/soc/fsl/mpc8610_hpcd.c
View file @
26b9b559
...
...
@@ -345,8 +345,10 @@ static int mpc8610_hpcd_probe(struct platform_device *pdev)
}
machine_data
=
kzalloc
(
sizeof
(
struct
mpc8610_hpcd_data
),
GFP_KERNEL
);
if
(
!
machine_data
)
return
-
ENOMEM
;
if
(
!
machine_data
)
{
ret
=
-
ENOMEM
;
goto
error_alloc
;
}
machine_data
->
dai
[
0
].
cpu_dai_name
=
dev_name
(
&
ssi_pdev
->
dev
);
machine_data
->
dai
[
0
].
ops
=
&
mpc8610_hpcd_ops
;
...
...
@@ -494,7 +496,7 @@ static int mpc8610_hpcd_probe(struct platform_device *pdev)
ret
=
platform_device_add
(
sound_device
);
if
(
ret
)
{
dev_err
(
&
pdev
->
dev
,
"platform device add failed
\n
"
);
goto
error
;
goto
error
_sound
;
}
dev_set_drvdata
(
&
pdev
->
dev
,
sound_device
);
...
...
@@ -502,14 +504,12 @@ static int mpc8610_hpcd_probe(struct platform_device *pdev)
return
0
;
error:
of_node_put
(
codec_np
);
if
(
sound_device
)
error_sound:
platform_device_unregister
(
sound_device
);
error:
kfree
(
machine_data
);
error_alloc:
of_node_put
(
codec_np
);
return
ret
;
}
...
...
sound/soc/fsl/p1022_ds.c
View file @
26b9b559
...
...
@@ -297,8 +297,10 @@ static int get_dma_channel(struct device_node *ssi_np,
* dai->platform name should already point to an allocated buffer.
*/
ret
=
of_address_to_resource
(
dma_channel_np
,
0
,
&
res
);
if
(
ret
)
if
(
ret
)
{
of_node_put
(
dma_channel_np
);
return
ret
;
}
snprintf
((
char
*
)
dai
->
platform_name
,
DAI_NAME_SIZE
,
"%llx.%s"
,
(
unsigned
long
long
)
res
.
start
,
dma_channel_np
->
name
);
...
...
sound/soc/kirkwood/kirkwood-i2s.c
View file @
26b9b559
...
...
@@ -424,7 +424,7 @@ static __devinit int kirkwood_i2s_dev_probe(struct platform_device *pdev)
if
(
!
priv
->
mem
)
{
dev_err
(
&
pdev
->
dev
,
"request_mem_region failed
\n
"
);
err
=
-
EBUSY
;
goto
error
;
goto
error
_alloc
;
}
priv
->
io
=
ioremap
(
priv
->
mem
->
start
,
SZ_16K
);
...
...
sound/soc/omap/ams-delta.c
View file @
26b9b559
...
...
@@ -514,7 +514,7 @@ static int ams_delta_cx20442_init(struct snd_soc_pcm_runtime *rtd)
}
/* Set codec bias level */
ams_delta_set_bias_level
(
card
,
SND_SOC_BIAS_STANDBY
);
ams_delta_set_bias_level
(
card
,
dapm
,
SND_SOC_BIAS_STANDBY
);
/* Add hook switch - can be used to control the codec from userspace
* even if line discipline fails */
...
...
@@ -649,7 +649,9 @@ static void __exit ams_delta_module_exit(void)
ams_delta_hook_switch_gpios
);
/* Keep modem power on */
ams_delta_set_bias_level
(
&
ams_delta_audio_card
,
SND_SOC_BIAS_STANDBY
);
ams_delta_set_bias_level
(
&
ams_delta_audio_card
,
&
ams_delta_audio_card
.
rtd
[
0
].
codec
->
dapm
,
SND_SOC_BIAS_STANDBY
);
platform_device_unregister
(
cx20442_platform_device
);
platform_device_unregister
(
ams_delta_audio_platform_device
);
...
...
sound/soc/samsung/Kconfig
View file @
26b9b559
...
...
@@ -185,6 +185,7 @@ config SND_SOC_SPEYSIDE
select SND_SAMSUNG_I2S
select SND_SOC_WM8996
select SND_SOC_WM9081
select SND_SOC_WM1250_EV1
config SND_SOC_SPEYSIDE_WM8962
tristate "Audio support for Wolfson Speyside with WM8962"
...
...
sound/soc/samsung/h1940_uda1380.c
View file @
26b9b559
...
...
@@ -13,6 +13,7 @@
*
*/
#include <linux/types.h>
#include <linux/gpio.h>
#include <sound/soc.h>
...
...
sound/soc/samsung/rx1950_uda1380.c
View file @
26b9b559
...
...
@@ -17,6 +17,7 @@
*
*/
#include <linux/types.h>
#include <linux/gpio.h>
#include <sound/soc.h>
...
...
sound/soc/samsung/speyside_wm8962.c
View file @
26b9b559
...
...
@@ -23,6 +23,9 @@ static int speyside_wm8962_set_bias_level(struct snd_soc_card *card,
struct
snd_soc_dai
*
codec_dai
=
card
->
rtd
[
0
].
codec_dai
;
int
ret
;
if
(
dapm
->
dev
!=
codec_dai
->
dev
)
return
0
;
switch
(
level
)
{
case
SND_SOC_BIAS_PREPARE
:
if
(
dapm
->
bias_level
==
SND_SOC_BIAS_STANDBY
)
{
...
...
@@ -57,6 +60,9 @@ static int speyside_wm8962_set_bias_level_post(struct snd_soc_card *card,
struct
snd_soc_dai
*
codec_dai
=
card
->
rtd
[
0
].
codec_dai
;
int
ret
;
if
(
dapm
->
dev
!=
codec_dai
->
dev
)
return
0
;
switch
(
level
)
{
case
SND_SOC_BIAS_STANDBY
:
ret
=
snd_soc_dai_set_sysclk
(
codec_dai
,
WM8962_SYSCLK_MCLK
,
...
...
sound/soc/soc-core.c
View file @
26b9b559
...
...
@@ -1913,7 +1913,7 @@ struct snd_kcontrol *snd_soc_cnew(const struct snd_kcontrol_new *_template,
if
(
prefix
)
{
name_len
=
strlen
(
long_name
)
+
strlen
(
prefix
)
+
2
;
name
=
kmalloc
(
name_len
,
GFP_
ATOMIC
);
name
=
kmalloc
(
name_len
,
GFP_
KERNEL
);
if
(
!
name
)
return
NULL
;
...
...
sound/soc/soc-io.c
View file @
26b9b559
...
...
@@ -205,6 +205,25 @@ static unsigned int snd_soc_16_8_read_i2c(struct snd_soc_codec *codec,
#define snd_soc_16_8_read_i2c NULL
#endif
#if defined(CONFIG_SPI_MASTER)
static
unsigned
int
snd_soc_16_8_read_spi
(
struct
snd_soc_codec
*
codec
,
unsigned
int
r
)
{
struct
spi_device
*
spi
=
codec
->
control_data
;
const
u16
reg
=
cpu_to_be16
(
r
|
0x100
);
u8
data
;
int
ret
;
ret
=
spi_write_then_read
(
spi
,
&
reg
,
2
,
&
data
,
1
);
if
(
ret
<
0
)
return
0
;
return
data
;
}
#else
#define snd_soc_16_8_read_spi NULL
#endif
static
int
snd_soc_16_8_write
(
struct
snd_soc_codec
*
codec
,
unsigned
int
reg
,
unsigned
int
value
)
{
...
...
@@ -295,6 +314,7 @@ static struct {
int
(
*
write
)(
struct
snd_soc_codec
*
codec
,
unsigned
int
,
unsigned
int
);
unsigned
int
(
*
read
)(
struct
snd_soc_codec
*
,
unsigned
int
);
unsigned
int
(
*
i2c_read
)(
struct
snd_soc_codec
*
,
unsigned
int
);
unsigned
int
(
*
spi_read
)(
struct
snd_soc_codec
*
,
unsigned
int
);
}
io_types
[]
=
{
{
.
addr_bits
=
4
,
.
data_bits
=
12
,
...
...
@@ -318,6 +338,7 @@ static struct {
.
addr_bits
=
16
,
.
data_bits
=
8
,
.
write
=
snd_soc_16_8_write
,
.
i2c_read
=
snd_soc_16_8_read_i2c
,
.
spi_read
=
snd_soc_16_8_read_spi
,
},
{
.
addr_bits
=
16
,
.
data_bits
=
16
,
...
...
@@ -383,6 +404,8 @@ int snd_soc_codec_set_cache_io(struct snd_soc_codec *codec,
#ifdef CONFIG_SPI_MASTER
codec
->
hw_write
=
do_spi_write
;
#endif
if
(
io_types
[
i
].
spi_read
)
codec
->
hw_read
=
io_types
[
i
].
spi_read
;
codec
->
control_data
=
container_of
(
codec
->
dev
,
struct
spi_device
,
...
...
sound/soc/soc-jack.c
View file @
26b9b559
...
...
@@ -327,7 +327,7 @@ int snd_soc_jack_add_gpios(struct snd_soc_jack *jack, int count,
IRQF_TRIGGER_FALLING
,
gpios
[
i
].
name
,
&
gpios
[
i
]);
if
(
ret
)
if
(
ret
<
0
)
goto
err
;
if
(
gpios
[
i
].
wake
)
{
...
...
sound/soc/soc-pcm.c
View file @
26b9b559
...
...
@@ -290,6 +290,9 @@ static int soc_pcm_close(struct snd_pcm_substream *substream)
codec_dai
->
active
--
;
codec
->
active
--
;
if
(
!
cpu_dai
->
active
&&
!
codec_dai
->
active
)
rtd
->
rate
=
0
;
/* Muting the DAC suppresses artifacts caused during digital
* shutdown, for example from stopping clocks.
*/
...
...
sound/soc/tegra/tegra_wm8903.c
View file @
26b9b559
...
...
@@ -319,7 +319,7 @@ static int tegra_wm8903_init(struct snd_soc_pcm_runtime *rtd)
snd_soc_dapm_force_enable_pin
(
dapm
,
"Mic Bias"
);
/* FIXME: Calculate automatically based on DAPM routes? */
if
(
!
machine_is_harmony
()
&&
!
machine_is_ventana
()
)
if
(
!
machine_is_harmony
())
snd_soc_dapm_nc_pin
(
dapm
,
"IN1L"
);
if
(
!
machine_is_seaboard
()
&&
!
machine_is_aebl
())
snd_soc_dapm_nc_pin
(
dapm
,
"IN1R"
);
...
...
@@ -395,7 +395,7 @@ static __devinit int tegra_wm8903_driver_probe(struct platform_device *pdev)
platform_set_drvdata
(
pdev
,
card
);
snd_soc_card_set_drvdata
(
card
,
machine
);
if
(
machine_is_harmony
()
||
machine_is_ventana
()
)
{
if
(
machine_is_harmony
())
{
card
->
dapm_routes
=
harmony_audio_map
;
card
->
num_dapm_routes
=
ARRAY_SIZE
(
harmony_audio_map
);
}
else
if
(
machine_is_seaboard
())
{
...
...
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