Lines Matching +full:4 +full:- +full:inch

1 /*-
2 * SPDX-License-Identifier: BSD-2-Clause
186 "MacBookPro1,1", "Apple SMC MacBook Pro Core Duo (15-inch)",
192 "MacBookPro1,2", "Apple SMC MacBook Pro Core Duo (17-inch)",
198 "MacBookPro2,1", "Apple SMC MacBook Pro Core 2 Duo (17-inch)",
204 "MacBookPro2,2", "Apple SMC MacBook Pro Core 2 Duo (15-inch)",
210 "MacBookPro3,1", "Apple SMC MacBook Pro Core 2 Duo (15-inch LED)",
216 "MacBookPro3,2", "Apple SMC MacBook Pro Core 2 Duo (17-inch HD)",
240 "MacBookPro6,2", "Apple SMC MacBook Pro (Mid 2010, 15-inch)",
246 "MacBookPro8,1", "Apple SMC MacBook Pro (early 2011, 13-inch)",
258 "MacBookPro9,1", "Apple SMC MacBook Pro (mid 2012, 15-inch)",
264 "MacBookPro9,2", "Apple SMC MacBook Pro (mid 2012, 13-inch)",
282 "MacBookPro11,4", "Apple SMC MacBook Pro Retina Core i7 (mid 2015, 15-inch)",
314 /* The Mac Mini 4,1 (Mid-2010) has no SMS */
316 "Macmini4,1", "Apple SMC Mac mini 4,1 (Mid-2010)",
324 /* - same sensors as Mac Mini 5,2 */
343 /* - same sensors as Mac Mini 5,2 */
388 /* Idem for the Mac Pro (8-core) */
390 "MacPro2", "Apple SMC Mac Pro (8-core)",
428 "MacBookAir4,1", "Apple SMC Macbook Air 11-inch (Mid 2011)",
436 "MacBookAir4,2", "Apple SMC Macbook Air 13-inch (Mid 2011)",
444 "MacBookAir5,1", "Apple SMC MacBook Air 11-inch (Mid 2012)",
452 "MacBookAir5,2", "Apple SMC MacBook Air 13-inch (Mid 2012)",
459 "MacBookAir6,1", "Apple SMC MacBook Air 11-inch (Early 2013)",
466 "MacBookAir6,2", "Apple SMC MacBook Air 13-inch (Early 2013)",
473 "MacBookAir7,1", "Apple SMC MacBook Air 11-inch (Early 2015)",
480 "MacBookAir7,2", "Apple SMC MacBook Air 13-inch (Early 2015)",
569 device_set_desc(dev, model->smc_desc); in asmc_probe()
585 sc->sc_ioport = bus_alloc_resource_any(dev, SYS_RES_IOPORT, in asmc_attach()
586 &sc->sc_rid_port, RF_ACTIVE); in asmc_attach()
587 if (sc->sc_ioport == NULL) { in asmc_attach()
597 mtx_init(&sc->sc_mtx, "asmc", NULL, MTX_SPIN); in asmc_attach()
599 sc->sc_model = model; in asmc_attach()
605 sc->sc_fan_tree[0] = SYSCTL_ADD_NODE(sysctlctx, in asmc_attach()
609 for (i = 1; i <= sc->sc_nfan; i++) { in asmc_attach()
610 j = i - 1; in asmc_attach()
613 sc->sc_fan_tree[i] = SYSCTL_ADD_NODE(sysctlctx, in asmc_attach()
614 SYSCTL_CHILDREN(sc->sc_fan_tree[0]), in asmc_attach()
619 SYSCTL_CHILDREN(sc->sc_fan_tree[i]), in asmc_attach()
622 dev, j, model->smc_fan_id, "I", in asmc_attach()
626 SYSCTL_CHILDREN(sc->sc_fan_tree[i]), in asmc_attach()
629 dev, j, model->smc_fan_speed, "I", in asmc_attach()
633 SYSCTL_CHILDREN(sc->sc_fan_tree[i]), in asmc_attach()
636 dev, j, model->smc_fan_safespeed, "I", in asmc_attach()
640 SYSCTL_CHILDREN(sc->sc_fan_tree[i]), in asmc_attach()
643 dev, j, model->smc_fan_minspeed, "I", in asmc_attach()
647 SYSCTL_CHILDREN(sc->sc_fan_tree[i]), in asmc_attach()
650 dev, j, model->smc_fan_maxspeed, "I", in asmc_attach()
654 SYSCTL_CHILDREN(sc->sc_fan_tree[i]), in asmc_attach()
657 dev, j, model->smc_fan_targetspeed, "I", in asmc_attach()
664 sc->sc_temp_tree = SYSCTL_ADD_NODE(sysctlctx, in asmc_attach()
668 for (i = 0; model->smc_temps[i]; i++) { in asmc_attach()
670 SYSCTL_CHILDREN(sc->sc_temp_tree), in asmc_attach()
671 OID_AUTO, model->smc_tempnames[i], in asmc_attach()
674 model->smc_tempdescs[i]); in asmc_attach()
680 if (model->smc_light_left) { in asmc_attach()
681 sc->sc_light_tree = SYSCTL_ADD_NODE(sysctlctx, in asmc_attach()
687 SYSCTL_CHILDREN(sc->sc_light_tree), in asmc_attach()
690 dev, 0, model->smc_light_left, "I", in asmc_attach()
694 SYSCTL_CHILDREN(sc->sc_light_tree), in asmc_attach()
697 dev, 0, model->smc_light_right, "I", in asmc_attach()
701 SYSCTL_CHILDREN(sc->sc_light_tree), in asmc_attach()
705 model->smc_light_control, "I", in asmc_attach()
709 if (model->smc_sms_x == NULL) in asmc_attach()
715 sc->sc_sms_tree = SYSCTL_ADD_NODE(sysctlctx, in asmc_attach()
720 SYSCTL_CHILDREN(sc->sc_sms_tree), in asmc_attach()
723 dev, 0, model->smc_sms_x, "I", in asmc_attach()
727 SYSCTL_CHILDREN(sc->sc_sms_tree), in asmc_attach()
730 dev, 0, model->smc_sms_y, "I", in asmc_attach()
734 SYSCTL_CHILDREN(sc->sc_sms_tree), in asmc_attach()
737 dev, 0, model->smc_sms_z, "I", in asmc_attach()
750 sc->sc_sms_tq = NULL; in asmc_attach()
751 TASK_INIT(&sc->sc_sms_task, 0, asmc_sms_task, sc); in asmc_attach()
752 sc->sc_sms_tq = taskqueue_create_fast("asmc_taskq", M_WAITOK, in asmc_attach()
753 taskqueue_thread_enqueue, &sc->sc_sms_tq); in asmc_attach()
754 taskqueue_start_threads(&sc->sc_sms_tq, 1, PI_REALTIME, "%s sms taskq", in asmc_attach()
759 sc->sc_rid_irq = 0; in asmc_attach()
760 sc->sc_irq = bus_alloc_resource_any(dev, SYS_RES_IRQ, in asmc_attach()
761 &sc->sc_rid_irq, RF_ACTIVE); in asmc_attach()
762 if (sc->sc_irq == NULL) { in asmc_attach()
768 ret = bus_setup_intr(dev, sc->sc_irq, in asmc_attach()
771 dev, &sc->sc_cookie); in asmc_attach()
780 bus_release_resource(dev, SYS_RES_IRQ, sc->sc_rid_irq, sc->sc_irq); in asmc_attach()
782 bus_release_resource(dev, SYS_RES_IOPORT, sc->sc_rid_port, in asmc_attach()
783 sc->sc_ioport); in asmc_attach()
784 mtx_destroy(&sc->sc_mtx); in asmc_attach()
785 if (sc->sc_sms_tq) in asmc_attach()
786 taskqueue_free(sc->sc_sms_tq); in asmc_attach()
796 if (sc->sc_sms_tq) { in asmc_detach()
797 taskqueue_drain(sc->sc_sms_tq, &sc->sc_sms_task); in asmc_detach()
798 taskqueue_free(sc->sc_sms_tq); in asmc_detach()
800 if (sc->sc_cookie) in asmc_detach()
801 bus_teardown_intr(dev, sc->sc_irq, sc->sc_cookie); in asmc_detach()
802 if (sc->sc_irq) in asmc_detach()
803 bus_release_resource(dev, SYS_RES_IRQ, sc->sc_rid_irq, in asmc_detach()
804 sc->sc_irq); in asmc_detach()
805 if (sc->sc_ioport) in asmc_detach()
806 bus_release_resource(dev, SYS_RES_IOPORT, sc->sc_rid_port, in asmc_detach()
807 sc->sc_ioport); in asmc_detach()
808 mtx_destroy(&sc->sc_mtx); in asmc_detach()
839 uint8_t buf[4]; in asmc_init()
841 if (sc->sc_model->smc_sms_x == NULL) in asmc_init()
886 sc->sc_sms_intr_works = 0; in asmc_init()
896 sc->sc_sms_intr_works = 1; in asmc_init()
910 sc->sc_nfan = asmc_fan_count(dev); in asmc_init()
911 if (sc->sc_nfan > ASMC_MAXFANS) { in asmc_init()
914 sc->sc_nfan = ASMC_MAXFANS; in asmc_init()
921 asmc_key_read(dev, ASMC_NKEYS, buf, 4); in asmc_init()
1008 mtx_lock_spin(&sc->sc_mtx); in asmc_key_read()
1014 for (i = 0; i < 4; i++) { in asmc_key_read()
1036 mtx_unlock_spin(&sc->sc_mtx); in asmc_key_read()
1048 uint8_t index[4]; in asmc_key_dump()
1053 mtx_lock_spin(&sc->sc_mtx); in asmc_key_dump()
1064 for (i = 0; i < 4; i++) { in asmc_key_dump()
1070 ASMC_DATAPORT_WRITE(sc, 4); in asmc_key_dump()
1072 for (i = 0; i < 4; i++) { in asmc_key_dump()
1082 for (i = 0; i < 4; i++) { in asmc_key_dump()
1102 mtx_unlock_spin(&sc->sc_mtx); in asmc_key_dump()
1107 mtx_unlock_spin(&sc->sc_mtx); in asmc_key_dump()
1138 int i, error = -1, try = 0; in asmc_key_write()
1141 mtx_lock_spin(&sc->sc_mtx); in asmc_key_write()
1149 for (i = 0; i < 4; i++) { in asmc_key_write()
1172 mtx_unlock_spin(&sc->sc_mtx); in asmc_key_write()
1187 return (-1); in asmc_fan_count()
1201 return (-1); in asmc_fan_getvalue()
1216 desc = buf+4; in asmc_fan_getstring()
1227 speed *= 4; in asmc_fan_setvalue()
1234 return (-1); in asmc_fan_setvalue()
1295 if (error == 0 && req->newptr != NULL) { in asmc_mb_sysctl_fanminspeed()
1314 if (error == 0 && req->newptr != NULL) { in asmc_mb_sysctl_fanmaxspeed()
1333 if (error == 0 && req->newptr != NULL) { in asmc_mb_sysctl_fantargetspeed()
1353 return (-1); in asmc_temp_getvalue()
1365 val = asmc_temp_getvalue(dev, sc->sc_model->smc_temps[arg2]); in asmc_temp_sysctl()
1403 asmc_sms_read(dev, ASMC_KEY_SMS_X, &sc->sms_rest_x); in asmc_sms_calibrate()
1404 asmc_sms_read(dev, ASMC_KEY_SMS_Y, &sc->sms_rest_y); in asmc_sms_calibrate()
1405 asmc_sms_read(dev, ASMC_KEY_SMS_Z, &sc->sms_rest_z); in asmc_sms_calibrate()
1414 if (!sc->sc_sms_intr_works) in asmc_sms_intrfast()
1417 mtx_lock_spin(&sc->sc_mtx); in asmc_sms_intrfast()
1419 mtx_unlock_spin(&sc->sc_mtx); in asmc_sms_intrfast()
1421 sc->sc_sms_intrtype = type; in asmc_sms_intrfast()
1424 taskqueue_enqueue(sc->sc_sms_tq, &sc->sc_sms_task); in asmc_sms_intrfast()
1448 if (strcmp(sc->sc_model->smc_model, "MacBookPro5,5") == 0 || in asmc_sms_printintr()
1449 strcmp(sc->sc_model->smc_model, "MacBookPro6,2") == 0) in asmc_sms_printintr()
1464 switch (sc->sc_sms_intrtype) { in asmc_sms_task()
1568 if (error == 0 && req->newptr != NULL) { in asmc_mbp_sysctl_light_control()
1590 * This seems to be a 32 bit big endian value from buf[6] -> buf[9]. in asmc_mbp_sysctl_light_left_10byte()