From: Maciej Kwapulinski <maciej.kwapulinski@linux.intel.com> To: Daniel Vetter <daniel@ffwll.ch>, Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>, 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>, Linus Walleij <linus.walleij@linaro.org>, Olof Johansson <olof@lixom.net> Cc: dri-devel@lists.freedesktop.org, linux-doc@vger.kernel.org, Maciej Kwapulinski <maciej.kwapulinski@linux.intel.com> Subject: [PATCH v5 00/10] Driver of Intel(R) Gaussian & Neural Accelerator Date: Thu, 20 Oct 2022 19:53:24 +0200 [thread overview] Message-ID: <20221020175334.1820519-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. - 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 -- 2.25.1
WARNING: multiple messages have this Message-ID (diff)
From: Maciej Kwapulinski <maciej.kwapulinski@linux.intel.com> To: Daniel Vetter <daniel@ffwll.ch>, Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>, 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>, Linus Walleij <linus.walleij@linaro.org>, Olof Johansson <olof@lixom.net> Cc: Maciej Kwapulinski <maciej.kwapulinski@linux.intel.com>, dri-devel@lists.freedesktop.org, linux-doc@vger.kernel.org Subject: [PATCH v5 00/10] Driver of Intel(R) Gaussian & Neural Accelerator Date: Thu, 20 Oct 2022 19:53:24 +0200 [thread overview] Message-ID: <20221020175334.1820519-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. - 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 -- 2.25.1
next reply other threads:[~2022-10-20 17:57 UTC|newest] Thread overview: 73+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-10-20 17:53 Maciej Kwapulinski [this message] 2022-10-20 17:53 ` [PATCH v5 00/10] Driver of Intel(R) Gaussian & Neural Accelerator Maciej Kwapulinski 2022-10-20 17:53 ` [PATCH v5 01/10] gna: add PCI driver module Maciej Kwapulinski 2022-10-20 17:53 ` Maciej Kwapulinski 2022-10-20 18:49 ` Andy Shevchenko 2022-10-20 18:49 ` Andy Shevchenko 2022-10-21 4:02 ` Bagas Sanjaya 2022-10-21 4:02 ` Bagas Sanjaya 2022-10-21 4:20 ` Greg Kroah-Hartman 2022-10-21 4:20 ` Greg Kroah-Hartman 2022-10-21 8:10 ` Bagas Sanjaya 2022-10-21 8:10 ` Bagas Sanjaya 2022-10-21 8:27 ` Greg Kroah-Hartman 2022-10-21 8:27 ` Greg Kroah-Hartman 2022-10-24 13:40 ` Maciej Kwapulinski 2022-10-24 13:40 ` Maciej Kwapulinski 2022-10-20 17:53 ` [PATCH v5 02/10] gna: add GNA DRM device Maciej Kwapulinski 2022-10-20 17:53 ` Maciej Kwapulinski 2022-10-20 18:52 ` Andy Shevchenko 2022-10-20 18:52 ` Andy Shevchenko 2022-10-21 4:25 ` Greg Kroah-Hartman 2022-10-21 4:25 ` Greg Kroah-Hartman 2022-10-20 17:53 ` [PATCH v5 03/10] gna: read hardware info Maciej Kwapulinski 2022-10-20 17:53 ` Maciej Kwapulinski 2022-10-21 4:21 ` Greg Kroah-Hartman 2022-10-21 4:21 ` Greg Kroah-Hartman 2022-10-21 9:19 ` Linus Walleij 2022-10-21 9:19 ` Linus Walleij 2022-10-20 17:53 ` [PATCH v5 04/10] gna: initialize MMU Maciej Kwapulinski 2022-10-20 17:53 ` Maciej Kwapulinski 2022-10-20 19:00 ` Andy Shevchenko 2022-10-20 19:00 ` Andy Shevchenko 2022-10-20 19:01 ` Andy Shevchenko 2022-10-20 19:01 ` Andy Shevchenko 2022-10-20 17:53 ` [PATCH v5 05/10] gna: add GNA_GET_PARAMETER ioctl Maciej Kwapulinski 2022-10-20 17:53 ` Maciej Kwapulinski 2022-10-21 4:23 ` Greg Kroah-Hartman 2022-10-21 4:23 ` Greg Kroah-Hartman 2022-10-20 17:53 ` [PATCH v5 06/10] gna: add GNA_GEM_NEW and GNA_GEM_FREE ioctls Maciej Kwapulinski 2022-10-20 17:53 ` Maciej Kwapulinski 2022-10-20 19:06 ` Andy Shevchenko 2022-10-20 19:06 ` Andy Shevchenko 2022-10-20 17:53 ` [PATCH v5 07/10] gna: add GNA_COMPUTE ioctl Maciej Kwapulinski 2022-10-20 17:53 ` Maciej Kwapulinski 2022-10-21 9:30 ` Linus Walleij 2022-10-21 9:30 ` Linus Walleij 2022-10-21 11:52 ` Maciej Kwapulinski 2022-10-21 11:52 ` Maciej Kwapulinski 2022-10-21 11:57 ` Maciej Kwapulinski 2022-10-21 11:57 ` Maciej Kwapulinski 2022-10-20 17:53 ` [PATCH v5 08/10] gna: add GNA_WAIT ioctl Maciej Kwapulinski 2022-10-20 17:53 ` Maciej Kwapulinski 2022-10-21 4:25 ` Greg Kroah-Hartman 2022-10-21 4:25 ` Greg Kroah-Hartman 2022-10-20 17:53 ` [PATCH v5 09/10] gna: add power management Maciej Kwapulinski 2022-10-20 17:53 ` Maciej Kwapulinski 2022-10-21 9:37 ` Linus Walleij 2022-10-21 9:37 ` Linus Walleij 2022-10-20 17:53 ` [PATCH v5 10/10] gna: add open and close operations on GNA device Maciej Kwapulinski 2022-10-20 17:53 ` Maciej Kwapulinski 2022-10-21 4:27 ` Greg Kroah-Hartman 2022-10-21 4:27 ` Greg Kroah-Hartman 2022-10-21 9:23 ` Daniel Vetter 2022-10-21 9:23 ` Daniel Vetter 2022-10-20 19:08 ` [PATCH v5 00/10] Driver of Intel(R) Gaussian & Neural Accelerator Andy Shevchenko 2022-10-20 19:08 ` Andy Shevchenko 2022-10-21 4:17 ` Greg Kroah-Hartman 2022-10-21 4:17 ` Greg Kroah-Hartman 2022-10-24 13:21 ` Maciej Kwapulinski 2022-10-24 13:21 ` Maciej Kwapulinski 2022-10-24 11:29 ` Thomas Zimmermann 2023-01-24 8:25 ` Oded Gabbay 2023-01-24 8:25 ` Oded Gabbay
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=20221020175334.1820519-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=daniel@ffwll.ch \ --cc=derek.kiernan@xilinx.com \ --cc=dragan.cvetic@xilinx.com \ --cc=dri-devel@lists.freedesktop.org \ --cc=gregkh@linuxfoundation.org \ --cc=linus.walleij@linaro.org \ --cc=linux-doc@vger.kernel.org \ --cc=maarten.lankhorst@linux.intel.com \ --cc=mripard@kernel.org \ --cc=olof@lixom.net \ --cc=tzimmermann@suse.de \ /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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.