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
1946dda4
Commit
1946dda4
authored
May 12, 2023
by
Mark Brown
Browse files
Options
Browse Files
Download
Plain Diff
ASoC: Merge up fixes for CI
Avoid tripping over fixed issues in CI.
parents
7590c6a8
f63550e2
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
105 additions
and
14 deletions
+105
-14
Documentation/devicetree/bindings/sound/tas2562.yaml
Documentation/devicetree/bindings/sound/tas2562.yaml
+4
-2
Documentation/devicetree/bindings/sound/tas2770.yaml
Documentation/devicetree/bindings/sound/tas2770.yaml
+4
-2
Documentation/devicetree/bindings/sound/tas27xx.yaml
Documentation/devicetree/bindings/sound/tas27xx.yaml
+4
-2
sound/soc/amd/yc/acp6x-mach.c
sound/soc/amd/yc/acp6x-mach.c
+7
-0
sound/soc/codecs/ssm2602.c
sound/soc/codecs/ssm2602.c
+15
-0
sound/soc/dwc/dwc-i2s.c
sound/soc/dwc/dwc-i2s.c
+2
-2
sound/soc/fsl/fsl_micfil.c
sound/soc/fsl/fsl_micfil.c
+13
-1
sound/soc/jz4740/jz4740-i2s.c
sound/soc/jz4740/jz4740-i2s.c
+50
-4
sound/soc/sof/amd/acp-ipc.c
sound/soc/sof/amd/acp-ipc.c
+6
-1
No files found.
Documentation/devicetree/bindings/sound/tas2562.yaml
View file @
1946dda4
...
...
@@ -55,7 +55,9 @@ properties:
description
:
TDM TX current sense time slot.
'
#sound-dai-cells'
:
const
:
1
# The codec has a single DAI, the #sound-dai-cells=<1>; case is left in for backward
# compatibility but is deprecated.
enum
:
[
0
,
1
]
required
:
-
compatible
...
...
@@ -72,7 +74,7 @@ examples:
codec: codec@4c {
compatible = "ti,tas2562";
reg = <0x4c>;
#sound-dai-cells = <
1
>;
#sound-dai-cells = <
0
>;
interrupt-parent = <&gpio1>;
interrupts = <14>;
shutdown-gpios = <&gpio1 15 0>;
...
...
Documentation/devicetree/bindings/sound/tas2770.yaml
View file @
1946dda4
...
...
@@ -57,7 +57,9 @@ properties:
-
1
# Falling edge
'
#sound-dai-cells'
:
const
:
1
# The codec has a single DAI, the #sound-dai-cells=<1>; case is left in for backward
# compatibility but is deprecated.
enum
:
[
0
,
1
]
required
:
-
compatible
...
...
@@ -74,7 +76,7 @@ examples:
codec: codec@41 {
compatible = "ti,tas2770";
reg = <0x41>;
#sound-dai-cells = <
1
>;
#sound-dai-cells = <
0
>;
interrupt-parent = <&gpio1>;
interrupts = <14>;
reset-gpio = <&gpio1 15 0>;
...
...
Documentation/devicetree/bindings/sound/tas27xx.yaml
View file @
1946dda4
...
...
@@ -50,7 +50,9 @@ properties:
description
:
TDM TX voltage sense time slot.
'
#sound-dai-cells'
:
const
:
1
# The codec has a single DAI, the #sound-dai-cells=<1>; case is left in for backward
# compatibility but is deprecated.
enum
:
[
0
,
1
]
required
:
-
compatible
...
...
@@ -67,7 +69,7 @@ examples:
codec: codec@38 {
compatible = "ti,tas2764";
reg = <0x38>;
#sound-dai-cells = <
1
>;
#sound-dai-cells = <
0
>;
interrupt-parent = <&gpio1>;
interrupts = <14>;
reset-gpios = <&gpio1 15 0>;
...
...
sound/soc/amd/yc/acp6x-mach.c
View file @
1946dda4
...
...
@@ -318,6 +318,13 @@ static const struct dmi_system_id yc_acp_quirk_table[] = {
DMI_MATCH
(
DMI_BOARD_NAME
,
"MRID6"
),
}
},
{
.
driver_data
=
&
acp6x_card
,
.
matches
=
{
DMI_MATCH
(
DMI_BOARD_VENDOR
,
"System76"
),
DMI_MATCH
(
DMI_PRODUCT_VERSION
,
"pang12"
),
}
},
{}
};
...
...
sound/soc/codecs/ssm2602.c
View file @
1946dda4
...
...
@@ -53,6 +53,18 @@ static const struct reg_default ssm2602_reg[SSM2602_CACHEREGNUM] = {
{
.
reg
=
0x09
,
.
def
=
0x0000
}
};
/*
* ssm2602 register patch
* Workaround for playback distortions after power up: activates digital
* core, and then powers on output, DAC, and whole chip at the same time
*/
static
const
struct
reg_sequence
ssm2602_patch
[]
=
{
{
SSM2602_ACTIVE
,
0x01
},
{
SSM2602_PWR
,
0x07
},
{
SSM2602_RESET
,
0x00
},
};
/*Appending several "None"s just for OSS mixer use*/
static
const
char
*
ssm2602_input_select
[]
=
{
...
...
@@ -598,6 +610,9 @@ static int ssm260x_component_probe(struct snd_soc_component *component)
return
ret
;
}
regmap_register_patch
(
ssm2602
->
regmap
,
ssm2602_patch
,
ARRAY_SIZE
(
ssm2602_patch
));
/* set the update bits */
regmap_update_bits
(
ssm2602
->
regmap
,
SSM2602_LINVOL
,
LINVOL_LRIN_BOTH
,
LINVOL_LRIN_BOTH
);
...
...
sound/soc/dwc/dwc-i2s.c
View file @
1946dda4
...
...
@@ -133,13 +133,13 @@ static irqreturn_t i2s_irq_handler(int irq, void *dev_id)
/* Error Handling: TX */
if
(
isr
[
i
]
&
ISR_TXFO
)
{
dev_err
(
dev
->
dev
,
"TX overrun (ch_id=%d)
\n
"
,
i
);
dev_err
_ratelimited
(
dev
->
dev
,
"TX overrun (ch_id=%d)
\n
"
,
i
);
irq_valid
=
true
;
}
/* Error Handling: TX */
if
(
isr
[
i
]
&
ISR_RXFO
)
{
dev_err
(
dev
->
dev
,
"RX overrun (ch_id=%d)
\n
"
,
i
);
dev_err
_ratelimited
(
dev
->
dev
,
"RX overrun (ch_id=%d)
\n
"
,
i
);
irq_valid
=
true
;
}
}
...
...
sound/soc/fsl/fsl_micfil.c
View file @
1946dda4
...
...
@@ -1159,7 +1159,7 @@ static int fsl_micfil_probe(struct platform_device *pdev)
ret
=
devm_snd_dmaengine_pcm_register
(
&
pdev
->
dev
,
NULL
,
0
);
if
(
ret
)
{
dev_err
(
&
pdev
->
dev
,
"failed to pcm register
\n
"
);
return
ret
;
goto
err_pm_disable
;
}
fsl_micfil_dai
.
capture
.
formats
=
micfil
->
soc
->
formats
;
...
...
@@ -1169,9 +1169,20 @@ static int fsl_micfil_probe(struct platform_device *pdev)
if
(
ret
)
{
dev_err
(
&
pdev
->
dev
,
"failed to register component %s
\n
"
,
fsl_micfil_component
.
name
);
goto
err_pm_disable
;
}
return
ret
;
err_pm_disable:
pm_runtime_disable
(
&
pdev
->
dev
);
return
ret
;
}
static
void
fsl_micfil_remove
(
struct
platform_device
*
pdev
)
{
pm_runtime_disable
(
&
pdev
->
dev
);
}
static
int
__maybe_unused
fsl_micfil_runtime_suspend
(
struct
device
*
dev
)
...
...
@@ -1232,6 +1243,7 @@ static const struct dev_pm_ops fsl_micfil_pm_ops = {
static
struct
platform_driver
fsl_micfil_driver
=
{
.
probe
=
fsl_micfil_probe
,
.
remove_new
=
fsl_micfil_remove
,
.
driver
=
{
.
name
=
"fsl-micfil-dai"
,
.
pm
=
&
fsl_micfil_pm_ops
,
...
...
sound/soc/jz4740/jz4740-i2s.c
View file @
1946dda4
...
...
@@ -218,18 +218,48 @@ static int jz4740_i2s_set_fmt(struct snd_soc_dai *dai, unsigned int fmt)
return
0
;
}
static
int
jz4740_i2s_get_i2sdiv
(
unsigned
long
mclk
,
unsigned
long
rate
,
unsigned
long
i2sdiv_max
)
{
unsigned
long
div
,
rate1
,
rate2
,
err1
,
err2
;
div
=
mclk
/
(
64
*
rate
);
if
(
div
==
0
)
div
=
1
;
rate1
=
mclk
/
(
64
*
div
);
rate2
=
mclk
/
(
64
*
(
div
+
1
));
err1
=
abs
(
rate1
-
rate
);
err2
=
abs
(
rate2
-
rate
);
/*
* Choose the divider that produces the smallest error in the
* output rate and reject dividers with a 5% or higher error.
* In the event that both dividers are outside the acceptable
* error margin, reject the rate to prevent distorted audio.
* (The number 5% is arbitrary.)
*/
if
(
div
<=
i2sdiv_max
&&
err1
<=
err2
&&
err1
<
rate
/
20
)
return
div
;
if
(
div
<
i2sdiv_max
&&
err2
<
rate
/
20
)
return
div
+
1
;
return
-
EINVAL
;
}
static
int
jz4740_i2s_hw_params
(
struct
snd_pcm_substream
*
substream
,
struct
snd_pcm_hw_params
*
params
,
struct
snd_soc_dai
*
dai
)
{
struct
jz4740_i2s
*
i2s
=
snd_soc_dai_get_drvdata
(
dai
);
struct
regmap_field
*
div_field
;
unsigned
long
i2sdiv_max
;
unsigned
int
sample_size
;
uint32_t
ctrl
;
int
div
;
uint32_t
ctrl
,
conf
;
int
div
=
1
;
regmap_read
(
i2s
->
regmap
,
JZ_REG_AIC_CTRL
,
&
ctrl
);
div
=
clk_get_rate
(
i2s
->
clk_i2s
)
/
(
64
*
params_rate
(
params
));
regmap_read
(
i2s
->
regmap
,
JZ_REG_AIC_CONF
,
&
conf
);
switch
(
params_format
(
params
))
{
case
SNDRV_PCM_FORMAT_S8
:
...
...
@@ -258,11 +288,27 @@ static int jz4740_i2s_hw_params(struct snd_pcm_substream *substream,
ctrl
&=
~
JZ_AIC_CTRL_MONO_TO_STEREO
;
div_field
=
i2s
->
field_i2sdiv_playback
;
i2sdiv_max
=
GENMASK
(
i2s
->
soc_info
->
field_i2sdiv_playback
.
msb
,
i2s
->
soc_info
->
field_i2sdiv_playback
.
lsb
);
}
else
{
ctrl
&=
~
JZ_AIC_CTRL_INPUT_SAMPLE_SIZE
;
ctrl
|=
FIELD_PREP
(
JZ_AIC_CTRL_INPUT_SAMPLE_SIZE
,
sample_size
);
div_field
=
i2s
->
field_i2sdiv_capture
;
i2sdiv_max
=
GENMASK
(
i2s
->
soc_info
->
field_i2sdiv_capture
.
msb
,
i2s
->
soc_info
->
field_i2sdiv_capture
.
lsb
);
}
/*
* Only calculate I2SDIV if we're supplying the bit or frame clock.
* If the codec is supplying both clocks then the divider output is
* unused, and we don't want it to limit the allowed sample rates.
*/
if
(
conf
&
(
JZ_AIC_CONF_BIT_CLK_MASTER
|
JZ_AIC_CONF_SYNC_CLK_MASTER
))
{
div
=
jz4740_i2s_get_i2sdiv
(
clk_get_rate
(
i2s
->
clk_i2s
),
params_rate
(
params
),
i2sdiv_max
);
if
(
div
<
0
)
return
div
;
}
regmap_write
(
i2s
->
regmap
,
JZ_REG_AIC_CTRL
,
ctrl
);
...
...
sound/soc/sof/amd/acp-ipc.c
View file @
1946dda4
...
...
@@ -209,7 +209,12 @@ int acp_sof_ipc_msg_data(struct snd_sof_dev *sdev, struct snd_sof_pcm_stream *sp
acp_mailbox_read
(
sdev
,
offset
,
p
,
sz
);
}
else
{
struct
snd_pcm_substream
*
substream
=
sps
->
substream
;
struct
acp_dsp_stream
*
stream
=
substream
->
runtime
->
private_data
;
struct
acp_dsp_stream
*
stream
;
if
(
!
substream
||
!
substream
->
runtime
)
return
-
ESTRPIPE
;
stream
=
substream
->
runtime
->
private_data
;
if
(
!
stream
)
return
-
ESTRPIPE
;
...
...
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