From: Maciej Kwapulinski <maciej.kwapulinski@linux.intel.com>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Arnd Bergmann <arnd@arndb.de>, Jonathan Corbet <corbet@lwn.net>,
Derek Kiernan <derek.kiernan@xilinx.com>,
Dragan Cvetic <dragan.cvetic@xilinx.com>,
Andy Shevchenko <andy.shevchenko@gmail.com>
Cc: linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org,
Maciej Kwapulinski <maciej.kwapulinski@linux.intel.com>
Subject: [PATCH v3 00/14] Driver of Intel(R) Gaussian & Neural Accelerator
Date: Thu, 13 May 2021 13:00:26 +0200 [thread overview]
Message-ID: <20210513110040.2268-1-maciej.kwapulinski@linux.intel.com> (raw)
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
---
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.
- tests performed on kernel v5.12
- number of other/minor fixes
---
Maciej Kwapulinski (4):
intel_gna: add driver module
intel_gna: add interrupt handler
intel_gna: add a 'misc' device
intel_gna: add power management
Tomasz Jankowski (10):
intel_gna: add component of hardware operation
intel_gna: read hardware info in the driver
intel_gna: add memory handling
intel_gna: initialize mmu
intel_gna: add hardware ids
intel_gna: add request component
intel_gna: implement scoring
intel_gna: add a work queue to process scoring requests
intel_gna: add ioctl handler
intel_gna: add file operations to a 'misc' device
Documentation/misc-devices/index.rst | 1 +
Documentation/misc-devices/intel/gna.rst | 48 ++
.../userspace-api/ioctl/ioctl-number.rst | 1 +
MAINTAINERS | 7 +
drivers/misc/Kconfig | 1 +
drivers/misc/Makefile | 1 +
drivers/misc/intel/gna/Kbuild | 5 +
drivers/misc/intel/gna/Kconfig | 13 +
drivers/misc/intel/gna/device.c | 350 +++++++++++++
drivers/misc/intel/gna/device.h | 106 ++++
drivers/misc/intel/gna/hw.c | 118 +++++
drivers/misc/intel/gna/hw.h | 106 ++++
drivers/misc/intel/gna/ioctl.c | 257 ++++++++++
drivers/misc/intel/gna/ioctl.h | 11 +
drivers/misc/intel/gna/mem.c | 421 +++++++++++++++
drivers/misc/intel/gna/mem.h | 115 +++++
drivers/misc/intel/gna/pci.c | 149 ++++++
drivers/misc/intel/gna/pci.h | 12 +
drivers/misc/intel/gna/request.c | 480 ++++++++++++++++++
drivers/misc/intel/gna/request.h | 67 +++
drivers/misc/intel/gna/score.c | 291 +++++++++++
drivers/misc/intel/gna/score.h | 17 +
include/uapi/misc/intel/gna.h | 153 ++++++
23 files changed, 2730 insertions(+)
create mode 100644 Documentation/misc-devices/intel/gna.rst
create mode 100644 drivers/misc/intel/gna/Kbuild
create mode 100644 drivers/misc/intel/gna/Kconfig
create mode 100644 drivers/misc/intel/gna/device.c
create mode 100644 drivers/misc/intel/gna/device.h
create mode 100644 drivers/misc/intel/gna/hw.c
create mode 100644 drivers/misc/intel/gna/hw.h
create mode 100644 drivers/misc/intel/gna/ioctl.c
create mode 100644 drivers/misc/intel/gna/ioctl.h
create mode 100644 drivers/misc/intel/gna/mem.c
create mode 100644 drivers/misc/intel/gna/mem.h
create mode 100644 drivers/misc/intel/gna/pci.c
create mode 100644 drivers/misc/intel/gna/pci.h
create mode 100644 drivers/misc/intel/gna/request.c
create mode 100644 drivers/misc/intel/gna/request.h
create mode 100644 drivers/misc/intel/gna/score.c
create mode 100644 drivers/misc/intel/gna/score.h
create mode 100644 include/uapi/misc/intel/gna.h
--
2.28.0
next reply other threads:[~2021-05-13 11:01 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-05-13 11:00 Maciej Kwapulinski [this message]
2021-05-13 11:00 ` [PATCH v3 01/14] intel_gna: add driver module Maciej Kwapulinski
2021-05-13 11:13 ` Greg Kroah-Hartman
2021-05-13 11:00 ` [PATCH v3 02/14] intel_gna: add component of hardware operation Maciej Kwapulinski
2021-05-13 11:15 ` Greg Kroah-Hartman
2021-05-13 11:00 ` [PATCH v3 03/14] intel_gna: read hardware info in the driver Maciej Kwapulinski
2021-05-13 11:00 ` [PATCH v3 04/14] intel_gna: add memory handling Maciej Kwapulinski
2021-05-13 11:00 ` [PATCH v3 05/14] intel_gna: initialize mmu Maciej Kwapulinski
2021-05-13 11:00 ` [PATCH v3 06/14] intel_gna: add hardware ids Maciej Kwapulinski
2021-05-13 11:00 ` [PATCH v3 07/14] intel_gna: add request component Maciej Kwapulinski
2021-05-13 11:00 ` [PATCH v3 08/14] intel_gna: implement scoring Maciej Kwapulinski
2021-05-13 11:00 ` [PATCH v3 09/14] intel_gna: add a work queue to process scoring requests Maciej Kwapulinski
2021-05-13 11:00 ` [PATCH v3 10/14] intel_gna: add interrupt handler Maciej Kwapulinski
2021-05-13 11:00 ` [PATCH v3 11/14] intel_gna: add ioctl handler Maciej Kwapulinski
2021-05-13 11:24 ` Greg Kroah-Hartman
2021-05-14 8:20 ` Maciej Kwapulinski
2021-05-14 8:32 ` Greg Kroah-Hartman
2021-05-24 10:43 ` Maciej Kwapulinski
2021-05-24 10:49 ` Greg Kroah-Hartman
2021-05-25 7:50 ` Maciej Kwapulinski
2021-05-13 14:16 ` Matthew Wilcox
[not found] ` <20210514101253.1037-1-hdanton@sina.com>
2021-05-14 15:06 ` Maciej Kwapulinski
2021-05-13 11:00 ` [PATCH v3 12/14] intel_gna: add a 'misc' device Maciej Kwapulinski
2021-05-13 11:18 ` Greg Kroah-Hartman
2021-05-13 17:06 ` Maciej Kwapulinski
2021-05-13 17:15 ` Greg Kroah-Hartman
2021-05-13 11:00 ` [PATCH v3 13/14] intel_gna: add file operations to " Maciej Kwapulinski
2021-05-13 11:19 ` Greg Kroah-Hartman
2021-05-13 11:00 ` [PATCH v3 14/14] intel_gna: add power management Maciej Kwapulinski
2021-05-14 8:34 ` [PATCH v3 00/14] Driver of Intel(R) Gaussian & Neural Accelerator Greg Kroah-Hartman
2021-05-14 9:00 ` Arnd Bergmann
2021-05-17 7:40 ` Daniel Vetter
2021-05-17 8:00 ` Greg Kroah-Hartman
2021-05-17 8:49 ` Daniel Vetter
2021-05-17 8:55 ` Greg Kroah-Hartman
2021-05-17 9:12 ` Daniel Vetter
2021-05-17 18:04 ` Dave Airlie
2021-05-17 19:12 ` Thomas Zimmermann
2021-05-17 19:23 ` Alex Deucher
2021-05-17 19:39 ` Daniel Vetter
2021-05-17 19:49 ` Thomas Zimmermann
2021-05-17 20:00 ` Daniel Vetter
2021-05-17 20:15 ` Thomas Zimmermann
2021-05-17 19:32 ` Daniel Stone
2021-05-17 20:10 ` Thomas Zimmermann
2021-05-17 21:24 ` Daniel Vetter
2021-05-17 21:36 ` Dave Airlie
2021-06-16 7:38 ` Maciej Kwapulinski
2022-06-20 9:49 ` maciej.kwapulinski
2022-06-20 9:56 ` Greg KH
2022-06-20 10:08 ` Maciej Kwapulinski
2022-06-20 10:26 ` Greg KH
2022-06-25 17:25 ` Daniel Vetter
2021-05-20 11:58 ` Linus Walleij
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210513110040.2268-1-maciej.kwapulinski@linux.intel.com \
--to=maciej.kwapulinski@linux.intel.com \
--cc=andy.shevchenko@gmail.com \
--cc=arnd@arndb.de \
--cc=corbet@lwn.net \
--cc=derek.kiernan@xilinx.com \
--cc=dragan.cvetic@xilinx.com \
--cc=gregkh@linuxfoundation.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).