git: 3416f5cde7a7 - main - asmc: Add support for MacBookPro6,2
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 25 Jul 2022 16:04:35 UTC
The branch main has been updated by markj:
URL: https://cgit.FreeBSD.org/src/commit/?id=3416f5cde7a7e01b25b5f5fd240ae8aa12fd70bf
commit 3416f5cde7a7e01b25b5f5fd240ae8aa12fd70bf
Author: ed crowe <fbsdbug@edcrowe.com>
AuthorDate: 2022-07-25 15:35:46 +0000
Commit: Mark Johnston <markj@FreeBSD.org>
CommitDate: 2022-07-25 15:43:56 +0000
asmc: Add support for MacBookPro6,2
Modify asmc_sms_printintr() to be silent when the ambient light sensor
interrupt fires on this model, since the messages can otherwise fill up
the dmesg.
PR: 265005
Reviewed by: markj
MFC after: 2 weeks
---
sys/dev/asmc/asmc.c | 18 +++++++++++++++++-
sys/dev/asmc/asmcvar.h | 32 ++++++++++++++++++++++++++++++++
2 files changed, 49 insertions(+), 1 deletion(-)
diff --git a/sys/dev/asmc/asmc.c b/sys/dev/asmc/asmc.c
index 37949b52afda..cd35c35cd9ce 100644
--- a/sys/dev/asmc/asmc.c
+++ b/sys/dev/asmc/asmc.c
@@ -226,6 +226,12 @@ static const struct asmc_model asmc_models[] = {
ASMC_MBP5_TEMPS, ASMC_MBP5_TEMPNAMES, ASMC_MBP5_TEMPDESCS
},
+ {
+ "MacBookPro6,2", "Apple SMC MacBook Pro (Mid 2010, 15-inch)",
+ ASMC_SMS_FUNCS, ASMC_FAN_FUNCS, ASMC_LIGHT_FUNCS,
+ ASMC_MBP62_TEMPS, ASMC_MBP62_TEMPNAMES, ASMC_MBP62_TEMPDESCS
+ },
+
{
"MacBookPro8,1", "Apple SMC MacBook Pro (early 2011, 13-inch)",
ASMC_SMS_FUNCS_DISABLED, ASMC_FAN_FUNCS2, ASMC_LIGHT_FUNCS,
@@ -1376,6 +1382,7 @@ asmc_sms_intrfast(void *arg)
static void
asmc_sms_printintr(device_t dev, uint8_t type)
{
+ struct asmc_softc *sc = device_get_softc(dev);
switch (type) {
case ASMC_SMS_INTFF:
@@ -1387,8 +1394,17 @@ asmc_sms_printintr(device_t dev, uint8_t type)
case ASMC_SMS_INTSH:
device_printf(dev, "WARNING: possible shock!\n");
break;
+ case ASMC_ALSL_INT2A:
+ /*
+ * This suppresses console and log messages for the ambient
+ * light sensor for the only model known to generate this
+ * interrupt.
+ */
+ if (strcmp(sc->sc_model->smc_model, "MacBookPro6,2") == 0)
+ break;
+ /* FALLTHROUGH */
default:
- device_printf(dev, "%s unknown interrupt\n", __func__);
+ device_printf(dev, "unknown interrupt: 0x%x\n", type);
}
}
diff --git a/sys/dev/asmc/asmcvar.h b/sys/dev/asmc/asmcvar.h
index 533686d0c56b..769903701a99 100644
--- a/sys/dev/asmc/asmcvar.h
+++ b/sys/dev/asmc/asmcvar.h
@@ -109,6 +109,11 @@ struct asmc_softc {
#define ASMC_SMS_INTHA 0x6f /* High Acceleration Interrupt */
#define ASMC_SMS_INTSH 0x80 /* Shock Interrupt */
+/*
+ * Light Sensor.
+ */
+#define ASMC_ALSL_INT2A 0x2a /* Ambient Light related Interrupt */
+
/*
* Keyboard backlight.
*/
@@ -232,6 +237,33 @@ struct asmc_softc {
"Heatsink 2", "Memory Controller", \
"PCI Express Slot Pin", "PCI Express Slot (unk)" }
+#define ASMC_MBP62_TEMPS { "TB0T", "TB1T", "TB2T", \
+ "TC0C", "TC0D", "TC0P", \
+ "TC1C", "TG0D", "TG0P", \
+ "TG0T", "TMCD", "TP0P", \
+ "TPCD", "Th1H", "Th2H", \
+ "Tm0P", "Ts0P", "Ts0S" }
+
+#define ASMC_MBP62_TEMPNAMES { "enclosure_bottom_0", "enclosure_bottom_1", \
+ "enclosure_bottom_2", "cpu0", \
+ "cpu_diode", "cpu_proximity", \
+ "cpu1", "gpu_diode", \
+ "gpu_pin", "gpu_transistor", \
+ "TMCD", "pch_controller_proximity", \
+ "pch_die", "heatsink1", \
+ "heatsink2", "memory-controller", \
+ "palmrest", "memoryproximity" }
+
+#define ASMC_MBP62_TEMPDESCS { "Enclosure Bottom 0", "Enclosure Bottom 1", \
+ "Enclosure Bottom 2", "CPU 0", \
+ "CPU Diode", "CPU Proximity", \
+ "CPU 1", "GPU Diode", \
+ "GPU Pin", "GPU Transistor", \
+ "TMCD", "PCH Controller Proximity", \
+ "PCH Die", "Heat Sink 1", \
+ "Heat Sink 2", "Memory Controller", \
+ "Palm Rest", "Memory Proximity" }
+
#define ASMC_MBP81_TEMPS { "TB0T", "TB1T", "TB2T", "TC0C", "TC0D", \
"TC0E", "TC0F", "TC0P", "TC1C", "TC2C", \
"TCFC", "TCGC", "TCSA", "TM0S", "TMBS", \