Overview & identity
The checked modern PCI rule maps 1af4:1059 to virtio type 25 (sound). This is a virtual function identity, not the host hardware model. Transitional PCI IDs use a different subsystem-ID rule and are deliberately not inferred here.
- Curated identifiers
pci 1af4:1059
A numeric match establishes a candidate family within the reviewed evidence. Marketing names, board variants, subsystem conditions and successful operation remain separate questions.
Driver & binding
virtio_snd handles type 25, not an HDA codec or USB audio interface. The guest ALSA devices and the host audio route are independent layers, even when the desktop presents them as an ordinary sound card. lspci can therefore correctly report virtio-pci while the child function is bound to virtio_snd.
virtio_pci— kernel driver/module candidatevirtio_snd— kernel driver/module candidate
Firmware
No host payload established here
No external firmware filename was established in the checked driver path. This does not describe firmware stored inside the device.
Read-only diagnostics
Run one displayed command at a time. Replace uppercase placeholders with the affected device, interface or module from your own output. Commands are never executed here. Read-only output can still contain private identifiers.
Inspect the PCI function and binding
lspci -nnk -s BDFReplace BDF with the complete address, for example 0000:00:14.0. This read-only query needs pciutils and normally no sudo. “Kernel driver in use” is observed binding; “Kernel modules” lists candidates.
Inspect the virtio child function driver
ls -l /sys/bus/pci/devices/BDF/virtio*/driverReplace BDF with the full observed PCI address. Read the child driver link without sudo; virtio_pci is the PCI transport, while this link belongs to the function driver. A missing child or link means that this layer was not observed.
List kernel ALSA cards
cat /proc/asound/cardsRead the current ALSA card list without sudo. Card indexes can change after reboot; an existing card does not yet establish the selected desktop output or usable wiring. A missing file can also reflect unavailable procfs/ALSA support.
Limitations & related issues
The modern PCI identity does not promise a particular rate, channel layout, latency or working host speakers. Features and stream configuration must be observed; no tested hypervisor compatibility is asserted.
These guides are linked for relevant observations, not as known defects of every device in this family.
- ALSA cannot see the expected sound card · First documented next step
- PipeWire or its user session manager does not start · First documented next step
- PipeWire crackles or drops audio under load · First documented next step
Choose a hardware diagnostic workflow · Inspect a log excerpt in Fix Lab
References
Source review records a checked implementation or document, not a reproduced hardware test. Version-specific tables do not establish a minimum kernel or guaranteed operation.
- Linux: drivers/virtio/virtio_pci_common.c
Reviewed upstream source
virtio_pci_id_table[] - Linux: drivers/virtio/virtio_pci_modern_dev.c
Reviewed upstream source
mdev->id.device = pci_dev->device - 0x1040; - Linux: include/uapi/linux/virtio_ids.h
Reviewed upstream source
#define VIRTIO_ID_SOUND - Linux: sound/virtio/virtio_card.c
Reviewed upstream source
{ VIRTIO_ID_SOUND, - Linux: Documentation/driver-api/virtio/virtio.rst
Project or distribution documentation
Device discovery and probing - Linux: sound/virtio/Makefile
Reviewed upstream source
virtio_snd