Home
last modified time | relevance | path

Searched refs:fwctl (Results 1 – 18 of 18) sorted by relevance

/linux/drivers/fwctl/
H A Dmain.c58 struct fwctl_device *fwctl = ucmd->uctx->fwctl; in fwctl_cmd_info() local
65 if (!fwctl->ops->info && cmd->device_data_len) { in fwctl_cmd_info()
71 fwctl->ops->info(ucmd->uctx, &driver_info_len); in fwctl_cmd_info()
81 cmd->out_device_type = fwctl->ops->device_type; in fwctl_cmd_info()
88 struct fwctl_device *fwctl = ucmd->uctx->fwctl; in fwctl_cmd_rpc() local
107 &fwctl->dev, in fwctl_cmd_rpc()
124 void *outbuf __free(kvfree) = fwctl->ops->fw_rpc( in fwctl_cmd_rpc()
201 guard(rwsem_read)(&uctx->fwctl->registration_lock); in fwctl_fops_ioctl()
202 if (!uctx->fwctl->ops) in fwctl_fops_ioctl()
209 struct fwctl_device *fwctl = in fwctl_fops_open() local
[all …]
H A DKconfig3 tristate "fwctl device firmware access framework"
5 fwctl provides a userspace API for restricted access to communicate
13 tristate "mlx5 ConnectX control fwctl driver"
25 tristate "AMD/Pensando pds fwctl driver"
28 The pds_fwctl driver provides an fwctl interface for a user process
H A DMakefile2 obj-$(CONFIG_FWCTL) += fwctl.o
6 fwctl-y += main.o
/linux/include/linux/
H A Dfwctl.h107 static inline struct fwctl_device *fwctl_get(struct fwctl_device *fwctl) in fwctl_get() argument
109 get_device(&fwctl->dev); in fwctl_get()
110 return fwctl; in fwctl_get()
112 static inline void fwctl_put(struct fwctl_device *fwctl) in fwctl_put() argument
114 put_device(&fwctl->dev); in fwctl_put()
116 DEFINE_FREE(fwctl, struct fwctl_device *, if (_T) fwctl_put(_T));
118 int fwctl_register(struct fwctl_device *fwctl);
119 void fwctl_unregister(struct fwctl_device *fwctl);
129 struct fwctl_device *fwctl; member
/linux/drivers/fwctl/mlx5/
H A Dmain.c12 dev_err(&mcdev->fwctl.dev, format, ##__VA_ARGS__)
15 dev_dbg(&mcdev->fwctl.dev, "PID %u: " format, current->pid, \
25 struct fwctl_device fwctl; member
28 DEFINE_FREE(mlx5ctl, struct mlx5ctl_dev *, if (_T) fwctl_put(&_T->fwctl));
134 container_of(uctx->fwctl, struct mlx5ctl_dev, fwctl); in mlx5ctl_open_uctx()
157 container_of(uctx->fwctl, struct mlx5ctl_dev, fwctl); in mlx5ctl_close_uctx()
310 container_of(uctx->fwctl, struct mlx5ctl_dev, fwctl); in mlx5ctl_fw_rpc()
377 &mdev->pdev->dev, &mlx5ctl_ops, struct mlx5ctl_dev, fwctl); in mlx5ctl_probe()
385 ret = fwctl_register(&mcdev->fwctl); in mlx5ctl_probe()
396 fwctl_unregister(&mcdev->fwctl); in mlx5ctl_remove()
[all …]
/linux/drivers/fwctl/pds/
H A Dmain.c33 struct fwctl_device fwctl; member
44 struct pdsfc_dev *pdsfc = container_of(uctx->fwctl, struct pdsfc_dev, fwctl); in pdsfc_open_uctx()
72 struct device *dev = &pdsfc->fwctl.dev; in pdsfc_identify()
108 struct device *dev = &pdsfc->fwctl.dev; in pdsfc_free_endpoints()
128 struct device *dev = &pdsfc->fwctl.dev; in pdsfc_free_operations()
148 struct device *dev = &pdsfc->fwctl.dev; in pdsfc_get_endpoints()
215 struct device *dev = &pdsfc->fwctl.dev; in pdsfc_get_operations()
287 struct device *dev = &pdsfc->fwctl.dev; in pdsfc_validate_rpc()
353 struct pdsfc_dev *pdsfc = container_of(uctx->fwctl, struct pdsfc_dev, fwctl); in pdsfc_fw_rpc()
354 struct device *dev = &uctx->fwctl->dev; in pdsfc_fw_rpc()
[all …]
/linux/Documentation/userspace-api/fwctl/
H A Dfwctl.rst4 fwctl subsystem
42 interfaces. fwctl seeks to allow access to the full device functionality from
46 fwctl is aimed at the common device design pattern where the OS and FW
61 fwctl's purpose is to define a common set of limited rules, described below,
72 fwctl drivers are strictly restricted to being a way to operate the device FW.
76 fwctl instances must operate on a well-defined device function, and the device
132 time, but otherwise must not be coupled to fwctl.
138 fwctl is not a replacement for device direct access subsystems like uacce or
141 Operations exposed through fwctl's non-tainting interfaces should be fully
143 fwctl should never prevent a kernel subsystem from also concurrently using that
[all …]
H A Dpds_fwctl.rst4 fwctl pds driver
12 The PDS Core device makes a fwctl service available through an
13 auxiliary_device named pds_core.fwctl.N. The pds_fwctl driver binds to
14 this device and registers itself with the fwctl subsystem. The resulting
20 firmware for fwctl requests. The set of fwctl operations available
H A Dfwctl-cxl.rst4 fwctl cxl driver
14 issued to the mailbox as well. fwctl provides a path to issue a set of allowed
27 under the fwctl policy of FWCTL_RPC_CONFIGURATION.
31 Set Feature will cause immediate change to the device, the fwctl access policy
36 fwctl access policy must be FWCTL_RPC_DEBUG_WRITE or higher.
38 fwctl cxl User API
41 .. kernel-doc:: include/uapi/fwctl/cxl.h
133 <https://github.com/pmem/ndctl/tree/main/test/fwctl.c> for a detailed user code
137 fwctl cxl Kernel API
H A Dindex.rst12 fwctl
13 fwctl-cxl
/linux/include/linux/pds/
H A Dpds_adminq.h1487 struct pds_fwctl_cmd fwctl; member
1519 struct pds_fwctl_comp fwctl; member
/linux/drivers/
H A DMakefile138 obj-$(CONFIG_FWCTL) += fwctl/
H A DKconfig30 source "drivers/fwctl/Kconfig"
/linux/Documentation/admin-guide/
H A Dtainted-kernels.rst104 19 _/J 524288 userspace used a mutating debug operation in fwctl
189 19) ``J`` if userspace opened /dev/fwctl/* and performed a FWTCL_RPC_DEBUG_WRITE
/linux/drivers/cxl/core/
H A Dfeatures.c648 struct fwctl_device *fwctl_dev = uctx->fwctl; in cxlctl_fw_rpc()
/linux/Documentation/userspace-api/ioctl/
H A Dioctl-number.rst338 0x9A 00-0F include/uapi/fwctl/fwctl.h
/linux/Documentation/driver-api/cxl/linux/
H A Dcxl-driver.rst459 of vendor-specific commands (see the `fwctl` subsystem for that).
/linux/
H A DMAINTAINERS6436 F: Documentation/userspace-api/fwctl/fwctl-cxl.rst
10542 F: Documentation/userspace-api/fwctl/
10543 F: drivers/fwctl/
10544 F: include/linux/fwctl.h
10545 F: include/uapi/fwctl/
10552 F: drivers/fwctl/mlx5/
10558 F: drivers/fwctl/pds/