On Mon, Oct 24, 2022 at 2:29 PM Thomas Zimmermann <tzimmermann@xxxxxxx> wrote: > > Hi > > Am 20.10.22 um 19:53 schrieb Maciej Kwapulinski: > > Dear kernel maintainers, > > > > This submission is a kernel driver to support Intel(R) Gaussian & Neural > > Accelerator (Intel(R) GNA). Intel(R) GNA is a PCI-based neural co-processor > > available on multiple Intel platforms. AI developers and users can offload > > continuous inference workloads to an Intel(R) GNA device in order to free > > processor resources and save power. Noise reduction and speech recognition > > are the examples of the workloads Intel(R) GNA deals with while its usage > > is not limited to the two. > > > > For a list of processors equipped with Intel(R) GNA device, please refer to > > this link: > > https://docs.openvinotoolkit.org/latest/openvino_docs_IE_DG_supported_plugins_GNA.html > > > > We think contributing this driver to the upstream kernel project is the > > best way for developers and users to get the latest Intel(R) GNA support in > > a Linux kernel, through the mainline to any Linux distributions installed > > on their systems. Upstreaming also enables contribution from developers > > around the world to the driver once it is merged. > > > > The driver works with Intel(R) libraries in user space. The Intel(R) driver > > exposes a few IOCTL interfaces for use by libraries in user space. The > > libraries are open sourced and are available at: > > https://github.com/intel/gna > > This driver appears to be a candidate for the accel subsystem that has > been proposed here. [1] At a minimum, you'd now get standardized file > names. Longterm, I'd expect dedicated helpers for accel devices. > > Best regards > Thomas > > > [1] > https://lore.kernel.org/dri-devel/Y1VMX9J44FJZp0dl@xxxxxxxxx/T/#m977efaeb39fc5be581ae05e1dccbd896546db943 > > > > > --- > > > > Changelogs: > > > > v1->v2: > > - driver's new layout: > > - driver name: gna -> intel_gna > > - module name: gna -> intel_gna > > - device file name: /dev/gnaN -> /dev/intel_gnaN > > - driver's source directory: drivers/misc/gna/ -> drivers/misc/intel/gna/ > > - UAPI: include/uapi/misc/gna.h -> include/uapi/misc/intel/gna.h > > - DOC: Documentation/misc-devices/gna.rst -> > > Documentation/misc-devices/intel/gna.rst > > - 'MISC' device framework used > > - fixes throughout GNA device's PCI management > > - header files' includes and forward declarations cleanup > > - ISR made static > > - unused comments cleanup > > - "_priv_" segment removed from function names > > - tested: v5.11-rc3 -> v5.11 > > - number of other/minor fixes > > > > v2->v3: > > - PCI glue driver part split. > > - GNA probe fail path made fully implicit. > > - 'recovery_timeout' module parameter present under 'CONFIG_DEBUG_INTEL_GNA' flag only. > > - build for X86_32 enabled. > > - module initialization through 'module_pci_driver()'. > > - gna_priv->file_list cleanup. > > - 'gna_' prefix removed from source files' names. > > - power management handling added. > > - number of other/minor fixes > > - tests performed on kernel v5.12 > > > > v3->v4: > > - GNA driver adapted to DRM framework (+userspace GNA library adapted to use the driver) > > - drm_managed (drmm) feature is used for objects lifetime management > > - GNA memory objects use ~drm_gem_shmem_object~ objects as a base > > - patches reorganized to meet symbols' usage with their declarations/definitions > > - 'recovery_timeout' module parameter removed > > - number of other/minor fixes from v3 review > > - tests performed on kernel v6.0 > > > > v4->v5: > > - indentation fixed in drivers/gpu/drm/gna/Kconfig > > > > Maciej Kwapulinski (4): > > gna: add PCI driver module > > gna: add GNA DRM device > > gna: add GNA_GEM_NEW and GNA_GEM_FREE ioctls > > gna: add power management > > > > Tomasz Jankowski (6): > > gna: read hardware info > > gna: initialize MMU > > gna: add GNA_GET_PARAMETER ioctl > > gna: add GNA_COMPUTE ioctl > > gna: add GNA_WAIT ioctl > > gna: add open and close operations on GNA device > > > > Documentation/gpu/drivers.rst | 1 + > > Documentation/gpu/gna.rst | 64 +++++ > > MAINTAINERS | 7 + > > drivers/gpu/drm/Kconfig | 2 + > > drivers/gpu/drm/Makefile | 1 + > > drivers/gpu/drm/gna/Kbuild | 5 + > > drivers/gpu/drm/gna/Kconfig | 15 + > > drivers/gpu/drm/gna/gna_device.c | 317 +++++++++++++++++++++ > > drivers/gpu/drm/gna/gna_device.h | 114 ++++++++ > > drivers/gpu/drm/gna/gna_gem.h | 22 ++ > > drivers/gpu/drm/gna/gna_hw.c | 110 ++++++++ > > drivers/gpu/drm/gna/gna_hw.h | 107 ++++++++ > > drivers/gpu/drm/gna/gna_ioctl.c | 208 ++++++++++++++ > > drivers/gpu/drm/gna/gna_mem.c | 249 +++++++++++++++++ > > drivers/gpu/drm/gna/gna_mem.h | 58 ++++ > > drivers/gpu/drm/gna/gna_pci.c | 148 ++++++++++ > > drivers/gpu/drm/gna/gna_pci.h | 12 + > > drivers/gpu/drm/gna/gna_request.c | 441 ++++++++++++++++++++++++++++++ > > drivers/gpu/drm/gna/gna_request.h | 64 +++++ > > drivers/gpu/drm/gna/gna_score.c | 222 +++++++++++++++ > > drivers/gpu/drm/gna/gna_score.h | 11 + > > include/uapi/drm/gna_drm.h | 169 ++++++++++++ > > 22 files changed, 2347 insertions(+) > > create mode 100644 Documentation/gpu/gna.rst > > create mode 100644 drivers/gpu/drm/gna/Kbuild > > create mode 100644 drivers/gpu/drm/gna/Kconfig > > create mode 100644 drivers/gpu/drm/gna/gna_device.c > > create mode 100644 drivers/gpu/drm/gna/gna_device.h > > create mode 100644 drivers/gpu/drm/gna/gna_gem.h > > create mode 100644 drivers/gpu/drm/gna/gna_hw.c > > create mode 100644 drivers/gpu/drm/gna/gna_hw.h > > create mode 100644 drivers/gpu/drm/gna/gna_ioctl.c > > create mode 100644 drivers/gpu/drm/gna/gna_mem.c > > create mode 100644 drivers/gpu/drm/gna/gna_mem.h > > create mode 100644 drivers/gpu/drm/gna/gna_pci.c > > create mode 100644 drivers/gpu/drm/gna/gna_pci.h > > create mode 100644 drivers/gpu/drm/gna/gna_request.c > > create mode 100644 drivers/gpu/drm/gna/gna_request.h > > create mode 100644 drivers/gpu/drm/gna/gna_score.c > > create mode 100644 drivers/gpu/drm/gna/gna_score.h > > create mode 100644 include/uapi/drm/gna_drm.h > > > > -- > Thomas Zimmermann > Graphics Driver Developer > SUSE Software Solutions Germany GmbH > Maxfeldstr. 5, 90409 Nürnberg, Germany > (HRB 36809, AG Nürnberg) > Geschäftsführer: Ivo Totev Hi Maciej, I just wanted to touch base with you about gna, asking whether you are going (or maybe started) to port the gna to the accel subsystem ? fyi, ivpu driver was just merged to the accel subsystem, so we already have our first driver tested & merged. Thanks, Oded