Skip to content

Commit 125919f

Browse files
committed
FreeBSD: support charp module_params like hw.amdgpu.virtual_display, fixes #134
Depends on: https://reviews.freebsd.org/D34252
1 parent a1ba3bd commit 125919f

File tree

2 files changed

+11
-2
lines changed

2 files changed

+11
-2
lines changed

drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c

-2
Original file line numberDiff line numberDiff line change
@@ -454,7 +454,6 @@ module_param_named(pg_mask, amdgpu_pg_mask, uint, 0444);
454454
MODULE_PARM_DESC(sdma_phase_quantum, "SDMA context switch phase quantum (x 1K GPU clock cycles, 0 = no change (default 32))");
455455
module_param_named(sdma_phase_quantum, amdgpu_sdma_phase_quantum, uint, 0444);
456456

457-
#ifdef __linux__
458457
/**
459458
* DOC: disable_cu (charp)
460459
* Set to disable CUs (It's set like se.sh.cu,...). The default is NULL.
@@ -472,7 +471,6 @@ module_param_named(disable_cu, amdgpu_disable_cu, charp, 0444);
472471
MODULE_PARM_DESC(virtual_display,
473472
"Enable virtual display feature (the virtual_display will be set like xxxx:xx:xx.x,x;xxxx:xx:xx.x,x)");
474473
module_param_named(virtual_display, amdgpu_virtual_display, charp, 0444);
475-
#endif
476474

477475
/**
478476
* DOC: job_hang_limit (int)

linuxkpi/bsd/include/linux/moduleparam.h

+11
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@
3737

3838
#include <linux/types.h>
3939

40+
extern int lkpi_sysctl_handle_charp(SYSCTL_HANDLER_ARGS);
41+
4042
#ifndef LINUXKPI_PARAM_PARENT
4143
#define LINUXKPI_PARAM_PARENT _compat_linuxkpi
4244
#endif
@@ -136,6 +138,15 @@ SYSCTL_DECL(_dev_drm);
136138
name, LINUXKPI_PARAM_PERM(perm), &(var), 0,\
137139
LINUXKPI_PARAM_DESC(name)))
138140

141+
#define LINUXKPI_PARAM_charp(name, var, perm) \
142+
extern const char LINUXKPI_PARAM_DESC(name)[]; \
143+
LINUXKPI_PARAM_PASS(SYSCTL_PROC(LINUXKPI_PARAM_PARENT, OID_AUTO, \
144+
LINUXKPI_PARAM_NAME(name), LINUXKPI_PARAM_PERM(perm) | CTLTYPE_STRING | CTLFLAG_MPSAFE, \
145+
&(var), 0, lkpi_sysctl_handle_charp, "A", LINUXKPI_PARAM_DESC(name))); \
146+
LINUXKPI_PARAM_PASS(SYSCTL_PROC(DRM_PARAM_NAME, OID_AUTO, \
147+
name, LINUXKPI_PARAM_PERM(perm) | CTLTYPE_STRING | CTLFLAG_MPSAFE, \
148+
&(var), 0, lkpi_sysctl_handle_charp, "A", LINUXKPI_PARAM_DESC(name)))
149+
139150
#define module_param_string(name, str, len, perm) \
140151
extern const char LINUXKPI_PARAM_DESC(name)[]; \
141152
LINUXKPI_PARAM_PASS(SYSCTL_STRING(LINUXKPI_PARAM_PARENT, OID_AUTO,\

0 commit comments

Comments
 (0)