static int usbrh_read_sensor_onece(struct usbrh *dev, struct usbrh_sensor_value *value) { int read_size; int result; char buffer[USBRH_BUFFER_SIZE]; memset(buffer, 0, sizeof(buffer)); result = usbrh_control_msg(dev, 0x0200, buffer); DEBUG_WARN(&dev->udev->dev, "usb_control_msg: %d", result); if (result < 0) { return -1; } result = usb_bulk_msg(dev->udev, usb_rcvbulkpipe(dev->udev, USBRH_SENSOR_ENDPOINT), value, sizeof(*value), &read_size, msecs_to_jiffies(5000)); DEBUG_WARN(&dev->udev->dev, "usb_bulk_msg: %d", result); return ((result == 0) && (read_size == sizeof(*value))) ? 0 : -1; }
static int usbrh_control_heater(struct usbrh *dev, unsigned char is_on) { int result; char buffer[USBRH_BUFFER_SIZE]; memset(buffer, 0, sizeof(buffer)); buffer[0] = 1; buffer[1] = is_on << 2; result = usbrh_control_msg(dev, 0x0300, buffer); DEBUG_WARN(&dev->udev->dev, "usb_control_msg: %d", result); if (result < 0) { return -1; } return 0; }
static int usbrh_control_led(struct usbrh *dev, unsigned char led_index, unsigned char is_on) { int result; char buffer[USBRH_BUFFER_SIZE]; memset(buffer, 0, sizeof(buffer)); buffer[0] = 3 + led_index; buffer[1] = is_on; result = usbrh_control_msg(dev, 0x0300, buffer); DEBUG_INFO("usb_control_msg: %d", result); if (result < 0) { return -1; } return 0; }