ACK/Cmnt: [PATCH v2 0/3][SRU][Jammy] Headset mic with Cirrus logic codec doesn't work

AceLan Kao acelan.kao at canonical.com
Tue Jul 19 03:42:58 UTC 2022


Tim Gardner <tim.gardner at canonical.com> 於 2022年7月18日 週一 晚上11:18寫道:
>
> On 7/18/22 03:04, AceLan Kao wrote:
> > From: "Chia-Lin Kao (AceLan)" <acelan.kao at canonical.com>
> >
> > BugLink: https://bugs.launchpad.net/bugs/1972815
> >
> > [Impact]
> > Headset mic doesn't be selected automatically after headset is plugged in.
> >
> > [Fix]
> > Cirrus provides a fix for this issue which has been merged into
> > v5.19-rc1
> > https://patchwork.kernel.org/project/alsa-devel/cover/20220504161236.2490532-1-sbinding@opensource.cirrus.com/
> >
> > ec6a8aaafbc5 ALSA: hda/cs8409: Support manual mode detection for CS42L42
> > 9cd827381310 ALSA: hda/cs8409: Use general cs42l42 include in cs8409 hda driver
> > 7b43e6d79562 ASoC: cs42l42: Move CS42L42 register descriptions to general include
> >
> > [Test]
> > Verified on the target platform, and confirmed these patches work.
> >
> > [Where problems could occur]
> > These affect the mic detection on CS8409_BULLSEYE, CS8409_WARLOCK,
> > CS8409_WARLOCK_MLK, CS8409_WARLOCK_MLK_DUAL_MIC, CS8409_CYBORG,
> > and CS8409_ODIN platforms. Hard to tell if it introduce any regression,
> > will keep an eye on it.
> >
> > Stefan Binding (3):
> >    ASoC: cs42l42: Move CS42L42 register descriptions to general include
> >    ALSA: hda/cs8409: Use general cs42l42 include in cs8409 hda driver
> >    ALSA: hda/cs8409: Support manual mode detection for CS42L42
> >
> >   include/sound/cs42l42.h             | 810 ++++++++++++++++++++++++++++
> >   sound/pci/hda/patch_cs8409-tables.c | 327 ++++++-----
> >   sound/pci/hda/patch_cs8409.c        | 275 +++++++---
> >   sound/pci/hda/patch_cs8409.h        |   9 +-
> >   sound/soc/codecs/cs42l42.h          | 751 +-------------------------
> >   5 files changed, 1167 insertions(+), 1005 deletions(-)
> >   create mode 100644 include/sound/cs42l42.h
> >
> Acked-by: Tim Gardner <tim.gardner at canonical.com>
>
> Describe your backport changes.
The conflict parts are in the first commit for this file
sound/soc/codecs/cs42l42.h
It removes all defines in the file and create a new file,
include/sound/cs42l42.h
, to store those defines
The conflict parts are some defines which are going to be removed do
not exist in our old sound/soc/codecs/cs42l42.h, I just ignore them
and remove all defines in sound/soc/codecs/cs42l42.h
That introduces some new defines in include/sound/cs42l42.h that do
not exist in sound/soc/codecs/cs42l42.h, and this should be no harm.

part 1
-#define CS42L42_SLOW_START_ENABLE      (CS42L42_PAGE_10 + 0x0B)
-#define CS42L42_SLOW_START_EN_MASK     GENMASK(6, 4)
-#define CS42L42_SLOW_START_EN_SHIFT    4

part 2
-#define CS42L42_HSDET_COMP1_LVL_VAL    12 /* 1.25V Comparator */
-#define CS42L42_HSDET_COMP2_LVL_VAL    2  /* 1.75V Comparator */
-#define CS42L42_HSDET_COMP1_LVL_DEFAULT        7  /* 1V Comparator */
-#define CS42L42_HSDET_COMP2_LVL_DEFAULT        7  /* 2V Comparator */

part3
-#define CS42L42_HSDET_SW_COMP1         ((0 << CS42L42_SW_GNDHS_HS4_SHIFT) | \
-                                        (1 << CS42L42_SW_GNDHS_HS3_SHIFT) | \
-                                        (1 << CS42L42_SW_HSB_HS4_SHIFT) | \
-                                        (0 << CS42L42_SW_HSB_HS3_SHIFT) | \
-                                        (0 <<
CS42L42_SW_HSB_FILT_HS4_SHIFT) | \
-                                        (1 <<
CS42L42_SW_HSB_FILT_HS3_SHIFT) | \
-                                        (0 << CS42L42_SW_REF_HS4_SHIFT) | \
-                                        (1 << CS42L42_SW_REF_HS3_SHIFT))
-#define CS42L42_HSDET_SW_COMP2         ((1 << CS42L42_SW_GNDHS_HS4_SHIFT) | \
-                                        (0 << CS42L42_SW_GNDHS_HS3_SHIFT) | \
-                                        (0 << CS42L42_SW_HSB_HS4_SHIFT) | \
-                                        (1 << CS42L42_SW_HSB_HS3_SHIFT) | \
-                                        (1 <<
CS42L42_SW_HSB_FILT_HS4_SHIFT) | \
-                                        (0 <<
CS42L42_SW_HSB_FILT_HS3_SHIFT) | \
-                                        (1 << CS42L42_SW_REF_HS4_SHIFT) | \
-                                        (0 << CS42L42_SW_REF_HS3_SHIFT))
-#define CS42L42_HSDET_SW_TYPE1         ((0 << CS42L42_SW_GNDHS_HS4_SHIFT) | \
-                                        (1 << CS42L42_SW_GNDHS_HS3_SHIFT) | \
-                                        (1 << CS42L42_SW_HSB_HS4_SHIFT) | \
-                                        (0 << CS42L42_SW_HSB_HS3_SHIFT) | \
-                                        (0 <<
CS42L42_SW_HSB_FILT_HS4_SHIFT) | \
-                                        (1 <<
CS42L42_SW_HSB_FILT_HS3_SHIFT) | \
-                                        (0 << CS42L42_SW_REF_HS4_SHIFT) | \
-                                        (1 << CS42L42_SW_REF_HS3_SHIFT))
-#define CS42L42_HSDET_SW_TYPE2         ((1 << CS42L42_SW_GNDHS_HS4_SHIFT) | \
-                                        (0 << CS42L42_SW_GNDHS_HS3_SHIFT) | \
-                                        (0 << CS42L42_SW_HSB_HS4_SHIFT) | \
-                                        (1 << CS42L42_SW_HSB_HS3_SHIFT) | \
-                                        (1 <<
CS42L42_SW_HSB_FILT_HS4_SHIFT) | \
-                                        (0 <<
CS42L42_SW_HSB_FILT_HS3_SHIFT) | \
-                                        (1 << CS42L42_SW_REF_HS4_SHIFT) | \
-                                        (0 << CS42L42_SW_REF_HS3_SHIFT))
-#define CS42L42_HSDET_SW_TYPE3         ((1 << CS42L42_SW_GNDHS_HS4_SHIFT) | \
-                                        (1 << CS42L42_SW_GNDHS_HS3_SHIFT) | \
-                                        (0 << CS42L42_SW_HSB_HS4_SHIFT) | \
-                                        (0 << CS42L42_SW_HSB_HS3_SHIFT) | \
-                                        (1 <<
CS42L42_SW_HSB_FILT_HS4_SHIFT) | \
-                                        (1 <<
CS42L42_SW_HSB_FILT_HS3_SHIFT) | \
-                                        (1 << CS42L42_SW_REF_HS4_SHIFT) | \
-                                        (1 << CS42L42_SW_REF_HS3_SHIFT))
-#define CS42L42_HSDET_SW_TYPE4         ((0 << CS42L42_SW_GNDHS_HS4_SHIFT) | \
-                                        (1 << CS42L42_SW_GNDHS_HS3_SHIFT) | \
-                                        (1 << CS42L42_SW_HSB_HS4_SHIFT) | \
-                                        (0 << CS42L42_SW_HSB_HS3_SHIFT) | \
-                                        (0 <<
CS42L42_SW_HSB_FILT_HS4_SHIFT) | \
-                                        (1 <<
CS42L42_SW_HSB_FILT_HS3_SHIFT) | \
-                                        (0 << CS42L42_SW_REF_HS4_SHIFT) | \
-                                        (1 << CS42L42_SW_REF_HS3_SHIFT))
-
-#define CS42L42_HSDET_COMP_TYPE1       1
-#define CS42L42_HSDET_COMP_TYPE2       2
-#define CS42L42_HSDET_COMP_TYPE3       0
-#define CS42L42_HSDET_COMP_TYPE4       3
-
-#define CS42L42_HS_CLAMP_DISABLE       (CS42L42_PAGE_11 + 0x29)
-#define CS42L42_HS_CLAMP_DISABLE_SHIFT 0
-#define CS42L42_HS_CLAMP_DISABLE_MASK  (1 << CS42L42_HS_CLAMP_DISABLE_SHIFT)



More information about the kernel-team mailing list