This patch series adds OCXL support to the cxlflash driver. With this support, new devices using the OCXL transport will be supported by the cxlflash driver along with the existing CXL devices. An effort is made to keep this transport specific function independent of the existing core driver that communicates with the AFU. The first three patches contain a minor fix and staging improvements. This series is intended for 4.17 and is bisectable. v2 Changes: - Replaced OpenCXL with OCXL in the commit messages and comments Matthew R. Ochs (1): cxlflash: Avoid clobbering context control register value Uma Krishnan (37): cxlflash: Preserve number of interrupts for master contexts cxlflash: Add argument identifier names cxlflash: Introduce OCXL backend cxlflash: Hardware AFU for OCXL cxlflash: Read host function configuration cxlflash: Setup function acTag range cxlflash: Read host AFU configuration cxlflash: Setup AFU acTag range cxlflash: Setup AFU PASID cxlflash: Adapter context support for OCXL cxlflash: Use IDR to manage adapter contexts cxlflash: Support adapter file descriptors for OCXL cxlflash: Support adapter context discovery cxlflash: Support image reload policy modification cxlflash: MMIO map the AFU cxlflash: Support starting an adapter context cxlflash: Support process specific mappings cxlflash: Support AFU state toggling cxlflash: Support reading adapter VPD data cxlflash: Setup function OCXL link cxlflash: Setup OCXL transaction layer cxlflash: Support process element lifecycle cxlflash: Support AFU interrupt management cxlflash: Support AFU interrupt mapping and registration cxlflash: Support starting user contexts cxlflash: Support adapter context polling cxlflash: Support adapter context reading cxlflash: Support adapter context mmap and release cxlflash: Support file descriptor mapping cxlflash: Introduce object handle fop cxlflash: Setup LISNs for user contexts cxlflash: Setup LISNs for master contexts cxlflash: Update synchronous interrupt status bits cxlflash: Introduce OCXL context state machine cxlflash: Register for translation errors cxlflash: Support AFU reset cxlflash: Enable OCXL operations drivers/scsi/cxlflash/Kconfig | 2 +- drivers/scsi/cxlflash/Makefile | 2 +- drivers/scsi/cxlflash/backend.h | 50 +- drivers/scsi/cxlflash/common.h | 10 +- drivers/scsi/cxlflash/cxl_hw.c | 13 + drivers/scsi/cxlflash/main.c | 55 +- drivers/scsi/cxlflash/main.h | 1 + drivers/scsi/cxlflash/ocxl_hw.c | 1428 +++++++++++++++++++++++++++++++++++++ drivers/scsi/cxlflash/ocxl_hw.h | 76 ++ drivers/scsi/cxlflash/sislite.h | 41 +- drivers/scsi/cxlflash/superpipe.c | 14 + 11 files changed, 1644 insertions(+), 48 deletions(-) create mode 100644 drivers/scsi/cxlflash/ocxl_hw.c create mode 100644 drivers/scsi/cxlflash/ocxl_hw.h -- 2.1.0