]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
s390/pci: check for relaxed translation capability
authorMatthew Rosato <mjrosato@linux.ibm.com>
Wed, 12 Feb 2025 21:34:15 +0000 (16:34 -0500)
committerJoerg Roedel <jroedel@suse.de>
Fri, 21 Feb 2025 11:01:57 +0000 (12:01 +0100)
For each zdev, record whether or not CLP indicates relaxed translation
capability for the associated device group.

Reviewed-by: Niklas Schnelle <schnelle@linux.ibm.com>
Tested-by: Niklas Schnelle <schnelle@linux.ibm.com>
Signed-off-by: Matthew Rosato <mjrosato@linux.ibm.com>
Link: https://lore.kernel.org/r/20250212213418.182902-2-mjrosato@linux.ibm.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>
arch/s390/include/asm/pci.h
arch/s390/include/asm/pci_clp.h
arch/s390/pci/pci_clp.c

index 474e1f8d1d3c2fc5685b459cc68b67ac651ea3e9..8fe4c7a72c0b480be9691105c627761d1449ba75 100644 (file)
@@ -144,7 +144,7 @@ struct zpci_dev {
        u8              util_str_avail  : 1;
        u8              irqs_registered : 1;
        u8              tid_avail       : 1;
-       u8              reserved        : 1;
+       u8              rtr_avail       : 1; /* Relaxed translation allowed */
        unsigned int    devfn;          /* DEVFN part of the RID*/
 
        u8 pfip[CLP_PFIP_NR_SEGMENTS];  /* pci function internal path */
index 3fff2f7095c8c9ecc2ba05dda0b1638cca0c54bf..7ebff39c84b3484c579569835a5977deea1481ed 100644 (file)
@@ -156,7 +156,9 @@ struct clp_rsp_query_pci_grp {
        u16                     :  4;
        u16 noi                 : 12;   /* number of interrupts */
        u8 version;
-       u8                      :  6;
+       u8                      :  2;
+       u8 rtr                  :  1;   /* Relaxed translation requirement */
+       u8                      :  3;
        u8 frame                :  1;
        u8 refresh              :  1;   /* TLB refresh mode */
        u16                     :  3;
index 14bf7e8d06b7a75dc8820e47d46a5f6e260045c6..27248686e588899e9f86d8e3bf603a1e0a296094 100644 (file)
@@ -112,6 +112,7 @@ static void clp_store_query_pci_fngrp(struct zpci_dev *zdev,
        zdev->version = response->version;
        zdev->maxstbl = response->maxstbl;
        zdev->dtsm = response->dtsm;
+       zdev->rtr_avail = response->rtr;
 
        switch (response->version) {
        case 1: