On Tue, Aug 18, 2026 at 10:10:16AM +0530, Ekansh Gupta wrote: > On 17-08-2026 12:28, Dmitry Baryshkov wrote: > > On Mon, Aug 17, 2026 at 10:17:43AM +0530, Ekansh Gupta wrote: > >> Introduce DRM_IOCTL_QDA_QUERY, a query IOCTL that lets user-space > >> retrieve information about the DSP a given /dev/accel/accel* node > >> represents. > >> > >> The IOCTL takes a query_type selector as input, so it can be extended > >> to return additional parameters (capabilities, attributes) in the > >> future without adding new IOCTLs: drm_ioctl() zero-extends the argument > >> structure, so new fields can be appended to struct drm_qda_query as > >> long as they go at the end. The first supported query, > >> QDA_QUERY_DSP_NAME, returns the DSP domain name (e.g. "cdsp", "adsp"). > >> > >> The UAPI header include/uapi/drm/qda_accel.h defines the command number, > >> the DRM_IOWR IOCTL definition, the query_type values, and struct > >> drm_qda_query. It follows the standard DRM UAPI conventions: fixed-width > >> types, a C++ extern "C" guard, and GPL-2.0-only WITH Linux-syscall-note > >> licensing. > >> > >> qda_ioctl_query() validates the reserved pad field, dispatches on > >> query_type, and copies the DSP name from qda_dev.dsp_name into the > >> user-supplied buffer with strscpy(). Unknown query types are rejected > >> with -EINVAL. > >> > >> qda_drv.c registers the qda_ioctls[] table with the drm_driver so the > >> DRM core dispatches DRM_IOCTL_QDA_QUERY to qda_ioctl_query(). > >
> >> + */ > >> +#define DRM_IOCTL_QDA_QUERY DRM_IOWR(DRM_COMMAND_BASE + > >> DRM_QDA_QUERY, \ > >> + struct drm_qda_query) > >> + > >> +/* Query type definitions for drm_qda_query */ > >> +#define QDA_QUERY_DSP_NAME 1 > > > > Why is it necessary for the userspace? > Currently the requirement is that on systems with multiple DSP domains, > each is exposed as a separate /dev/accel/accelN node, the library must > query the domain name to select the correct DSP to offload to and use > other dependencies like shell etc. Commit message. -- With best wishes Dmitry
