FreeBSD Bugzilla – Attachment 169819 Details for
Bug 209156
[asmc] [patch] add support for more models and restore keyboard backlight after resume
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Updates and fixes to asmc. and asmvar.h
asmc.patch (text/plain), 5.83 KB, created by
Johannes Lundberg
on 2016-04-29 23:13:38 UTC
(
hide
)
Description:
Updates and fixes to asmc. and asmvar.h
Filename:
MIME Type:
Creator:
Johannes Lundberg
Created:
2016-04-29 23:13:38 UTC
Size:
5.83 KB
patch
obsolete
>Index: sys/dev/asmc/asmc.c >=================================================================== >--- sys/dev/asmc/asmc.c (revision 298697) >+++ sys/dev/asmc/asmc.c (working copy) >@@ -63,6 +63,7 @@ > static int asmc_probe(device_t dev); > static int asmc_attach(device_t dev); > static int asmc_detach(device_t dev); >+static int asmc_resume(device_t dev); > > /* > * SMC functions. >@@ -137,10 +138,18 @@ > #define ASMC_SMS_FUNCS asmc_mb_sysctl_sms_x, asmc_mb_sysctl_sms_y, \ > asmc_mb_sysctl_sms_z > >+#define ASMC_SMS_FUNCS_DISABLED NULL,NULL,NULL >+ > #define ASMC_FAN_FUNCS asmc_mb_sysctl_fanid, asmc_mb_sysctl_fanspeed, asmc_mb_sysctl_fansafespeed, \ > asmc_mb_sysctl_fanminspeed, \ > asmc_mb_sysctl_fanmaxspeed, \ > asmc_mb_sysctl_fantargetspeed >+ >+#define ASMC_FAN_FUNCS2 asmc_mb_sysctl_fanid, asmc_mb_sysctl_fanspeed, NULL, \ >+ asmc_mb_sysctl_fanminspeed, \ >+ asmc_mb_sysctl_fanmaxspeed, \ >+ asmc_mb_sysctl_fantargetspeed >+ > #define ASMC_LIGHT_FUNCS asmc_mbp_sysctl_light_left, \ > asmc_mbp_sysctl_light_right, \ > asmc_mbp_sysctl_light_control >@@ -158,6 +167,12 @@ > ASMC_MB_TEMPS, ASMC_MB_TEMPNAMES, ASMC_MB_TEMPDESCS > }, > >+ { >+ "MacBook3,1", "Apple SMC MacBook Core 2 Duo", >+ ASMC_SMS_FUNCS, ASMC_FAN_FUNCS, NULL, NULL, NULL, >+ ASMC_MB31_TEMPS, ASMC_MB31_TEMPNAMES, ASMC_MB31_TEMPDESCS >+ }, >+ > { > "MacBookPro1,1", "Apple SMC MacBook Pro Core Duo (15-inch)", > ASMC_SMS_FUNCS, ASMC_FAN_FUNCS, ASMC_LIGHT_FUNCS, >@@ -260,12 +275,30 @@ > ASMC_MBA3_TEMPS, ASMC_MBA3_TEMPNAMES, ASMC_MBA3_TEMPDESCS > }, > >+ { >+ "MacBookAir5,1", "Apple SMC MacBook Air 11-inch (Mid 2012)", >+ ASMC_SMS_FUNCS_DISABLED, >+ ASMC_FAN_FUNCS2, >+ ASMC_LIGHT_FUNCS, >+ ASMC_MBA5_TEMPS, ASMC_MBA5_TEMPNAMES, ASMC_MBA5_TEMPDESCS >+ }, >+ >+ { >+ "MacBookAir5,2", "Apple SMC MacBook Air 13-inch (Mid 2012)", >+ ASMC_SMS_FUNCS_DISABLED, >+ ASMC_FAN_FUNCS2, >+ ASMC_LIGHT_FUNCS, >+ ASMC_MBA5_TEMPS, ASMC_MBA5_TEMPNAMES, ASMC_MBA5_TEMPDESCS >+ }, >+ > > { NULL, NULL } > }; > > #undef ASMC_SMS_FUNCS >+#undef ASMC_SMS_FUNCS_DISABLED > #undef ASMC_FAN_FUNCS >+#undef ASMC_FAN_FUNCS2 > #undef ASMC_LIGHT_FUNCS > > /* >@@ -275,6 +308,7 @@ > DEVMETHOD(device_probe, asmc_probe), > DEVMETHOD(device_attach, asmc_attach), > DEVMETHOD(device_detach, asmc_detach), >+ DEVMETHOD(device_resume, asmc_resume), > > { 0, 0 } > }; >@@ -301,6 +335,8 @@ > > static devclass_t asmc_devclass; > >+static unsigned int light_control = 0; >+ > DRIVER_MODULE(asmc, acpi, asmc_driver, asmc_devclass, NULL, NULL); > MODULE_DEPEND(asmc, acpi, 1, 1, 1); > >@@ -581,6 +617,17 @@ > return (0); > } > >+static int >+asmc_resume(device_t dev) >+{ >+ uint8_t buf[2]; >+ buf[0] = light_control; >+ buf[1] = 0x00; >+ asmc_key_write(dev, ASMC_KEY_LIGHTVALUE, buf, sizeof buf); >+ return (0); >+} >+ >+ > #ifdef DEBUG > void asmc_dumpall(device_t dev) > { >@@ -879,7 +926,7 @@ > snprintf(buf, sizeof(buf), "key %d is: %s, type %s " > "(len %d), data", number, key, type, maxlen); > for (i = 0; i < maxlen; i++) { >- snprintf(buf2, sizeof(buf), " %02x", v[i]); >+ snprintf(buf2, sizeof(buf2), " %02x", v[i]); > strlcat(buf, buf2, sizeof(buf)); > } > strlcat(buf, " \n", sizeof(buf)); >@@ -1324,17 +1371,16 @@ > device_t dev = (device_t) arg1; > uint8_t buf[2]; > int error; >- static unsigned int level; > int v; > >- v = level; >+ v = light_control; > error = sysctl_handle_int(oidp, &v, 0, req); > > if (error == 0 && req->newptr != NULL) { > if (v < 0 || v > 255) > return (EINVAL); >- level = v; >- buf[0] = level; >+ light_control = v; >+ buf[0] = light_control; > buf[1] = 0x00; > asmc_key_write(dev, ASMC_KEY_LIGHTVALUE, buf, sizeof buf); > } >Index: sys/dev/asmc/asmcvar.h >=================================================================== >--- sys/dev/asmc/asmcvar.h (revision 298697) >+++ sys/dev/asmc/asmcvar.h (working copy) >@@ -144,7 +144,19 @@ > "Northbridge Point 2", "Heatsink 1", \ > "Heatsink 2", "Memory Bank A", } > >-#define ASMC_MBP_TEMPS { "TB0T", "Th0H", "Th1H", "Tm0P", \ >+#define ASMC_MB31_TEMPS { "TB0T", "TN0P", "Th0H", "Th1H", \ >+ "TM0P", NULL } >+ >+#define ASMC_MB31_TEMPNAMES { "enclosure", "northbridge1", \ >+ "heatsink1", "heatsink2", \ >+ "memory", } >+ >+#define ASMC_MB31_TEMPDESCS { "Enclosure Bottomside", \ >+ "Northbridge Point 1", \ >+ "Heatsink 1","Heatsink 2" \ >+ "Memory Bank A", } >+ >+#define ASMC_MBP_TEMPS { "TB0T", "Th0H", "Th1H", "Tm0P", \ > "TG0H", "TG0P", "TG0T", NULL } > > #define ASMC_MBP_TEMPNAMES { "enclosure", "heatsink1", \ >@@ -337,3 +349,24 @@ > > #define ASMC_MBA3_TEMPDESCS { "Enclosure Bottom", "TB1T", "TB2T", \ > "TC0D", "TC0E", "TC0P" } >+ >+#define ASMC_MBA5_TEMPS { "TB0T", "TB1T", "TB2T", "TC0C", \ >+ "TC0D", "TC0E", "TC0F", "TC0P", \ >+ "TC1C", "TC2C", "TCGC", "TCSA", \ >+ "TCXC", "THSP", "TM0P", "TPCD", \ >+ "Ta0P", "Th1H", "Tm0P", "Tm1P", \ >+ "Ts0P", "Ts0S", NULL } >+ >+#define ASMC_MBA5_TEMPNAMES { "enclosure1", "enclosure2", "enclosure3", "TC0C", \ >+ "cpudiode", "cputemp1", "cputemp2", "cpuproximity", \ >+ "cpucore1", "cpucore2", "cpupeci", "pecisa", \ >+ "TCXC", "THSP", "memorybank", "pchdie", \ >+ "Ta0P", "heatpipe", "mainboardproximity1", "mainboardproximity2", \ >+ "palmrest", "memoryproximity" } >+ >+#define ASMC_MBA5_TEMPDESCS { "Enclosure Bottom 1", "Enclosure Bottom 2", "Enclosure Bottom 3", "TC0C",\ >+ "CPU Diode", "CPU Temp 1", "CPU Temp 2", "CPU Proximity", \ >+ "CPU Core 1", "CPU Core 2", "CPU Peci Core", "PECI SA", \ >+ "TCXC", "THSP", "Memory Bank A", "PCH Die", \ >+ "Ta0P", "Heatpipe", "Mainboard Proximity 1", "Mainboard Proximity 2", \ >+ "Palm Rest", "Memory Proximity" }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 209156
: 169819