Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/pci/pci.c
Show First 20 Lines • Show All 3,145 Lines • ▼ Show 20 Lines | |||||
{ | { | ||||
struct pci_devinfo *dinfo; | struct pci_devinfo *dinfo; | ||||
uint16_t cmd; | uint16_t cmd; | ||||
dinfo = device_get_ivars(dev); | dinfo = device_get_ivars(dev); | ||||
if (PCIR_IS_BIOS(&dinfo->cfg, pm->pm_reg) && | if (PCIR_IS_BIOS(&dinfo->cfg, pm->pm_reg) && | ||||
!(pm->pm_value & PCIM_BIOS_ENABLE)) | !(pm->pm_value & PCIM_BIOS_ENABLE)) | ||||
return (0); | return (0); | ||||
#ifdef PCI_IOV | |||||
if ((dinfo->cfg.flags & PCICFG_VF) != 0) { | |||||
struct pcicfg_iov *iov; | |||||
iov = dinfo->cfg.iov; | |||||
cmd = pci_read_config(iov->iov_pf, | |||||
iov->iov_pos + PCIR_SRIOV_CTL, 2); | |||||
return ((cmd & PCIM_SRIOV_VF_MSE) != 0); | |||||
} | |||||
#endif | |||||
cmd = pci_read_config(dev, PCIR_COMMAND, 2); | cmd = pci_read_config(dev, PCIR_COMMAND, 2); | ||||
if (PCIR_IS_BIOS(&dinfo->cfg, pm->pm_reg) || PCI_BAR_MEM(pm->pm_value)) | if (PCIR_IS_BIOS(&dinfo->cfg, pm->pm_reg) || PCI_BAR_MEM(pm->pm_value)) | ||||
return ((cmd & PCIM_CMD_MEMEN) != 0); | return ((cmd & PCIM_CMD_MEMEN) != 0); | ||||
else | else | ||||
return ((cmd & PCIM_CMD_PORTEN) != 0); | return ((cmd & PCIM_CMD_PORTEN) != 0); | ||||
} | } | ||||
struct pci_map * | struct pci_map * | ||||
▲ Show 20 Lines • Show All 3,609 Lines • Show Last 20 Lines |