* [PATCH 0/3] Bitmask logic fix and firmware-name support for AW88261 amplifier driver
@ 2026-02-11 10:27 Luca Weiss
2026-02-11 10:27 ` [PATCH 1/3] ASoC: codecs: aw88261: Fix erroneous bitmask logic in Awinic init Luca Weiss
` (5 more replies)
0 siblings, 6 replies; 8+ messages in thread
From: Luca Weiss @ 2026-02-11 10:27 UTC (permalink / raw)
To: Liam Girdwood, Mark Brown, Jaroslav Kysela, Takashi Iwai,
Weidong Wang, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Alexandre Ferrieux, Bhushan Shah, Bharadwaj Raju
Cc: ~postmarketos/upstreaming, phone-devel, linux-sound,
linux-kernel, devicetree, Luca Weiss
First a patch which fixes a logic error in the aw88261 driver. And then
we add "firmware-name" support for that driver to support loading
the device-specific firmware properly.
Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
---
Alexandre Ferrieux (1):
ASoC: codecs: aw88261: Fix erroneous bitmask logic in Awinic init
Luca Weiss (2):
ASoC: dt-bindings: awinic,aw88395: Document firmware-name property
ASoC: codecs: aw88261: Add firmware-name support
.../devicetree/bindings/sound/awinic,aw88395.yaml | 4 ++++
sound/soc/codecs/aw88261.c | 16 +++++++++++-----
2 files changed, 15 insertions(+), 5 deletions(-)
---
base-commit: 6ca87498ba32522a6c10914add7beb2d9a2eb558
change-id: 20260211-aw88261-fwname-89c21d6c9476
Best regards,
--
Luca Weiss <luca.weiss@fairphone.com>
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 1/3] ASoC: codecs: aw88261: Fix erroneous bitmask logic in Awinic init
2026-02-11 10:27 [PATCH 0/3] Bitmask logic fix and firmware-name support for AW88261 amplifier driver Luca Weiss
@ 2026-02-11 10:27 ` Luca Weiss
2026-02-11 10:27 ` [PATCH 2/3] ASoC: dt-bindings: awinic,aw88395: Document firmware-name property Luca Weiss
` (4 subsequent siblings)
5 siblings, 0 replies; 8+ messages in thread
From: Luca Weiss @ 2026-02-11 10:27 UTC (permalink / raw)
To: Liam Girdwood, Mark Brown, Jaroslav Kysela, Takashi Iwai,
Weidong Wang, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Alexandre Ferrieux, Bhushan Shah, Bharadwaj Raju
Cc: ~postmarketos/upstreaming, phone-devel, linux-sound,
linux-kernel, devicetree, Luca Weiss
From: Alexandre Ferrieux <alexandre.ferrieux@orange.com>
The aw88261_dev_reg_update() function sets the Awinic registers in a
rather nonuniform way:
- most registers get directly overwritten from the firmware blob
- but a handful of them need more delicate logic to preserve
some bits from their current value, according to a register-
specific mask
For the latter, the logic is basically
NEW = (OLD & MASK) | (VAL & ~MASK)
However, the ~MASK value is hand-computed, and in the specific case
of the SYSCTRL register, in a buggy way.
This patch restores the proper ~MASK value.
Fixes: 028a2ae25691 ("ASoC: codecs: Add aw88261 amplifier driver")
Signed-off-by: Alexandre Ferrieux <alexandre.ferrieux@orange.com>
---
sound/soc/codecs/aw88261.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/sound/soc/codecs/aw88261.c b/sound/soc/codecs/aw88261.c
index 29b3fc8a1ea4..43c03d3cb252 100644
--- a/sound/soc/codecs/aw88261.c
+++ b/sound/soc/codecs/aw88261.c
@@ -424,9 +424,10 @@ static int aw88261_dev_reg_update(struct aw88261 *aw88261,
if (ret)
break;
+ /* keep all three bits from current hw status */
read_val &= (~AW88261_AMPPD_MASK) | (~AW88261_PWDN_MASK) |
(~AW88261_HMUTE_MASK);
- reg_val &= (AW88261_AMPPD_MASK | AW88261_PWDN_MASK | AW88261_HMUTE_MASK);
+ reg_val &= (AW88261_AMPPD_MASK & AW88261_PWDN_MASK & AW88261_HMUTE_MASK);
reg_val |= read_val;
/* enable uls hmute */
--
2.53.0
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 2/3] ASoC: dt-bindings: awinic,aw88395: Document firmware-name property
2026-02-11 10:27 [PATCH 0/3] Bitmask logic fix and firmware-name support for AW88261 amplifier driver Luca Weiss
2026-02-11 10:27 ` [PATCH 1/3] ASoC: codecs: aw88261: Fix erroneous bitmask logic in Awinic init Luca Weiss
@ 2026-02-11 10:27 ` Luca Weiss
2026-02-12 11:34 ` Krzysztof Kozlowski
2026-02-11 10:27 ` [PATCH 3/3] ASoC: codecs: aw88261: Add firmware-name support Luca Weiss
` (3 subsequent siblings)
5 siblings, 1 reply; 8+ messages in thread
From: Luca Weiss @ 2026-02-11 10:27 UTC (permalink / raw)
To: Liam Girdwood, Mark Brown, Jaroslav Kysela, Takashi Iwai,
Weidong Wang, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Alexandre Ferrieux, Bhushan Shah, Bharadwaj Raju
Cc: ~postmarketos/upstreaming, phone-devel, linux-sound,
linux-kernel, devicetree, Luca Weiss
Since the aw88261_acf.bin file appears to be device-specific, add a
firmware-name property so that devicetree users can point to a
device-specific path to not conflict with other devices that might also
ship a aw88261_acf.bin.
Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
---
Documentation/devicetree/bindings/sound/awinic,aw88395.yaml | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/Documentation/devicetree/bindings/sound/awinic,aw88395.yaml b/Documentation/devicetree/bindings/sound/awinic,aw88395.yaml
index 994d68c074a9..b9abb10942ba 100644
--- a/Documentation/devicetree/bindings/sound/awinic,aw88395.yaml
+++ b/Documentation/devicetree/bindings/sound/awinic,aw88395.yaml
@@ -35,6 +35,10 @@ properties:
dvdd-supply: true
+ firmware-name:
+ maxItems: 1
+ description: Name of the *_acf.bin file used for amplifier initialization
+
awinic,audio-channel:
description:
It is used to distinguish multiple PA devices, so that different
--
2.53.0
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 3/3] ASoC: codecs: aw88261: Add firmware-name support
2026-02-11 10:27 [PATCH 0/3] Bitmask logic fix and firmware-name support for AW88261 amplifier driver Luca Weiss
2026-02-11 10:27 ` [PATCH 1/3] ASoC: codecs: aw88261: Fix erroneous bitmask logic in Awinic init Luca Weiss
2026-02-11 10:27 ` [PATCH 2/3] ASoC: dt-bindings: awinic,aw88395: Document firmware-name property Luca Weiss
@ 2026-02-11 10:27 ` Luca Weiss
2026-02-12 16:34 ` (subset) [PATCH 0/3] Bitmask logic fix and firmware-name support for AW88261 amplifier driver Mark Brown
` (2 subsequent siblings)
5 siblings, 0 replies; 8+ messages in thread
From: Luca Weiss @ 2026-02-11 10:27 UTC (permalink / raw)
To: Liam Girdwood, Mark Brown, Jaroslav Kysela, Takashi Iwai,
Weidong Wang, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Alexandre Ferrieux, Bhushan Shah, Bharadwaj Raju
Cc: ~postmarketos/upstreaming, phone-devel, linux-sound,
linux-kernel, devicetree, Luca Weiss
Since the aw88261_acf.bin file appears to be device-specific, add
firmware-name support so that devicetree users can point to a
device-specific path to not conflict with other devices that might also
ship a aw88261_acf.bin.
Read the "firmware-name" property if available, and otherwise fall back
to the generic name.
Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
---
sound/soc/codecs/aw88261.c | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/sound/soc/codecs/aw88261.c b/sound/soc/codecs/aw88261.c
index 43c03d3cb252..02f8c2bb2569 100644
--- a/sound/soc/codecs/aw88261.c
+++ b/sound/soc/codecs/aw88261.c
@@ -1094,17 +1094,22 @@ static int aw88261_dev_init(struct aw88261 *aw88261, struct aw_container *aw_cfg
static int aw88261_request_firmware_file(struct aw88261 *aw88261)
{
const struct firmware *cont = NULL;
+ const char *fw_name;
int ret;
aw88261->aw_pa->fw_status = AW88261_DEV_FW_FAILED;
- ret = request_firmware(&cont, AW88261_ACF_FILE, aw88261->aw_pa->dev);
+ ret = device_property_read_string(aw88261->aw_pa->dev, "firmware-name", &fw_name);
+ if (ret)
+ fw_name = AW88261_ACF_FILE;
+
+ ret = request_firmware(&cont, fw_name, aw88261->aw_pa->dev);
if (ret)
return dev_err_probe(aw88261->aw_pa->dev, ret,
- "load [%s] failed!", AW88261_ACF_FILE);
+ "load [%s] failed!", fw_name);
dev_info(aw88261->aw_pa->dev, "loaded %s - size: %zu\n",
- AW88261_ACF_FILE, cont ? cont->size : 0);
+ fw_name, cont ? cont->size : 0);
aw88261->aw_cfg = devm_kzalloc(aw88261->aw_pa->dev, cont->size + sizeof(int), GFP_KERNEL);
if (!aw88261->aw_cfg) {
@@ -1117,7 +1122,7 @@ static int aw88261_request_firmware_file(struct aw88261 *aw88261)
ret = aw88395_dev_load_acf_check(aw88261->aw_pa, aw88261->aw_cfg);
if (ret) {
- dev_err(aw88261->aw_pa->dev, "load [%s] failed !", AW88261_ACF_FILE);
+ dev_err(aw88261->aw_pa->dev, "load [%s] failed !", fw_name);
return ret;
}
--
2.53.0
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2/3] ASoC: dt-bindings: awinic,aw88395: Document firmware-name property
2026-02-11 10:27 ` [PATCH 2/3] ASoC: dt-bindings: awinic,aw88395: Document firmware-name property Luca Weiss
@ 2026-02-12 11:34 ` Krzysztof Kozlowski
0 siblings, 0 replies; 8+ messages in thread
From: Krzysztof Kozlowski @ 2026-02-12 11:34 UTC (permalink / raw)
To: Luca Weiss
Cc: Liam Girdwood, Mark Brown, Jaroslav Kysela, Takashi Iwai,
Weidong Wang, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Alexandre Ferrieux, Bhushan Shah, Bharadwaj Raju,
~postmarketos/upstreaming, phone-devel, linux-sound,
linux-kernel, devicetree
On Wed, Feb 11, 2026 at 11:27:33AM +0100, Luca Weiss wrote:
> Since the aw88261_acf.bin file appears to be device-specific, add a
> firmware-name property so that devicetree users can point to a
> device-specific path to not conflict with other devices that might also
> ship a aw88261_acf.bin.
>
> Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
> ---
> Documentation/devicetree/bindings/sound/awinic,aw88395.yaml | 4 ++++
> 1 file changed, 4 insertions(+)
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: (subset) [PATCH 0/3] Bitmask logic fix and firmware-name support for AW88261 amplifier driver
2026-02-11 10:27 [PATCH 0/3] Bitmask logic fix and firmware-name support for AW88261 amplifier driver Luca Weiss
` (2 preceding siblings ...)
2026-02-11 10:27 ` [PATCH 3/3] ASoC: codecs: aw88261: Add firmware-name support Luca Weiss
@ 2026-02-12 16:34 ` Mark Brown
2026-02-17 19:24 ` Mark Brown
2026-02-18 23:34 ` Mark Brown
5 siblings, 0 replies; 8+ messages in thread
From: Mark Brown @ 2026-02-12 16:34 UTC (permalink / raw)
To: Liam Girdwood, Jaroslav Kysela, Takashi Iwai, Weidong Wang,
Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Alexandre Ferrieux, Bhushan Shah, Bharadwaj Raju, Luca Weiss
Cc: ~postmarketos/upstreaming, phone-devel, linux-sound,
linux-kernel, devicetree
On Wed, 11 Feb 2026 11:27:31 +0100, Luca Weiss wrote:
> First a patch which fixes a logic error in the aw88261 driver. And then
> we add "firmware-name" support for that driver to support loading
> the device-specific firmware properly.
>
>
Applied to
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next
Thanks!
[1/3] ASoC: codecs: aw88261: Fix erroneous bitmask logic in Awinic init
commit: b82fa9b0c26eeb2fde6017f7de2c3c544484efef
All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying
to this mail.
Thanks,
Mark
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: (subset) [PATCH 0/3] Bitmask logic fix and firmware-name support for AW88261 amplifier driver
2026-02-11 10:27 [PATCH 0/3] Bitmask logic fix and firmware-name support for AW88261 amplifier driver Luca Weiss
` (3 preceding siblings ...)
2026-02-12 16:34 ` (subset) [PATCH 0/3] Bitmask logic fix and firmware-name support for AW88261 amplifier driver Mark Brown
@ 2026-02-17 19:24 ` Mark Brown
2026-02-18 23:34 ` Mark Brown
5 siblings, 0 replies; 8+ messages in thread
From: Mark Brown @ 2026-02-17 19:24 UTC (permalink / raw)
To: Liam Girdwood, Jaroslav Kysela, Takashi Iwai, Weidong Wang,
Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Alexandre Ferrieux, Bhushan Shah, Bharadwaj Raju, Luca Weiss
Cc: ~postmarketos/upstreaming, phone-devel, linux-sound,
linux-kernel, devicetree
On Wed, 11 Feb 2026 11:27:31 +0100, Luca Weiss wrote:
> First a patch which fixes a logic error in the aw88261 driver. And then
> we add "firmware-name" support for that driver to support loading
> the device-specific firmware properly.
>
>
Applied to
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next
Thanks!
[1/3] ASoC: codecs: aw88261: Fix erroneous bitmask logic in Awinic init
commit: b82fa9b0c26eeb2fde6017f7de2c3c544484efef
All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying
to this mail.
Thanks,
Mark
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 0/3] Bitmask logic fix and firmware-name support for AW88261 amplifier driver
2026-02-11 10:27 [PATCH 0/3] Bitmask logic fix and firmware-name support for AW88261 amplifier driver Luca Weiss
` (4 preceding siblings ...)
2026-02-17 19:24 ` Mark Brown
@ 2026-02-18 23:34 ` Mark Brown
5 siblings, 0 replies; 8+ messages in thread
From: Mark Brown @ 2026-02-18 23:34 UTC (permalink / raw)
To: Liam Girdwood, Jaroslav Kysela, Takashi Iwai, Weidong Wang,
Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Alexandre Ferrieux, Bhushan Shah, Bharadwaj Raju, Luca Weiss
Cc: ~postmarketos/upstreaming, phone-devel, linux-sound,
linux-kernel, devicetree
On Wed, 11 Feb 2026 11:27:31 +0100, Luca Weiss wrote:
> First a patch which fixes a logic error in the aw88261 driver. And then
> we add "firmware-name" support for that driver to support loading
> the device-specific firmware properly.
>
>
Applied to
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next
Thanks!
[1/3] ASoC: codecs: aw88261: Fix erroneous bitmask logic in Awinic init
commit: b82fa9b0c26eeb2fde6017f7de2c3c544484efef
[2/3] ASoC: dt-bindings: awinic,aw88395: Document firmware-name property
(no commit info)
[3/3] ASoC: codecs: aw88261: Add firmware-name support
(no commit info)
All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying
to this mail.
Thanks,
Mark
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2026-02-18 23:34 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-02-11 10:27 [PATCH 0/3] Bitmask logic fix and firmware-name support for AW88261 amplifier driver Luca Weiss
2026-02-11 10:27 ` [PATCH 1/3] ASoC: codecs: aw88261: Fix erroneous bitmask logic in Awinic init Luca Weiss
2026-02-11 10:27 ` [PATCH 2/3] ASoC: dt-bindings: awinic,aw88395: Document firmware-name property Luca Weiss
2026-02-12 11:34 ` Krzysztof Kozlowski
2026-02-11 10:27 ` [PATCH 3/3] ASoC: codecs: aw88261: Add firmware-name support Luca Weiss
2026-02-12 16:34 ` (subset) [PATCH 0/3] Bitmask logic fix and firmware-name support for AW88261 amplifier driver Mark Brown
2026-02-17 19:24 ` Mark Brown
2026-02-18 23:34 ` Mark Brown
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®