pci.c (f41be0f07673849a55ab3dfbba8878b9cb06b133) pci.c (d7be980dbe6961abce6b3e12de0391cbad295f95)
1/*-
2 * Copyright (c) 1997, Stefan Esser <se@freebsd.org>
3 * Copyright (c) 2000, Michael Smith <msmith@freebsd.org>
4 * Copyright (c) 2000, BSDi
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions

--- 108 unchanged lines hidden (view full) ---

117static void pci_unmask_msix(device_t dev, u_int index);
118static int pci_msi_blacklisted(void);
119static int pci_msix_blacklisted(void);
120static void pci_resume_msi(device_t dev);
121static void pci_resume_msix(device_t dev);
122static int pci_remap_intr_method(device_t bus, device_t dev,
123 u_int irq);
124
1/*-
2 * Copyright (c) 1997, Stefan Esser <se@freebsd.org>
3 * Copyright (c) 2000, Michael Smith <msmith@freebsd.org>
4 * Copyright (c) 2000, BSDi
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions

--- 108 unchanged lines hidden (view full) ---

117static void pci_unmask_msix(device_t dev, u_int index);
118static int pci_msi_blacklisted(void);
119static int pci_msix_blacklisted(void);
120static void pci_resume_msi(device_t dev);
121static void pci_resume_msix(device_t dev);
122static int pci_remap_intr_method(device_t bus, device_t dev,
123 u_int irq);
124
125static uint16_t pci_get_rid_method(device_t dev, device_t child);
125static int pci_get_id_method(device_t dev, device_t child,
126 enum pci_id_type type, uintptr_t *rid);
126
127static struct pci_devinfo * pci_fill_devinfo(device_t pcib, device_t bus, int d,
128 int b, int s, int f, uint16_t vid, uint16_t did);
129
130static device_method_t pci_methods[] = {
131 /* Device interface */
132 DEVMETHOD(device_probe, pci_probe),
133 DEVMETHOD(device_attach, pci_attach),

--- 51 unchanged lines hidden (view full) ---

185 DEVMETHOD(pci_enable_msix, pci_enable_msix_method),
186 DEVMETHOD(pci_disable_msi, pci_disable_msi_method),
187 DEVMETHOD(pci_remap_msix, pci_remap_msix_method),
188 DEVMETHOD(pci_release_msi, pci_release_msi_method),
189 DEVMETHOD(pci_msi_count, pci_msi_count_method),
190 DEVMETHOD(pci_msix_count, pci_msix_count_method),
191 DEVMETHOD(pci_msix_pba_bar, pci_msix_pba_bar_method),
192 DEVMETHOD(pci_msix_table_bar, pci_msix_table_bar_method),
127
128static struct pci_devinfo * pci_fill_devinfo(device_t pcib, device_t bus, int d,
129 int b, int s, int f, uint16_t vid, uint16_t did);
130
131static device_method_t pci_methods[] = {
132 /* Device interface */
133 DEVMETHOD(device_probe, pci_probe),
134 DEVMETHOD(device_attach, pci_attach),

--- 51 unchanged lines hidden (view full) ---

186 DEVMETHOD(pci_enable_msix, pci_enable_msix_method),
187 DEVMETHOD(pci_disable_msi, pci_disable_msi_method),
188 DEVMETHOD(pci_remap_msix, pci_remap_msix_method),
189 DEVMETHOD(pci_release_msi, pci_release_msi_method),
190 DEVMETHOD(pci_msi_count, pci_msi_count_method),
191 DEVMETHOD(pci_msix_count, pci_msix_count_method),
192 DEVMETHOD(pci_msix_pba_bar, pci_msix_pba_bar_method),
193 DEVMETHOD(pci_msix_table_bar, pci_msix_table_bar_method),
193 DEVMETHOD(pci_get_rid, pci_get_rid_method),
194 DEVMETHOD(pci_get_id, pci_get_id_method),
194 DEVMETHOD(pci_alloc_devinfo, pci_alloc_devinfo_method),
195 DEVMETHOD(pci_child_added, pci_child_added_method),
196#ifdef PCI_IOV
197 DEVMETHOD(pci_iov_attach, pci_iov_attach_method),
198 DEVMETHOD(pci_iov_detach, pci_iov_detach_method),
199 DEVMETHOD(pci_create_iov_child, pci_create_iov_child_method),
200#endif
201

--- 5616 unchanged lines hidden (view full) ---

5818pci_restore_state(device_t dev)
5819{
5820 struct pci_devinfo *dinfo;
5821
5822 dinfo = device_get_ivars(dev);
5823 pci_cfg_restore(dev, dinfo);
5824}
5825
195 DEVMETHOD(pci_alloc_devinfo, pci_alloc_devinfo_method),
196 DEVMETHOD(pci_child_added, pci_child_added_method),
197#ifdef PCI_IOV
198 DEVMETHOD(pci_iov_attach, pci_iov_attach_method),
199 DEVMETHOD(pci_iov_detach, pci_iov_detach_method),
200 DEVMETHOD(pci_create_iov_child, pci_create_iov_child_method),
201#endif
202

--- 5616 unchanged lines hidden (view full) ---

5819pci_restore_state(device_t dev)
5820{
5821 struct pci_devinfo *dinfo;
5822
5823 dinfo = device_get_ivars(dev);
5824 pci_cfg_restore(dev, dinfo);
5825}
5826
5826static uint16_t
5827pci_get_rid_method(device_t dev, device_t child)
5827static int
5828pci_get_id_method(device_t dev, device_t child, enum pci_id_type type,
5829 uintptr_t *id)
5828{
5829
5830{
5831
5830 return (PCIB_GET_RID(device_get_parent(dev), child));
5832 return (PCIB_GET_ID(device_get_parent(dev), child, type, id));
5831}
5832
5833/* Find the upstream port of a given PCI device in a root complex. */
5834device_t
5835pci_find_pcie_root_port(device_t dev)
5836{
5837 struct pci_devinfo *dinfo;
5838 devclass_t pci_class;

--- 34 unchanged lines hidden ---
5833}
5834
5835/* Find the upstream port of a given PCI device in a root complex. */
5836device_t
5837pci_find_pcie_root_port(device_t dev)
5838{
5839 struct pci_devinfo *dinfo;
5840 devclass_t pci_class;

--- 34 unchanged lines hidden ---