|
@@ -1742,6 +1742,10 @@ static int cxl_configure_adapter(struct cxl *adapter, struct pci_dev *dev)
|
|
|
/* Required for devices using CAPP DMA mode, harmless for others */
|
|
|
pci_set_master(dev);
|
|
|
|
|
|
+ if (cxl_is_power9())
|
|
|
+ if (pnv_pci_set_tunnel_bar(dev, 0x00020000E0000000ull, 1))
|
|
|
+ dev_info(&dev->dev, "Tunneled operations unsupported\n");
|
|
|
+
|
|
|
if ((rc = pnv_phb_to_cxl_mode(dev, adapter->native->sl_ops->capi_mode)))
|
|
|
goto err;
|
|
|
|
|
@@ -1768,6 +1772,9 @@ static void cxl_deconfigure_adapter(struct cxl *adapter)
|
|
|
{
|
|
|
struct pci_dev *pdev = to_pci_dev(adapter->dev.parent);
|
|
|
|
|
|
+ if (cxl_is_power9())
|
|
|
+ pnv_pci_set_tunnel_bar(pdev, 0x00020000E0000000ull, 0);
|
|
|
+
|
|
|
cxl_native_release_psl_err_irq(adapter);
|
|
|
cxl_unmap_adapter_regs(adapter);
|
|
|
|