The first function of the link needs to configure the transaction layer
between the host and device. This is accomplished by a call to the OCXL
provider services.

Signed-off-by: Uma Krishnan <ukri...@linux.vnet.ibm.com>
---
 drivers/scsi/cxlflash/ocxl_hw.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/drivers/scsi/cxlflash/ocxl_hw.c b/drivers/scsi/cxlflash/ocxl_hw.c
index 3a1ad61..74447f8 100644
--- a/drivers/scsi/cxlflash/ocxl_hw.c
+++ b/drivers/scsi/cxlflash/ocxl_hw.c
@@ -419,8 +419,18 @@ static int ocxlflash_config_fn(struct pci_dev *pdev, 
struct ocxl_hw_afu *afu)
                        __func__, rc);
                goto out;
        }
+
+       rc = ocxl_config_set_TL(pdev, fcfg->dvsec_tl_pos);
+       if (unlikely(rc)) {
+               dev_err(dev, "%s: ocxl_config_set_TL failed rc=%d\n",
+                       __func__, rc);
+               goto err;
+       }
 out:
        return rc;
+err:
+       ocxl_link_release(pdev, afu->link_token);
+       goto out;
 }
 
 /**
-- 
2.1.0

Reply via email to