Commit 9ad576c6 authored by Michal Berger's avatar Michal Berger Committed by Tomasz Zawadzki
Browse files

scripts/common: Include pci dev's driver in cache_pci_bus_lspci()



Change-Id: I6a96b2fe7d265159af81ab55753e9aa1f723b543
Signed-off-by: default avatarMichal Berger <michal.berger@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/17994


Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarKonrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: default avatarTomasz Zawadzki <tomasz.zawadzki@intel.com>
parent 1334e3e4
Loading
Loading
Loading
Loading
+18 −8
Original line number Diff line number Diff line
@@ -94,12 +94,7 @@ cache_pci_bus_sysfs() {

	for pci in /sys/bus/pci/devices/*; do
		class=$(< "$pci/class") vendor=$(< "$pci/vendor") device=$(< "$pci/device") driver="" mod=""
		if [[ -e $pci/driver ]]; then
			driver=$(readlink -f "$pci/driver")
			driver=${driver##*/}
		else
			driver=unbound
		fi
		driver=$(get_pci_driver_sysfs "${pci##*/}")
		if [[ -e $pci/modalias ]]; then
			mod=$(< "$pci/modalias")
		fi
@@ -123,8 +118,12 @@ cache_pci_bus_lspci() {
		else
			dev[1]+=00
		fi
		# pci class vendor device
		cache_pci "${dev[@]::4}"
		# pci class vendor device driver
		# lspci supports driver listing only under Linux, however, it's not
		# included when specific display mode (i.e. -mm) is in use, even if
		# extra -k is slapped on the cmdline. So with that in mind, just
		# get that info from sysfs.
		cache_pci "${dev[@]::4}" "$(get_pci_driver_sysfs "${dev[0]}")"
	done < <(lspci -Dnmm)
}

@@ -152,6 +151,17 @@ cache_pci_bus_pciconf() {
	done < <(pciconf -l)
}

get_pci_driver_sysfs() {
	local pci=/sys/bus/pci/devices/$1 driver

	if [[ -e $pci/driver ]]; then
		driver=$(readlink -f "$pci/driver") driver=${driver##*/}
	else
		driver=unbound
	fi
	echo "$driver"
}

cache_pci_bus() {
	case "$(uname -s)" in
		Linux) cache_pci_bus_lspci || cache_pci_bus_sysfs ;;