Add ASMC_DEBUG make option

This allows folks to enable debug statements in asmc(4) using kernel
configs via the `options ASMC_DEBUG` directive.

While here, remove a duplicate `device vt_efifb` directive in `NOTES`
as it's already handled in the `GENERIC` config

MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D54511
This commit is contained in:
Enji Cooper
2026-01-04 00:27:57 -08:00
parent 12c5148418
commit f224591746
4 changed files with 19 additions and 13 deletions
+4 -3
View File
@@ -43,9 +43,6 @@ cpu HAMMER # aka K8, aka Opteron & Athlon64
# Optional devices:
#
# vt(4) drivers.
device vt_efifb # EFI framebuffer
# 3Dfx Voodoo Graphics, Voodoo II /dev/3dfx CDEV support. This will create
# the /dev/3dfx0 device to work with glide implementations. This should get
# linked to /dev/3dfx and /dev/voodoo. Note that this is not the same as
@@ -116,6 +113,10 @@ device efidev
# EFI RTC
device efirtc
# Apple System Management Controller (SMC)
device asmc
options ASMC_DEBUG # Enable asmc(4)-specific debug logic.
#
# Intel QuickAssist driver with OpenCrypto support
#
+3
View File
@@ -68,3 +68,6 @@ MPTABLE_LINUX_BUG_COMPAT
# x86 specific uart options
UART_NS8250_EARLY_PORT opt_uart.h
# Enable asmc(4)-specific debug logic.
ASMC_DEBUG opt_asmc.h
+11 -9
View File
@@ -34,6 +34,8 @@
* Inspired by the Linux applesmc driver.
*/
#include "opt_asmc.h"
#include <sys/param.h>
#include <sys/bus.h>
#include <sys/conf.h>
@@ -83,7 +85,7 @@ static void asmc_sms_calibrate(device_t dev);
static int asmc_sms_intrfast(void *arg);
static void asmc_sms_printintr(device_t dev, uint8_t);
static void asmc_sms_task(void *arg, int pending);
#ifdef DEBUG
#ifdef ASMC_DEBUG
void asmc_dumpall(device_t);
static int asmc_key_dump(device_t, int);
#endif
@@ -515,7 +517,7 @@ static driver_t asmc_driver = {
*/
#define _COMPONENT ACPI_OEM
ACPI_MODULE_NAME("ASMC")
#ifdef DEBUG
#ifdef ASMC_DEBUG
#define ASMC_DPRINTF(str) device_printf(dev, str)
#else
#define ASMC_DPRINTF(str)
@@ -828,7 +830,7 @@ asmc_resume(device_t dev)
return (0);
}
#ifdef DEBUG
#ifdef ASMC_DEBUG
void asmc_dumpall(device_t dev)
{
struct asmc_softc *sc = device_get_softc(dev);
@@ -939,7 +941,7 @@ asmc_init(device_t dev)
sc->sc_nkeys = 0;
}
#ifdef DEBUG
#ifdef ASMC_DEBUG
asmc_dumpall(dev);
#endif
@@ -974,19 +976,19 @@ asmc_wait_ack(device_t dev, uint8_t val, int amount)
static int
asmc_wait(device_t dev, uint8_t val)
{
#ifdef DEBUG
#ifdef ASMC_DEBUG
struct asmc_softc *sc;
#endif
if (asmc_wait_ack(dev, val, 1000) == 0)
return (0);
#ifdef DEBUG
#ifdef ASMC_DEBUG
sc = device_get_softc(dev);
#endif
val = val & ASMC_STATUS_MASK;
#ifdef DEBUG
#ifdef ASMC_DEBUG
device_printf(dev, "%s failed: 0x%x, 0x%x\n", __func__, val,
ASMC_CMDPORT_READ(sc));
#endif
@@ -1009,7 +1011,7 @@ asmc_command(device_t dev, uint8_t command) {
}
}
#ifdef DEBUG
#ifdef ASMC_DEBUG
device_printf(dev, "%s failed: 0x%x, 0x%x\n", __func__, command,
ASMC_CMDPORT_READ(sc));
#endif
@@ -1055,7 +1057,7 @@ asmc_key_read(device_t dev, const char *key, uint8_t *buf, uint8_t len)
return (error);
}
#ifdef DEBUG
#ifdef ASMC_DEBUG
static int
asmc_key_dump(device_t dev, int number)
{
+1 -1
View File
@@ -1,6 +1,6 @@
.PATH: ${SRCTOP}/sys/dev/asmc
KMOD= asmc
SRCS= asmc.c opt_acpi.h acpi_if.h bus_if.h device_if.h
SRCS= asmc.c opt_acpi.h opt_asmc.h acpi_if.h bus_if.h device_if.h
.include <bsd.kmod.mk>