This patch introduces the initial scaffolding for the Qualcomm DSP accelerator (QDA) driver under drivers/accel/. The new Kconfig option DRM_ACCEL_QDA integrates the driver with the DRM/accel subsystem, and the accel Makefile is updated to build the driver as a loadable module. A minimal qda_drv.c file is added to provide basic module_init/module_exit hooks so that the driver can be built and loaded.
Subsequent patches will add: - RPMSG-based communication with Qualcomm Hexagon DSPs - FastRPC integration for userspace offload - DMA-BUF support and memory management - GEM, PRIME and IOCTL interfaces for compute job submission This patch only wires up the basic driver framework and does not yet provide functional DSP offload capabilities. Signed-off-by: Ekansh Gupta <[email protected]> --- drivers/accel/Kconfig | 1 + drivers/accel/Makefile | 1 + drivers/accel/qda/Kconfig | 29 +++++++++++++++++++++++++++++ drivers/accel/qda/Makefile | 8 ++++++++ drivers/accel/qda/qda_drv.c | 22 ++++++++++++++++++++++ 5 files changed, 61 insertions(+) diff --git a/drivers/accel/Kconfig b/drivers/accel/Kconfig index bdf48ccafcf2..74ac0f71bc9d 100644 --- a/drivers/accel/Kconfig +++ b/drivers/accel/Kconfig @@ -29,6 +29,7 @@ source "drivers/accel/ethosu/Kconfig" source "drivers/accel/habanalabs/Kconfig" source "drivers/accel/ivpu/Kconfig" source "drivers/accel/qaic/Kconfig" +source "drivers/accel/qda/Kconfig" source "drivers/accel/rocket/Kconfig" endif diff --git a/drivers/accel/Makefile b/drivers/accel/Makefile index 1d3a7251b950..58c08dd5f389 100644 --- a/drivers/accel/Makefile +++ b/drivers/accel/Makefile @@ -5,4 +5,5 @@ obj-$(CONFIG_DRM_ACCEL_ARM_ETHOSU) += ethosu/ obj-$(CONFIG_DRM_ACCEL_HABANALABS) += habanalabs/ obj-$(CONFIG_DRM_ACCEL_IVPU) += ivpu/ obj-$(CONFIG_DRM_ACCEL_QAIC) += qaic/ +obj-$(CONFIG_DRM_ACCEL_QDA) += qda/ obj-$(CONFIG_DRM_ACCEL_ROCKET) += rocket/ \ No newline at end of file diff --git a/drivers/accel/qda/Kconfig b/drivers/accel/qda/Kconfig new file mode 100644 index 000000000000..3c78ff6189e0 --- /dev/null +++ b/drivers/accel/qda/Kconfig @@ -0,0 +1,29 @@ +# SPDX-License-Identifier: GPL-2.0-only +# +# Qualcomm DSP accelerator driver +# + +config DRM_ACCEL_QDA + tristate "Qualcomm DSP accelerator" + depends on DRM_ACCEL + depends on ARCH_QCOM || COMPILE_TEST + help + Enables the DRM-based accelerator driver for Qualcomm's Hexagon DSPs. + This driver provides a standardized interface for offloading computational + tasks to the DSP, including audio processing, sensor offload, computer + vision, and AI inference workloads. + + The driver supports all DSP domains (ADSP, CDSP, SDSP, GDSP) and + implements the FastRPC protocol for communication between the application + processor and DSP. It integrates with the Linux kernel's Compute + Accelerators subsystem (drivers/accel/) and provides a modern alternative + to the legacy FastRPC driver found in drivers/misc/. + + Key features include DMA-BUF interoperability for seamless buffer sharing + with other multimedia subsystems, IOMMU-based memory isolation, and + standard DRM IOCTLs for device management and job submission. + + If unsure, say N. + + To compile this driver as a module, choose M here: the + module will be called qda. diff --git a/drivers/accel/qda/Makefile b/drivers/accel/qda/Makefile new file mode 100644 index 000000000000..573711af1d28 --- /dev/null +++ b/drivers/accel/qda/Makefile @@ -0,0 +1,8 @@ +# SPDX-License-Identifier: GPL-2.0-only +# +# Makefile for Qualcomm DSP accelerator driver +# + +obj-$(CONFIG_DRM_ACCEL_QDA) := qda.o + +qda-y := qda_drv.o diff --git a/drivers/accel/qda/qda_drv.c b/drivers/accel/qda/qda_drv.c new file mode 100644 index 000000000000..18b0d3fb1598 --- /dev/null +++ b/drivers/accel/qda/qda_drv.c @@ -0,0 +1,22 @@ +// SPDX-License-Identifier: GPL-2.0-only +// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. +#include <linux/module.h> +#include <linux/kernel.h> + +static int __init qda_core_init(void) +{ + pr_info("QDA: driver initialization complete\n"); + return 0; +} + +static void __exit qda_core_exit(void) +{ + pr_info("QDA: driver exit complete\n"); +} + +module_init(qda_core_init); +module_exit(qda_core_exit); + +MODULE_AUTHOR("Qualcomm AI Infra Team"); +MODULE_DESCRIPTION("Qualcomm DSP Accelerator Driver"); +MODULE_LICENSE("GPL"); -- 2.34.1
