• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500-V1.0.1.40_1.0.68/src/linux/linux-2.6/drivers/char/watchdog/

Lines Matching refs:usb_pcwd

171 	struct usb_pcwd_private *usb_pcwd = (struct usb_pcwd_private *)urb->context;
172 unsigned char *data = usb_pcwd->intr_buffer;
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, unsigned char cmd,
214 if ((!usb_pcwd) || (!usb_pcwd->exists))
227 atomic_set (&usb_pcwd->cmd_received, 0);
229 if (usb_control_msg(usb_pcwd->udev, usb_sndctrlpipe(usb_pcwd->udev, 0),
231 0x0200, usb_pcwd->interface_number, buf, sizeof(buf),
240 if (atomic_read (&usb_pcwd->cmd_received))
244 if ((got_response) && (cmd == usb_pcwd->cmd_command)) {
246 *msb = usb_pcwd->cmd_data_msb;
247 *lsb = usb_pcwd->cmd_data_lsb;
253 static int usb_pcwd_start(struct usb_pcwd_private *usb_pcwd)
260 retval = usb_pcwd_send_command(usb_pcwd, CMD_ENABLE_WATCHDOG, &msb, &lsb);
270 static int usb_pcwd_stop(struct usb_pcwd_private *usb_pcwd)
277 retval = usb_pcwd_send_command(usb_pcwd, CMD_DISABLE_WATCHDOG, &msb, &lsb);
287 static int usb_pcwd_keepalive(struct usb_pcwd_private *usb_pcwd)
292 usb_pcwd_send_command(usb_pcwd, CMD_TRIGGER, &dummy, &dummy);
297 static int usb_pcwd_set_heartbeat(struct usb_pcwd_private *usb_pcwd, int t)
306 usb_pcwd_send_command(usb_pcwd, CMD_WRITE_WATCHDOG_TIMEOUT, &msb, &lsb);
312 static int usb_pcwd_get_temperature(struct usb_pcwd_private *usb_pcwd, int *temperature)
316 usb_pcwd_send_command(usb_pcwd, CMD_READ_TEMP, &msb, &lsb);
327 static int usb_pcwd_get_timeleft(struct usb_pcwd_private *usb_pcwd, int *time_left)
333 usb_pcwd_send_command(usb_pcwd, CMD_READ_WATCHDOG_TIMEOUT, &msb, &lsb);
570 static inline void usb_pcwd_delete (struct usb_pcwd_private *usb_pcwd)
572 usb_free_urb(usb_pcwd->intr_urb);
573 if (usb_pcwd->intr_buffer != NULL)
574 usb_buffer_free(usb_pcwd->udev, usb_pcwd->intr_size,
575 usb_pcwd->intr_buffer, usb_pcwd->intr_dma);
576 kfree (usb_pcwd);
590 struct usb_pcwd_private *usb_pcwd = NULL;
629 usb_pcwd = kmalloc (sizeof(struct usb_pcwd_private), GFP_KERNEL);
630 if (usb_pcwd == NULL) {
634 memset (usb_pcwd, 0x00, sizeof (*usb_pcwd));
636 usb_pcwd_device = usb_pcwd;
638 mutex_init(&usb_pcwd->mtx);
639 usb_pcwd->udev = udev;
640 usb_pcwd->interface = interface;
641 usb_pcwd->interface_number = iface_desc->desc.bInterfaceNumber;
642 usb_pcwd->intr_size = (le16_to_cpu(endpoint->wMaxPacketSize) > 8 ? le16_to_cpu(endpoint->wMaxPacketSize) : 8);
645 if (!(usb_pcwd->intr_buffer = usb_buffer_alloc(udev, usb_pcwd->intr_size, GFP_ATOMIC, &usb_pcwd->intr_dma))) {
651 usb_pcwd->intr_urb = usb_alloc_urb(0, GFP_KERNEL);
652 if (!usb_pcwd->intr_urb) {
658 usb_fill_int_urb(usb_pcwd->intr_urb, udev, pipe,
659 usb_pcwd->intr_buffer, usb_pcwd->intr_size,
660 usb_pcwd_intr_done, usb_pcwd, endpoint->bInterval);
661 usb_pcwd->intr_urb->transfer_dma = usb_pcwd->intr_dma;
662 usb_pcwd->intr_urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
665 if (usb_submit_urb(usb_pcwd->intr_urb, GFP_KERNEL)) {
672 usb_pcwd->exists = 1;
675 usb_pcwd_stop(usb_pcwd);
678 got_fw_rev = usb_pcwd_send_command(usb_pcwd, CMD_GET_FIRMWARE_VERSION, &fw_rev_major, &fw_rev_minor);
689 usb_pcwd_send_command(usb_pcwd, CMD_GET_DIP_SWITCH_SETTINGS, &dummy, &option_switches);
701 if (usb_pcwd_set_heartbeat(usb_pcwd, heartbeat)) {
702 usb_pcwd_set_heartbeat(usb_pcwd, WATCHDOG_HEARTBEAT);
729 usb_set_intfdata (interface, usb_pcwd);
741 if (usb_pcwd)
742 usb_pcwd_delete(usb_pcwd);
758 struct usb_pcwd_private *usb_pcwd;
763 usb_pcwd = usb_get_intfdata (interface);
766 mutex_lock(&usb_pcwd->mtx);
770 usb_pcwd_stop(usb_pcwd);
773 usb_pcwd->exists = 0;
780 mutex_unlock(&usb_pcwd->mtx);
783 usb_pcwd_delete(usb_pcwd);