[v6 0/8] staging: fsl-mc: add dpio driver

From: Roy Pledge
Date: Wed Mar 08 2017 - 16:56:49 EST

This patch series adds the driver for the DPIO object which is a step to addressing the final item in the staging TODO list-- adding a functional driver on top of the bus driver. The DPIO driver is a dependency for other functional drivers such as Ethernet.

An overview of the DPIO object and driver components are in patch 1.
Patches 2-6 are internal components of the DPIO driver-- bit twiddling of hardware registers, DPAA2 data structures, and the queuing APIs exposed to other drivers.

Patch 7 adds the fsl-mc driver for the DPIO object. It provides the probe/remove functions, demonstrating a working example of how fsl-mc drivers initialize, interact with the management complex hardware, map their mappable MMIO regions, initialize interrupts, register an ISR, etc. All other DPAA2 drivers will follow a similar initialization pattern.

version 6 changes
-fixed error in size of SG_SHORT_LEN_MASK
-removed improper padding in DPIO command responses
-fixed some minor checkpatch warnings

version 5 changes
-fixed typo in patch 5 that caused compile issue

version 4 changes
-removed the patch moving the bus driver out of staging, updated
all paths referenced in dpio (e.g. includes) to be drivers/staging
-defined macros for constants where needed
-copyright updates
-cleanup: fixed whitespace, alignment issues, typos, removed unneeded
-fixed bug in SDQCR #define
-adding missing free in an error path

version 3 changes
-zero memory allocated for a dpio store
-replace hardcoded dequeue token with a #define and look for
that token when checking for a new result

version 2 changes (mostly feedback from Ioana Radulescu)
-removed unused structs and defines in dpio command definitions
-added setter/getter for the FD ctrl field
-corrected comment for SG format_offset field description
-added support for short length field in FD
-fix bug in buffer release command, by setting bpid field
-handle error (NULL) return value from qbman_swp_mc_complete()
-fix bug in sending management commands where the verb was
properly initialized
-use service_select_by_cpu() for re-arming DPIO interrupts
-replace use of NR_CPUS with num_possible_cpus()
-handle error case where number of DPIOs exceeds number of possible
-error message cleanup
-updated MAINTAINERS file with proper location for both fsl-mc bus
driver and dpio driver

Ioana Radulescu (1):
bus: fsl-mc: dpio: add APIs for DPIO objects

Roy Pledge (6):
bus: fsl-mc: dpio: add frame descriptor and scatter/gather APIs
bus: fsl-mc: dpio: add global dpaa2 definitions
bus: fsl-mc: dpio: add QBMan portal APIs for DPAA2
bus: fsl-mc: dpio: add the DPAA2 DPIO service interface
bus: fsl-mc: dpio: add the DPAA2 DPIO object driver
bus: fsl-mc: dpio: add maintainer for DPIO

Stuart Yoder (1):
bus: fsl-mc: dpio: add DPIO driver overview document

drivers/staging/fsl-mc/bus/Kconfig | 10 +
drivers/staging/fsl-mc/bus/Makefile | 3 +
drivers/staging/fsl-mc/bus/dpio/Makefile | 9 +
drivers/staging/fsl-mc/bus/dpio/dpio-cmd.h | 75 ++
drivers/staging/fsl-mc/bus/dpio/dpio-driver.c | 296 +++++++
drivers/staging/fsl-mc/bus/dpio/dpio-driver.txt | 135 +++
drivers/staging/fsl-mc/bus/dpio/dpio-service.c | 618 ++++++++++++++
drivers/staging/fsl-mc/bus/dpio/dpio.c | 224 +++++
drivers/staging/fsl-mc/bus/dpio/dpio.h | 109 +++
drivers/staging/fsl-mc/bus/dpio/qbman-portal.c | 1033 +++++++++++++++++++++++
drivers/staging/fsl-mc/bus/dpio/qbman-portal.h | 469 ++++++++++
drivers/staging/fsl-mc/include/dpaa2-fd.h | 448 ++++++++++
drivers/staging/fsl-mc/include/dpaa2-global.h | 202 +++++
drivers/staging/fsl-mc/include/dpaa2-io.h | 139 +++
15 files changed, 3776 insertions(+)
create mode 100644 drivers/staging/fsl-mc/bus/dpio/Makefile
create mode 100644 drivers/staging/fsl-mc/bus/dpio/dpio-cmd.h
create mode 100644 drivers/staging/fsl-mc/bus/dpio/dpio-driver.c
create mode 100644 drivers/staging/fsl-mc/bus/dpio/dpio-driver.txt
create mode 100644 drivers/staging/fsl-mc/bus/dpio/dpio-service.c
create mode 100644 drivers/staging/fsl-mc/bus/dpio/dpio.c
create mode 100644 drivers/staging/fsl-mc/bus/dpio/dpio.h
create mode 100644 drivers/staging/fsl-mc/bus/dpio/qbman-portal.c
create mode 100644 drivers/staging/fsl-mc/bus/dpio/qbman-portal.h
create mode 100644 drivers/staging/fsl-mc/include/dpaa2-fd.h
create mode 100644 drivers/staging/fsl-mc/include/dpaa2-global.h
create mode 100644 drivers/staging/fsl-mc/include/dpaa2-io.h