mfd: arizona-spi: Set pdata.hpdet_channel for ACPI enumerated devs

Message ID 20231014205414.59415-1-hdegoede@redhat.com
State New
Headers
Series mfd: arizona-spi: Set pdata.hpdet_channel for ACPI enumerated devs |

Commit Message

Hans de Goede Oct. 14, 2023, 8:54 p.m. UTC
  Commit 9e86b2ad4c11 changed the channel used for HPDET detection
(headphones vs lineout detection) from being hardcoded to
ARIZONA_ACCDET_MODE_HPL (HP left channel) to it being configurable
through arizona_pdata.hpdet_channel the DT/OF parsing added for
filling arizona_pdata on devicetree platforms ensures that
arizona_pdata.hpdet_channel gets set to ARIZONA_ACCDET_MODE_HPL
when not specified in the devicetree-node.

But on ACPI platforms where arizona_pdata is filled by
arizona_spi_acpi_probe() arizona_pdata.hpdet_channel was not
getting set, causing it to default to 0 aka ARIZONA_ACCDET_MODE_MIC.

This causes headphones to get misdetected as line-out on some models.
Fix this by setting hpdet_channel = ARIZONA_ACCDET_MODE_HPL.

Fixes: e933836744a2 ("mfd: arizona: Add support for ACPI enumeration of WM5102 connected over SPI")
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
 drivers/mfd/arizona-spi.c | 3 +++
 1 file changed, 3 insertions(+)
  

Comments

Lee Jones Oct. 19, 2023, 11:57 a.m. UTC | #1
On Sat, 14 Oct 2023 22:54:14 +0200, Hans de Goede wrote:
> Commit 9e86b2ad4c11 changed the channel used for HPDET detection
> (headphones vs lineout detection) from being hardcoded to
> ARIZONA_ACCDET_MODE_HPL (HP left channel) to it being configurable
> through arizona_pdata.hpdet_channel the DT/OF parsing added for
> filling arizona_pdata on devicetree platforms ensures that
> arizona_pdata.hpdet_channel gets set to ARIZONA_ACCDET_MODE_HPL
> when not specified in the devicetree-node.
> 
> [...]

Applied, thanks!

[1/1] mfd: arizona-spi: Set pdata.hpdet_channel for ACPI enumerated devs
      commit: 76a2f781da567a0ff7bd064d3ede064b29973b01

--
Lee Jones [李琼斯]
  

Patch

diff --git a/drivers/mfd/arizona-spi.c b/drivers/mfd/arizona-spi.c
index 02cf4f3e91d7..de5d894ac04a 100644
--- a/drivers/mfd/arizona-spi.c
+++ b/drivers/mfd/arizona-spi.c
@@ -159,6 +159,9 @@  static int arizona_spi_acpi_probe(struct arizona *arizona)
 	arizona->pdata.micd_ranges = arizona_micd_aosp_ranges;
 	arizona->pdata.num_micd_ranges = ARRAY_SIZE(arizona_micd_aosp_ranges);
 
+	/* Use left headphone speaker for HP vs line-out detection */
+	arizona->pdata.hpdet_channel = ARIZONA_ACCDET_MODE_HPL;
+
 	return 0;
 }