| From c8b4f0865e82c14924c69c07d985af3ee9133316 Mon Sep 17 00:00:00 2001 |
| From: Stefan Binding <sbinding@opensource.cirrus.com> |
| Date: Wed, 11 Aug 2021 19:56:52 +0100 |
| Subject: [PATCH] ALSA: hda/cs8409: Remove unnecessary delays |
| Git-commit: c8b4f0865e82c14924c69c07d985af3ee9133316 |
| Patch-mainline: v5.15-rc1 |
| References: bsc#1192354 |
| |
| Since delays when starting jack detection after initialization |
| have been reduced/removed, it is necessary to add back in an extra |
| 20ms delay after the init sequence to allow the CS42L42 to power up |
| correctly. |
| |
| Signed-off-by: Stefan Binding <sbinding@opensource.cirrus.com> |
| Signed-off-by: Vitaly Rodionov <vitalyr@opensource.cirrus.com> |
| Link: https://lore.kernel.org/r/20210811185654.6837-26-vitalyr@opensource.cirrus.com |
| Signed-off-by: Takashi Iwai <tiwai@suse.de> |
| |
| |
| sound/pci/hda/patch_cs8409.c | 12 ++++-------- |
| 1 file changed, 4 insertions(+), 8 deletions(-) |
| |
| diff --git a/sound/pci/hda/patch_cs8409.c b/sound/pci/hda/patch_cs8409.c |
| index 9f6c51a5835a..b528c8353b3c 100644 |
| |
| |
| @@ -541,12 +541,10 @@ static void cs42l42_run_jack_detect(struct sub_codec *cs42l42) |
| cs8409_i2c_write(cs42l42, 0x1b74, 0x07); |
| cs8409_i2c_write(cs42l42, 0x131b, 0xFD); |
| cs8409_i2c_write(cs42l42, 0x1120, 0x80); |
| - /* Wait ~110ms*/ |
| - usleep_range(110000, 200000); |
| + /* Wait ~100us*/ |
| + usleep_range(100, 200); |
| cs8409_i2c_write(cs42l42, 0x111f, 0x77); |
| cs8409_i2c_write(cs42l42, 0x1120, 0xc0); |
| - /* Wait ~10ms */ |
| - usleep_range(10000, 25000); |
| } |
| |
| static int cs42l42_handle_tip_sense(struct sub_codec *cs42l42, unsigned int reg_ts_status) |
| @@ -653,6 +651,7 @@ static void cs42l42_resume(struct sub_codec *cs42l42) |
| |
| /* Initialize CS42L42 companion codec */ |
| cs8409_i2c_bulk_write(cs42l42, cs42l42->init_seq, cs42l42->init_seq_num); |
| + usleep_range(20000, 25000); |
| |
| /* Clear interrupts, by reading interrupt status registers */ |
| cs8409_i2c_bulk_read(cs42l42, irq_regs, ARRAY_SIZE(irq_regs)); |
| @@ -927,7 +926,6 @@ void cs8409_cs42l42_fixups(struct hda_codec *codec, const struct hda_fixup *fix, |
| * Run immediately after init. |
| */ |
| cs42l42_run_jack_detect(spec->scodecs[CS8409_CODEC0]); |
| - usleep_range(100000, 150000); |
| break; |
| default: |
| break; |
| @@ -1122,10 +1120,8 @@ void dolphin_fixups(struct hda_codec *codec, const struct hda_fixup *fix, int ac |
| * been already plugged in. |
| * Run immediately after init. |
| */ |
| - for (i = 0; i < spec->num_scodecs; i++) { |
| + for (i = 0; i < spec->num_scodecs; i++) |
| cs42l42_run_jack_detect(spec->scodecs[i]); |
| - usleep_range(100000, 150000); |
| - } |
| |
| break; |
| default: |
| -- |
| 2.26.2 |
| |