/* * si470x_set_register - write register */ int si470x_set_register(struct si470x_device *radio, int regnr) { int retval; radio->usb_buf[0] = REGISTER_REPORT(regnr); put_unaligned_be16(radio->registers[regnr], &radio->usb_buf[1]); retval = si470x_set_report(radio, radio->usb_buf, REGISTER_REPORT_SIZE); return (retval < 0) ? -EINVAL : 0; }
/* * si470x_set_register - write register */ static int si470x_set_register(struct si470x_device *radio, int regnr) { unsigned char buf[REGISTER_REPORT_SIZE]; int retval; buf[0] = REGISTER_REPORT(regnr); put_unaligned_be16(radio->registers[regnr], &buf[1]); retval = si470x_set_report(radio, (void *) &buf, sizeof(buf)); return (retval < 0) ? -EINVAL : 0; }
/* * si470x_get_register - read register */ static int si470x_get_register(struct si470x_device *radio, int regnr) { unsigned char buf[REGISTER_REPORT_SIZE]; int retval; buf[0] = REGISTER_REPORT(regnr); retval = si470x_get_report(radio, (void *) &buf, sizeof(buf)); if (retval >= 0) radio->registers[regnr] = be16_to_cpu(get_unaligned( (unsigned short *) &buf[1])); return (retval < 0) ? -EINVAL : 0; }