[PATCH v4 0/7] Refactor OCXL driver to allow external drivers to use it

Alastair D'Silva alastair at au1.ibm.com
Wed Mar 27 16:31:29 AEDT 2019


From: Alastair D'Silva <alastair at d-silva.org>

This series reworks the OpenCAPI driver to split frontend
(driver interactions) from backend (hardware interactions).

This allows external drivers to utilise the core of the
generic OpenCAPI driver to communicate with specific
OpenCAPI hardware.

This series is bisectable.

Changelog:
V4: 
  - For: 'ocxl: Create a clear delineation between ocxl backend & frontend'
      - Reword non-RCU comment to reflect info struct
      - Inline returns from err label in afu_open()
      - ocxl_file_make_(in)visibile & ocxl_sysfs_(un)register use info
        directly, rather than fetching in from the AFU. This, together with
        a delayed ocxl_afu_set_private(), make it clearer that
        ocxl_file_register() must succeed for cleanup code to be called
      - Remove stray ocxl_free_afu() prototype from header
  - For: 'ocxl: Allow external drivers to use OpenCAPI contexts'
      - Merge ocxl_context_init & ocxl_context_alloc
      - Add missing opaque struct ocxl_context 
  - For: 'ocxl: move event_fd handling to frontend'
      - Set missed free_private value in irq struct
      - Change goto unlock to fall-through comment
      - Clean stray whitespace
      - Mention that free_private can be NULL in ocxl_irq_set_handler docs
V3:
  - For: 'ocxl: Create a clear delineation between ocxl backend & frontend'
      - Integrate Frederick Barrat's suggestions
      - Further cleanup on error paths
      - Remove release handler for AFU private data
      - Make ocxl_file_make_(in)visibile static & call from ocxl_file_(un)register
V2:
  - Reorder patches as some required structs that were only available later
  - Add dev.release implementation for ocxl_file_info to address warning on
    driver unload (ocxl: Create a clear delineation...)
  - Set output var irq_id in ocxl_afu_irq_alloc (ocxl: afu_irq only deals...)
  - Bump copyright year (ocxl: Provide global MMIO accessors...,
        ocxl: Split pci.c)

Alastair D'Silva (7):
  ocxl: Split pci.c
  ocxl: Don't pass pci_dev around
  ocxl: Create a clear delineation between ocxl backend & frontend
  ocxl: Allow external drivers to use OpenCAPI contexts
  ocxl: afu_irq only deals with IRQ IDs, not offsets
  ocxl: move event_fd handling to frontend
  ocxl: Provide global MMIO accessors for external drivers

 drivers/misc/ocxl/Makefile        |   3 +-
 drivers/misc/ocxl/afu_irq.c       | 102 +++---
 drivers/misc/ocxl/context.c       |  31 +-
 drivers/misc/ocxl/core.c          | 574 ++++++++++++++++++++++++++++++
 drivers/misc/ocxl/file.c          | 177 ++++++---
 drivers/misc/ocxl/mmio.c          | 234 ++++++++++++
 drivers/misc/ocxl/ocxl_internal.h |  39 +-
 drivers/misc/ocxl/pci.c           | 565 ++---------------------------
 drivers/misc/ocxl/sysfs.c         |  54 +--
 drivers/misc/ocxl/trace.h         |  12 +-
 include/misc/ocxl.h               | 314 +++++++++++++++-
 11 files changed, 1390 insertions(+), 715 deletions(-)
 create mode 100644 drivers/misc/ocxl/core.c
 create mode 100644 drivers/misc/ocxl/mmio.c

-- 
2.20.1



More information about the Linuxppc-dev mailing list