• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/usb/serial/

Lines Matching refs:edge_serial

233 static void  process_rcvd_data(struct edgeport_serial *edge_serial,
235 static void process_rcvd_status(struct edgeport_serial *edge_serial,
254 static void send_more_port_data(struct edgeport_serial *edge_serial,
263 static void get_manufacturing_desc(struct edgeport_serial *edge_serial);
264 static void get_boot_desc(struct edgeport_serial *edge_serial);
265 static void load_application_firmware(struct edgeport_serial *edge_serial);
284 static void update_edgeport_E2PROM(struct edgeport_serial *edge_serial)
297 switch (edge_serial->product_info.iDownloadFile) {
309 &edge_serial->serial->dev->dev);
322 BootCurVer = (edge_serial->boot_descriptor.MajorVersion << 24) +
323 (edge_serial->boot_descriptor.MinorVersion << 16) +
324 le16_to_cpu(edge_serial->boot_descriptor.BuildNumber);
331 edge_serial->boot_descriptor.MajorVersion,
332 edge_serial->boot_descriptor.MinorVersion,
333 le16_to_cpu(edge_serial->boot_descriptor.BuildNumber));
338 edge_serial->boot_descriptor.MajorVersion,
339 edge_serial->boot_descriptor.MinorVersion,
340 le16_to_cpu(edge_serial->boot_descriptor.BuildNumber),
348 response = rom_write(edge_serial->serial,
354 dev_err(&edge_serial->serial->dev->dev,
398 static void get_product_info(struct edgeport_serial *edge_serial)
400 struct edgeport_product_info *product_info = &edge_serial->product_info;
404 product_info->ProductId = (__u16)(le16_to_cpu(edge_serial->serial->dev->descriptor.idProduct) & ~ION_DEVICE_ID_80251_NETCHIP);
405 product_info->NumPorts = edge_serial->manuf_descriptor.NumPorts;
408 product_info->RomSize = edge_serial->manuf_descriptor.RomSize;
409 product_info->RamSize = edge_serial->manuf_descriptor.RamSize;
410 product_info->CpuRev = edge_serial->manuf_descriptor.CpuRev;
411 product_info->BoardRev = edge_serial->manuf_descriptor.BoardRev;
414 edge_serial->boot_descriptor.MajorVersion;
416 edge_serial->boot_descriptor.MinorVersion;
418 edge_serial->boot_descriptor.BuildNumber;
421 edge_serial->manuf_descriptor.DescDate,
422 sizeof(edge_serial->manuf_descriptor.DescDate));
425 if (le16_to_cpu(edge_serial->serial->dev->descriptor.idProduct)
529 struct edgeport_serial *edge_serial = urb->context;
562 usb_serial_debug_data(debug, &edge_serial->serial->dev->dev,
568 spin_lock(&edge_serial->es_lock);
569 edge_serial->rxBytesAvail += bytes_avail;
570 dbg("%s - bytes_avail=%d, rxBytesAvail=%d, read_in_progress=%d", __func__, bytes_avail, edge_serial->rxBytesAvail, edge_serial->read_in_progress);
572 if (edge_serial->rxBytesAvail > 0 &&
573 !edge_serial->read_in_progress) {
575 edge_serial->read_in_progress = true;
579 edge_serial->read_urb->dev = edge_serial->serial->dev;
580 result = usb_submit_urb(edge_serial->read_urb, GFP_ATOMIC);
582 dev_err(&edge_serial->serial->dev->dev, "%s - usb_submit_urb(read bulk) failed with result = %d\n", __func__, result);
583 edge_serial->read_in_progress = false;
586 spin_unlock(&edge_serial->es_lock);
593 (portNumber < edge_serial->serial->num_ports)) {
596 port = edge_serial->serial->port[portNumber];
616 send_more_port_data(edge_serial,
641 struct edgeport_serial *edge_serial = urb->context;
652 edge_serial->read_in_progress = false;
658 edge_serial->read_in_progress = false;
664 usb_serial_debug_data(debug, &edge_serial->serial->dev->dev,
667 spin_lock(&edge_serial->es_lock);
670 edge_serial->rxBytesAvail -= raw_data_length;
673 raw_data_length, edge_serial->rxBytesAvail);
675 process_rcvd_data(edge_serial, data, urb->actual_length);
678 if (edge_serial->rxBytesAvail > 0) {
680 edge_serial->read_urb->dev = edge_serial->serial->dev;
681 retval = usb_submit_urb(edge_serial->read_urb, GFP_ATOMIC);
686 edge_serial->read_in_progress = false;
689 edge_serial->read_in_progress = false;
692 spin_unlock(&edge_serial->es_lock);
790 struct edgeport_serial *edge_serial;
801 edge_serial = usb_get_serial_data(serial);
802 if (edge_serial == NULL)
804 if (edge_serial->interrupt_in_buffer == NULL) {
808 edge_serial->interrupt_in_buffer =
810 edge_serial->interrupt_in_endpoint =
812 edge_serial->interrupt_read_urb = port0->interrupt_in_urb;
813 edge_serial->bulk_in_buffer = port0->bulk_in_buffer;
814 edge_serial->bulk_in_endpoint =
816 edge_serial->read_urb = port0->read_urb;
817 edge_serial->bulk_out_endpoint =
821 usb_fill_int_urb(edge_serial->interrupt_read_urb,
826 edge_serial->interrupt_read_urb->transfer_buffer_length,
827 edge_interrupt_callback, edge_serial,
828 edge_serial->interrupt_read_urb->interval);
831 usb_fill_bulk_urb(edge_serial->read_urb, serial->dev,
835 edge_serial->read_urb->transfer_buffer_length,
836 edge_bulk_in_callback, edge_serial);
837 edge_serial->read_in_progress = false;
842 response = usb_submit_urb(edge_serial->interrupt_read_urb,
1034 struct edgeport_serial *edge_serial;
1040 edge_serial = usb_get_serial_data(port->serial);
1042 if (edge_serial == NULL || edge_port == NULL)
1050 if ((!edge_serial->is_epic) ||
1051 ((edge_serial->is_epic) &&
1052 (edge_serial->epic_descriptor.Supports.IOSPChase))) {
1065 if ((!edge_serial->is_epic) ||
1066 ((edge_serial->is_epic) &&
1067 (edge_serial->epic_descriptor.Supports.IOSPClose))) {
1202 static void send_more_port_data(struct edgeport_serial *edge_serial,
1289 usb_fill_bulk_urb(urb, edge_serial->serial->dev,
1290 usb_sndbulkpipe(edge_serial->serial->dev,
1291 edge_serial->bulk_out_endpoint),
1299 urb->dev = edge_serial->serial->dev;
1706 struct edgeport_serial *edge_serial = usb_get_serial_data(port->serial);
1709 if ((!edge_serial->is_epic) ||
1710 ((edge_serial->is_epic) &&
1711 (edge_serial->epic_descriptor.Supports.IOSPChase))) {
1725 if ((!edge_serial->is_epic) ||
1726 ((edge_serial->is_epic) &&
1727 (edge_serial->epic_descriptor.Supports.IOSPSetClrBreak))) {
1750 static void process_rcvd_data(struct edgeport_serial *edge_serial,
1771 switch (edge_serial->rxState) {
1773 edge_serial->rxHeader1 = *buffer;
1778 edge_serial->rxState = EXPECT_HDR2;
1783 edge_serial->rxHeader2 = *buffer;
1788 edge_serial->rxHeader1, edge_serial->rxHeader2);
1792 if (IS_CMD_STAT_HDR(edge_serial->rxHeader1)) {
1797 edge_serial->rxPort =
1798 IOSP_GET_HDR_PORT(edge_serial->rxHeader1);
1799 edge_serial->rxStatusCode =
1801 edge_serial->rxHeader1);
1804 edge_serial->rxStatusCode)) {
1809 edge_serial->rxStatusParam
1810 = edge_serial->rxHeader2;
1811 edge_serial->rxState = EXPECT_HDR3;
1816 process_rcvd_status(edge_serial,
1817 edge_serial->rxHeader2, 0);
1818 edge_serial->rxState = EXPECT_HDR1;
1821 edge_serial->rxPort =
1822 IOSP_GET_HDR_PORT(edge_serial->rxHeader1);
1823 edge_serial->rxBytesRemaining =
1825 edge_serial->rxHeader1,
1826 edge_serial->rxHeader2);
1829 edge_serial->rxPort,
1830 edge_serial->rxBytesRemaining);
1838 edge_serial->rxState = EXPECT_DATA;
1844 if (bufferLength < edge_serial->rxBytesRemaining) {
1847 edge_serial->rxState = EXPECT_DATA;
1850 rxLen = edge_serial->rxBytesRemaining;
1852 edge_serial->rxState = EXPECT_HDR1;
1856 edge_serial->rxBytesRemaining -= rxLen;
1861 port = edge_serial->serial->port[
1862 edge_serial->rxPort];
1869 __func__, rxLen, edge_serial->rxPort);
1870 edge_tty_recv(&edge_serial->serial->dev->dev, tty, buffer, rxLen);
1880 edge_serial->rxHeader3 = *buffer;
1886 process_rcvd_status(edge_serial,
1887 edge_serial->rxStatusParam,
1888 edge_serial->rxHeader3);
1889 edge_serial->rxState = EXPECT_HDR1;
1901 static void process_rcvd_status(struct edgeport_serial *edge_serial,
1907 __u8 code = edge_serial->rxStatusCode;
1910 port = edge_serial->serial->port[edge_serial->rxPort];
1913 dev_err(&edge_serial->serial->dev->dev,
1915 __func__, edge_serial->rxPort);
1919 dbg("%s - port %d", __func__, edge_serial->rxPort);
1927 __func__, edge_serial->rxPort, byte3);
1942 dbg("%s ========== Port %u CHECK_RSP Sequence = %02x =============", __func__, edge_serial->rxPort, byte3);
1951 dbg("%s - Port %u Open Response Inital MSR = %02x TxBufferSize = %d", __func__, edge_serial->rxPort, byte2, edge_port->txCredits);
1981 __func__, edge_serial->rxPort, byte2);
1987 __func__, edge_serial->rxPort, byte2, byte3);
1995 * __func__, edge_serial->rxPort, byte2, byte3);
2000 __func__, edge_serial->rxPort, byte2);
2314 struct edgeport_serial *edge_serial =
2332 usb_fill_bulk_urb(urb, edge_serial->serial->dev,
2333 usb_sndbulkpipe(edge_serial->serial->dev,
2334 edge_serial->bulk_out_endpoint),
2365 struct edgeport_serial *edge_serial =
2375 if (edge_serial->is_epic &&
2376 !edge_serial->epic_descriptor.Supports.IOSPSetBaudRate) {
2466 struct edgeport_serial *edge_serial =
2476 if (edge_serial->is_epic &&
2477 !edge_serial->epic_descriptor.Supports.IOSPWriteMCR &&
2483 if (edge_serial->is_epic &&
2484 !edge_serial->epic_descriptor.Supports.IOSPWriteLCR &&
2521 struct edgeport_serial *edge_serial =
2608 if ((!edge_serial->is_epic) ||
2609 ((edge_serial->is_epic) &&
2610 (edge_serial->epic_descriptor.Supports.IOSPSetXChar))) {
2637 if ((!edge_serial->is_epic) ||
2638 ((edge_serial->is_epic) &&
2639 (edge_serial->epic_descriptor.Supports.IOSPSetRxFlow)))
2641 if ((!edge_serial->is_epic) ||
2642 ((edge_serial->is_epic) &&
2643 (edge_serial->epic_descriptor.Supports.IOSPSetTxFlow)))
2716 static void get_manufacturing_desc(struct edgeport_serial *edge_serial)
2722 response = rom_read(edge_serial->serial,
2726 (__u8 *)(&edge_serial->manuf_descriptor));
2729 dev_err(&edge_serial->serial->dev->dev,
2735 edge_serial->manuf_descriptor.RomSize);
2737 edge_serial->manuf_descriptor.RamSize);
2739 edge_serial->manuf_descriptor.CpuRev);
2741 edge_serial->manuf_descriptor.BoardRev);
2743 edge_serial->manuf_descriptor.NumPorts);
2745 edge_serial->manuf_descriptor.DescDate[0],
2746 edge_serial->manuf_descriptor.DescDate[1],
2747 edge_serial->manuf_descriptor.DescDate[2]+1900);
2749 edge_serial->manuf_descriptor.SerialNumber,
2750 edge_serial->manuf_descriptor.SerNumLength/2);
2753 edge_serial->manuf_descriptor.AssemblyNumber,
2754 edge_serial->manuf_descriptor.AssemblyNumLength/2);
2757 edge_serial->manuf_descriptor.OemAssyNumber,
2758 edge_serial->manuf_descriptor.OemAssyNumLength/2);
2761 edge_serial->manuf_descriptor.UartType);
2763 edge_serial->manuf_descriptor.IonPid);
2765 edge_serial->manuf_descriptor.IonConfig);
2775 static void get_boot_desc(struct edgeport_serial *edge_serial)
2781 response = rom_read(edge_serial->serial,
2785 (__u8 *)(&edge_serial->boot_descriptor));
2788 dev_err(&edge_serial->serial->dev->dev,
2793 le16_to_cpu(edge_serial->boot_descriptor.BootCodeLength));
2795 edge_serial->boot_descriptor.MajorVersion);
2797 edge_serial->boot_descriptor.MinorVersion);
2799 le16_to_cpu(edge_serial->boot_descriptor.BuildNumber));
2801 le16_to_cpu(edge_serial->boot_descriptor.Capabilities));
2803 edge_serial->boot_descriptor.UConfig0);
2805 edge_serial->boot_descriptor.UConfig1);
2814 static void load_application_firmware(struct edgeport_serial *edge_serial)
2824 switch (edge_serial->product_info.iDownloadFile) {
2844 &edge_serial->serial->dev->dev);
2856 edge_serial->product_info.FirmwareMajorVersion = rec->data[0];
2857 edge_serial->product_info.FirmwareMinorVersion = rec->data[1];
2858 edge_serial->product_info.FirmwareBuildNumber = cpu_to_le16(build);
2863 response = sram_write(edge_serial->serial,
2869 dev_err(&edge_serial->serial->dev->dev,
2878 response = usb_control_msg (edge_serial->serial->dev,
2879 usb_sndctrlpipe(edge_serial->serial->dev, 0),
2893 struct edgeport_serial *edge_serial;
2908 edge_serial = kzalloc(sizeof(struct edgeport_serial), GFP_KERNEL);
2909 if (edge_serial == NULL) {
2913 spin_lock_init(&edge_serial->es_lock);
2914 edge_serial->serial = serial;
2915 usb_set_serial_data(serial, edge_serial);
2919 &edge_serial->name[0], MAX_NAME_LEN+1);
2922 edge_serial->name[i++] = ' ';
2924 &edge_serial->name[i], MAX_NAME_LEN+2 - i);
2926 dev_info(&serial->dev->dev, "%s detected\n", edge_serial->name);
2929 if (get_epic_descriptor(edge_serial) <= 0) {
2931 memcpy(&edge_serial->epic_descriptor.Supports, descriptor,
2935 get_manufacturing_desc(edge_serial);
2938 get_boot_desc(edge_serial);
2940 get_product_info(edge_serial);
2945 if ((!edge_serial->is_epic) &&
2946 (edge_serial->product_info.NumPorts != serial->num_ports)) {
2950 edge_serial->product_info.NumPorts,
2957 if (!edge_serial->is_epic) {
2959 load_application_firmware(edge_serial);
2964 update_edgeport_E2PROM(edge_serial);
2973 edge_serial->product_info.FirmwareMajorVersion,
2974 edge_serial->product_info.FirmwareMinorVersion,
2975 le16_to_cpu(edge_serial->product_info.FirmwareBuildNumber));
2992 kfree(edge_serial);
3002 if (edge_serial->is_epic) {
3020 edge_serial->interrupt_read_urb =
3022 if (!edge_serial->interrupt_read_urb) {
3026 edge_serial->interrupt_in_buffer =
3028 if (!edge_serial->interrupt_in_buffer) {
3030 usb_free_urb(edge_serial->interrupt_read_urb);
3033 edge_serial->interrupt_in_endpoint =
3038 edge_serial->interrupt_read_urb,
3042 edge_serial->interrupt_in_buffer,
3045 edge_serial,
3057 edge_serial->read_urb =
3059 if (!edge_serial->read_urb) {
3063 edge_serial->bulk_in_buffer =
3065 if (!edge_serial->bulk_in_buffer) {
3067 usb_free_urb(edge_serial->read_urb);
3070 edge_serial->bulk_in_endpoint =
3074 usb_fill_bulk_urb(edge_serial->read_urb, dev,
3077 edge_serial->bulk_in_buffer,
3080 edge_serial);
3088 edge_serial->bulk_out_endpoint =
3102 response = usb_submit_urb(edge_serial->interrupt_read_urb,
3119 struct edgeport_serial *edge_serial = usb_get_serial_data(serial);
3125 if (edge_serial->is_epic) {
3126 usb_kill_urb(edge_serial->interrupt_read_urb);
3127 usb_free_urb(edge_serial->interrupt_read_urb);
3128 kfree(edge_serial->interrupt_in_buffer);
3130 usb_kill_urb(edge_serial->read_urb);
3131 usb_free_urb(edge_serial->read_urb);
3132 kfree(edge_serial->bulk_in_buffer);
3143 struct edgeport_serial *edge_serial = usb_get_serial_data(serial);
3151 kfree(edge_serial);