Lines Matching full:cmd

65 	volatile uint8_t cmd;
171 static int smu_run_cmd(device_t dev, struct smu_cmd *cmd, int wait);
415 smu_send_cmd(device_t dev, struct smu_cmd *cmd)
426 sc->sc_cur_cmd = cmd;
429 sc->sc_cmd->cmd = cmd->cmd;
430 sc->sc_cmd->len = cmd->len;
431 memcpy(sc->sc_cmd->data, cmd->data, sizeof(cmd->data));
466 sc->sc_cur_cmd->cmd = sc->sc_cmd->cmd;
487 smu_run_cmd(device_t dev, struct smu_cmd *cmd, int wait)
494 cmd_code = cmd->cmd;
498 STAILQ_INSERT_TAIL(&sc->sc_cmdq, cmd, cmd_q);
500 smu_send_cmd(dev, cmd);
514 error = tsleep(cmd, 0, "smu", 800 * hz / 1000);
520 if (cmd->cmd == cmd_code) { /* Never processed */
522 if (sc->sc_cur_cmd == cmd)
525 STAILQ_REMOVE(&sc->sc_cmdq, cmd, smu_cmd,
536 if (cmd->cmd == ((~cmd_code) & 0xff))
547 struct smu_cmd cmd;
550 cmd.cmd = SMU_PARTITION;
551 cmd.len = 2;
552 cmd.data[0] = SMU_PARTITION_LATEST;
553 cmd.data[1] = id;
555 smu_run_cmd(dev, &cmd, 1);
558 addr[2] = cmd.data[0];
559 addr[3] = cmd.data[1];
561 cmd.cmd = SMU_MISC;
562 cmd.len = 7;
563 cmd.data[0] = SMU_MISC_GET_DATA;
564 cmd.data[1] = sizeof(addr);
565 memcpy(&cmd.data[2], addr, sizeof(addr));
566 cmd.data[6] = len;
568 smu_run_cmd(dev, &cmd, 1);
569 memcpy(buf, cmd.data, len);
576 struct smu_cmd cmd;
578 cmd.cmd = SMU_POWER;
579 cmd.len = 8;
580 cmd.data[0] = 'V';
581 cmd.data[1] = 'S';
582 cmd.data[2] = 'L';
583 cmd.data[3] = 'E';
584 cmd.data[4] = 'W';
585 cmd.data[5] = 0xff;
586 cmd.data[6] = 1;
587 cmd.data[7] = to;
589 smu_run_cmd(dev, &cmd, 1);
662 struct smu_cmd cmd;
674 cmd.cmd = SMU_FAN;
675 cmd.len = 2;
676 cmd.data[0] = 0x31;
677 cmd.data[1] = fan->reg;
680 error = smu_run_cmd(smu, &cmd, 1);
692 struct smu_cmd cmd;
695 cmd.cmd = SMU_FAN;
705 cmd.len = 4;
706 cmd.data[0] = 0x30;
707 cmd.data[1] = fan->reg;
708 cmd.data[2] = (rpm >> 8) & 0xff;
709 cmd.data[3] = rpm & 0xff;
711 error = smu_run_cmd(smu, &cmd, 1);
715 cmd.len = 14;
716 cmd.data[0] = 0x00; /* RPM fan. */
717 cmd.data[1] = 1 << fan->reg;
718 cmd.data[2 + 2*fan->reg] = (rpm >> 8) & 0xff;
719 cmd.data[3 + 2*fan->reg] = rpm & 0xff;
720 error = smu_run_cmd(smu, &cmd, 1);
733 struct smu_cmd cmd;
739 cmd.cmd = SMU_FAN;
740 cmd.len = 2;
741 cmd.data[0] = 0x31;
742 cmd.data[1] = fan->reg;
744 error = smu_run_cmd(smu, &cmd, 1);
748 rpm = (cmd.data[0] << 8) | cmd.data[1];
752 cmd.cmd = SMU_FAN;
753 cmd.len = 1;
754 cmd.data[0] = SMU_RPM_STATUS;
756 error = smu_run_cmd(smu, &cmd, 1);
760 rpm = (cmd.data[fan->reg*2+1] << 8) | cmd.data[fan->reg*2+2];
769 struct smu_cmd cmd;
772 cmd.cmd = SMU_FAN;
786 cmd.len = 4;
787 cmd.data[0] = 0x30;
788 cmd.data[1] = fan->reg;
789 cmd.data[2] = (pwm >> 8) & 0xff;
790 cmd.data[3] = pwm & 0xff;
792 error = smu_run_cmd(smu, &cmd, 1);
798 cmd.len = 14;
799 cmd.data[0] = 0x10; /* PWM fan. */
800 cmd.data[1] = 1 << fan->reg;
801 cmd.data[2 + 2*fan->reg] = (pwm >> 8) & 0xff;
802 cmd.data[3 + 2*fan->reg] = pwm & 0xff;
803 error = smu_run_cmd(smu, &cmd, 1);
816 struct smu_cmd cmd;
820 cmd.cmd = SMU_FAN;
821 cmd.len = 2;
822 cmd.data[0] = 0x31;
823 cmd.data[1] = fan->reg;
825 error = smu_run_cmd(smu, &cmd, 1);
829 *rpm = (cmd.data[0] << 8) | cmd.data[1];
833 cmd.cmd = SMU_FAN;
834 cmd.len = 1;
835 cmd.data[0] = SMU_PWM_STATUS;
837 error = smu_run_cmd(smu, &cmd, 1);
841 *rpm = (cmd.data[fan->reg*2+1] << 8) | cmd.data[fan->reg*2+2];
844 cmd.cmd = SMU_FAN;
845 cmd.len = 14;
846 cmd.data[0] = SMU_PWM_SETPOINT;
847 cmd.data[1] = 1 << fan->reg;
849 error = smu_run_cmd(smu, &cmd, 1);
853 *pwm = cmd.data[fan->reg*2+2];
1087 struct smu_cmd cmd;
1092 cmd.cmd = SMU_ADC;
1093 cmd.len = 1;
1094 cmd.data[0] = sens->reg;
1097 error = smu_run_cmd(smu, &cmd, 1);
1102 value = (cmd.data[0] << 8) | cmd.data[1];
1263 static struct smu_cmd cmd;
1266 cmd.cmd = SMU_MISC;
1267 cmd.len = 3;
1268 cmd.data[0] = SMU_MISC_LED_CTRL;
1269 cmd.data[1] = 0;
1270 cmd.data[2] = onoff;
1272 smu_run_cmd(smu, &cmd, 0);
1278 struct smu_cmd cmd;
1283 cmd.cmd = SMU_POWER_EVENTS;
1284 cmd.len = 1;
1285 cmd.data[0] = SMU_PWR_GET_POWERUP;
1287 error = smu_run_cmd(smu, &cmd, 1);
1292 server_mode = (cmd.data[1] & SMU_WAKEUP_AC_INSERT) ? 1 : 0;
1300 cmd.data[0] = SMU_PWR_SET_POWERUP;
1302 cmd.data[0] = SMU_PWR_CLR_POWERUP;
1306 cmd.len = 3;
1307 cmd.data[1] = 0;
1308 cmd.data[2] = SMU_WAKEUP_AC_INSERT;
1310 return (smu_run_cmd(smu, &cmd, 1));
1317 struct smu_cmd cmd;
1319 cmd.cmd = SMU_POWER;
1321 strcpy(cmd.data, "SHUTDOWN");
1323 strcpy(cmd.data, "RESTART");
1327 cmd.len = strlen(cmd.data);
1329 smu_run_cmd(smu, &cmd, 1);
1337 struct smu_cmd cmd;
1340 cmd.cmd = SMU_RTC;
1341 cmd.len = 1;
1342 cmd.data[0] = SMU_RTC_GET;
1344 if (smu_run_cmd(dev, &cmd, 1) != 0)
1348 ct.sec = bcd2bin(cmd.data[0]);
1349 ct.min = bcd2bin(cmd.data[1]);
1350 ct.hour = bcd2bin(cmd.data[2]);
1351 ct.dow = bcd2bin(cmd.data[3]);
1352 ct.day = bcd2bin(cmd.data[4]);
1353 ct.mon = bcd2bin(cmd.data[5]);
1354 ct.year = bcd2bin(cmd.data[6]) + 2000;
1362 static struct smu_cmd cmd;
1365 cmd.cmd = SMU_RTC;
1366 cmd.len = 8;
1367 cmd.data[0] = SMU_RTC_SET;
1371 cmd.data[1] = bin2bcd(ct.sec);
1372 cmd.data[2] = bin2bcd(ct.min);
1373 cmd.data[3] = bin2bcd(ct.hour);
1374 cmd.data[4] = bin2bcd(ct.dow);
1375 cmd.data[5] = bin2bcd(ct.day);
1376 cmd.data[6] = bin2bcd(ct.mon);
1377 cmd.data[7] = bin2bcd(ct.year - 2000);
1379 return (smu_run_cmd(dev, &cmd, 0));
1490 struct smu_cmd cmd;
1501 cmd.cmd = SMU_I2C;
1502 cmd.data[0] = sc->sc_busno;
1504 cmd.data[1] = SMU_I2C_COMBINED;
1506 cmd.data[1] = SMU_I2C_SIMPLE;
1508 cmd.data[2] = msgs[i].slave;
1510 cmd.data[2] |= 1;
1516 cmd.data[3] = min(msgs[i].len, 3);
1517 memcpy(&cmd.data[4], msgs[i].buf, min(msgs[i].len, 3));
1520 cmd.data[3] = 0;
1521 memset(&cmd.data[4], 0, 3);
1524 cmd.data[7] = msgs[i].slave;
1526 cmd.data[7] |= 1;
1528 cmd.data[8] = msgs[i].len;
1530 memset(&cmd.data[9], 0xff, msgs[i].len);
1531 cmd.len = 9;
1533 memcpy(&cmd.data[9], msgs[i].buf, msgs[i].len);
1534 cmd.len = 9 + msgs[i].len;
1538 smu_run_cmd(device_get_parent(dev), &cmd, 1);
1542 cmd.cmd = SMU_I2C;
1543 cmd.len = 1;
1544 cmd.data[0] = 0;
1545 memset(&cmd.data[1], 0xff, msgs[i].len);
1548 smu_run_cmd(device_get_parent(dev), &cmd, 1);
1551 if (!(cmd.data[0] & 0x80))
1557 if (cmd.data[0] & 0x80) {
1562 memcpy(msgs[i].buf, &cmd.data[1], msgs[i].len);
1563 msgs[i].len = cmd.len - 1;