Commit aa5f04d2 authored by Stanislaw Gruszka's avatar Stanislaw Gruszka
Browse files

accel/ivpu: Extend get_param ioctl to identify capabilities



Add DRM_IVPU_PARAM_CAPABILITIES parameters to get_param ioctl to query
driver capabilities. For now use it for identify metric streamer and
new dma memory range features. Currently upstream version of intel_vpu
does not have those, they will be added it the future.

Reviewed-by: default avatarJacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>
Signed-off-by: default avatarStanislaw Gruszka <stanislaw.gruszka@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230731161258.2987564-5-stanislaw.gruszka@linux.intel.com
parent 9ab43e95
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
@@ -115,6 +115,22 @@ void ivpu_file_priv_put(struct ivpu_file_priv **link)
	kref_put(&file_priv->ref, file_priv_release);
}

static int ivpu_get_capabilities(struct ivpu_device *vdev, struct drm_ivpu_param *args)
{
	switch (args->index) {
	case DRM_IVPU_CAP_METRIC_STREAMER:
		args->value = 0;
		break;
	case DRM_IVPU_CAP_DMA_MEMORY_RANGE:
		args->value = 0;
		break;
	default:
		return -EINVAL;
	}

	return 0;
}

static int ivpu_get_param_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
{
	struct ivpu_file_priv *file_priv = file->driver_priv;
@@ -174,6 +190,9 @@ static int ivpu_get_param_ioctl(struct drm_device *dev, void *data, struct drm_f
	case DRM_IVPU_PARAM_SKU:
		args->value = vdev->hw->sku;
		break;
	case DRM_IVPU_PARAM_CAPABILITIES:
		ret = ivpu_get_capabilities(vdev, args);
		break;
	default:
		ret = -EINVAL;
		break;
+4 −0
Original line number Diff line number Diff line
@@ -60,6 +60,7 @@ extern "C" {
#define DRM_IVPU_PARAM_UNIQUE_INFERENCE_ID  10
#define DRM_IVPU_PARAM_TILE_CONFIG	    11
#define DRM_IVPU_PARAM_SKU		    12
#define DRM_IVPU_PARAM_CAPABILITIES	    13

#define DRM_IVPU_PLATFORM_TYPE_SILICON	    0

@@ -68,6 +69,9 @@ extern "C" {
#define DRM_IVPU_CONTEXT_PRIORITY_FOCUS	    2
#define DRM_IVPU_CONTEXT_PRIORITY_REALTIME  3

#define DRM_IVPU_CAP_METRIC_STREAMER	    1
#define DRM_IVPU_CAP_DMA_MEMORY_RANGE       2

/**
 * struct drm_ivpu_param - Get/Set VPU parameters
 */