[Kernel-packages] [Bug 1721987]

2018-11-07 Thread jcs
Obviously contacting my vendor went nowhere.

While doing more testing, I get the same result of audio only through
one speaker in Windows 10 with the default audio drivers that Windows
ships with.  The Realtek/Dolby audio drivers from the vendor (Huawei)
need to be installed in order to get sound out of both speakers in
Windows, too.

I've been playing with VFIO to be able to boot Linux and hand off the
PCI audio device to Windows 10 inside of qemu with the proper Realtek
Windows drivers installed.  This allows me to log all of the PCI IO
activity from qemu.

While doing this, I noticed that if I boot Windows 10 in qemu, then boot
Linux in qemu, audio works in Linux through both speakers with no other
changes.  This only works through qemu/VFIO, as rebooting the full
system resets the PCI device.

So something must be getting initialized or toggled on the device in
Windows that affects the device through to initialization in Linux.  One
of the pins that the device presents is configured slightly different in
Linux after booting Windows first (nid 0x19 0x41f0 -> 0x81f0),
and I've tried explicitly setting that pin configuration in Linux
without booting Windows first but it has no effect.

I have qemu logging all of the VFIO PCI reads and writes under Windows,
and I instrumented some custom code to store the RIRBLBASE and CORBLBASE
values and then print out the contents of those DMA addresses (+ current
queue offset) whenever CORBWP/RIRBWP are written to, in order to be able
to see the commands submitted to the CORB and the response from the RIRB
when running Windows.

Is there anything else similar to the CORB/RIRB that I should be logging
to try to see what else the Windows driver could be doing?

VFIO limits the emulated Windows instance to see only the PCI audio
device, so there is no ACPI configuration or other IO that it could be
doing other than PCI config read/write, PCI region read/write, and DMA
with the audio device.  But still, there must be something the

-- 
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/1721987

Title:
  No sound from right audio channel

Status in Linux:
  Confirmed
Status in linux package in Ubuntu:
  Confirmed

Bug description:
  No audio comes out of the right speaker on the laptop.  When playing a
  test video such as https://www.youtube.com/watch?v=hTvJoYnpeRQ the
  right-channel audio is never heard (i.e., it does not get converted
  into mono and played through the left speaker).

  When plugging in headphones, audio is heard from both channels.

  In Windows, both speakers work, so it is not a physical problem with
  the speakers.

  ProblemType: Bug
  DistroRelease: Ubuntu 17.10
  Package: linux-image-4.13.0-12-generic 4.13.0-12.13 [modified: 
boot/vmlinuz-4.13.0-12-generic]
  ProcVersionSignature: Ubuntu 4.13.0-12.13-generic 4.13.3
  Uname: Linux 4.13.0-12-generic x86_64
  ApportVersion: 2.20.7-0ubuntu1
  Architecture: amd64
  AudioDevicesInUse:
   USERPID ACCESS COMMAND
   /dev/snd/controlC0:  user   1127 F pulseaudio
  CurrentDesktop: ubuntu:GNOME
  Date: Sat Oct  7 12:58:01 2017
  InstallationDate: Installed on 2017-10-07 (0 days ago)
  InstallationMedia: Ubuntu 17.10 "Artful Aardvark" - Alpha amd64 (20170926)
  MachineType: HUAWEI HUAWEI MateBook X
  ProcEnviron:
   PATH=(custom, no username)
   XDG_RUNTIME_DIR=
   LANG=en_US.UTF-8
   SHELL=/bin/bash
  ProcFB: 0 inteldrmfb
  ProcKernelCmdLine: BOOT_IMAGE=/vmlinuz-4.13.0-12-generic.efi.signed 
root=UUID=f0a69f35-7c1e-4280-b325-6b7fec6e174a ro quiet splash vt.handoff=7
  RelatedPackageVersions:
   linux-restricted-modules-4.13.0-12-generic N/A
   linux-backports-modules-4.13.0-12-generic  N/A
   linux-firmware 1.168
  SourcePackage: linux
  UpgradeStatus: No upgrade log present (probably fresh install)
  dmi.bios.date: 08/14/2017
  dmi.bios.vendor: HUAWEI
  dmi.bios.version: 1.12
  dmi.board.name: HUAWEI MateBook X
  dmi.board.vendor: HUAWEI
  dmi.board.version: 2.0
  dmi.chassis.type: 10
  dmi.chassis.vendor: HUAWEI
  dmi.modalias: 
dmi:bvnHUAWEI:bvr1.12:bd08/14/2017:svnHUAWEI:pnHUAWEIMateBookX:pvr2.0:rvnHUAWEI:rnHUAWEIMateBookX:rvr2.0:cvnHUAWEI:ct10:cvr:
  dmi.product.family: HUAWEI MateBook
  dmi.product.name: HUAWEI MateBook X
  dmi.product.version: 2.0
  dmi.sys.vendor: HUAWEI

To manage notifications about this bug go to:
https://bugs.launchpad.net/linux/+bug/1721987/+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


[Kernel-packages] [Bug 1721987]

2018-11-13 Thread jcs
Here is the magic sequence of CORB commands needed to enable both
speakers.  This is actually part of a much larger sequence that the
Windows driver does, but through trial and error, this is the minimum
required to make both speakers work.

I can attach the full PCI I/O and CORB logs if needed, but it's 4.6Mb.

I have no idea what these commands do, but nid 0x6 is a DAC and 0x20 is
a vendor-specific nid.  It looks like the same sequence repeating over
and over, but the params to 0x400 and 0x500 commands change slightly.

nid:0x6 verb:0x73e param:0x0
nid:0x20 verb:0x500 param:0x26
nid:0x20 verb:0xc00 param:0x0
nid:0x20 verb:0x500 param:0x26
nid:0x20 verb:0xc00 param:0x0
nid:0x6 verb:0x73e param:0x80
nid:0x20 verb:0x500 param:0x26
nid:0x20 verb:0xc00 param:0x0
nid:0x20 verb:0x500 param:0x26
nid:0x20 verb:0x4f0 param:0x0
nid:0x20 verb:0x500 param:0x22
nid:0x20 verb:0x400 param:0x31
nid:0x20 verb:0x500 param:0x23
nid:0x20 verb:0x400 param:0xb
nid:0x20 verb:0x500 param:0x25
nid:0x20 verb:0x400 param:0x0
nid:0x20 verb:0x500 param:0x26
nid:0x20 verb:0x4b0 param:0x10
nid:0x6 verb:0x73e param:0x0
nid:0x20 verb:0x500 param:0x26
nid:0x20 verb:0xc00 param:0x0
nid:0x20 verb:0x500 param:0x26
nid:0x20 verb:0x4b0 param:0x0
nid:0x20 verb:0x500 param:0x26
nid:0x20 verb:0xc00 param:0x0
nid:0x21 verb:0xf09 param:0x0
nid:0x6 verb:0x73e param:0x80
nid:0x20 verb:0x500 param:0x26
nid:0x20 verb:0xc00 param:0x0
nid:0x20 verb:0x500 param:0x26
nid:0x20 verb:0x4f0 param:0x0
nid:0x20 verb:0x500 param:0x23
nid:0x20 verb:0x400 param:0xc
nid:0x20 verb:0x500 param:0x25
nid:0x20 verb:0x400 param:0x0
nid:0x20 verb:0x500 param:0x26
nid:0x20 verb:0x4b0 param:0x10
nid:0x6 verb:0x73e param:0x0
nid:0x20 verb:0x500 param:0x26
nid:0x20 verb:0xc00 param:0x0
nid:0x20 verb:0x500 param:0x26
nid:0x20 verb:0x4b0 param:0x0
nid:0x20 verb:0x500 param:0x26
nid:0x20 verb:0xc00 param:0x0
nid:0x6 verb:0x73e param:0x80
nid:0x20 verb:0x500 param:0x26
nid:0x20 verb:0xc00 param:0x0
nid:0x20 verb:0x500 param:0x26
nid:0x20 verb:0x4f0 param:0x0
nid:0x20 verb:0x500 param:0x23
nid:0x20 verb:0x400 param:0xd
nid:0x20 verb:0x500 param:0x25
nid:0x20 verb:0x400 param:0x0
nid:0x20 verb:0x500 param:0x26
nid:0x20 verb:0x4b0 param:0x10
nid:0x6 verb:0x73e param:0x0
nid:0x20 verb:0x500 param:0x26
nid:0x20 verb:0xc00 param:0x0
nid:0x20 verb:0x500 param:0x26
nid:0x20 verb:0x4b0 param:0x0
nid:0x20 verb:0x500 param:0x26
nid:0x20 verb:0xc00 param:0x0
nid:0x6 verb:0x73e param:0x80
nid:0x20 verb:0x500 param:0x26
nid:0x20 verb:0xc00 param:0x0
nid:0x20 verb:0x500 param:0x26
nid:0x20 verb:0x4f0 param:0x0
nid:0x20 verb:0x500 param:0x23
nid:0x20 verb:0x400 param:0xe
nid:0x20 verb:0x500 param:0x25
nid:0x20 verb:0x400 param:0x0
nid:0x20 verb:0x500 param:0x26
nid:0x20 verb:0x4b0 param:0x10
nid:0x6 verb:0x73e param:0x0
nid:0x20 verb:0x500 param:0x26
nid:0x20 verb:0xc00 param:0x0
nid:0x20 verb:0x500 param:0x26
nid:0x20 verb:0x4b0 param:0x0
nid:0x20 verb:0x500 param:0x26
nid:0x20 verb:0xc00 param:0x0
nid:0x6 verb:0x73e param:0x80
nid:0x20 verb:0x500 param:0x26
nid:0x20 verb:0xc00 param:0x0
nid:0x20 verb:0x500 param:0x26
nid:0x20 verb:0x4f0 param:0x0
nid:0x20 verb:0x500 param:0x23
nid:0x20 verb:0x400 param:0xf
nid:0x20 verb:0x500 param:0x25
nid:0x20 verb:0x400 param:0x0
nid:0x20 verb:0x500 param:0x26
nid:0x20 verb:0x4b0 param:0x10
nid:0x6 verb:0x73e param:0x0
nid:0x20 verb:0x500 param:0x26
nid:0x20 verb:0xc00 param:0x0
nid:0x20 verb:0x500 param:0x26
nid:0x20 verb:0x4b0 param:0x0
nid:0x20 verb:0x500 param:0x26
nid:0x20 verb:0xc00 param:0x0
nid:0x6 verb:0x73e param:0x80
nid:0x20 verb:0x500 param:0x26
nid:0x20 verb:0xc00 param:0x0
nid:0x20 verb:0x500 param:0x26
nid:0x20 verb:0x4f0 param:0x0
nid:0x20 verb:0x500 param:0x23
nid:0x20 verb:0x400 param:0x10
nid:0x20 verb:0x500 param:0x25
nid:0x20 verb:0x400 param:0x0
nid:0x20 verb:0x500 param:0x26
nid:0x20 verb:0x4b0 param:0x10
nid:0x6 verb:0x73e param:0x0
nid:0x20 verb:0x500 param:0x26
nid:0x20 verb:0xc00 param:0x0
nid:0x20 verb:0x500 param:0x26
nid:0x20 verb:0x4b0 param:0x0
nid:0x20 verb:0x500 param:0x26
nid:0x20 verb:0xc00 param:0x0
nid:0x6 verb:0x73e param:0x80
nid:0x20 verb:0x500 param:0x26
nid:0x20 verb:0xc00 param:0x0
nid:0x20 verb:0x500 param:0x26
nid:0x20 verb:0x4f0 param:0x0
nid:0x20 verb:0x500 param:0x23
nid:0x20 verb:0x400 param:0x1a
nid:0x20 verb:0x500 param:0x25
nid:0x20 verb:0x400 param:0x40
nid:0x20 verb:0x500 param:0x26
nid:0x20 verb:0x4b0 param:0x10
nid:0x6 verb:0x73e param:0x0
nid:0x20 verb:0x500 param:0x26
nid:0x20 verb:0xc00 param:0x0
nid:0x20 verb:0x500 param:0x26
nid:0x20 verb:0x4b0 param:0x0
nid:0x20 verb:0x500 param:0x26
nid:0x20 verb:0xc00 param:0x0
nid:0x6 verb:0x73e param:0x80
nid:0x20 verb:0x500 param:0x26
nid:0x20 verb:0xc00 param:0x0
nid:0x20 verb:0x500 param:0x26
nid:0x20 verb:0x4f0 param:0x0
nid:0x20 verb:0x500 param:0x23
nid:0x20 verb:0x400 param:0x1b
nid:0x20 verb:0x500 param:0x25
nid:0x20 verb:0x400 param:0x82
nid:0x20 verb:0x500 param:0x26
nid:0x20 verb:0x4b0 param:0x10
nid:0x6 verb:0x73e param:0x0
nid:0x20 verb:0x500 pa