brintos

brintos / linux-shallow public Read only

0
0
Text · 1.2 KiB · c607ae8 Raw
54 lines · c
1// SPDX-License-Identifier: GPL-2.02/* Copyright(c) 2023 Intel Corporation. All rights rsvd. */3#include <linux/kernel.h>4#include "idxd.h"5 6int idxd_load_iaa_device_defaults(struct idxd_device *idxd)7{8	struct idxd_engine *engine;9	struct idxd_group *group;10	struct idxd_wq *wq;11 12	if (!test_bit(IDXD_FLAG_CONFIGURABLE, &idxd->flags))13		return 0;14 15	wq = idxd->wqs[0];16 17	if (wq->state != IDXD_WQ_DISABLED)18		return -EPERM;19 20	/* set mode to "dedicated" */21	set_bit(WQ_FLAG_DEDICATED, &wq->flags);22	wq->threshold = 0;23 24	/* only setting up 1 wq, so give it all the wq space */25	wq->size = idxd->max_wq_size;26 27	/* set priority to 10 */28	wq->priority = 10;29 30	/* set type to "kernel" */31	wq->type = IDXD_WQT_KERNEL;32 33	/* set wq group to 0 */34	group = idxd->groups[0];35	wq->group = group;36	group->num_wqs++;37 38	/* set name to "iaa_crypto" */39	memset(wq->name, 0, WQ_NAME_SIZE + 1);40	strscpy(wq->name, "iaa_crypto", WQ_NAME_SIZE + 1);41 42	/* set driver_name to "crypto" */43	memset(wq->driver_name, 0, DRIVER_NAME_SIZE + 1);44	strscpy(wq->driver_name, "crypto", DRIVER_NAME_SIZE + 1);45 46	engine = idxd->engines[0];47 48	/* set engine group to 0 */49	engine->group = idxd->groups[0];50	engine->group->num_engines++;51 52	return 0;53}54