• 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:edge_serial

246 static void  process_rcvd_data		(struct edgeport_serial *edge_serial, unsigned char *buffer, __u16 bufferLength);
247 static void process_rcvd_status (struct edgeport_serial *edge_serial, __u8 byte2, __u8 byte3);
257 static void send_more_port_data (struct edgeport_serial *edge_serial, struct edgeport_port *edge_port);
262 static void get_manufacturing_desc (struct edgeport_serial *edge_serial);
263 static void get_boot_desc (struct edgeport_serial *edge_serial);
264 static void load_application_firmware (struct edgeport_serial *edge_serial);
282 static void update_edgeport_E2PROM (struct edgeport_serial *edge_serial)
296 switch (edge_serial->product_info.iDownloadFile) {
318 BootCurVer = (edge_serial->boot_descriptor.MajorVersion << 24) +
319 (edge_serial->boot_descriptor.MinorVersion << 16) +
320 le16_to_cpu(edge_serial->boot_descriptor.BuildNumber);
327 edge_serial->boot_descriptor.MajorVersion,
328 edge_serial->boot_descriptor.MinorVersion,
329 le16_to_cpu(edge_serial->boot_descriptor.BuildNumber));
334 edge_serial->boot_descriptor.MajorVersion,
335 edge_serial->boot_descriptor.MinorVersion,
336 le16_to_cpu(edge_serial->boot_descriptor.BuildNumber),
348 response = rom_write (edge_serial->serial, le16_to_cpu(record->ExtAddr), le16_to_cpu(record->Addr), le16_to_cpu(record->Len), &record->Data[0]);
350 dev_err(&edge_serial->serial->dev->dev, "rom_write failed (%x, %x, %d)\n", le16_to_cpu(record->ExtAddr), le16_to_cpu(record->Addr), le16_to_cpu(record->Len));
428 static void get_product_info(struct edgeport_serial *edge_serial)
430 struct edgeport_product_info *product_info = &edge_serial->product_info;
434 product_info->ProductId = (__u16)(le16_to_cpu(edge_serial->serial->dev->descriptor.idProduct) & ~ION_DEVICE_ID_80251_NETCHIP);
435 product_info->NumPorts = edge_serial->manuf_descriptor.NumPorts;
438 product_info->RomSize = edge_serial->manuf_descriptor.RomSize;
439 product_info->RamSize = edge_serial->manuf_descriptor.RamSize;
440 product_info->CpuRev = edge_serial->manuf_descriptor.CpuRev;
441 product_info->BoardRev = edge_serial->manuf_descriptor.BoardRev;
443 product_info->BootMajorVersion = edge_serial->boot_descriptor.MajorVersion;
444 product_info->BootMinorVersion = edge_serial->boot_descriptor.MinorVersion;
445 product_info->BootBuildNumber = edge_serial->boot_descriptor.BuildNumber;
447 memcpy(product_info->ManufactureDescDate, edge_serial->manuf_descriptor.DescDate, sizeof(edge_serial->manuf_descriptor.DescDate));
450 if (le16_to_cpu(edge_serial->serial->dev->descriptor.idProduct) & ION_DEVICE_ID_80251_NETCHIP) {
560 struct edgeport_serial *edge_serial = (struct edgeport_serial *)urb->context;
590 usb_serial_debug_data(debug, &edge_serial->serial->dev->dev, __FUNCTION__, length, data);
595 spin_lock(&edge_serial->es_lock);
596 edge_serial->rxBytesAvail += bytes_avail;
597 dbg("%s - bytes_avail=%d, rxBytesAvail=%d, read_in_progress=%d", __FUNCTION__, bytes_avail, edge_serial->rxBytesAvail, edge_serial->read_in_progress);
599 if (edge_serial->rxBytesAvail > 0 &&
600 !edge_serial->read_in_progress) {
602 edge_serial->read_in_progress = true;
605 edge_serial->read_urb->dev = edge_serial->serial->dev;
606 result = usb_submit_urb(edge_serial->read_urb, GFP_ATOMIC);
608 dev_err(&edge_serial->serial->dev->dev, "%s - usb_submit_urb(read bulk) failed with result = %d\n", __FUNCTION__, result);
609 edge_serial->read_in_progress = false;
612 spin_unlock(&edge_serial->es_lock);
618 while ((position < length) && (portNumber < edge_serial->serial->num_ports)) {
621 port = edge_serial->serial->port[portNumber];
634 send_more_port_data(edge_serial, edge_port);
657 struct edgeport_serial *edge_serial = (struct edgeport_serial *)urb->context;
666 edge_serial->read_in_progress = false;
672 edge_serial->read_in_progress = false;
678 usb_serial_debug_data(debug, &edge_serial->serial->dev->dev, __FUNCTION__, raw_data_length, data);
680 spin_lock(&edge_serial->es_lock);
683 edge_serial->rxBytesAvail -= raw_data_length;
685 dbg("%s - Received = %d, rxBytesAvail %d", __FUNCTION__, raw_data_length, edge_serial->rxBytesAvail);
687 process_rcvd_data (edge_serial, data, urb->actual_length);
690 if (edge_serial->rxBytesAvail > 0) {
692 edge_serial->read_urb->dev = edge_serial->serial->dev;
693 status = usb_submit_urb(edge_serial->read_urb, GFP_ATOMIC);
696 edge_serial->read_in_progress = false;
699 edge_serial->read_in_progress = false;
702 spin_unlock(&edge_serial->es_lock);
792 struct edgeport_serial *edge_serial;
806 edge_serial = usb_get_serial_data(serial);
807 if (edge_serial == NULL) {
810 if (edge_serial->interrupt_in_buffer == NULL) {
814 edge_serial->interrupt_in_buffer = port0->interrupt_in_buffer;
815 edge_serial->interrupt_in_endpoint = port0->interrupt_in_endpointAddress;
816 edge_serial->interrupt_read_urb = port0->interrupt_in_urb;
817 edge_serial->bulk_in_buffer = port0->bulk_in_buffer;
818 edge_serial->bulk_in_endpoint = port0->bulk_in_endpointAddress;
819 edge_serial->read_urb = port0->read_urb;
820 edge_serial->bulk_out_endpoint = port0->bulk_out_endpointAddress;
823 usb_fill_int_urb(edge_serial->interrupt_read_urb,
828 edge_serial->interrupt_read_urb->transfer_buffer_length,
829 edge_interrupt_callback, edge_serial,
830 edge_serial->interrupt_read_urb->interval);
833 usb_fill_bulk_urb(edge_serial->read_urb, serial->dev,
837 edge_serial->read_urb->transfer_buffer_length,
838 edge_bulk_in_callback, edge_serial);
839 edge_serial->read_in_progress = false;
843 response = usb_submit_urb (edge_serial->interrupt_read_urb, GFP_KERNEL);
1025 struct edgeport_serial *edge_serial;
1031 edge_serial = usb_get_serial_data(port->serial);
1033 if ((edge_serial == NULL) || (edge_port == NULL))
1041 if ((!edge_serial->is_epic) ||
1042 ((edge_serial->is_epic) &&
1043 (edge_serial->epic_descriptor.Supports.IOSPChase))) {
1057 if ((!edge_serial->is_epic) ||
1058 ((edge_serial->is_epic) &&
1059 (edge_serial->epic_descriptor.Supports.IOSPClose))) {
1182 static void send_more_port_data(struct edgeport_serial *edge_serial, struct edgeport_port *edge_port)
1259 usb_fill_bulk_urb (urb, edge_serial->serial->dev,
1260 usb_sndbulkpipe(edge_serial->serial->dev, edge_serial->bulk_out_endpoint),
1267 urb->dev = edge_serial->serial->dev;
1726 struct edgeport_serial *edge_serial = usb_get_serial_data(port->serial);
1729 if ((!edge_serial->is_epic) ||
1730 ((edge_serial->is_epic) &&
1731 (edge_serial->epic_descriptor.Supports.IOSPChase))) {
1745 if ((!edge_serial->is_epic) ||
1746 ((edge_serial->is_epic) &&
1747 (edge_serial->epic_descriptor.Supports.IOSPSetClrBreak))) {
1768 static void process_rcvd_data (struct edgeport_serial *edge_serial, unsigned char * buffer, __u16 bufferLength)
1788 switch (edge_serial->rxState) {
1790 edge_serial->rxHeader1 = *buffer;
1795 edge_serial->rxState = EXPECT_HDR2;
1801 edge_serial->rxHeader2 = *buffer;
1805 dbg("%s - Hdr1=%02X Hdr2=%02X", __FUNCTION__, edge_serial->rxHeader1, edge_serial->rxHeader2);
1810 if (IS_CMD_STAT_HDR(edge_serial->rxHeader1)) {
1815 edge_serial->rxPort = IOSP_GET_HDR_PORT(edge_serial->rxHeader1);
1816 edge_serial->rxStatusCode = IOSP_GET_STATUS_CODE(edge_serial->rxHeader1);
1818 if (!IOSP_STATUS_IS_2BYTE(edge_serial->rxStatusCode)) {
1821 edge_serial->rxStatusParam = edge_serial->rxHeader2;
1823 edge_serial->rxState = EXPECT_HDR3;
1828 process_rcvd_status (edge_serial, edge_serial->rxHeader2, 0);
1829 edge_serial->rxState = EXPECT_HDR1;
1832 edge_serial->rxPort = IOSP_GET_HDR_PORT(edge_serial->rxHeader1);
1833 edge_serial->rxBytesRemaining = IOSP_GET_HDR_DATA_LEN(edge_serial->rxHeader1, edge_serial->rxHeader2);
1835 dbg("%s - Data for Port %u Len %u", __FUNCTION__, edge_serial->rxPort, edge_serial->rxBytesRemaining);
1841 edge_serial->rxState = EXPECT_DATA;
1849 if (bufferLength < edge_serial->rxBytesRemaining) {
1851 edge_serial->rxState = EXPECT_DATA; // Expect data to start next buffer
1854 rxLen = edge_serial->rxBytesRemaining;
1855 edge_serial->rxState = EXPECT_HDR1; // Start another header next time
1859 edge_serial->rxBytesRemaining -= rxLen;
1863 port = edge_serial->serial->port[edge_serial->rxPort];
1868 dbg("%s - Sending %d bytes to TTY for port %d", __FUNCTION__, rxLen, edge_serial->rxPort);
1869 edge_tty_recv(&edge_serial->serial->dev->dev, tty, buffer, rxLen);
1879 edge_serial->rxHeader3 = *buffer;
1884 process_rcvd_status (edge_serial, edge_serial->rxStatusParam, edge_serial->rxHeader3);
1885 edge_serial->rxState = EXPECT_HDR1;
1897 static void process_rcvd_status (struct edgeport_serial *edge_serial, __u8 byte2, __u8 byte3)
1901 __u8 code = edge_serial->rxStatusCode;
1904 port = edge_serial->serial->port[edge_serial->rxPort];
1907 dev_err(&edge_serial->serial->dev->dev, "%s - edge_port == NULL for port %d\n", __FUNCTION__, edge_serial->rxPort);
1911 dbg("%s - port %d", __FUNCTION__, edge_serial->rxPort);
1917 dbg("%s - Port %u EXT CHASE_RSP Data = %02x", __FUNCTION__, edge_serial->rxPort, byte3 );
1928 dbg("%s ========== Port %u CHECK_RSP Sequence = %02x =============\n", __FUNCTION__, edge_serial->rxPort, byte3 );
1937 dbg("%s - Port %u Open Response Inital MSR = %02x TxBufferSize = %d", __FUNCTION__, edge_serial->rxPort, byte2, edge_port->txCredits);
1961 dbg("%s - Port %u LSR Status = %02x", __FUNCTION__, edge_serial->rxPort, byte2);
1966 dbg("%s - Port %u LSR Status = %02x, Data = %02x", __FUNCTION__, edge_serial->rxPort, byte2, byte3);
1973 // dbg("%s - Port %u LSR Status = %02x Data = %02x", __FUNCTION__, edge_serial->rxPort, byte2, byte3);
1977 dbg("%s - Port %u MSR Status = %02x", __FUNCTION__, edge_serial->rxPort, byte2);
2276 struct edgeport_serial *edge_serial = usb_get_serial_data(edge_port->port->serial);
2291 usb_fill_bulk_urb (urb, edge_serial->serial->dev,
2292 usb_sndbulkpipe(edge_serial->serial->dev, edge_serial->bulk_out_endpoint),
2320 struct edgeport_serial *edge_serial = usb_get_serial_data(edge_port->port->serial);
2328 if ((!edge_serial->is_epic) ||
2329 ((edge_serial->is_epic) &&
2330 (!edge_serial->epic_descriptor.Supports.IOSPSetBaudRate))) {
2415 struct edgeport_serial *edge_serial = usb_get_serial_data(edge_port->port->serial);
2423 if ((!edge_serial->is_epic) ||
2424 ((edge_serial->is_epic) &&
2425 (!edge_serial->epic_descriptor.Supports.IOSPWriteMCR) &&
2431 if ((!edge_serial->is_epic) ||
2432 ((edge_serial->is_epic) &&
2433 (!edge_serial->epic_descriptor.Supports.IOSPWriteLCR) &&
2472 struct edgeport_serial *edge_serial = usb_get_serial_data(edge_port->port->serial);
2553 if ((!edge_serial->is_epic) ||
2554 ((edge_serial->is_epic) &&
2555 (edge_serial->epic_descriptor.Supports.IOSPSetXChar))) {
2578 if ((!edge_serial->is_epic) ||
2579 ((edge_serial->is_epic) &&
2580 (edge_serial->epic_descriptor.Supports.IOSPSetRxFlow)))
2582 if ((!edge_serial->is_epic) ||
2583 ((edge_serial->is_epic) &&
2584 (edge_serial->epic_descriptor.Supports.IOSPSetTxFlow)))
2652 static void get_manufacturing_desc (struct edgeport_serial *edge_serial)
2658 response = rom_read (edge_serial->serial, (EDGE_MANUF_DESC_ADDR & 0xffff0000) >> 16,
2660 (__u8 *)(&edge_serial->manuf_descriptor));
2663 dev_err(&edge_serial->serial->dev->dev, "error in getting manufacturer descriptor\n");
2667 dbg(" RomSize: %dK", edge_serial->manuf_descriptor.RomSize);
2668 dbg(" RamSize: %dK", edge_serial->manuf_descriptor.RamSize);
2669 dbg(" CpuRev: %d", edge_serial->manuf_descriptor.CpuRev);
2670 dbg(" BoardRev: %d", edge_serial->manuf_descriptor.BoardRev);
2671 dbg(" NumPorts: %d", edge_serial->manuf_descriptor.NumPorts);
2672 dbg(" DescDate: %d/%d/%d", edge_serial->manuf_descriptor.DescDate[0], edge_serial->manuf_descriptor.DescDate[1], edge_serial->manuf_descriptor.DescDate[2]+1900);
2674 edge_serial->manuf_descriptor.SerialNumber,
2675 edge_serial->manuf_descriptor.SerNumLength/2);
2678 edge_serial->manuf_descriptor.AssemblyNumber,
2679 edge_serial->manuf_descriptor.AssemblyNumLength/2);
2682 edge_serial->manuf_descriptor.OemAssyNumber,
2683 edge_serial->manuf_descriptor.OemAssyNumLength/2);
2685 dbg(" UartType: %d", edge_serial->manuf_descriptor.UartType);
2686 dbg(" IonPid: %d", edge_serial->manuf_descriptor.IonPid);
2687 dbg(" IonConfig: %d", edge_serial->manuf_descriptor.IonConfig);
2697 static void get_boot_desc (struct edgeport_serial *edge_serial)
2703 response = rom_read (edge_serial->serial, (EDGE_BOOT_DESC_ADDR & 0xffff0000) >> 16,
2705 (__u8 *)(&edge_serial->boot_descriptor));
2708 dev_err(&edge_serial->serial->dev->dev, "error in getting boot descriptor\n");
2711 dbg(" BootCodeLength: %d", le16_to_cpu(edge_serial->boot_descriptor.BootCodeLength));
2712 dbg(" MajorVersion: %d", edge_serial->boot_descriptor.MajorVersion);
2713 dbg(" MinorVersion: %d", edge_serial->boot_descriptor.MinorVersion);
2714 dbg(" BuildNumber: %d", le16_to_cpu(edge_serial->boot_descriptor.BuildNumber));
2715 dbg(" Capabilities: 0x%x", le16_to_cpu(edge_serial->boot_descriptor.Capabilities));
2716 dbg(" UConfig0: %d", edge_serial->boot_descriptor.UConfig0);
2717 dbg(" UConfig1: %d", edge_serial->boot_descriptor.UConfig1);
2726 static void load_application_firmware (struct edgeport_serial *edge_serial)
2735 switch (edge_serial->product_info.iDownloadFile) {
2767 response = sram_write (edge_serial->serial, le16_to_cpu(record->ExtAddr), le16_to_cpu(record->Addr), le16_to_cpu(record->Len), &record->Data[0]);
2769 dev_err(&edge_serial->serial->dev->dev, "sram_write failed (%x, %x, %d)\n", le16_to_cpu(record->ExtAddr), le16_to_cpu(record->Addr), le16_to_cpu(record->Len));
2779 response = usb_control_msg (edge_serial->serial->dev,
2780 usb_sndctrlpipe(edge_serial->serial->dev, 0),
2793 struct edgeport_serial *edge_serial;
2808 edge_serial = kzalloc(sizeof(struct edgeport_serial), GFP_KERNEL);
2809 if (edge_serial == NULL) {
2813 spin_lock_init(&edge_serial->es_lock);
2814 edge_serial->serial = serial;
2815 usb_set_serial_data(serial, edge_serial);
2819 &edge_serial->name[0], MAX_NAME_LEN+1);
2820 edge_serial->name[i++] = ' ';
2822 &edge_serial->name[i], MAX_NAME_LEN+2 - i);
2824 dev_info(&serial->dev->dev, "%s detected\n", edge_serial->name);
2827 if (get_epic_descriptor(edge_serial) <= 0) {
2829 memcpy(&edge_serial->epic_descriptor.Supports, descriptor,
2833 get_manufacturing_desc (edge_serial);
2836 get_boot_desc (edge_serial);
2838 get_product_info(edge_serial);
2843 if ((!edge_serial->is_epic) &&
2844 (edge_serial->product_info.NumPorts != serial->num_ports)) {
2848 edge_serial->product_info.NumPorts,
2855 if (!edge_serial->is_epic) {
2857 load_application_firmware (edge_serial);
2862 update_edgeport_E2PROM (edge_serial);
2884 kfree(edge_serial);
2895 if (edge_serial->is_epic) {
2911 edge_serial->interrupt_read_urb = usb_alloc_urb(0, GFP_KERNEL);
2912 if (!edge_serial->interrupt_read_urb) {
2916 edge_serial->interrupt_in_buffer = kmalloc(buffer_size, GFP_KERNEL);
2917 if (!edge_serial->interrupt_in_buffer) {
2919 usb_free_urb(edge_serial->interrupt_read_urb);
2922 edge_serial->interrupt_in_endpoint = endpoint->bEndpointAddress;
2925 usb_fill_int_urb(edge_serial->interrupt_read_urb,
2928 edge_serial->interrupt_in_buffer,
2931 edge_serial,
2943 edge_serial->read_urb = usb_alloc_urb(0, GFP_KERNEL);
2944 if (!edge_serial->read_urb) {
2948 edge_serial->bulk_in_buffer = kmalloc(buffer_size, GFP_KERNEL);
2949 if (!edge_serial->bulk_in_buffer) {
2951 usb_free_urb(edge_serial->read_urb);
2954 edge_serial->bulk_in_endpoint = endpoint->bEndpointAddress;
2957 usb_fill_bulk_urb(edge_serial->read_urb, dev,
2959 edge_serial->bulk_in_buffer,
2962 edge_serial);
2970 edge_serial->bulk_out_endpoint = endpoint->bEndpointAddress;
2982 response = usb_submit_urb(edge_serial->interrupt_read_urb, GFP_KERNEL);
2996 struct edgeport_serial *edge_serial = usb_get_serial_data(serial);
3007 if (edge_serial->is_epic) {
3008 usb_kill_urb(edge_serial->interrupt_read_urb);
3009 usb_free_urb(edge_serial->interrupt_read_urb);
3010 kfree(edge_serial->interrupt_in_buffer);
3012 usb_kill_urb(edge_serial->read_urb);
3013 usb_free_urb(edge_serial->read_urb);
3014 kfree(edge_serial->bulk_in_buffer);
3017 kfree(edge_serial);