Skip to content

Commit d379950

Browse files
committed
FreeBSD: support charp module_params like hw.amdgpu.virtual_display, fixes #134
Depends on: https://reviews.freebsd.org/D34252 Sponsored by: https://www.patreon.com/valpackett
1 parent e101ea9 commit d379950

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
@@ -508,7 +508,6 @@ module_param_named(pg_mask, amdgpu_pg_mask, uint, 0444);
508508
MODULE_PARM_DESC(sdma_phase_quantum, "SDMA context switch phase quantum (x 1K GPU clock cycles, 0 = no change (default 32))");
509509
module_param_named(sdma_phase_quantum, amdgpu_sdma_phase_quantum, uint, 0444);
510510

511-
#ifdef __linux__
512511
/**
513512
* DOC: disable_cu (charp)
514513
* Set to disable CUs (It's set like se.sh.cu,...). The default is NULL.
@@ -526,7 +525,6 @@ module_param_named(disable_cu, amdgpu_disable_cu, charp, 0444);
526525
MODULE_PARM_DESC(virtual_display,
527526
"Enable virtual display feature (the virtual_display will be set like xxxx:xx:xx.x,x;xxxx:xx:xx.x,x)");
528527
module_param_named(virtual_display, amdgpu_virtual_display, charp, 0444);
529-
#endif
530528

531529
/**
532530
* 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
@@ -148,6 +150,15 @@ SYSCTL_DECL(_dev_drm);
148150
name, LINUXKPI_PARAM_PERM(perm), &(var), 0,\
149151
LINUXKPI_PARAM_DESC(name)))
150152

153+
#define LINUXKPI_PARAM_charp(name, var, perm) \
154+
extern const char LINUXKPI_PARAM_DESC(name)[]; \
155+
LINUXKPI_PARAM_PASS(SYSCTL_PROC(LINUXKPI_PARAM_PARENT, OID_AUTO, \
156+
LINUXKPI_PARAM_NAME(name), LINUXKPI_PARAM_PERM(perm) | CTLTYPE_STRING | CTLFLAG_MPSAFE, \
157+
&(var), 0, lkpi_sysctl_handle_charp, "A", LINUXKPI_PARAM_DESC(name))); \
158+
LINUXKPI_PARAM_PASS(SYSCTL_PROC(DRM_PARAM_NAME, OID_AUTO, \
159+
name, LINUXKPI_PARAM_PERM(perm) | CTLTYPE_STRING | CTLFLAG_MPSAFE, \
160+
&(var), 0, lkpi_sysctl_handle_charp, "A", LINUXKPI_PARAM_DESC(name)))
161+
151162
#define module_param_string(name, str, len, perm) \
152163
extern const char LINUXKPI_PARAM_DESC(name)[]; \
153164
LINUXKPI_PARAM_PASS(SYSCTL_STRING(LINUXKPI_PARAM_PARENT, OID_AUTO,\

0 commit comments

Comments
 (0)