Alsa-Devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Takashi Iwai <tiwai@suse.de>
To: Olliver Schinagl <oliver@schinagl.nl>
Cc: alsa-devel@alsa-project.org
Subject: Re: snd_hda_codec_cirrus kernel oops
Date: Sat, 20 May 2023 10:02:47 +0200	[thread overview]
Message-ID: <87lehjzazc.wl-tiwai@suse.de> (raw)
In-Reply-To: <f421a23b-498f-9075-068b-3f0b2077427d@schinagl.nl>

On Fri, 19 May 2023 18:53:16 +0200,
Olliver Schinagl wrote:
> 
> Hey Takashi,
> 
> On 19-05-2023 09:12, Takashi Iwai wrote:
> > On Thu, 18 May 2023 17:11:53 +0200,
> > Olliver Schinagl wrote:
> >> 
> >> Hey Takashi,
> >> 
> >> On 18-05-2023 16:27, Takashi Iwai wrote:
> >>> On Thu, 18 May 2023 16:24:02 +0200,
> >>> Olliver Schinagl wrote:
> >>>> 
> >>>> Hey Takashi,
> >>>> 
> >>>> I've applied the patch you've listed below. Is there some 'fool-proof'
> >>>> way to produce _any_ output however? I've stopped pulse/pipe audio,
> >>>> and only use aplay + alsamixer. Back to basics as they say. For aplay,
> >>>> I use -D sysdefault:CARD=PCH (which was listed as a cirrus card with
> >>>> -L).
> >>>> 
> >>>> Alsamixer was used to ensure all volumes are open.
> >>>> 
> >>>> Without anything running, I was able to use hdajackretask to apply
> >>>> settings. But then, what to put. I get that I have to figure out, what
> >>>> is routed where (i'll try to find the schematic for the macbook pro
> >>>> 12,1), but hence my question, is there some way to produce something?
> >>>> In hdajackretask I've enabled all pins, overriden them all, and set
> >>>> them all to the same configuration. 'Internal, internal, speaker,
> >>>> other-analog, green, not-present, 1, front'. I figured, by setting up
> >>>> verything to the internal speaker, I must get sound out of something,
> >>>> but alas.
> >>>> 
> >>>> I also have a Macbook pro from 1 or 2 generations earlier, 11,2 afaik,
> >>>> where the sound still does work. I've used the same config
> >>>> hdajackretask showed was in use there, but (obviously?) that didn't
> >>>> work.
> >>>> 
> >>>> So I'm a bit grasping at straws. Trying _every_ combination is a bit much?
> >>> 
> >>> It's the hard part.  I'd try to copy the pin config of the existing
> >>> models at first, then try shooting one pin by one if it doesn't work.
> >> 
> >> Ok, so no easy way :) I did try copying things, but didn't get sound either.
> >> 
> >> I did find the schematics for the 2013 and 2014 models of the macbook;
> >> no luck yet on the 2015 (mine). But all 3 have the same model number
> >> (A1502), and looking at the schematic (not even sure if it is just a
> >> new revision, or actually for the different boards) they seem more or
> >> less identical. Especially on the audio part. The nice thing is it
> >> tells me what pins things are connected to :) But again, might not be
> >> a perfect match to my board (crosses fingers).
> >> 
> >> What is interesting, the schematics [0] actually list the HDA configuration.
> >> 
> >> CODEC OUTPUT SIGNAL PATHS
> >> 
> >> FUNCTION   VOLUME    CONVERTER  PIN COMPLEX  MUTE CONTROL
> >> 
> >> HP/HS OUT  0x02 (2)  0x02 (2)   0x10 (16)    N/A
> >> TWEETERS   0x03 (3)  0x03 (3)   0x12 (18)    CODEC GPIO0
> >> SUB        0x04 (4)  0x04 (4)   0x13 (19)    CODEC GPIO0
> >> SPDIF OUT  N/A       0x0e (14)  0x21 (33)    N/A
> >> 
> >> DMIC 1               0x09 (9)   0x1c (18)
> >> DMIC 2               0x09 (9)   0x1c (18)
> >> 
> >> HEADSET MIC          0x07 (7)   0x18 (24)
> >> 
> >> OTHER CODEC GPIO LINES
> >> LEFT SPEAKER ID      GPIO2 INPUT             HIGH = FG, LOW = MERRY
> >> RIGHT SPEAKER ID     GPIO3 INPUT             HIGH = FG, LOW = MERRY
> >> DFET CONTROL         GPIO4 OUTPUT            HIGH = DFETs OPEN
> >> 
> >> Granted, that should yield the same infomration I can copy from the
> >> other one, but I'm trying to understand what this would mean. Function
> >> is obvious, aswell as the pin-complex, it's what hdajackretasks calls
> >> pin ID. But the rest is a bit iffy. E.g. what would the volume column
> >> indicate? What about the 'converter'? And the GPIO's? Are the's GPIO's
> >> of the codec? Maybe my confusion mostly comes as I'm not sure how to
> >> relate those fields to hdajackretask.
> > 
> > It's a good information.
> > It corresponds to spec->gpio_eapd_speaker, and GPIO2 would be the bit
> > 0x04, GPIO3 would be 0x08, so it should be set to 0x0c.  The headphone
> > has no GPIO assignment, so spec->gpio_eapd_headphone=0.
> > 
> > But subwoofers seem to have the GPIO controls as well, and the gpio
> > bit 0x01 should be set.  For that, we'll need to modify cs_automute()
> > function.  But let's investigate this later.
> > 
> > FWIW, the GPIO bits can be flipped on the fly, too.  Use hda-verb for
> > setting SET_GPIO_MASK, SET_GPIO_DIRECTION and SET_GPIO_DATA.
> 
> Thanks for that explanation! Great news. I don't know how; but I
> managed to 'fix' the bios. Strange yeah. I wanted to create an uefi
> boot image as that's something arch's mkinitcpio appearantly
> supports. So I used efiboomgr to add an additional entry.
> 
> After a reboot, I regained the apple logo at boot (which was gone for
> ages), but also the boot chime returned. And for sure, in Linux also
> sound is working again normally. I have no idea how or why this works,
> but it does.
> 
> For reference, this is what 6.3.x now shows:
> 
> [   15.642288] snd_hda_codec_cirrus hdaudioC1D0: autoconfig for
> CS4208: line_outs=2 (0x12/0x13/0x0/0x0/0x0) type:speaker
> [   15.642296] snd_hda_codec_cirrus hdaudioC1D0:    speaker_outs=0
> (0x0/0x0/0x0/0x0/0x0)
> [   15.642299] snd_hda_codec_cirrus hdaudioC1D0:    hp_outs=1
> (0x10/0x0/0x0/0x0/0x0)
> [   15.642301] snd_hda_codec_cirrus hdaudioC1D0:    mono: mono_out=0x0
> [   15.642303] snd_hda_codec_cirrus hdaudioC1D0:    dig-out=0x21/0x0
> [   15.642305] snd_hda_codec_cirrus hdaudioC1D0:    inputs:
> [   15.642307] snd_hda_codec_cirrus hdaudioC1D0:      Internal Mic=0x1c
> [   15.642309] snd_hda_codec_cirrus hdaudioC1D0:      Mic=0x18
> [   15.735257] snd_hda_intel 0000:00:03.0: bound 0000:00:02.0 (ops
> i915_audio_component_bind_ops [i915])
> 
> And hdajackretask (without unconnected pins):
> Pin ID: 0x10 [Green Headphone]
> Jack; External; Headphone; Combination;
> Green; Present; 2; Front;
> 
> Pin ID: 0x12 [Internal Speaker]
> <blank>; Internal; Speaker; Unknown;
> Unknown; Not present; 1; Back;
> 
> Pin ID: 0x13 [Internal Speaker]
> <blank>; Internal; Speaker; Unknown;
> Unknown; Not present; 1; Back;
> 
> Pin ID: 0x18 [Pink Mic]
> Jack; External; Microphone; Combination;
> Pink; Present; 4; Front;
> 
> Pin ID: 0x1c [Internal Mic]
> <blank>; Internal; Microphone; Other Digital;
> Unknown; Not present; <blank>; Front
> 
> Pin ID: 0x21 [White SPDIF Out]
> Jack; External; SPIDF Out; Combination;
> White; Present; 3; Front;
> 
> The blank connectivity options are a bit off, as is the blank channel
> group on the internal mic.
> 
> So curious on those ...
> 
> Anyway, leaving this here for any future in case it is needed again.

Good to hear that you managed to recover BIOS.

Could you give alsa-info.sh output from the working state?  Run the
script with --no-upload option and attach the output.  This will help
in future if it gets broken again :)


thanks,

Takashi

  reply	other threads:[~2023-05-20  8:04 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-05-11 15:12 snd_hda_codec_cirrus kernel oops Olliver Schinagl
2023-05-12  9:01 ` Takashi Iwai
2023-05-16 16:49   ` Olliver Schinagl
2023-05-16 18:31     ` Takashi Iwai
2023-05-18 14:24       ` Olliver Schinagl
2023-05-18 14:27         ` Takashi Iwai
2023-05-18 15:11           ` Olliver Schinagl
2023-05-19  7:12             ` Takashi Iwai
2023-05-19 16:53               ` Olliver Schinagl
2023-05-20  8:02                 ` Takashi Iwai [this message]
2023-05-20  8:08                   ` Olliver Schinagl

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87lehjzazc.wl-tiwai@suse.de \
    --to=tiwai@suse.de \
    --cc=alsa-devel@alsa-project.org \
    --cc=oliver@schinagl.nl \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox