]> mj.ucw.cz Git - pciutils.git/commit
lspci: Show information also for devices with unknown header type
authorPali Rohár <pali@kernel.org>
Sun, 27 Feb 2022 15:06:59 +0000 (16:06 +0100)
committerMartin Mareš <mj@ucw.cz>
Fri, 15 Apr 2022 21:36:39 +0000 (23:36 +0200)
commit72cabfbb12ad48bd4cdd5ecbe72f882197e2dac6
treebba4a684500099853396db128fe954013cd67811
parent4520c5950c49f788fc39108930b111093f06d421
lspci: Show information also for devices with unknown header type

lspci sees header type with 0x7f value in case config space is not
accessible. It may be because of permission issues or missing backend
(e.g. on Windows) or because device itself does not respond to config
cycles and config space is inaccessible.

Inaccessible config space is common scenario for switchable PCIe GPU
cards. Some Nvidia and also some AMD cards when sleep then lspci sees
all-ones in their config space. But kernel has registered those cards and
some of their properties are cached ans available via sysfs or procfs (from
time when card was awake).

Currently lspci shows error message "Unknown header type 7f" and does not
parse any value neither from config space nor from sysfs backend.

So try to show at least information which kernel provided into libpci
struct pci_dev.

Set unknown values to zeros (instead of all-ones which are returned from
config space) and add a new function show_htype_unknown() for showing
additional information in case header type is unknown.

This change will also help new windows backend which has only emulated
config space and therefore valid data only in struct pci_dev.
lspci.c