powerpc/vas: Initialize window attributes for GZIP coprocessor type
authorHaren Myneni <haren@linux.ibm.com>
Fri, 17 Apr 2020 09:00:29 +0000 (02:00 -0700)
committerMichael Ellerman <mpe@ellerman.id.au>
Mon, 20 Apr 2020 06:53:13 +0000 (16:53 +1000)
Initialize send and receive window attributes for GZIP high and
normal priority types.

Signed-off-by: Haren Myneni <haren@linux.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/1587114029.2275.1103.camel@hbabu-laptop
arch/powerpc/platforms/powernv/vas-window.c

index d62787f..52844a1 100644 (file)
@@ -817,7 +817,8 @@ void vas_init_rx_win_attr(struct vas_rx_win_attr *rxattr, enum vas_cop_type cop)
 {
        memset(rxattr, 0, sizeof(*rxattr));
 
-       if (cop == VAS_COP_TYPE_842 || cop == VAS_COP_TYPE_842_HIPRI) {
+       if (cop == VAS_COP_TYPE_842 || cop == VAS_COP_TYPE_842_HIPRI ||
+               cop == VAS_COP_TYPE_GZIP || cop == VAS_COP_TYPE_GZIP_HIPRI) {
                rxattr->pin_win = true;
                rxattr->nx_win = true;
                rxattr->fault_win = false;
@@ -892,7 +893,8 @@ void vas_init_tx_win_attr(struct vas_tx_win_attr *txattr, enum vas_cop_type cop)
 {
        memset(txattr, 0, sizeof(*txattr));
 
-       if (cop == VAS_COP_TYPE_842 || cop == VAS_COP_TYPE_842_HIPRI) {
+       if (cop == VAS_COP_TYPE_842 || cop == VAS_COP_TYPE_842_HIPRI ||
+               cop == VAS_COP_TYPE_GZIP || cop == VAS_COP_TYPE_GZIP_HIPRI) {
                txattr->rej_no_credit = false;
                txattr->rx_wcred_mode = true;
                txattr->tx_wcred_mode = true;
@@ -976,9 +978,14 @@ static bool tx_win_args_valid(enum vas_cop_type cop,
        if (attr->wcreds_max > VAS_TX_WCREDS_MAX)
                return false;
 
-       if (attr->user_win &&
-                       (cop != VAS_COP_TYPE_FTW || attr->rsvd_txbuf_count))
-               return false;
+       if (attr->user_win) {
+               if (attr->rsvd_txbuf_count)
+                       return false;
+
+               if (cop != VAS_COP_TYPE_FTW && cop != VAS_COP_TYPE_GZIP &&
+                       cop != VAS_COP_TYPE_GZIP_HIPRI)
+                       return false;
+       }
 
        return true;
 }