All of 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.