[PATCH v4 11/14] drm/panthor: Add the driver frontend block

Heiko Stübner heiko at sntech.de
Tue Jan 23 16:29:12 UTC 2024


Am Montag, 22. Januar 2024, 17:30:42 CET schrieb Boris Brezillon:
> This is the last piece missing to expose the driver to the outside
> world.
> 
> This is basically a wrapper between the ioctls and the other logical
> blocks.
> 
> v4:
> - Add an ioctl to let the UMD query the VM state
> - Fix kernel doc
> - Let panthor_device_init() call panthor_device_init()
> - Fix cleanup ordering in the panthor_init() error path
> - Add Steve's and Liviu's R-b
> 
> v3:
> - Add acks for the MIT/GPL2 relicensing
> - Fix 32-bit support
> - Account for panthor_vm and panthor_sched changes
> - Simplify the resv preparation/update logic
> - Use a linked list rather than xarray for list of signals.
> - Simplify panthor_get_uobj_array by returning the newly allocated
>   array.
> - Drop the "DOC" for job submission helpers and move the relevant
>   comments to panthor_ioctl_group_submit().
> - Add helpers sync_op_is_signal()/sync_op_is_wait().
> - Simplify return type of panthor_submit_ctx_add_sync_signal() and
>   panthor_submit_ctx_get_sync_signal().
> - Drop WARN_ON from panthor_submit_ctx_add_job().
> - Fix typos in comments.
> 
> Co-developed-by: Steven Price <steven.price at arm.com>
> Signed-off-by: Steven Price <steven.price at arm.com>
> Signed-off-by: Boris Brezillon <boris.brezillon at collabora.com>
> Acked-by: Steven Price <steven.price at arm.com> # MIT+GPL2 relicensing,Arm
> Acked-by: Grant Likely <grant.likely at linaro.org> # MIT+GPL2 relicensing,Linaro
> Acked-by: Boris Brezillon <boris.brezillon at collabora.com> # MIT+GPL2 relicensing,Collabora
> Reviewed-by: Steven Price <steven.price at arm.com>
> Reviewed-by: Liviu Dudau <liviu.dudau at arm.com>
> ---
>  drivers/gpu/drm/panthor/panthor_drv.c | 1470 +++++++++++++++++++++++++
>  1 file changed, 1470 insertions(+)
>  create mode 100644 drivers/gpu/drm/panthor/panthor_drv.c
> 
> diff --git a/drivers/gpu/drm/panthor/panthor_drv.c b/drivers/gpu/drm/panthor/panthor_drv.c
> new file mode 100644
> index 000000000000..207aacaccd39
> --- /dev/null
> +++ b/drivers/gpu/drm/panthor/panthor_drv.c
> @@ -0,0 +1,1470 @@
> +// SPDX-License-Identifier: GPL-2.0 or MIT
> +/* Copyright 2018 Marty E. Plummer <hanetzer at startmail.com> */
> +/* Copyright 2019 Linaro, Ltd., Rob Herring <robh at kernel.org> */
> +/* Copyright 2019 Collabora ltd. */
> +
> +#include <linux/list.h>
> +#include <linux/module.h>
> +#include <linux/of_platform.h>
> +#include <linux/pagemap.h>
> +#include <linux/pm_runtime.h>

@@ -7,6 +7,7 @@
 #include <linux/module.h>
 #include <linux/of_platform.h>
 #include <linux/pagemap.h>
+#include <linux/platform_device.h>
 #include <linux/pm_runtime.h>
 
 #include <drm/drm_drv.h>

with v6.8-rc1 this needs a linux/platform_device.h include to keep
finding struct platform_device and friends

[...]


> +static int panthor_submit_ctx_init(struct panthor_submit_ctx *ctx,
> +				   struct drm_file *file, u32 job_count)
> +{
> +	ctx->jobs = kvmalloc_array(job_count, sizeof(*ctx->jobs),
> +				   GFP_KERNEL | __GFP_ZERO);
> +	if (!ctx->jobs)
> +		return -ENOMEM;
> +
> +	ctx->file = file;
> +	ctx->job_count = job_count;
> +	INIT_LIST_HEAD(&ctx->signals);
> +	drm_exec_init(&ctx->exec, DRM_EXEC_INTERRUPTIBLE_WAIT | DRM_EXEC_IGNORE_DUPLICATES);

../drivers/gpu/drm/panthor/panthor_drv.c: In function ‘panthor_submit_ctx_init’:
../drivers/gpu/drm/panthor/panthor_drv.c:722:9: error: too few arguments to function ‘drm_exec_init’
  722 |         drm_exec_init(&ctx->exec, DRM_EXEC_INTERRUPTIBLE_WAIT | DRM_EXEC_IGNORE_DUPLICATES);
      |         ^~~~~~~~~~~~~

In v6.8-rc1 (or drm-misc-next I guess) the calling convention of
drm_exec_init changed to include a number of initial objects, see
commit 05d249352f1a ("drm/exec: Pass in initial # of objects")


Heiko




More information about the dri-devel mailing list