Lines Matching defs:usb_pcwd

167 	struct usb_pcwd_private *usb_pcwd =
169 unsigned char *data = usb_pcwd->intr_buffer;
170 struct device *dev = &usb_pcwd->interface->dev;
193 usb_pcwd->cmd_command = data[0];
194 usb_pcwd->cmd_data_msb = data[1];
195 usb_pcwd->cmd_data_lsb = data[2];
198 atomic_set(&usb_pcwd->cmd_received, 1);
207 static int usb_pcwd_send_command(struct usb_pcwd_private *usb_pcwd,
215 if ((!usb_pcwd) || (!usb_pcwd->exists))
229 dev_dbg(&usb_pcwd->interface->dev,
233 atomic_set(&usb_pcwd->cmd_received, 0);
235 if (usb_control_msg(usb_pcwd->udev, usb_sndctrlpipe(usb_pcwd->udev, 0),
237 0x0200, usb_pcwd->interface_number, buf, 6,
239 dev_dbg(&usb_pcwd->interface->dev,
249 if (atomic_read(&usb_pcwd->cmd_received))
253 if ((got_response) && (cmd == usb_pcwd->cmd_command)) {
255 *msb = usb_pcwd->cmd_data_msb;
256 *lsb = usb_pcwd->cmd_data_lsb;
264 static int usb_pcwd_start(struct usb_pcwd_private *usb_pcwd)
271 retval = usb_pcwd_send_command(usb_pcwd, CMD_ENABLE_WATCHDOG,
282 static int usb_pcwd_stop(struct usb_pcwd_private *usb_pcwd)
289 retval = usb_pcwd_send_command(usb_pcwd, CMD_DISABLE_WATCHDOG,
300 static int usb_pcwd_keepalive(struct usb_pcwd_private *usb_pcwd)
305 usb_pcwd_send_command(usb_pcwd, CMD_TRIGGER, &dummy, &dummy);
310 static int usb_pcwd_set_heartbeat(struct usb_pcwd_private *usb_pcwd, int t)
319 usb_pcwd_send_command(usb_pcwd, CMD_WRITE_WATCHDOG_TIMEOUT, &msb, &lsb);
325 static int usb_pcwd_get_temperature(struct usb_pcwd_private *usb_pcwd,
331 usb_pcwd_send_command(usb_pcwd, CMD_READ_TEMP, &msb, &lsb);
342 static int usb_pcwd_get_timeleft(struct usb_pcwd_private *usb_pcwd,
350 usb_pcwd_send_command(usb_pcwd, CMD_READ_WATCHDOG_TIMEOUT, &msb, &lsb);
587 static inline void usb_pcwd_delete(struct usb_pcwd_private *usb_pcwd)
589 usb_free_urb(usb_pcwd->intr_urb);
590 usb_free_coherent(usb_pcwd->udev, usb_pcwd->intr_size,
591 usb_pcwd->intr_buffer, usb_pcwd->intr_dma);
592 kfree(usb_pcwd);
607 struct usb_pcwd_private *usb_pcwd = NULL;
646 usb_pcwd = kzalloc(sizeof(struct usb_pcwd_private), GFP_KERNEL);
647 if (usb_pcwd == NULL)
650 usb_pcwd_device = usb_pcwd;
652 mutex_init(&usb_pcwd->mtx);
653 usb_pcwd->udev = udev;
654 usb_pcwd->interface = interface;
655 usb_pcwd->interface_number = iface_desc->desc.bInterfaceNumber;
656 usb_pcwd->intr_size = (le16_to_cpu(endpoint->wMaxPacketSize) > 8 ?
660 usb_pcwd->intr_buffer = usb_alloc_coherent(udev, usb_pcwd->intr_size,
661 GFP_KERNEL, &usb_pcwd->intr_dma);
662 if (!usb_pcwd->intr_buffer) {
668 usb_pcwd->intr_urb = usb_alloc_urb(0, GFP_KERNEL);
669 if (!usb_pcwd->intr_urb)
673 usb_fill_int_urb(usb_pcwd->intr_urb, udev, pipe,
674 usb_pcwd->intr_buffer, usb_pcwd->intr_size,
675 usb_pcwd_intr_done, usb_pcwd, endpoint->bInterval);
676 usb_pcwd->intr_urb->transfer_dma = usb_pcwd->intr_dma;
677 usb_pcwd->intr_urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
680 if (usb_submit_urb(usb_pcwd->intr_urb, GFP_KERNEL)) {
687 usb_pcwd->exists = 1;
690 usb_pcwd_stop(usb_pcwd);
693 got_fw_rev = usb_pcwd_send_command(usb_pcwd, CMD_GET_FIRMWARE_VERSION,
703 usb_pcwd_send_command(usb_pcwd, CMD_GET_DIP_SWITCH_SETTINGS, &dummy,
717 if (usb_pcwd_set_heartbeat(usb_pcwd, heartbeat)) {
718 usb_pcwd_set_heartbeat(usb_pcwd, WATCHDOG_HEARTBEAT);
744 usb_set_intfdata(interface, usb_pcwd);
756 if (usb_pcwd)
757 usb_pcwd_delete(usb_pcwd);
773 struct usb_pcwd_private *usb_pcwd;
778 usb_pcwd = usb_get_intfdata(interface);
781 mutex_lock(&usb_pcwd->mtx);
785 usb_pcwd_stop(usb_pcwd);
788 usb_pcwd->exists = 0;
795 mutex_unlock(&usb_pcwd->mtx);
798 usb_pcwd_delete(usb_pcwd);