aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/pci.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/pci.h')
-rw-r--r--include/linux/pci.h34
1 files changed, 33 insertions, 1 deletions
diff --git a/include/linux/pci.h b/include/linux/pci.h
index 6f62a499023f..198d062640b7 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -1350,7 +1350,28 @@ static inline bool pci_is_pcie(struct pci_dev *dev)
1350void pci_request_acs(void); 1350void pci_request_acs(void);
1351 1351
1352 1352
1353#define PCI_VPD_LRDT_TAG_SIZE 3 1353#define PCI_VPD_LRDT 0x80 /* Large Resource Data Type */
1354#define PCI_VPD_LRDT_ID(x) (x | PCI_VPD_LRDT)
1355
1356/* Large Resource Data Type Tag Item Names */
1357#define PCI_VPD_LTIN_ID_STRING 0x02 /* Identifier String */
1358#define PCI_VPD_LTIN_RO_DATA 0x10 /* Read-Only Data */
1359#define PCI_VPD_LTIN_RW_DATA 0x11 /* Read-Write Data */
1360
1361#define PCI_VPD_LRDT_ID_STRING PCI_VPD_LRDT_ID(PCI_VPD_LTIN_ID_STRING)
1362#define PCI_VPD_LRDT_RO_DATA PCI_VPD_LRDT_ID(PCI_VPD_LTIN_RO_DATA)
1363#define PCI_VPD_LRDT_RW_DATA PCI_VPD_LRDT_ID(PCI_VPD_LTIN_RW_DATA)
1364
1365/* Small Resource Data Type Tag Item Names */
1366#define PCI_VPD_STIN_END 0x78 /* End */
1367
1368#define PCI_VPD_SRDT_END PCI_VPD_STIN_END
1369
1370#define PCI_VPD_SRDT_TIN_MASK 0x78
1371#define PCI_VPD_SRDT_LEN_MASK 0x07
1372
1373#define PCI_VPD_LRDT_TAG_SIZE 3
1374#define PCI_VPD_SRDT_TAG_SIZE 1
1354 1375
1355/** 1376/**
1356 * pci_vpd_lrdt_size - Extracts the Large Resource Data Type length 1377 * pci_vpd_lrdt_size - Extracts the Large Resource Data Type length
@@ -1363,5 +1384,16 @@ static inline u16 pci_vpd_lrdt_size(const u8 *lrdt)
1363 return (u16)lrdt[1] + ((u16)lrdt[2] << 8); 1384 return (u16)lrdt[1] + ((u16)lrdt[2] << 8);
1364} 1385}
1365 1386
1387/**
1388 * pci_vpd_srdt_size - Extracts the Small Resource Data Type length
1389 * @lrdt: Pointer to the beginning of the Small Resource Data Type tag
1390 *
1391 * Returns the extracted Small Resource Data Type length.
1392 */
1393static inline u8 pci_vpd_srdt_size(const u8 *srdt)
1394{
1395 return (*srdt) & PCI_VPD_SRDT_LEN_MASK;
1396}
1397
1366#endif /* __KERNEL__ */ 1398#endif /* __KERNEL__ */
1367#endif /* LINUX_PCI_H */ 1399#endif /* LINUX_PCI_H */