Home | History | Annotate | Download | only in pci

Lines Matching refs:pd

59 	(PCI_VENDOR(pd->pd_id) == PCI_RESOURCE_TEST_VENDOR_ID &&	      \
60 PCI_PRODUCT(pd->pd_id) == PCI_RESOURCE_TEST_PRODUCT_ID)
306 struct pci_device *pd;
309 pd = PCICONF_BUS_DEVICE(pb, devno, 0);
310 if (!pd->pd_present) {
314 return PCI_HDRTYPE_MULTIFN(pd->pd_bhlc) ? 8 : 1;
324 struct pci_device *pd)
331 PCI_SBDF_FMT_ARGS(pr, pd),
332 PCI_VENDOR(pd->pd_id), PCI_PRODUCT(pd->pd_id),
333 PCI_REVISION(pd->pd_class), (pd->pd_class >> 8) & 0xffffff);
335 switch (PCI_HDRTYPE_TYPE(pd->pd_bhlc)) {
341 PCI_BRIDGE_BUS_NUM_PRIMARY(pd->pd_bridge.bridge_bus),
342 PCI_BRIDGE_BUS_NUM_SECONDARY(pd->pd_bridge.bridge_bus),
343 PCI_BRIDGE_BUS_NUM_SUBORDINATE(pd->pd_bridge.bridge_bus));
345 if (pd->pd_bridge.ranges[PCI_RANGE_IO]) {
347 &pd->pd_bridge.ranges[PCI_RANGE_IO]->list,
353 PCI_SBDF_FMT_ARGS(pr, pd),
358 if (pd->pd_bridge.ranges[PCI_RANGE_MEM]) {
360 &pd->pd_bridge.ranges[PCI_RANGE_MEM]->list,
366 PCI_SBDF_FMT_ARGS(pr, pd),
371 if (pd->pd_bridge.ranges[PCI_RANGE_PMEM]) {
373 &pd->pd_bridge.ranges[PCI_RANGE_PMEM]->list,
379 PCI_SBDF_FMT_ARGS(pr, pd),
387 DPRINT(" (0x%02x)\n", PCI_HDRTYPE_TYPE(pd->pd_bhlc));
390 for (res = 0; res < pd->pd_niores; res++) {
391 pi = &pd->pd_iores[res];
396 PCI_SBDF_FMT_ARGS(pr, pd), pi->pi_bar,
426 struct pci_device *pd, pcireg_t mapreg_start, pcireg_t mapreg_end,
430 pcitag_t tag = pd->pd_tag;
476 pi = &pd->pd_iores[pd->pd_niores++];
491 pi = &pd->pd_iores[pd->pd_niores++];
500 KASSERT(pd->pd_niores <= PCI_MAX_IORES);
517 struct pci_device *pd)
520 pcitag_t tag = pd->pd_tag;
526 pd->pd_ppb = true;
529 pd->pd_bridge.bridge_bus = res;
530 pci_resource_arena_add_range(pd->pd_bridge.ranges,
544 pci_resource_arena_add_range(pd->pd_bridge.ranges,
552 pci_resource_arena_add_range(pd->pd_bridge.ranges,
568 pci_resource_arena_add_range(pd->pd_bridge.ranges,
582 struct pci_device *pd;
593 pd = PCICONF_BUS_DEVICE(parent_bus, devno, funcno);
594 pd->pd_present = true;
595 pd->pd_bus = parent_bus;
596 pd->pd_tag = tag;
597 pd
598 pd->pd_funcno = funcno;
599 pd->pd_id = id;
600 pd->pd_class = pci_conf_read(pr->pr_pc, tag, PCI_CLASS_REG);
601 pd->pd_bhlc = pci_conf_read(pr->pr_pc, tag, PCI_BHLC_REG);
603 switch (PCI_HDRTYPE_TYPE(pd->pd_bhlc)) {
605 pci_resource_scan_bar(pr, pd, PCI_MAPREG_START,
609 pci_resource_scan_bar(pr, pd, PCI_MAPREG_START,
611 pci_resource_scan_bridge(pr, pd);
615 pci_resource_device_print(pr, pd);
617 if (PCI_HDRTYPE_TYPE(pd->pd_bhlc) == PCI_HDRTYPE_PPB &&
618 PCI_CLASS(pd->pd_class) == PCI_CLASS_BRIDGE &&
619 PCI_SUBCLASS(pd->pd_class) == PCI_SUBCLASS_BRIDGE_PCI) {
623 if (pci_resource_scan_bus(pr, pd, sec_bus) != 0) {
626 PCI_SBDF_FMT_ARGS(pr, pd), sec_bus);
631 PCI_SBDF_FMT_ARGS(pr, pd), sec_bus);
730 struct pci_device *pd)
733 struct pci_bus *pb = pd->pd_bus;
742 KASSERT(pd->pd_present);
744 if (IS_TEST_DEVICE(pd)) {
745 cmd = pci_conf_read(pr->pr_pc, pd->pd_tag,
749 pci_conf_write(pr->pr_pc, pd->pd_tag, PCI_COMMAND_STATUS_REG,
754 cmd = pci_conf_read(pr->pr_pc, pd->pd_tag, PCI_COMMAND_STATUS_REG);
762 for (iores = 0; iores < pd->pd_niores; iores++) {
763 pi = &pd->pd_iores[iores];
767 if (IS_TEST_DEVICE(pd)) {
768 pci_conf_write(pr->pr_pc, pd->pd_tag,
784 PCI_SBDF_FMT_ARGS(pr, pd),
840 PCI_SBDF_FMT_ARGS(pr, pd),
848 pd->pd_configured = (enabled & required) == required;
850 if (!pd->pd_configured) {
853 PCI_SBDF_FMT_ARGS(pr, pd));
866 struct pci_device *pd, *bridge;
930 pd = PCICONF_BUS_DEVICE(pb, devno, funcno);
931 if (!pd->pd_present) {
934 if (pd->pd_ppb) {
936 pd->pd_bridge.bridge_bus);
940 pci_resource_init_device(pr, pd);
987 pci_resource_alloc_device(struct pci_resources *pr, struct pci_device *pd)
999 ocmd = cmd = pci_conf_read(pr->pr_pc, pd->pd_tag,
1008 for (res = 0; res < pd->pd_niores; res++) {
1009 pi = &pd->pd_iores[res];
1016 arena = pd->pd_bus->pb_res[PCI_RANGE_IO];
1023 arena = pd->pd_bus->pb_res[PCI_RANGE_PMEM];
1026 arena = pd->pd_bus->pb_res[PCI_RANGE_MEM];
1032 PCI_SBDF_FMT_ARGS(pr, pd),
1040 PCI_SBDF_FMT_ARGS(pr, pd),
1046 PCI_SBDF_FMT_ARGS(pr, pd),
1051 pci_conf_write(pr->pr_pc, pd->pd_tag,
1056 base = pci_conf_read(pr->pr_pc, pd->pd_tag,
1060 pci_conf_write(pr->pr_pc, pd->pd_tag,
1065 pci_conf_write(pr->pr_pc, pd->pd_tag,
1072 pci_conf_write(pr->pr_pc, pd->pd_tag,
1086 struct pci_device *pd;
1091 pd = PCICONF_BUS_DEVICE(pb, devno, funcno);
1092 if (!pd->pd_present) {
1098 if (!pd->pd_configured) {
1099 pci_resource_alloc_device(pr, pd);
1101 if (pd->pd_ppb) {
1103 pd->pd_bridge.bridge_bus);