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

Lines Matching defs:garmin_data_p

187 static void gsp_next_packet(struct garmin_data * garmin_data_p);
234 static inline int noResponseFromAppLayer(struct garmin_data * garmin_data_p)
236 return ((garmin_data_p->flags
299 static int pkt_add(struct garmin_data * garmin_data_p,
312 dev_err(&garmin_data_p->port->dev, "out of memory\n");
318 spin_lock_irqsave(&garmin_data_p->lock, flags);
319 garmin_data_p->flags |= FLAGS_QUEUING;
320 result = list_empty(&garmin_data_p->pktlist);
321 pkt->seq = garmin_data_p->seq_counter++;
322 list_add_tail(&pkt->list, &garmin_data_p->pktlist);
323 state = garmin_data_p->state;
324 spin_unlock_irqrestore(&garmin_data_p->lock, flags);
329 gsp_next_packet(garmin_data_p);
337 static struct garmin_packet *pkt_pop(struct garmin_data * garmin_data_p)
342 spin_lock_irqsave(&garmin_data_p->lock, flags);
343 if (!list_empty(&garmin_data_p->pktlist)) {
344 result = (struct garmin_packet *)garmin_data_p->pktlist.next;
347 spin_unlock_irqrestore(&garmin_data_p->lock, flags);
353 static void pkt_clear(struct garmin_data * garmin_data_p)
360 spin_lock_irqsave(&garmin_data_p->lock, flags);
361 while (!list_empty(&garmin_data_p->pktlist)) {
362 result = (struct garmin_packet *)garmin_data_p->pktlist.next;
366 spin_unlock_irqrestore(&garmin_data_p->lock, flags);
375 static int gsp_send_ack(struct garmin_data * garmin_data_p, __u8 pkt_id)
405 send_to_tty(garmin_data_p->port, pkt, l);
414 * the complete packet (pkzid ... cksum) is in garmin_data_p->inbuf starting
421 static int gsp_rec_packet(struct garmin_data * garmin_data_p, int count)
423 const __u8* recpkt = garmin_data_p->inbuffer+GSP_INITIAL_OFFSET;
424 __le32 *usbdata = (__le32 *) garmin_data_p->inbuffer;
431 usb_serial_debug_data(debug, &garmin_data_p->port->dev,
465 garmin_write_bulk (garmin_data_p->port, garmin_data_p->inbuffer,
470 if (isAbortTrfCmnd(garmin_data_p->inbuffer)) {
471 garmin_data_p->flags |= FLAGS_DROP_DATA;
472 pkt_clear(garmin_data_p);
498 static int gsp_receive(struct garmin_data * garmin_data_p,
514 spin_lock_irqsave(&garmin_data_p->lock, flags);
515 dest = garmin_data_p->inbuffer;
516 size = garmin_data_p->insize;
517 dleSeen = garmin_data_p->flags & FLAGS_GSP_DLESEEN;
518 skip = garmin_data_p->flags & FLAGS_GSP_SKIP;
519 spin_unlock_irqrestore(&garmin_data_p->lock, flags);
560 gsp_rec_packet(garmin_data_p, size);
588 spin_lock_irqsave(&garmin_data_p->lock, flags);
590 garmin_data_p->insize = size;
594 garmin_data_p->flags |= FLAGS_GSP_SKIP;
596 garmin_data_p->flags &= ~FLAGS_GSP_SKIP;
599 garmin_data_p->flags |= FLAGS_GSP_DLESEEN;
601 garmin_data_p->flags &= ~FLAGS_GSP_DLESEEN;
604 garmin_data_p->state = STATE_GSP_WAIT_DATA;
607 spin_unlock_irqrestore(&garmin_data_p->lock, flags);
610 gsp_next_packet(garmin_data_p);
626 static int gsp_send(struct garmin_data * garmin_data_p,
638 garmin_data_p->state, count);
640 k = garmin_data_p->outsize;
643 garmin_data_p->outsize = 0;
647 memcpy(garmin_data_p->outbuffer+k, buf, count);
649 garmin_data_p->outsize = k;
652 pktid = getPacketId(garmin_data_p->outbuffer);
653 datalen= getDataLength(garmin_data_p->outbuffer);
664 /* garmin_data_p->outbuffer now contains a complete packet */
666 usb_serial_debug_data(debug, &garmin_data_p->port->dev,
667 __FUNCTION__, k, garmin_data_p->outbuffer);
669 garmin_data_p->outsize = 0;
671 if (GARMIN_LAYERID_APPL != getLayerId(garmin_data_p->outbuffer)) {
673 getLayerId(garmin_data_p->outbuffer));
690 src = garmin_data_p->outbuffer+GARMIN_PKTHDR_LENGTH;
696 src = garmin_data_p->outbuffer+GARMIN_PKTHDR_LENGTH;
700 dst = garmin_data_p->outbuffer+GPS_OUT_BUFSIZ-datalen;
705 dst = garmin_data_p->outbuffer;
730 i = dst-garmin_data_p->outbuffer;
732 send_to_tty(garmin_data_p->port, garmin_data_p->outbuffer, i);
734 garmin_data_p->pkt_id = pktid;
735 garmin_data_p->state = STATE_WAIT_TTY_ACK;
747 static void gsp_next_packet(struct garmin_data * garmin_data_p)
751 while ((pkt = pkt_pop(garmin_data_p)) != NULL) {
753 if (gsp_send(garmin_data_p, pkt->data, pkt->size) > 0) {
777 static int nat_receive(struct garmin_data * garmin_data_p,
788 if (garmin_data_p->insize >= GARMIN_PKTHDR_LENGTH)
790 +getDataLength(garmin_data_p->inbuffer);
798 garmin_data_p->insize = 0;
802 len -= garmin_data_p->insize;
806 dest = garmin_data_p->inbuffer
807 +garmin_data_p->insize;
809 garmin_data_p->insize += len;
815 if (garmin_data_p->insize >= GARMIN_PKTHDR_LENGTH) {
817 getDataLength(garmin_data_p->inbuffer);
818 if (garmin_data_p->insize >= len) {
819 garmin_write_bulk (garmin_data_p->port,
820 garmin_data_p->inbuffer,
822 garmin_data_p->insize = 0;
826 if (isAbortTrfCmnd(garmin_data_p->inbuffer)) {
827 spin_lock_irqsave(&garmin_data_p->lock, flags);
828 garmin_data_p->flags |= FLAGS_DROP_DATA;
829 spin_unlock_irqrestore(&garmin_data_p->lock, flags);
830 pkt_clear(garmin_data_p);
845 struct garmin_data * garmin_data_p = usb_get_serial_port_data(port);
846 __le32 *pkt = (__le32 *)garmin_data_p->privpkt;
852 pkt[4] = __cpu_to_le32(garmin_data_p->mode);
853 pkt[5] = __cpu_to_le32(garmin_data_p->serial_num);
867 struct garmin_data * garmin_data_p = usb_get_serial_port_data(port);
869 spin_lock_irqsave(&garmin_data_p->lock, flags);
870 garmin_data_p->flags &= ~(CLEAR_HALT_REQUIRED);
871 garmin_data_p->state = STATE_RESET;
872 garmin_data_p->serial_num = 0;
873 spin_unlock_irqrestore(&garmin_data_p->lock, flags);
889 static int garmin_clear(struct garmin_data * garmin_data_p)
894 struct usb_serial_port *port = garmin_data_p->port;
896 if (port != NULL && garmin_data_p->flags & FLAGS_APP_RESP_SEEN) {
903 pkt_clear(garmin_data_p);
905 spin_lock_irqsave(&garmin_data_p->lock, flags);
906 garmin_data_p->insize = 0;
907 garmin_data_p->outsize = 0;
908 spin_unlock_irqrestore(&garmin_data_p->lock, flags);
922 struct garmin_data * garmin_data_p = usb_get_serial_port_data(port);
940 garmin_data_p->state = STATE_ACTIVE;
946 spin_lock_irqsave(&garmin_data_p->lock, flags);
947 garmin_data_p->ignorePkts++;
948 spin_unlock_irqrestore(&garmin_data_p->lock, flags);
956 spin_lock_irqsave(&garmin_data_p->lock, flags);
957 garmin_data_p->ignorePkts++;
958 spin_unlock_irqrestore(&garmin_data_p->lock, flags);
974 struct garmin_data * garmin_data_p = usb_get_serial_port_data(port);
986 spin_lock_irqsave(&garmin_data_p->lock, flags);
987 garmin_data_p->mode = initial_mode;
988 garmin_data_p->count = 0;
989 garmin_data_p->flags = 0;
990 spin_unlock_irqrestore(&garmin_data_p->lock, flags);
996 if (garmin_data_p->state == STATE_RESET) {
1000 garmin_data_p->state = STATE_ACTIVE;
1009 struct garmin_data * garmin_data_p = usb_get_serial_port_data(port);
1012 port->number, garmin_data_p->mode,
1013 garmin_data_p->state, garmin_data_p->flags);
1018 garmin_clear(garmin_data_p);
1024 if (noResponseFromAppLayer(garmin_data_p) ||
1025 ((garmin_data_p->flags & CLEAR_HALT_REQUIRED) != 0)) {
1027 garmin_data_p->state = STATE_RESET;
1029 garmin_data_p->state = STATE_DISCONNECTED;
1038 struct garmin_data * garmin_data_p = usb_get_serial_port_data(port);
1048 spin_lock_irqsave(&garmin_data_p->lock, flags);
1049 garmin_data_p->flags |= CLEAR_HALT_REQUIRED;
1050 spin_unlock_irqrestore(&garmin_data_p->lock, flags);
1062 struct garmin_data * garmin_data_p = usb_get_serial_port_data(port);
1068 garmin_data_p->state);
1070 spin_lock_irqsave(&garmin_data_p->lock, flags);
1071 garmin_data_p->flags &= ~FLAGS_DROP_DATA;
1072 spin_unlock_irqrestore(&garmin_data_p->lock, flags);
1099 spin_lock_irqsave(&garmin_data_p->lock, flags);
1100 garmin_data_p->flags |= FLAGS_APP_REQ_SEEN;
1101 spin_unlock_irqrestore(&garmin_data_p->lock, flags);
1102 if (garmin_data_p->mode == MODE_GARMIN_SERIAL) {
1103 pkt_clear(garmin_data_p);
1104 garmin_data_p->state = STATE_GSP_WAIT_DATA;
1119 && (garmin_data_p->mode == MODE_GARMIN_SERIAL)) {
1121 gsp_send_ack(garmin_data_p, buffer[4]);
1139 struct garmin_data * garmin_data_p = usb_get_serial_port_data(port);
1140 __le32 *privpkt = (__le32 *)garmin_data_p->privpkt;
1151 memcpy(garmin_data_p->privpkt, buf, len);
1153 pktsiz = getDataLength(garmin_data_p->privpkt);
1154 pktid = getPacketId(garmin_data_p->privpkt);
1157 && GARMIN_LAYERID_PRIVATE == getLayerId(garmin_data_p->privpkt)) {
1163 garmin_clear(garmin_data_p);
1178 garmin_data_p->mode = __le32_to_cpu(privpkt[3]);
1180 __FUNCTION__, garmin_data_p->mode);
1188 spin_lock_irqsave(&garmin_data_p->lock, flags);
1189 garmin_data_p->flags |= FLAGS_APP_REQ_SEEN;
1190 spin_unlock_irqrestore(&garmin_data_p->lock, flags);
1199 garmin_data_p->mode);
1206 garmin_data_p->ignorePkts = 0;
1208 if (garmin_data_p->mode == MODE_GARMIN_SERIAL) {
1209 return gsp_receive(garmin_data_p, buf, count);
1211 return nat_receive(garmin_data_p, buf, count);
1221 struct garmin_data * garmin_data_p = usb_get_serial_port_data(port);
1222 return GPS_OUT_BUFSIZ-garmin_data_p->outsize;
1234 //struct garmin_data * garmin_data_p = usb_get_serial_port_data(port);
1235 //return garmin_data_p->insize;
1240 static void garmin_read_process(struct garmin_data * garmin_data_p,
1245 if (garmin_data_p->flags & FLAGS_DROP_DATA) {
1248 } else if (garmin_data_p->state != STATE_DISCONNECTED &&
1249 garmin_data_p->state != STATE_RESET ) {
1256 spin_lock_irqsave(&garmin_data_p->lock, flags);
1257 garmin_data_p->flags |= FLAGS_APP_RESP_SEEN;
1258 spin_unlock_irqrestore(&garmin_data_p->lock, flags);
1264 if (garmin_data_p->flags & FLAGS_QUEUING) {
1265 pkt_add(garmin_data_p, data, data_length);
1266 } else if (garmin_data_p->mode == MODE_GARMIN_SERIAL) {
1268 pkt_add(garmin_data_p, data, data_length);
1271 send_to_tty(garmin_data_p->port, data, data_length);
1282 struct garmin_data * garmin_data_p = usb_get_serial_port_data(port);
1302 garmin_read_process(garmin_data_p, data, urb->actual_length);
1305 0 != (garmin_data_p->flags & FLAGS_BULK_IN_RESTART)) {
1306 spin_lock_irqsave(&garmin_data_p->lock, flags);
1307 garmin_data_p->flags &= ~FLAGS_BULK_IN_RESTART;
1308 spin_unlock_irqrestore(&garmin_data_p->lock, flags);
1316 if (0 == (garmin_data_p->flags & FLAGS_THROTTLED)) {
1325 spin_lock_irqsave(&garmin_data_p->lock, flags);
1326 garmin_data_p->flags &= ~FLAGS_BULK_IN_ACTIVE;
1327 spin_unlock_irqrestore(&garmin_data_p->lock, flags);
1339 struct garmin_data * garmin_data_p = usb_get_serial_port_data(port);
1368 if (0 == (garmin_data_p->flags & FLAGS_BULK_IN_ACTIVE)) {
1383 spin_lock_irqsave(&garmin_data_p->lock, flags);
1384 garmin_data_p->flags |= FLAGS_BULK_IN_ACTIVE;
1386 garmin_data_p->ignorePkts = 1;
1387 spin_unlock_irqrestore(&garmin_data_p->lock, flags);
1391 spin_lock_irqsave(&garmin_data_p->lock, flags);
1392 garmin_data_p->flags |= FLAGS_BULK_IN_RESTART;
1393 spin_unlock_irqrestore(&garmin_data_p->lock, flags);
1400 spin_lock_irqsave(&garmin_data_p->lock, flags);
1401 garmin_data_p->flags |= FLAGS_SESSION_REPLY1_SEEN;
1402 spin_unlock_irqrestore(&garmin_data_p->lock, flags);
1405 garmin_data_p->serial_num
1409 __FUNCTION__, garmin_data_p->serial_num);
1412 if (garmin_data_p->ignorePkts) {
1416 __FUNCTION__, garmin_data_p->ignorePkts);
1417 spin_lock_irqsave(&garmin_data_p->lock, flags);
1418 garmin_data_p->ignorePkts--;
1419 spin_unlock_irqrestore(&garmin_data_p->lock, flags);
1421 garmin_read_process(garmin_data_p, data, urb->actual_length);
1438 static int garmin_flush_queue(struct garmin_data * garmin_data_p)
1443 if ((garmin_data_p->flags & FLAGS_THROTTLED) == 0) {
1444 pkt = pkt_pop(garmin_data_p);
1446 send_to_tty(garmin_data_p->port, pkt->data, pkt->size);
1448 mod_timer(&garmin_data_p->timer, (1)+jiffies);
1451 spin_lock_irqsave(&garmin_data_p->lock, flags);
1452 garmin_data_p->flags &= ~FLAGS_QUEUING;
1453 spin_unlock_irqrestore(&garmin_data_p->lock, flags);
1463 struct garmin_data * garmin_data_p = usb_get_serial_port_data(port);
1468 spin_lock_irqsave(&garmin_data_p->lock, flags);
1469 garmin_data_p->flags |= FLAGS_QUEUING|FLAGS_THROTTLED;
1470 spin_unlock_irqrestore(&garmin_data_p->lock, flags);
1477 struct garmin_data * garmin_data_p = usb_get_serial_port_data(port);
1481 spin_lock_irqsave(&garmin_data_p->lock, flags);
1482 garmin_data_p->flags &= ~FLAGS_THROTTLED;
1483 spin_unlock_irqrestore(&garmin_data_p->lock, flags);
1487 if (garmin_data_p->mode == MODE_NATIVE)
1488 garmin_flush_queue(garmin_data_p);
1490 if (0 != (garmin_data_p->flags & FLAGS_BULK_IN_ACTIVE)) {
1508 struct garmin_data *garmin_data_p = (struct garmin_data *) data;
1511 if (garmin_data_p->mode == MODE_NATIVE)
1512 if (garmin_data_p->flags & FLAGS_QUEUING)
1513 garmin_flush_queue(garmin_data_p);
1522 struct garmin_data * garmin_data_p = NULL;
1526 garmin_data_p = kzalloc(sizeof(struct garmin_data), GFP_KERNEL);
1527 if (garmin_data_p == NULL) {
1531 init_timer(&garmin_data_p->timer);
1532 spin_lock_init(&garmin_data_p->lock);
1533 INIT_LIST_HEAD(&garmin_data_p->pktlist);
1534 //garmin_data_p->timer.expires = jiffies + session_timeout;
1535 garmin_data_p->timer.data = (unsigned long)garmin_data_p;
1536 garmin_data_p->timer.function = timeout_handler;
1537 garmin_data_p->port = port;
1538 garmin_data_p->state = 0;
1539 garmin_data_p->count = 0;
1540 usb_set_serial_port_data(port, garmin_data_p);
1551 struct garmin_data * garmin_data_p = usb_get_serial_port_data(port);
1556 del_timer_sync(&garmin_data_p->timer);
1557 kfree (garmin_data_p);