Message ID | 20210819061427.900601-1-vicamo.yang@canonical.com |
---|---|
Headers | show |
Series | ALSA: hda/cs8409: Add support for dolphin | expand |
On 8/19/21 2:13 PM, You-Sheng Yang wrote: > BugLink: https://bugs.launchpad.net/bugs/1939541 > > [Impact] > > Dolphin devices have CS8409 HDA Bridge connected to two CS42L42 codecs. > Codec 1 supports Headphone and Headset Mic. Codec 2 supports Line Out. > > [Fix] > > In order to support multiple CS42L42 codecs connected to a CS8409 HDA > Bridge, a changeset of 27 patches is proposed to > https://patchwork.kernel.org/project/alsa-devel/cover/20210811185654.6837-1-vitalyr@opensource.cirrus.com/ > (now in linux-next), as well as two additional patches in > https://lore.kernel.org/lkml/20210812183433.6330-1-vitalyr@opensource.cirrus.com/ > that fixes pop sounds at insertion of earphone jack and reboot. The > second patch of the latter changeset is on hold because of another fix > series that deprecates the reboot_notify callback of HD-audio by > forcibly doing runtime-suspend at shutdown. > > A Ubuntu sauced patch is also added to enable the now stand alone > module snd-hda-codec-cs8409. > > [Test Case] > > Test on oem dolphin platform, as well as previous cs8409 platforms with > one single codec. > > [Where problems could occur] While this is the first platform we have multiple codecs connected to a CS8409 HDA bridge, we may still have further stability or acoustic quality issues as we had for previous cirrus platforms. > [Other Info] > > This also fixes default sample rate problem that was previously fixed by > a oem-only package oem-fix-audio-cirrus-default-sample-rate. > > Lucas Tanure (12): > ALSA: hda/cirrus: Move CS8409 HDA bridge to separate module > ALSA: hda/cs8409: Move arrays of configuration to a new file > ALSA: hda/cs8409: Disable unsolicited response for the first boot > ALSA: hda/cs8409: Prevent I2C access during suspend time > ALSA: hda/cs8409: Generalize volume controls > ALSA: hda/cs8409: Dont disable I2C clock between consecutive accesses > ALSA: hda/cs8409: Avoid setting the same I2C address for every access > ALSA: hda/cs8409: Avoid re-setting the same page as the last access > ALSA: hda/cs8409: Support i2c bulk read/write functions > ALSA: hda/cs8409: Separate CS8409, CS42L42 and project functions > ALSA: hda/cs8409: Move codec properties to its own struct > ALSA: hda/cs8409: Add support for dolphin > > Stefan Binding (17): > ALSA: hda/cs8409: Use enums for register names and coefficients > ALSA: hda/cs8409: Mask all CS42L42 interrupts on initialization > ALSA: hda/cs8409: Reduce HS pops/clicks for Cyborg > ALSA: hda/cs8409: Disable unnecessary Ring Sense for > Cyborg/Warlock/Bullseye > ALSA: hda/cs8409: Disable unsolicited responses during suspend > ALSA: hda/cs8409: Mask CS42L42 wake events > ALSA: hda/cs8409: Simplify CS42L42 jack detect. > ALSA: hda/cs8409: Support multiple sub_codecs for Suspend/Resume/Unsol > events > ALSA: hda/cs8409: Add Support to disable jack type detection for > CS42L42 > ALSA: hda/cs8409: Enable Full Scale Volume for Line Out Codec on > Dolphin > ALSA: hda/cs8409: Set fixed sample rate of 48kHz for CS42L42 > ALSA: hda/cs8409: Use timeout rather than retries for I2C transaction > waits > ALSA: hda/cs8409: Remove unnecessary delays > ALSA: hda/cs8409: Follow correct CS42L42 power down sequence for > suspend > ALSA: hda/cs8409: Unmute/Mute codec when stream starts/stops > ALSA: hda/cs8409: Prevent pops and clicks during suspend > ALSA: hda/cs8409: Prevent pops and clicks during reboot > > You-Sheng Yang (1): > UBUNTU: [Config] Enable Cirrus Logic HDA bridge support > > debian.oem/config/config.common.ubuntu | 1 + > sound/pci/hda/Kconfig | 10 + > sound/pci/hda/Makefile | 2 + > sound/pci/hda/patch_cirrus.c | 1074 -------------------- > sound/pci/hda/patch_cs8409-tables.c | 560 +++++++++++ > sound/pci/hda/patch_cs8409.c | 1287 ++++++++++++++++++++++++ > sound/pci/hda/patch_cs8409.h | 369 +++++++ > 7 files changed, 2229 insertions(+), 1074 deletions(-) > create mode 100644 sound/pci/hda/patch_cs8409-tables.c > create mode 100644 sound/pci/hda/patch_cs8409.c > create mode 100644 sound/pci/hda/patch_cs8409.h >
Acked-by: Tim Gardner <tim.gardner@canonical.com> Good test results. All clean cherry-picks except for one. LGTM. On 8/19/21 12:13 AM, You-Sheng Yang wrote: > BugLink: https://bugs.launchpad.net/bugs/1939541 > > [Impact] > > Dolphin devices have CS8409 HDA Bridge connected to two CS42L42 codecs. > Codec 1 supports Headphone and Headset Mic. Codec 2 supports Line Out. > > [Fix] > > In order to support multiple CS42L42 codecs connected to a CS8409 HDA > Bridge, a changeset of 27 patches is proposed to > https://patchwork.kernel.org/project/alsa-devel/cover/20210811185654.6837-1-vitalyr@opensource.cirrus.com/ > (now in linux-next), as well as two additional patches in > https://lore.kernel.org/lkml/20210812183433.6330-1-vitalyr@opensource.cirrus.com/ > that fixes pop sounds at insertion of earphone jack and reboot. The > second patch of the latter changeset is on hold because of another fix > series that deprecates the reboot_notify callback of HD-audio by > forcibly doing runtime-suspend at shutdown. > > A Ubuntu sauced patch is also added to enable the now stand alone > module snd-hda-codec-cs8409. > > [Test Case] > > Test on oem dolphin platform, as well as previous cs8409 platforms with > one single codec. > > [Where problems could occur] > > [Other Info] > > This also fixes default sample rate problem that was previously fixed by > a oem-only package oem-fix-audio-cirrus-default-sample-rate. > > Lucas Tanure (12): > ALSA: hda/cirrus: Move CS8409 HDA bridge to separate module > ALSA: hda/cs8409: Move arrays of configuration to a new file > ALSA: hda/cs8409: Disable unsolicited response for the first boot > ALSA: hda/cs8409: Prevent I2C access during suspend time > ALSA: hda/cs8409: Generalize volume controls > ALSA: hda/cs8409: Dont disable I2C clock between consecutive accesses > ALSA: hda/cs8409: Avoid setting the same I2C address for every access > ALSA: hda/cs8409: Avoid re-setting the same page as the last access > ALSA: hda/cs8409: Support i2c bulk read/write functions > ALSA: hda/cs8409: Separate CS8409, CS42L42 and project functions > ALSA: hda/cs8409: Move codec properties to its own struct > ALSA: hda/cs8409: Add support for dolphin > > Stefan Binding (17): > ALSA: hda/cs8409: Use enums for register names and coefficients > ALSA: hda/cs8409: Mask all CS42L42 interrupts on initialization > ALSA: hda/cs8409: Reduce HS pops/clicks for Cyborg > ALSA: hda/cs8409: Disable unnecessary Ring Sense for > Cyborg/Warlock/Bullseye > ALSA: hda/cs8409: Disable unsolicited responses during suspend > ALSA: hda/cs8409: Mask CS42L42 wake events > ALSA: hda/cs8409: Simplify CS42L42 jack detect. > ALSA: hda/cs8409: Support multiple sub_codecs for Suspend/Resume/Unsol > events > ALSA: hda/cs8409: Add Support to disable jack type detection for > CS42L42 > ALSA: hda/cs8409: Enable Full Scale Volume for Line Out Codec on > Dolphin > ALSA: hda/cs8409: Set fixed sample rate of 48kHz for CS42L42 > ALSA: hda/cs8409: Use timeout rather than retries for I2C transaction > waits > ALSA: hda/cs8409: Remove unnecessary delays > ALSA: hda/cs8409: Follow correct CS42L42 power down sequence for > suspend > ALSA: hda/cs8409: Unmute/Mute codec when stream starts/stops > ALSA: hda/cs8409: Prevent pops and clicks during suspend > ALSA: hda/cs8409: Prevent pops and clicks during reboot > > You-Sheng Yang (1): > UBUNTU: [Config] Enable Cirrus Logic HDA bridge support > > debian.oem/config/config.common.ubuntu | 1 + > sound/pci/hda/Kconfig | 10 + > sound/pci/hda/Makefile | 2 + > sound/pci/hda/patch_cirrus.c | 1074 -------------------- > sound/pci/hda/patch_cs8409-tables.c | 560 +++++++++++ > sound/pci/hda/patch_cs8409.c | 1287 ++++++++++++++++++++++++ > sound/pci/hda/patch_cs8409.h | 369 +++++++ > 7 files changed, 2229 insertions(+), 1074 deletions(-) > create mode 100644 sound/pci/hda/patch_cs8409-tables.c > create mode 100644 sound/pci/hda/patch_cs8409.c > create mode 100644 sound/pci/hda/patch_cs8409.h >
On 19.8.2021 9.13, You-Sheng Yang wrote: > BugLink: https://bugs.launchpad.net/bugs/1939541 > > [Impact] > > Dolphin devices have CS8409 HDA Bridge connected to two CS42L42 codecs. > Codec 1 supports Headphone and Headset Mic. Codec 2 supports Line Out. > > [Fix] > > In order to support multiple CS42L42 codecs connected to a CS8409 HDA > Bridge, a changeset of 27 patches is proposed to > https://patchwork.kernel.org/project/alsa-devel/cover/20210811185654.6837-1-vitalyr@opensource.cirrus.com/ > (now in linux-next), as well as two additional patches in > https://lore.kernel.org/lkml/20210812183433.6330-1-vitalyr@opensource.cirrus.com/ > that fixes pop sounds at insertion of earphone jack and reboot. The > second patch of the latter changeset is on hold because of another fix > series that deprecates the reboot_notify callback of HD-audio by > forcibly doing runtime-suspend at shutdown. > > A Ubuntu sauced patch is also added to enable the now stand alone > module snd-hda-codec-cs8409. > > [Test Case] > > Test on oem dolphin platform, as well as previous cs8409 platforms with > one single codec. > > [Where problems could occur] > > [Other Info] > > This also fixes default sample rate problem that was previously fixed by > a oem-only package oem-fix-audio-cirrus-default-sample-rate. > > Lucas Tanure (12): > ALSA: hda/cirrus: Move CS8409 HDA bridge to separate module > ALSA: hda/cs8409: Move arrays of configuration to a new file > ALSA: hda/cs8409: Disable unsolicited response for the first boot > ALSA: hda/cs8409: Prevent I2C access during suspend time > ALSA: hda/cs8409: Generalize volume controls > ALSA: hda/cs8409: Dont disable I2C clock between consecutive accesses > ALSA: hda/cs8409: Avoid setting the same I2C address for every access > ALSA: hda/cs8409: Avoid re-setting the same page as the last access > ALSA: hda/cs8409: Support i2c bulk read/write functions > ALSA: hda/cs8409: Separate CS8409, CS42L42 and project functions > ALSA: hda/cs8409: Move codec properties to its own struct > ALSA: hda/cs8409: Add support for dolphin > > Stefan Binding (17): > ALSA: hda/cs8409: Use enums for register names and coefficients > ALSA: hda/cs8409: Mask all CS42L42 interrupts on initialization > ALSA: hda/cs8409: Reduce HS pops/clicks for Cyborg > ALSA: hda/cs8409: Disable unnecessary Ring Sense for > Cyborg/Warlock/Bullseye > ALSA: hda/cs8409: Disable unsolicited responses during suspend > ALSA: hda/cs8409: Mask CS42L42 wake events > ALSA: hda/cs8409: Simplify CS42L42 jack detect. > ALSA: hda/cs8409: Support multiple sub_codecs for Suspend/Resume/Unsol > events > ALSA: hda/cs8409: Add Support to disable jack type detection for > CS42L42 > ALSA: hda/cs8409: Enable Full Scale Volume for Line Out Codec on > Dolphin > ALSA: hda/cs8409: Set fixed sample rate of 48kHz for CS42L42 > ALSA: hda/cs8409: Use timeout rather than retries for I2C transaction > waits > ALSA: hda/cs8409: Remove unnecessary delays > ALSA: hda/cs8409: Follow correct CS42L42 power down sequence for > suspend > ALSA: hda/cs8409: Unmute/Mute codec when stream starts/stops > ALSA: hda/cs8409: Prevent pops and clicks during suspend > ALSA: hda/cs8409: Prevent pops and clicks during reboot > > You-Sheng Yang (1): > UBUNTU: [Config] Enable Cirrus Logic HDA bridge support > > debian.oem/config/config.common.ubuntu | 1 + > sound/pci/hda/Kconfig | 10 + > sound/pci/hda/Makefile | 2 + > sound/pci/hda/patch_cirrus.c | 1074 -------------------- > sound/pci/hda/patch_cs8409-tables.c | 560 +++++++++++ > sound/pci/hda/patch_cs8409.c | 1287 ++++++++++++++++++++++++ > sound/pci/hda/patch_cs8409.h | 369 +++++++ > 7 files changed, 2229 insertions(+), 1074 deletions(-) > create mode 100644 sound/pci/hda/patch_cs8409-tables.c > create mode 100644 sound/pci/hda/patch_cs8409.c > create mode 100644 sound/pci/hda/patch_cs8409.h > applied to oem-5.13, thanks
On Thu, Aug 19, 2021 at 02:13:56PM +0800, You-Sheng Yang wrote:
> BugLink: https://bugs.launchpad.net/bugs/1939541
On Thu, Aug 19, 2021 at 02:13:56PM +0800, You-Sheng Yang wrote:
> BugLink: https://bugs.launchpad.net/bugs/1939541