Exemple #1
0
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;
}
Exemple #2
0
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;
}
Exemple #3
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;
}