@gannon1

I am tracking what your saying concept wise.  Here is a summary of what
I did today, in part just to help me clarify my thoughts and in part so
you can maybe correct any gaps and save me troubleshooting time :).

- I have gone through all the documents in the wiki for QemuHDADump and
as far as I can tell it is running as expected on my PC and creating
good logs.  I am able to see the logging happening in real-time and I
get the frame binary files.  I am also able to use his extract and
format programs to "see" the data as text.  As an example, the attached
file named CORB has the final formatted output from disabling and re-
enabling the realtek device in windows....

- Looking at the HDA spec, this seems to be the only detailed
description of the CORB entries :

     HDA Spec CORB 32 bit format
     The controller generated (outbound) Verb format
         Bits 31:28 Codec Address
         Bits 27:20 Node ID
         Bits 19:0 Verb Payload

     It is not currently clear to me how to parse the "verb payload" or how to 
map
     these CORB values into anything useful.

- Several of the documents you listed and your comments mention playing
back or using the values to turn on the sound.  I assume (maybe
incorrectly), that we are trying to a) produce a list of HDA Verb
commands that match each CORB entry to prove the sound turns on and then
B) work to whittle down the list to the minimum required ones.  Part B
will be effort, but I think that will just be applied time once we
achieve Part A.  For Part A, again my assumption, we are trying to
convert CORB values into the HDA Verb format :

    HDA Verb format
     The hwdep device name
     The widget NID
     The verb 
     The parameter

- Since I was stuck on what to do with the output from QemuHDADump, I
went back and read the other articles more, specifically the BSD
article.  That author took a different approach and instead of using the
QemuHDADump program, he just altered Qemu to give him more info in the
output.  His source code was available so I worked with that to try and
replicate his results.  I couldn't just use his common.c file directly
because we are on different version of qemu, but I was able to modify
the common.c file on my version of qemu, and then remake qemu
successfully.  So now, instead of just getting lines like this :

15469@1598294292.270884:vfio_region_write  (0000:00:1f.3:region0+0x48, 0xad, 2)
15469@1598294292.270975:vfio_region_write  (0000:00:1f.3:region0+0x20, 
0x40000000, 4)
15469@1598294292.270983:vfio_region_write  (0000:00:1f.3:region0+0x5d, 0x1, 1)

I get more information, like this :

15469@1598294292.272359:vfio_region_write  (0000:00:1f.3:region0+0x5d, 0x1, 1)
RIRBWP advance to 185, last WP 183
CORB caddr:0x9 nid:0x47 control:0x407 param:0x20 response:0x64756c63 (ex 
0x6f466465)
CORB caddr:0x0 nid:0x0 control:0x1 param:0xe6 response:0x65735572 (ex 
0x544e4900)
RIRBWP advance to 185, last WP 185
RIRBWP advance to 185, last WP 185
RIRBWP advance to 185, last WP 185
15469@1598294292.272436:vfio_region_write  (0000:00:1f.3:region0+0x20, 
0xc0000000, 4)
CORBWP advance to 187, last WP 185
CORB[186] = 0x0 (caddr:0x0 nid:0x0 control:0x0 param:0x0)
CORB[187] = 0x0 (caddr:0x0 nid:0x0 control:0x0 param:0x0)
15469@1598294292.272522:vfio_region_write  (0000:00:1f.3:region0+0x48, 0xbb, 2)

I think the most useful parts here are the CORB[] lines (for example) :

CORB[218] = 0x9cac8480 (caddr:0x9 nid:0x4a control:0xc84 param:0x80)

This would at least seem like it could be mapped to an HDA verbs, maybe
like so

sudo hda-verb /dev/snd/hwC0D0 0x4a 0xc84 0x80

- So with that change, I then recorded all the traffic during a re-
enable of the realtek devices in windows (I will attach files named
Enable and Disable).  I then wrote a script to pull out the CORB[x]
lines from the log and to produce a new script with all the mapped HDA
Verbs.  This generated 2034 HDA Verb commands (just on the re-enable of
the windows realtek device... yikes... )

- Anyway, I ran the script of 2034 HDA Verb commands on my PC.  No
errors, but unfortunately no sounds came out of the speakers.  Very
likely I just mapped the values to my HDA verbs incorrectly, I am just
guessing on how to do that, or possibly the specific action we need does
not happen on a re-enable.

Anyway, thoughts?  Do you have any more clarity on how to replay the
CORB commands?  I can try this all again with a suspend and resume, but
suspect that will be a lot of CORB values....


** Attachment added: "CORB"
   
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1851518/+attachment/5404231/+files/CORB

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1851518

Title:
  [950SBE/951SBE, Realtek ALC298, Speaker, Internal] No sound on
  internal speakers, very very quiet on headphones

Status in linux package in Ubuntu:
  Confirmed

Bug description:
  I've been googling this issue for 10's of hours and tried many things.

  Relase of Ubuntu: 19.10

  Expected outcome: Music plays on the internal speakers and headphones.

  Actual outcome: I can barely hear audio using headphones with volume
  turned up to 150%.  Absolutely nothing comes out of the speakers. (The
  speakers sound great under Windows 10.)

  Complete alsa-info output is attached, but here are some snippets:

  !!DMI Information
  !!---------------

  Manufacturer:      SAMSUNG ELECTRONICS CO., LTD.
  Product Name:      950SBE/951SBE
  Product Version:   P06RES
  Firmware Version:  P06RES.075.190529.SP
  Board Vendor:      SAMSUNG ELECTRONICS CO., LTD.
  Board Name:        NP950SBE-K01US

  
  !!Kernel Information
  !!------------------

  Kernel release:    5.3.0-19-generic
  Operating System:  GNU/Linux
  Architecture:      x86_64
  Processor:         x86_64
  SMP Enabled:       Yes


  !!ALSA Version
  !!------------

  Driver version:     k5.3.0-19-generic
  Library version:    1.1.9
  Utilities version:  1.1.9

  
  !!Loaded ALSA modules
  !!-------------------

  snd_hda_intel

  
  !!Sound Servers on this system
  !!----------------------------

  Pulseaudio:
        Installed - Yes (/usr/bin/pulseaudio)
        Running - Yes

  
  !!Soundcards recognised by ALSA
  !!-----------------------------

   0 [PCH            ]: HDA-Intel - HDA Intel PCH
                        HDA Intel PCH at 0x604b118000 irq 177

  
  !!PCI Soundcards installed in the system
  !!--------------------------------------

  00:1f.3 Multimedia audio controller: Intel Corporation Cannon Point-LP
  High Definition Audio Controller (rev 11)

  
  !!Advanced information - PCI Vendor/Device/Subsystem ID's
  !!-------------------------------------------------------

  00:1f.3 0401: 8086:9dc8 (rev 11)
          DeviceName: Onboard - Sound

  
  !!HDA-Intel Codec information
  !!---------------------------
  --startcollapse--

  Codec: Realtek ALC298
  Address: 0
  AFG Function Id: 0x1 (unsol 1)
  Vendor Id: 0x10ec0298
  Subsystem Id: 0x144dc812
  Revision Id: 0x100103
  No Modem Function Group found
  Default PCM:
      rates [0x60]: 44100 48000
      bits [0xe]: 16 20 24
      formats [0x1]: PCM
  Default Amp-In caps: N/A
  Default Amp-Out caps: N/A
  State of AFG node 0x01:
    Power states:  D0 D1 D2 D3 D3cold CLKSTOP EPSS
    Power: setting=D0, actual=D0
  GPIO: io=8, o=0, i=0, unsolicited=1, wake=0
    IO[0]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
    IO[1]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
    IO[2]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
    IO[3]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
    IO[4]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
    IO[5]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
    IO[6]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
    IO[7]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
  Node 0x02 [Audio Output] wcaps 0x41d: Stereo Amp-Out
    Control: name="Headphone Playback Volume", index=0, device=0
      ControlAmp: chs=3, dir=Out, idx=0, ofs=0
    Device: name="ALC298 Analog", type="Audio", device=0
    Amp-Out caps: ofs=0x7f, nsteps=0x7f, stepsize=0x01, mute=0
    Amp-Out vals:  [0x00 0x00]
    Converter: stream=1, channel=0
    PCM:
      rates [0x60]: 44100 48000
      bits [0xe]: 16 20 24
      formats [0x1]: PCM
    Power states:  D0 D1 D2 D3 EPSS
    Power: setting=D0, actual=D0
  Node 0x03 [Audio Output] wcaps 0x41d: Stereo Amp-Out
    Control: name="Speaker Playback Volume", index=0, device=0
      ControlAmp: chs=3, dir=Out, idx=0, ofs=0
    Amp-Out caps: ofs=0x7f, nsteps=0x7f, stepsize=0x01, mute=0
    Amp-Out vals:  [0x7f 0x7f]
    Converter: stream=1, channel=0

  ProblemType: Bug
  DistroRelease: Ubuntu 19.10
  Package: alsa-base 1.0.25+dfsg-0ubuntu5
  ProcVersionSignature: Ubuntu 5.3.0-19.20-generic 5.3.1
  Uname: Linux 5.3.0-19-generic x86_64
  ApportVersion: 2.20.11-0ubuntu8.2
  Architecture: amd64
  AudioDevicesInUse:
   USER        PID ACCESS COMMAND
   /dev/snd/controlC0:  martin     1383 F.... pulseaudio
  CurrentDesktop: ubuntu:GNOME
  Date: Wed Nov  6 06:20:08 2019
  InstallationDate: Installed on 2019-11-03 (3 days ago)
  InstallationMedia: Ubuntu 19.10 "Eoan Ermine" - Release amd64 (20191017)
  PackageArchitecture: all
  ProcEnviron:
   TERM=xterm-256color
   PATH=(custom, no user)
   XDG_RUNTIME_DIR=<set>
   LANG=en_US.UTF-8
   SHELL=/bin/bash
  SourcePackage: alsa-driver
  Symptom: audio
  Symptom_AlsaPlaybackTest: ALSA playback test through plughw:PCH failed
  Symptom_Card: Built-in Audio - HDA Intel PCH
  Symptom_DevicesInUse:
   USER        PID ACCESS COMMAND
   /dev/snd/controlC0:  martin     1383 F.... pulseaudio
  Symptom_Jack: Speaker, Internal
  Symptom_Type: No sound at all
  Title: [950SBE/951SBE, Realtek ALC298, Speaker, Internal] No sound at all
  UpgradeStatus: No upgrade log present (probably fresh install)
  dmi.bios.date: 05/29/2019
  dmi.bios.vendor: American Megatrends Inc.
  dmi.bios.version: P06RES.075.190529.SP
  dmi.board.asset.tag: No Asset Tag
  dmi.board.name: NP950SBE-K01US
  dmi.board.vendor: SAMSUNG ELECTRONICS CO., LTD.
  dmi.board.version: SGL9849A0Q-C01-G003-S0001+10.0.17763
  dmi.chassis.asset.tag: No Asset Tag
  dmi.chassis.type: 31
  dmi.chassis.vendor: SAMSUNG ELECTRONICS CO., LTD.
  dmi.chassis.version: N/A
  dmi.modalias: 
dmi:bvnAmericanMegatrendsInc.:bvrP06RES.075.190529.SP:bd05/29/2019:svnSAMSUNGELECTRONICSCO.,LTD.:pn950SBE/951SBE:pvrP06RES:rvnSAMSUNGELECTRONICSCO.,LTD.:rnNP950SBE-K01US:rvrSGL9849A0Q-C01-G003-S0001+10.0.17763:cvnSAMSUNGELECTRONICSCO.,LTD.:ct31:cvrN/A:
  dmi.product.family: Notebook 9 Series
  dmi.product.name: 950SBE/951SBE
  dmi.product.sku: SCAI-A5A5-A5A5-A5A5-PRES
  dmi.product.version: P06RES
  dmi.sys.vendor: SAMSUNG ELECTRONICS CO., LTD.
  mtime.conffile..etc.modprobe.d.alsa-base.conf: 2019-11-05T23:13:55.854413

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1851518/+subscriptions

-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to