nvme: Introduce driver ops
authorMark Kettenis <kettenis@openbsd.org>
Sat, 22 Jan 2022 19:38:15 +0000 (20:38 +0100)
committerTom Rini <trini@konsulko.com>
Thu, 10 Feb 2022 21:44:23 +0000 (16:44 -0500)
commit19d9dad39c28a6e932ee2ec8361f42211613761d
tree36a193070d05633990c2d791914efb07b804c570
parent02e2588d3f8fed7bf25ac1677072dd607c4dd72e
nvme: Introduce driver ops

The NVMe storage controller integrated on Apple SoCs deviates
from the NVMe standard in two aspects.  It uses a "linear"
submission queue and it integrates an NVMMU that needs to be
programmed for each NVMe command.  Introduce driver ops such
that we can set up the linear submission queue and program the
NVMMU in the driver for this strange beast.

Signed-off-by: Mark Kettenis <kettenis@openbsd.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Tested on: Macbook Air M1
Tested-by: Simon Glass <sjg@chromium.org>
drivers/nvme/nvme.c
drivers/nvme/nvme.h