Lines Matching defs:sc

47 uoak_check_device_ready(struct uoak_softc *sc)
51 actlen = uhidev_get_report(sc->sc_hdev->sc_parent, UHID_FEATURE_REPORT,
52 sc->sc_hdev->sc_report_id, &sc->sc_buf, sc->sc_flen);
53 if (actlen != sc->sc_flen)
56 if (sc->sc_buf[0] != 0xff)
63 uoak_set_cmd(struct uoak_softc *sc)
66 sc->sc_rcmd.dir = OAK_SET;
68 while (uoak_check_device_ready(sc) < 0)
69 usbd_delay_ms(sc->sc_udev, UOAK_RETRY_DELAY);
71 actlen = uhidev_set_report(sc->sc_hdev->sc_parent, UHID_FEATURE_REPORT,
72 sc->sc_hdev->sc_report_id, &sc->sc_rcmd, sc->sc_flen);
73 if (actlen != sc->sc_flen)
80 uoak_get_cmd(struct uoak_softc *sc)
83 sc->sc_rcmd.dir = OAK_GET;
86 while (uoak_check_device_ready(sc) < 0)
87 usbd_delay_ms(sc->sc_udev, UOAK_RETRY_DELAY);
90 actlen = uhidev_set_report(sc->sc_hdev->sc_parent, UHID_FEATURE_REPORT,
91 sc->sc_hdev->sc_report_id, &sc->sc_rcmd, sc->sc_flen);
92 if (actlen != sc->sc_flen)
96 while (uoak_check_device_ready(sc) < 0)
97 usbd_delay_ms(sc->sc_udev, UOAK_RESPONSE_DELAY);
108 uoak_get_device_name(struct uoak_softc *sc, enum uoak_target target)
110 memset(&sc->sc_rcmd, 0, sizeof(struct uoak_rcmd));
111 sc->sc_rcmd.target = target;
112 sc->sc_rcmd.datasize = 0x15;
113 USETW(&sc->sc_rcmd.cmd, OAK_CMD_DEVNAME);
115 if (uoak_get_cmd(sc) < 0)
118 strlcpy(sc->sc_config[target].devname, sc->sc_buf+1,
119 sizeof(sc->sc_config[target].devname));
124 uoak_get_report_mode(struct uoak_softc *sc, enum uoak_target target)
126 memset(&sc->sc_rcmd, 0, sizeof(struct uoak_rcmd));
127 sc->sc_rcmd.target = target;
128 sc->sc_rcmd.datasize = 0x1;
129 USETW(&sc->sc_rcmd.cmd, OAK_CMD_REPORTMODE);
131 if (uoak_get_cmd(sc) < 0)
134 sc->sc_config[target].report_mode = sc->sc_buf[1];
139 uoak_get_report_rate(struct uoak_softc *sc, enum uoak_target target)
142 memset(&sc->sc_rcmd, 0, sizeof(struct uoak_rcmd));
143 sc->sc_rcmd.target = target;
144 sc->sc_rcmd.datasize = 0x2;
145 USETW(&sc->sc_rcmd.cmd, OAK_CMD_REPORTRATE);
147 if (uoak_get_cmd(sc) < 0)
150 result = (sc->sc_buf[2] << 8) + sc->sc_buf[1];
151 sc->sc_config[target].report_rate = result;
157 uoak_get_sample_rate(struct uoak_softc *sc, enum uoak_target target)
160 memset(&sc->sc_rcmd, 0, sizeof(struct uoak_rcmd));
161 sc->sc_rcmd.target = target;
162 sc->sc_rcmd.datasize = 0x2;
163 USETW(&sc->sc_rcmd.cmd, OAK_CMD_SAMPLERATE);
165 if (uoak_get_cmd(sc) < 0)
168 result = (sc->sc_buf[2] << 8) + sc->sc_buf[1];
169 sc->sc_config[target].sample_rate = result;
175 uoak_set_sample_rate(struct uoak_softc *sc, enum uoak_target target, int rate)
177 memset(&sc->sc_rcmd, 0, sizeof(struct uoak_rcmd));
178 sc->sc_rcmd.target = target;
179 sc->sc_rcmd.datasize = 0x2;
180 USETW(&sc->sc_rcmd.cmd, OAK_CMD_SAMPLERATE);
183 sc->sc_rcmd.val[0] = (uint8_t)(rate & 0xff);
184 sc->sc_rcmd.val[1] = (uint8_t)((rate >> 8) & 0xff)
186 USETW(sc->sc_rcmd.val, rate);
189 if (uoak_set_cmd(sc) < 0)
199 uoak_led_status(struct uoak_softc *sc, enum uoak_target target, uint8_t *mode)
201 memset(&sc->sc_rcmd, 0, sizeof(struct uoak_rcmd));
202 sc->sc_rcmd.target = target;
203 sc->sc_rcmd.datasize = 0x1;
204 USETW(&sc->sc_rcmd.cmd, OAK_CMD_LEDMODE);
206 if (uoak_get_cmd(sc) < 0)
209 *mode = sc->sc_buf[1];
214 uoak_led_ctrl(struct uoak_softc *sc, enum uoak_target target, uint8_t mode)
216 memset(&sc->sc_rcmd, 0, sizeof(struct uoak_rcmd));
218 sc->sc_rcmd.target = target;
219 sc->sc_rcmd.datasize = 0x1;
220 USETW(&sc->sc_rcmd.cmd, OAK_CMD_LEDMODE);
221 sc->sc_rcmd.val[0] = mode;
223 return uoak_set_cmd(sc);
228 uoak_get_devinfo(struct uoak_softc *sc)
231 usbd_fill_deviceinfo(sc->sc_udev, &sc->sc_udi);
235 uoak_get_setting(struct uoak_softc *sc, enum uoak_target target)
238 (void)uoak_get_device_name(sc, target);
241 (void)uoak_get_report_mode(sc, target);
242 (void)uoak_get_sample_rate(sc, target);
243 (void)uoak_get_report_rate(sc, target);
246 if (sc->sc_methods->dev_setting != NULL)
247 sc->sc_methods->dev_setting(sc->sc_parent, target);
251 uoak_print_devinfo(struct uoak_softc *sc)
253 printf(": serial %s", sc->sc_udi.udi_serial);
257 uoak_print_setting(struct uoak_softc *sc, enum uoak_target target)
259 switch (sc->sc_config[target].report_mode) {
262 sc->sc_config[target].sample_rate);
269 sc->sc_config[target].report_rate);
277 if (sc->sc_methods->dev_print != NULL)
278 sc->sc_methods->dev_print(sc->sc_parent, target);
283 uoak_sensor_attach(struct uoak_softc *sc, struct uoak_sensor *s,
297 "avg(#%s)", sc->sc_udi.udi_serial);
299 "max(#%s)", sc->sc_udi.udi_serial);
301 "min(#%s)", sc->sc_udi.udi_serial);
303 sensor_attach(sc->sc_sensordev, &s->avg);
304 sensor_attach(sc->sc_sensordev, &s->max);
305 sensor_attach(sc->sc_sensordev, &s->min);
309 uoak_sensor_detach(struct uoak_softc *sc, struct uoak_sensor *s)
314 sensor_attach(sc->sc_sensordev, &s->avg);
315 sensor_attach(sc->sc_sensordev, &s->max);
316 sensor_attach(sc->sc_sensordev, &s->min);