summaryrefslogtreecommitdiffstats
path: root/arch/s390/include
diff options
context:
space:
mode:
authorPierre Morel <pmorel@linux.ibm.com>2020-02-21 10:06:38 +0100
committerVasily Gorbik <gor@linux.ibm.com>2020-04-28 13:49:46 +0200
commitc9a1752b84f1a8f73187c116ff0514b2ab24d878 (patch)
tree07ac7933d9619a6f5cff7940e81bc0749c70adec /arch/s390/include
parent6cf17f9a67c124aa4739b79709008d942635b975 (diff)
downloadlinux-c9a1752b84f1a8f73187c116ff0514b2ab24d878.tar.gz
linux-c9a1752b84f1a8f73187c116ff0514b2ab24d878.tar.bz2
linux-c9a1752b84f1a8f73187c116ff0514b2ab24d878.zip
s390/pci: define RID and RID available
Firmware provides the bus/devfn part of the PCI addresses of a zPCI function inside the new field RID of the CLP query PCI function with a bit to know if this field is available to use. Let's add these fields to the clp_rsp_query_pci structure, add corresponding fields to zdev and initialize them. Signed-off-by: Pierre Morel <pmorel@linux.ibm.com> Reviewed-by: Niklas Schnelle <schnelle@linux.ibm.com> Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
Diffstat (limited to 'arch/s390/include')
-rw-r--r--arch/s390/include/asm/pci.h3
-rw-r--r--arch/s390/include/asm/pci_clp.h9
2 files changed, 10 insertions, 2 deletions
diff --git a/arch/s390/include/asm/pci.h b/arch/s390/include/asm/pci.h
index ec28bbc2d3d1..4dbf8e17f0e8 100644
--- a/arch/s390/include/asm/pci.h
+++ b/arch/s390/include/asm/pci.h
@@ -109,6 +109,9 @@ struct zpci_dev {
u8 pft; /* pci function type */
u16 domain;
u8 port;
+ u8 rid_available : 1;
+ u8 reserved : 7;
+ unsigned int devfn; /* DEVFN part of the RID*/
struct mutex lock;
u8 pfip[CLP_PFIP_NR_SEGMENTS]; /* pci function internal path */
diff --git a/arch/s390/include/asm/pci_clp.h b/arch/s390/include/asm/pci_clp.h
index d8122f534f54..896ee41e23e3 100644
--- a/arch/s390/include/asm/pci_clp.h
+++ b/arch/s390/include/asm/pci_clp.h
@@ -93,7 +93,9 @@ struct clp_req_query_pci {
struct clp_rsp_query_pci {
struct clp_rsp_hdr hdr;
u16 vfn; /* virtual fn number */
- u16 : 6;
+ u16 : 3;
+ u16 rid_avail : 1;
+ u16 : 2;
u16 mio_addr_avail : 1;
u16 util_str_avail : 1; /* utility string available? */
u16 pfgid : 8; /* pci function group id */
@@ -108,7 +110,10 @@ struct clp_rsp_query_pci {
u8 pft; /* pci function type */
u64 sdma; /* start dma as */
u64 edma; /* end dma as */
- u32 reserved[11];
+#define ZPCI_RID_MASK_DEVFN 0x00ff
+ u16 rid; /* BUS/DEVFN PCI address */
+ u16 reserved0;
+ u32 reserved[10];
u32 uid; /* user defined id */
u8 util_str[CLP_UTIL_STR_LEN]; /* utility string */
u32 reserved2[16];