[linux-usb-devel] Support for clearing Hub-TT buffers
In function rh_call_control , there is no support for HUB_CLEAR_TT_BUFFER hub request. Suppose if we are connecting low/full speed devices to a USB 2.0 EHCI , host controller., through a HUB , which has a transaction translator . Then the following function usb_hub_tt_clear_buffer will be called from the function qtd_copy_status in the file ehci-q.c .. in case of errors in CSPILT transaction . But since this is a hub-transaction request... the function rh_call_control , is not implementing the request type HUB_CLEAR_TT_BUFFER. Please explain why is this. Is the hub requests for external hubs handled elsewhere. Also why is that the TT hub contents not cleared if the EHCI controller has an embedded Transcation translator ,, as is evident from the following code in the function qtd_copy_status. 209 if (urb-status != -EPIPE 210 urb-dev-tt !usb_pipeint (urb-pipe) 211 ((token QTD_STS_MMF) != 0 212 || QTD_CERR(token) == 0) 213 (!ehci_is_TDI(ehci) /// TDI has embedded TT 214 || urb-dev-tt-hub != 215ehci_to_hcd(ehci)-self.root_hub)) { 216 #ifdef DEBUG 217 struct usb_device *tt = urb-dev-tt-hub; 218 dev_dbg (tt-dev, 219 clear tt buffer port %d, a%d ep%d t%08x\n, 220 urb-dev-ttport, urb-dev-devnum, 221 usb_pipeendpoint (urb-pipe), token); 222 #endif /* DEBUG */ 223 usb_hub_tt_clear_buffer (urb-dev, urb-pipe); 224 } - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys -- and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV ___ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
[linux-usb-devel] Issues with ARC-OTG controller in HOST Mode
Hi all, Has any body in this list worked wiht ARC-USB High Speed OTG controller with an ULPI interface to an ULPI Transceiver(external). I put the ARC OTG in HOST MODE. I am observing that for HOST Mode, the controller is not able to detect the Device connects when i connect self power devices like camera, phone and then switch on the device. But when i connect a OTG Hard disk (ALI Corporation), i get 2 interrupts for PCD (Port Change Detects). First interrupt is for Connect (CCS = 1, CSC = 1) Second interrupt is for Disconnect (CCS = 0 , CSC = 1) Any one has observed the above behaviour or similar behaviuor when the DEVICE CONNECT INTERRUPT IS NOT ISSUED TO THE DRIVER Thanks Rak Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642 ___ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
[linux-usb-devel] USB EHCI driver on ARM issue
Hi all, Did any one work on the USB EHCI driver on a ARM platform (embedded). Is the present EHCI driver code working on ARM platform where the processor is in Big-Endian mode, and the USB-EHCI controller is put to work in ltttle-endian mode. Our problem is that the control transfers are not getting executed from the asyncronous schedules.. We would like to zero down whether it is the issue of our DMA engine. The EHCI-Controller is the ARC which can be put into little/big endian mode. and the platform is ARM. Has any one been able to work with the present EHCI driver on this platform. (of course the platform glue is specific). Please help Thanks Rak Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642 ___ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
Re: [linux-usb-devel] Endianness in qtd_fill()
Hi I cannot make the ARM processor to litle endian. But i have the facility to set the ARC USB-OTG controller in 2 modes ... either Little-Endian or Big-Endian. So if i set the USB-controller in Little Endian, it would try to access the DMA QTD buffer pointer in little-endian mode. In qtd_fill() , ARM Big Endian DMA address are converted to little endian using cpu_to_le32(), So keeping the USB-controller in Little Endian, it would try to get the DMA address (which is already in little-endian format) in little endian format from the QH. This would result in a big-endian address. Correct me if my observation is wrong Thanks rak On 6/15/06, David Brownell [EMAIL PROTECTED] wrote: On Thursday 15 June 2006 8:29 am, rakesh kn wrote: Hi, The ARM processor is in BIG-ENDIAN mode. I have executed a program to check in whcih mode is the processor. And to repeat a previous question: Have you tried running your CPU in little-endian mode, which is more conventional? A number of the ARMs that support big-endian have it as a run-time option; there's a bit in some register which controls it, which isn't always hard-wired to big or little. So from ur infrence, it would mean that , qtd_fill( ) function which does the cpu_to_le32() of the DMA hardware buffer would get screwed up in my case . So removing the converting of DMA address to little endian from native endian (big-endian), would solve the problem.. Maybe. You haven't actually demonstrated anything more than a potential curiousity at this point. - Dave ___ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
[linux-usb-devel] Endianness in qtd_fill()
Hi all, In Function qtd_fill() (FILE - ehci-q.c) , we get the DMA'able buffer address, but when we fill the qTD, we convert the buffer address to Little Endian. and assigning it as follows qtd-hw_buf [0] = cpu_to_le32 ((u32)addr); qtd-hw_buf_hi [0] = cpu_to_le32 ((u32)(addr 32)); If my processor is ARM based, i get the DMA address in Big-Endian, and i convert the DMA address to Little-Endian and assigning in Qtd Hardware Buffers. My EHCI Controller is ARC. USB transfers are Little Endian. But when the controller tries to do DMA of the transfer, the address in the QTD Hardware buffer is different due to endianess. Is my inference right. OR Correct me whther the above obserevation will make a difference in ARM platform due to endianess Thanks Rak ___ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
Re: [linux-usb-devel] Endianness in qtd_fill()
Hi, The ARM processor is in BIG-ENDIAN mode. I have executed a program to check in whcih mode is the processor. So from ur infrence, it would mean that , qtd_fill( ) function which does the cpu_to_le32() of the DMA hardware buffer would get screwed up in my case . So removing the converting of DMA address to little endian from native endian (big-endian), would solve the problem.. Thanks On 6/15/06, David Brownell [EMAIL PROTECTED] wrote: On Thursday 15 June 2006 4:14 am, rakesh kn wrote: Hi all, Let me repeat my earlier multiple requests to you that you not send me private email that's duplicating what you send to the public linux-usb-devel list ... one copy is more than enough. If my processor is ARM based, i get the DMA address in Big-Endian, and i convert the DMA address to Little-Endian and assigning in Qtd Hardware Buffers. My EHCI Controller is ARC. Actually most ARM processors are little-endian, although some support both operational modes. Have you tried running your CPU in little-endian mode, which is more conventional? I took a quick glance at the EHCI spec and didn't see any text specifying endianness for those fields. Clearly all the PCI based controllers use little-endian encoding. So in theory I suppose some EHCI vendor might have chosen to implement DMA pointers in cpu-native format, rather than always being little-endian. OHCI has some ugly code to cope with that class of problem ... it's worst for systems that have both PCI (little-endian) and odd-endian hardware. - Dave ___ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
[linux-usb-devel] No EHCI IRQ reported when device is connected
Hi , i am testing the ehci-hcd river for ARC HS OTG controller. I have the following observations when i try connecting devices. After the probe, the POTRSCx values are 0x8c001000 for ARC controller whcih is EHCI complaint. COMMAND: 0x80b01 MODE: 0x7 STATUS: 0x88 INTERRUPT: 0x37 SET INTR ARE (INTR_MASK): 0x37 PORT 0 STATUS: 0x8c001000 SEGMENT = 0x0 FRAME LIST = 0x63ff4000 ASYNC LIST = 0x63ff2000 TTCTRL = 0x0 CONFIGURE FLAG = 0x1 OTGSC = 0x313120 PORT STATUS CONTROL REGISTERS PORTSC[0] = 0x8c001000 1) When a OTG hard disk(Self Powered) was connected, there was no interrupt and my ehci_irq interrupt handler was not invoked. When i power on the device i get a DISCONNECT event from the device and the PORTSCx value changes to 0x8c001002 (CCS = 0,CSC =1) and IRQ IS GENERATED . STATUS register shows Port Change Detect Interrupt (STS = 0x8C). So when the hub_events() tries to do a GetPortStatus, it does not find connection(CCS =0) and the hub_port_connect_change() function returns. Also PORT-ENABLE bit in PORTSCx is not 1. That means that even though a device was connected, the port is not enabled. 2) When a USB2.0 HS speed device(thumb drive or Camera) was connected to the board, there is no interrupt genearated. This is visible from cat /proc/interrupts. How can interpret the above 2 observations. I am getting PCD interrupts for disconnect event from a device(OTG) , after that was connected and powered on. For other devices i am not getting interrupt. Please help me debug this problem. The probe function before returning dumps the following register values DUMP of /sys/class/usb_host/usb_host/register after the OTG device was connected and powered on. bus platform, device ab301_ehci_usb.0 (driver 10 Dec 2004) EHCI Host Controller EHCI 1.00, hcd state 1 structural params 0x00010011 capability params 0x0006 status 0088 FLR command 080b01 park=3 ithresh=8 period=1024 RUN intrenable 37 IAA FATAL PCD ERR INT uframe 22e0 port 1 status 8c001000 POWER sig=se0 irq normal 0 err 0 reclaim 0 (lost 0) complete 0 unlink 0 Thanks Rak ___ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
Re: [linux-usb-devel] No EHCI IRQ reported when device is connected
Hi David, Infact i am working on the ARM based board with ARC OTG Contrller and an SMSC USB3000 ULPI Transceiver, which has an mini-AB receptacle. I connected the OTG Hard disk to a linux pc running kernel 2.6.11.10 using a Mini-B to Standard-A USB Cable. I could get the interrupt in the linux pc, which has the Intel USB Host controller. The linux PC could easily recognize the harddisk and finished enumeration.I could mount the hard disk and then copy files in to it. For this ARM board I have configured the USB-OTG controller in to HOST Mode. So when i connect the OTG-hardisk , the hardisk is first disconnecting , which is also the same behaviour when i connect to the linux pc. After this happens, the OTG-device is reconnecting,evident from PORTSCx (CCS =1,CSC =1) in the linux PC, BUT this reconnecting is not happening in the ARM board ARC-OTG controller. The PORTSCx shows PP (VBUS) port power bit is always set. Even when i connect a Thumb Drive using a Mini-A to Standard A convertor cable to the ARM Board, the connection is not generating an interrupt. The PORT POWER bit = 1 when i checked the PORTSCx register. I connected both ways u have mentioned, but there is no change. MY doubt is, ...? Do I have to worry about the ID Pin interrupt when i am in the HOST MODE in the ARC OTG Controller. When i put the CONTROLLER in to HOST MODE, all the PORTSCx registers behave similar to the EHCI controller rt? Thanks, Rak On 6/9/06, David Brownell [EMAIL PROTECTED] wrote: On Thursday 08 June 2006 12:50 am, rakesh kn wrote: 1) When a OTG hard disk(Self Powered) was connected, there was no interrupt and my ehci_irq interrupt handler was not invoked. When i power on the device i get a DISCONNECT event from the device and the PORTSCx value changes to 0x8c001002 (CCS = 0,CSC =1) and IRQ IS GENERATED . STATUS register shows Port Change Detect Interrupt (STS = 0x8C). So when the hub_events() tries to do a GetPortStatus, it does not find connection(CCS =0) and the hub_port_connect_change() function returns. Also PORT-ENABLE bit in PORTSCx is not 1. That means that even though a device was connected, the port is not enabled. At a guess, this disk was using SRP to wake the host? That's kind of messy in the code today ... OHCI was faking it in the root hub with help from an external OTG transceiver, but I suspect that you'll need a different approach with EHCI and an integrated one. 2) When a USB2.0 HS speed device(thumb drive or Camera) was connected to the board, there is no interrupt genearated. This is visible from cat /proc/interrupts. How can interpret the above 2 observations. I am getting PCD interrupts for disconnect event from a device(OTG) , after that was connected and powered on. For other devices i am not getting interrupt. Is the port powered on? Remember, an OTG host might be kind of aggressive about turning off VBUS. Plus there are at least two different ways to connect a device to an OTG host: - plug cable into B-device, then Mini-A into A-device. -- should get an IRQ for ID pin grounded, which is handled by turning on VBUS and then enumerating - Plug Mini-A into A-device, then Mini-B into B-Device -- ID pin grounded irq will fail enumeration since there's no device. In that case the B-device must use SRP to restart enumeration Some non-OTG devcies will work with both schemes; others won't. ___ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
[linux-usb-devel] No EHCI IRQ reported when device is connected
Hi , i am testing the ehci-hcd river for ARC HS OTG controller. I have the following observations when i try connecting devices. After the probe, the POTRSCx values are 0x8c001000 for ARC controller whcih is EHCI complaint. COMMAND: 0x80b01 MODE: 0x7 STATUS: 0x88 INTERRUPT: 0x37 SET INTR ARE (INTR_MASK): 0x37 PORT 0 STATUS: 0x8c001000 SEGMENT = 0x0 FRAME LIST = 0x63ff4000 ASYNC LIST = 0x63ff2000 TTCTRL = 0x0 CONFIGURE FLAG = 0x1 OTGSC = 0x313120 PORT STATUS CONTROL REGISTERS PORTSC[0] = 0x8c001000 1) When a OTG hard disk(Self Powered) was connected, there was no interrupt and my ehci_irq interrupt handler was not invoked. When i power on the device i get a DISCONNECT event from the device and the PORTSCx value changes to 0x8c001002 (CCS = 0,CSC =1) and IRQ IS GENERATED . STATUS register shows Port Change Detect Interrupt (STS = 0x8C). So when the hub_events() tries to do a GetPortStatus, it does not find connection(CCS =0) and the hub_port_connect_change() function returns. Also PORT-ENABLE bit in PORTSCx is not 1. That means that even though a device was connected, the port is not enabled. 2) When a USB2.0 HS speed device(thumb drive or Camera) was connected to the board, there is no interrupt genearated. This is visible from cat /proc/interrupts. How can interpret the above 2 observations. I am getting PCD interrupts for disconnect event from a device(OTG) , after that was connected and powered on. For other devices i am not getting interrupt. Please help me debug this problem. The probe function before returning dumps the following register values DUMP of /sys/class/usb_host/usb_host/register after the OTG device was connected and powered on. bus platform, device ab301_ehci_usb.0 (driver 10 Dec 2004) EHCI Host Controller EHCI 1.00, hcd state 1 structural params 0x00010011 capability params 0x0006 status 0088 FLR command 080b01 park=3 ithresh=8 period=1024 RUN intrenable 37 IAA FATAL PCD ERR INT uframe 22e0 port 1 status 8c001000 POWER sig=se0 irq normal 0 err 0 reclaim 0 (lost 0) complete 0 unlink 0 Thanks Rak ___ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
[linux-usb-devel] doubt in port reset
Hi all, Port Reset and Port Suspend is done on ports on which device is connected. \What is the difference between PORT SUSPEND, PORT RESET done using the a ) SetPortFeature with Feature PORT_SUSPEND, PORT_RESUME as in USB 2.0 document in section 11.24.2.13. b) Using the PORTSCx register in the EHCI Operational Register set. Both of them would cease the down stream traffic and suspend the device. If they are the same, can i use SetPortFeature Control request to suspend/resume the port in the ehci_hub_suspend and ehci_hub_resume, instead of writing to the PORTSCx. Since all devices should respond to control request at any stage of a transfer Thanks ___ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
[linux-usb-devel] OTG Driver IRQ issues on execution on ARC-OTG Controller
Hi All, Our team is developing a USB OTG Controller driver for Linux 2.6.16.11 kernel on a board which runs on ARM Core . The driver is for ARC USB OTG Controller. There are three modules involved viz Host Controller Driver Device Controller Driver OTG Controller Driver These three modules are sharing the same device space. We are trying to integrate the three modules. The modules are initialized and ISRs (shared interrupt handlers) are registered. Initially, interrupts are received and ISRs are invoked. But when one of the modules try to reset the controller, the interrupts no longer come eventhough the interrupts are enabled in the hardware registers. We also found out that the interrupt vector controller registers the USB interrupt. We tried running a stand-alone code which does similar operations. But, we are getting the interrupts even after repeated resets. So that makes it clear that the problem is not with the hardware. In Linux, the three modules use the same remapped controller address space and IRQ resources. Since the controller can work as a host controller, device controller or OTG controller, we have introduced three platform device structures and three resource structures in the arch/arm/machine-specific/ directory. All the three resource structures have the same iomem start and IRQ start values. /* USB OTG */ static struct resource ab300_usb_otg_resources [] = { [0] = { .start = USB_PHYS, .end= (USB_PHYS + SZ_4K - 1), .flags = IORESOURCE_MEM, }, [1] = { .start = IRQ_USB, .end= IRQ_USB, .flags = IORESOURCE_IRQ, }, }; static struct platform_device ab300_usb_otg_device = { .name = ab300_otg_usb, .id= 0, .dev = { .dma_mask = (u64 *)~0, .coherent_dma_mask = (u64)~0, }, .num_resources = ARRAY_SIZE (ab300_usb_otg_resources), .resource = ab300_usb_otg_resources, }; /* USB UDC */ static struct resource ab300_usb_udc_resources [] = { [0] = { .start = USB_PHYS, .end= (USB_PHYS + SZ_4K - 1), .flags = IORESOURCE_MEM, }, [1] = { .start = IRQ_USB, .end= IRQ_USB, .flags = IORESOURCE_IRQ, }, }; static struct platform_device ab300_usb_udc_device = { .name = ab300_udc_usb, .id= 1, .dev = { .dma_mask = (u64 *)~0, .coherent_dma_mask = (u64)~0, }, .num_resources = ARRAY_SIZE (ab300_usb_udc_resources), .resource = ab300_usb_udc_resources, }; /* USB EHCI */ static struct resource ab300_usb_host_resources [] = { [0] = { .start = USB_PHYS, .end= (USB_PHYS + SZ_4K - 1), .flags = IORESOURCE_MEM, }, [1] = { .start = IRQ_USB, .end= IRQ_USB, .flags = IORESOURCE_IRQ, }, }; static struct platform_device ab300_usb_host_device = { .name = ab300_ehci_usb, .id= 0, .dev = { .dma_mask = (u64 *)~0, .coherent_dma_mask = (u64)~0, }, .num_resources = ARRAY_SIZE (ab300_usb_host_resources), .resource = ab300_usb_host_resources, }; static struct platform_device *ab300_platform_devs[] __initdata = { #if defined (CONFIG_MACH_AB300) ab300_usb_otg_device, ab300_usb_udc_device, ab300_usb_host_device, }; The above code snippet was added so that our driver modules can request resources in their respective module initialization. Can the problem be of kernel porting? Does any one who has developed an OTG Driver for ARC USB OTG Controllers, face this problem. If not please tell us , how did u guys load the three drivers in to the kernel. The drivers are built in to the kerenel. There is no module loading facility Could anyone throw some light on the root cause of the problem? Thanks, Rak --- All the advantages of Linux Managed Hosting--Without the Cost and Risk! Fully trained technicians. The highest number of Red Hat certifications in the hosting industry. Fanatical Support. Click to learn more http://sel.as-us.falkag.net/sel?cmd=lnkkid7521bid$8729dat1642 ___ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
[linux-usb-devel] EHCI Driver not recongnizing the device
Hi all, We are testing EHCI driver for ARC-OTG based controller core on a ARM 926 board. The platform glue has been written. The driver is compiled to the kernel . When the kernel boots up , the driver is loaded. We have enabled USB_DEBUG and then going through the prints, its is observed that the root hub has been identified and given the address 1. Since the board has an OTG port, capable of providing 8mA, we connected a SONY DSC camera which is OTG Complaint device. But when we plug a High Speed device , the IRQ function is not even invoked, the STS register and PCD bit in PORTSCx is not showing any change. Those who have worked with ARC USB HS-OTG controllers, have u come across these problems, if yes, please help us. I am attaching the log of trace i did. Thanks Rak Function register_root_hub is called ,root hub device address = 1 issuing get_descriptor in register_root_hub Function usb_get_device_descriptor called Function usb_get_descriptor called Function usb_submit_urb called Function hcd_submit_urb is called Calling function rh_urb_enqueue to queue Setup URB to Root Hub Function rh_call_control called...This ultimately calls hc_driver-hub_control rh_call_control URB setup_packet contents in rh_call_control typeReq = 8006, wValue = 100, wIndex = 0, wLength = 12 Issued usb_control_msg request. result = 18 Function usb_get_descriptor Returned leaving function usb_get_device_descriptor Length of received desc is 0x12 12 1 0 2 9 0 1 40 0 0 0 0 6 2 3 2 1 1 Function usb_new_device called Function usb_get_configuration called for root-hub No of configurations for root-hub = 1 Function usb_get_descriptor called Function usb_submit_urb called Function hcd_submit_urb is called Calling function rh_urb_enqueue to queue Setup URB to Root Hub Function rh_call_control called...This ultimately calls hc_driver-hub_control rh_call_control URB setup_packet contents in rh_call_control typeReq = 8006, wValue = 200, wIndex = 0, wLength = 9 Issued usb_control_msg request. result = 9 Function usb_get_descriptor Returned Function usb_get_descriptor called Function usb_submit_urb called Function hcd_submit_urb is called Calling function rh_urb_enqueue to queue Setup URB to Root Hub Function rh_call_control called...This ultimately calls hc_driver-hub_control rh_call_control URB setup_packet contents in rh_call_control typeReq = 8006, wValue = 200, wIndex = 0, wLength = 19 Issued usb_control_msg request. result = 25 Function usb_get_descriptor Returned Returned from function usb_get_configuration Function usb_submit_urb called Function hcd_submit_urb is called Calling function rh_urb_enqueue to queue Setup URB to Root Hub Function rh_call_control called...This ultimately calls hc_driver-hub_control rh_call_control URB setup_packet contents in rh_call_control typeReq = 8006, wValue = 300, wIndex = 0, wLength = ff usb usb1: default language 0x0409 Function usb_submit_urb called Function hcd_submit_urb is called Calling function rh_urb_enqueue to queue Setup URB to Root Hub Function rh_call_control called...This ultimately calls hc_driver-hub_control rh_call_control URB setup_packet contents in rh_call_control typeReq = 8006, wValue = 302, wIndex = 409, wLength = ff Function usb_submit_urb called Function hcd_submit_urb is called Calling function rh_urb_enqueue to queue Setup URB to Root Hub Function rh_call_control called...This ultimately calls hc_driver-hub_control rh_call_control URB setup_packet contents in rh_call_control typeReq = 8006, wValue = 303, wIndex = 409, wLength = ff Function usb_submit_urb called Function hcd_submit_urb is called Calling function rh_urb_enqueue to queue Setup URB to Root Hub Function rh_call_control called...This ultimately calls hc_driver-hub_control rh_call_control URB setup_packet contents in rh_call_control typeReq = 8006, wValue = 301, wIndex = 409, wLength = ff usb usb1: new device strings: Mfr=3, Product=2, SerialNumber=1 usb usb1: Product: EHCI Host Controller usb usb1: Manufacturer: Linux 2.6.16.11 ehci_hcd usb usb1: SerialNumber: sb3000cs function choose_configuration is called Function usb_get_status called Function usb_submit_urb called Function hcd_submit_urb is called Calling function rh_urb_enqueue to queue Setup URB to Root Hub Function rh_call_control called...This ultimately calls hc_driver-hub_control rh_call_control URB setup_packet contents in rh_call_control typeReq = 8000, wValue = 0, wIndex = 0, wLength = 2 usb usb1: device is self-powered usb usb1: configuration #1 chosen from 1 choice function usb_set_configuration is called Function usb_submit_urb called Function hcd_submit_urb is called Calling function rh_urb_enqueue to queue Setup URB to Root Hub Function rh_call_control called...This ultimately calls hc_driver-hub_control rh_call_control URB setup_packet contents in rh_call_control typeReq = 9, wValue = 1, wIndex = 0, wLength = 0 usb usb1: adding 1-0:1.0 (config #1, interface 0) hub 1-0:1.0: usb_probe_interface hub 1-0:1.0: usb_probe_interface - got id
[linux-usb-devel] EHCI Host not enumerating device
Hi all, We are testing EHCI driver for ARC based controller core on a ARM 926 board. The platform glue has been written. The driver is compiled to the kernel . When the kernel boots up , the driver is loaded. We have enabled USB_DEBUG and then going through the prints, its is observed that the root hub has been identified and given the address 1. But when we plug a High Speed device , the IRQ function is not even invoked, the STS register and PCD bit in PORTSCx is not showing any change. Those who have worked with ARC USB HS-OTG controllers, have u come across these problems, if yes, please help us. I am attaching the log of trace i did. Thanks Rak Function register_root_hub is called ,root hub device address = 1 issuing get_descriptor in register_root_hub Function usb_get_device_descriptor called Function usb_get_descriptor called Function usb_submit_urb called Function hcd_submit_urb is called Calling function rh_urb_enqueue to queue Setup URB to Root Hub Function rh_call_control called...This ultimately calls hc_driver-hub_control rh_call_control URB setup_packet contents in rh_call_control typeReq = 8006, wValue = 100, wIndex = 0, wLength = 12 Issued usb_control_msg request. result = 18 Function usb_get_descriptor Returned leaving function usb_get_device_descriptor Length of received desc is 0x12 12 1 0 2 9 0 1 40 0 0 0 0 6 2 3 2 1 1 Function usb_new_device called Function usb_get_configuration called for root-hub No of configurations for root-hub = 1 Function usb_get_descriptor called Function usb_submit_urb called Function hcd_submit_urb is called Calling function rh_urb_enqueue to queue Setup URB to Root Hub Function rh_call_control called...This ultimately calls hc_driver-hub_control rh_call_control URB setup_packet contents in rh_call_control typeReq = 8006, wValue = 200, wIndex = 0, wLength = 9 Issued usb_control_msg request. result = 9 Function usb_get_descriptor Returned Function usb_get_descriptor called Function usb_submit_urb called Function hcd_submit_urb is called Calling function rh_urb_enqueue to queue Setup URB to Root Hub Function rh_call_control called...This ultimately calls hc_driver-hub_control rh_call_control URB setup_packet contents in rh_call_control typeReq = 8006, wValue = 200, wIndex = 0, wLength = 19 Issued usb_control_msg request. result = 25 Function usb_get_descriptor Returned Returned from function usb_get_configuration Function usb_submit_urb called Function hcd_submit_urb is called Calling function rh_urb_enqueue to queue Setup URB to Root Hub Function rh_call_control called...This ultimately calls hc_driver-hub_control rh_call_control URB setup_packet contents in rh_call_control typeReq = 8006, wValue = 300, wIndex = 0, wLength = ff usb usb1: default language 0x0409 Function usb_submit_urb called Function hcd_submit_urb is called Calling function rh_urb_enqueue to queue Setup URB to Root Hub Function rh_call_control called...This ultimately calls hc_driver-hub_control rh_call_control URB setup_packet contents in rh_call_control typeReq = 8006, wValue = 302, wIndex = 409, wLength = ff Function usb_submit_urb called Function hcd_submit_urb is called Calling function rh_urb_enqueue to queue Setup URB to Root Hub Function rh_call_control called...This ultimately calls hc_driver-hub_control rh_call_control URB setup_packet contents in rh_call_control typeReq = 8006, wValue = 303, wIndex = 409, wLength = ff Function usb_submit_urb called Function hcd_submit_urb is called Calling function rh_urb_enqueue to queue Setup URB to Root Hub Function rh_call_control called...This ultimately calls hc_driver-hub_control rh_call_control URB setup_packet contents in rh_call_control typeReq = 8006, wValue = 301, wIndex = 409, wLength = ff usb usb1: new device strings: Mfr=3, Product=2, SerialNumber=1 usb usb1: Product: EHCI Host Controller usb usb1: Manufacturer: Linux 2.6.16.11 ehci_hcd usb usb1: SerialNumber: sb3000cs function choose_configuration is called Function usb_get_status called Function usb_submit_urb called Function hcd_submit_urb is called Calling function rh_urb_enqueue to queue Setup URB to Root Hub Function rh_call_control called...This ultimately calls hc_driver-hub_control rh_call_control URB setup_packet contents in rh_call_control typeReq = 8000, wValue = 0, wIndex = 0, wLength = 2 usb usb1: device is self-powered usb usb1: configuration #1 chosen from 1 choice function usb_set_configuration is called Function usb_submit_urb called Function hcd_submit_urb is called Calling function rh_urb_enqueue to queue Setup URB to Root Hub Function rh_call_control called...This ultimately calls hc_driver-hub_control rh_call_control URB setup_packet contents in rh_call_control typeReq = 9, wValue = 1, wIndex = 0, wLength = 0 usb usb1: adding 1-0:1.0 (config #1, interface 0) hub 1-0:1.0: usb_probe_interface hub 1-0:1.0: usb_probe_interface - got id Function hub_probe called hub 1-0:1.0: USB hub found Function hub_configure called Function usb_submit_urb called Function
[linux-usb-devel] Importance of hcd-power_budget
Hi , If i set the hcd-power_budget field in the usb_hcd structure to 8mA hcd-power_budget = 8mA, then in the register_root_hub() function , the following line would restrict the root hub power budget to each child to rhdev-bus_mA = min(500u, hcd-power_budget) = 8mA, Now when i connect a device , whose configuration descriptor contains the power requirements mentions more than 8mA, What will happen. ? Thanks --- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid0709bid3057dat1642 ___ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
[linux-usb-devel] Doubts in HCD Suspend/Resume
Hi , I have written the platform glue for ARC - EHCI controller. I provided the suspend/resume call backs in struct platform_driver with CONFIG_PM and CONFIG_USB_SUSPEND for selecti ve suspend/resume enabled. My kernel is compile to be monolithic. So once the kernel boots up, the driver is registered. I mounted on sysfs and when i try to suspend the host controller with a camera (mass storage) pluggged in to it. I have provided some debug prints in the suspend/resume call backs i provided in the struct platform_driver. I execute the command to suspend using /sys/bus/usb/devices/usb1/powe/state ehco -n 3 /sys/bus/usb/devices/usb1/powe/state, Shouldn't the corresponding suspend call back get invoked. For me it is not. Similarly for resume. Please tell me where i am wrong. Rak --- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid0709bid3057dat1642 ___ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
[linux-usb-devel] OTG Driver Interrupt Handling
Hi, The OTG driver would consist of 3 kernel modules , Host driver module, Device driver module, and OTG transceiver driver module. We have a SPH(Single Port Host) ARC Controller. Since each of these modules have IRQ handlers and are requested to USB IRQ with SH_IRQ and SA_INTERRUPT flags , we have the following doubt . Once the OTG driver decides upon the role (host or device) , it is to pass control to that driver. Suppose the role is of host, the OTG driver would set the fields in otg_transceiver structure. But how exactly does the OTG driver invoke the host controller driver or device controller driver.? Should we were to load all three modules at the same time. Or Is it that the OTG module be loaded first , determine the role and then call the module_intialization function of the host/device controller drivers respectively, which will subsequently call driver_register and register the drivers. Our doubt is that if all 3 modules are loaded simultaneously. after role switching only one driver should be active(for example device controller driver). but we have the IRQ handler already registered for the other driver(i.e the host controller driver) . So while receiving interrupts.. all handlers get invoked. rt? Please explain how should we load the drivers in case of OTG. We are studying OMAP implementation. but donot how exaclty the modules get loaded , in which order . Thanks Rak --- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid0709bid3057dat1642 ___ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
[linux-usb-devel] Testing HCD SUSPEND/RESUME in non-PCI bus based (ARC) controllers
-- Forwarded message -- From: rakesh kn [EMAIL PROTECTED] Date: Apr 21, 2006 1:50 PM Subject: Testing HCD SUSPEND/RESUME in non-PCI bus based (ARC) controllers To: David Brownell [EMAIL PROTECTED] Hi, The struct hc_driver in 2.6.16 provides 2 methods for power management with the CONFIG_PM flag defined. These call backs are suspend and resume. The comments says that these suspend/resume calls relate to the HC as a whole, not just the root hub; they're for PCI bus glue. I am writing the Controller driver for ARC High Speed Controller on a board where the BUS IS A NON-PCI BUS . If i want to test the SUSPEND/RESUME functionality of Controller as mentioned , using sysfs , ... how can i do that. ? If i support the suspend/resume call backs for ARC Controller on a NON-PCI bus, Will i be able to test the functionality.. using SYSFS? Thanks Rak --- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid0709bid3057dat1642 ___ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
[linux-usb-devel] HELP in patching USB subsystem
Hi, I have Linux 2.6.11 linux source with me which has the BSP stuff to get to run on a ARM platform . For this a separate directory is there in arch/ where the BSP stuff is written . I am required to move to 2.6.16 . My primary aim is to write the USB Controller driver for the ARC chip present on the board. I am to work with the latest USB subsystem. My doubt is this. Can i patch the USB subsystem alone to get it patched to 2.6.16 , or i have to patch the entire kernel. Is there patches for directly upgrading from 2.6.11 to 2.6.16 for the USB subsystem alone.. Please point out the correct patches. The patch that i had applied gave lot of failed hunks Thanks Rak --- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnkkid0944bid$1720dat1642 ___ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
[linux-usb-devel] suspend/resume testing for HCD on ARC controller
Hi All, We are working in 2.6.11 kernel. We are supposed to test the linux host controller driver for ARC-EHCI controller residing on a non-PCI based bus. All the basic functionality of EHCI driver for ARC can be tested using usbtest.c kernel-mode test driver. We have to test suspend/resume functionality of our dirver. Please remember that it is a non-PCI based controller. We went through the mailing list which suggests the following method. to suspend echo -n 3 /sys/bus/usb/.../state to resume echo -n 0 /sys/bus/usb/.../state But the kernel and the root.jfs (root file system) which we got, when loaded onto the prototype board doesnot have the /sys fylesystem. For some reason, we are restricted by this. We have access to usbfs mounted on /proc. CONFIG_PM, CONFIG_USB_SUSPEND flags are defined. USB 2.0 spec says that the host controller in suspended state does not send SOF and there will be no downstream bus traffic. But how can we put a controller into a suspended state. We have the kernel source code with us. Please suggest a method to test the suspend and resume of the ARC Host controller from within/outside the driver. We don't have /sys file system. Also /proc/bus/usb doesn't have any power management interface. PLS HELP Thanks, RAK --- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnkkid0944bid$1720dat1642 ___ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
[linux-usb-devel] HELP , all TESTS FAIL in Testing HCD
Hi , Please Help me with this issue. To test the EHCI- HCD driver , i was referring to the site http://www.linux-usb.org/usbtest/ It was told that the usbtest.c, driver test module, testusb.c userland software is used. Also the peripheral used is anything using a full speed Cypress EZ-USB chip. My problem is that i dont have a peripheral which uses this chip. I went through the usbtest.c driver module. It is having a id-table with EZ-USB based peripherals vendor and product id. I have a thumb drive which is USB 2.0. I know the product-id and vendor-id of the peripheral. It is different from that of the device-id's in id-table supported in usb-test.c How can i do the test using above module (usbtest.c) and the user-land software with out the peripheral with EZ-USB chips. I tried to execute the test by compiling usbtest.ko with GENERIC support on and passing the vendor id and product id as module params , but iam getting error-25 in all tests . Even the test-9 , control tests are not passing. What am i missing out here Please help me out with this issue.. Atleast Please suggest a peripheral (preferable a Card Reader) which has the EZ-USB FX2 Product Name and Company Please Thanks Rak --- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnkkid0944bid$1720dat1642 ___ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
[linux-usb-devel] USB HCD testing using usbtest.c
Hi, I am trying to test the working of ehci-hcd with a generic usb-device. I downloaded usbtest.c from linux-usb-test site. i am using kernel 2.6.11 . I compiled the test driver (usbtest.ko) and insmod it. when i run the test program ./testusb -a , it says usbfs files are missing. When i went to /proc/bus/usb , there are no files in that directory. Please tell me what am i missing. Since in 2.6 , sysfs support has been added, when i go there ,my usb device is there. Please tell me how can i give the /proc/bus/usb support.. Am i missing something during kernel compilation. Thanks Rak --- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnkkid0944bid$1720dat1642 ___ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
[linux-usb-devel] Help Doubt Test -t3 (Test 3 ) usbtest.c
Hi, For testing USB HCD driver , there is a kernel mode driver usbtest.c , which comprises of 16 different tests. I could get the first 2 tests. Test 1 - Simple non-queued bulk Sink (IN) I/O tests Test 2 - Simple non-queued bulk Source (OUT) I/O tests How does the Test 3 and Test 4 work.? Please tell how the vary paramter helps. Is it to vary the transfer_buffer_length in URB , in each iteration.by the number specified in parameter vary. Can u please explain the use of Scatter-Gather list. What i understand is that the URB-transfer_bufffer is divided in to a scatter list , which are pointers to buffer. This is Scatter Gather DMA , but the DMA controller should be supporting this. Can u please point out , how can a EHCI -HCD driver be divided into various modules .. like IRQ Handling, URB QUEING... ETC . Which modules in ehci-hcd does the above test affect. Thanks RAK --- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnkkid0944bid$1720dat1642 ___ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
[linux-usb-devel] HELP in Choosing Card Reader for USB HCD TESTING
Hi, Those who have done USB HCD Testing for ehci , Please suggest the USB2.0 Card Reader that u have used , which was successfully tested using usbtest.c. The card reader should be using a Cypress EX-USB chip. Please mention the Product Name and if possible the manufacturers. Please suggest Card Readers that are widely available. OR Is it that ANY Card Reader Can be used. PLEASE HELP Rak --- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnkkid0944bid$1720dat1642 ___ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
[linux-usb-devel] OTG in EHCI (Hub Power Issues)
Hi, Can any one explain what does the function hub_set_power_budget in file hub.h does.? I can see from the code that it sets the power_budget to a minimum of 250 mA (= 500 /2)or 4 mA (if OTG , power = 8 /2) ..? I have an ARC controller, with an embedded TT , also it is an OTG controller. For ARC ehci controller driver code ( please remember i need to support OTG ), Should i be using the function hub_set_power_budget to set the power budget for root hubs in the ARC controller to have the power bugdet to 8mA , since it is to support OTG devices. --- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnkkid0944bid$1720dat1642 ___ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
[linux-usb-devel] EHCI - OTG Transceiver (ULPI ) Issues
H i ARC controller Core is having the ULPI interface as its Transceiver. I have a some deviations in USBSTS, PORTSCx,OTGSC registers for programming ULPI transceiver select, clocking etc. Can u provide some help on general issues, on how the transceiver must be approached while programming. a) During a SUSPEND of the controller.. should i be putting the transceiver in low power mode. by disabling its clock. b) Also Can u provide some light on isses that have to be taken in to account when i have a transceiver ULPI for my ARC controller ( I WOULD LIKE TO ADD THAT IT IS NOT AN EXTERNAL TRANSCEIVER CHIP. THE ULPI TRANSCEIVER IS INTEGERATED IN TO THE ARC CONTROLLER.) Please comment on these issues. This would be of great help Thanks rak --- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnkkid0944bid$1720dat1642 ___ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
[linux-usb-devel] ANAMOLY in ehci_irq() -- Clarify ehci_irq() handling for ehci spec
Hi david, The ehci_irq() function in struct hc_driver is the irq handler for the EHCI host controller. The EHCI specification section 4.15 specifies the different types of interrupts. 1) Transaction based interrupts 2)Host controller events (Port change events, etc.), and 3) Host Controller error events Do u think that ehci_irq() function handles the interrupt type 2.? PORT change events are due to the following port status bit changes as mentioned in section 4.15.2.1 of ehci specification. • Connect Status Change • Port Enable/Disable Change • Over-current Change • Force Port Resume Do u think , that these are being handled in the ehci_irq() . I am using 2.6.10 , i have seen the irq HANDLING IN 2.6.16. It is still the same. Please clarify whether the present IRQ handling works properly with that in the EHCI specification. I am using ARC USB HS controller , which has some extensions to EHCI. PLEASE COMMENT ON THE BELOW DEVIATION After port enable bit is set following a connection and reset sequence, the device/hub is assumed to be HS in standard EHCI. For ARC controllers , After port enable bit is set following a connection and reset sequence, the device/hub speed is noted from a 2-bit field in PORTSCx. Where should i determine the speed following device connect.? Should i do it in IRQ ehci_irq() function, since thats where we handle port change detect PORT_PCD events. In which strucuture does the speed which i determine is to be stored. Please reply for the above Thanks rak --- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnkkid0944bid$1720dat1642 ___ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
[linux-usb-devel] Handling of Interrupts in ehci_irq()
Hi , Does the implementation of INTERRUPT handler or ISR routine of EHCI controller driver ehci_irq() handle the port change events mentioned in section 4.15.2.1 in ehci-r1.0 specification. What should be the handling for the following status bit changes.. 1)connect status change 2)port Enable/disable change 3)Over current change 4)Force port resume change. I see that the implementation of ehci_irq() function only handles port resume status change, During the Connect status change, that is when a device is connected/disconnected. When a device is connected, we should find out the speed.(FS/HS/LS). Where is that done.If so where and in which structure is the device speed information stored after the device connect speed is found .? Rakesh Thanks --- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnkkid0944bid$1720dat1642 ___ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
[linux-usb-devel] USB Geeks: Help for OTG support in EHCI driver
Hi all, Linux 2.6.16-rc6 has ehci-au1xxx.c file which is the EHCI host controller driver for au1xxx . Keeping the above framework which is a driver for a non-PCI EHCI controller driver.. Can any one help me on how to provide OTG support to the above framework. Please provide someinformation on whether there is any reference ehci-otg implementation .? Those who have worked in OTG controller driver implementation., please provide some insight on how an ehci implementation is to be modified to provide otg support. bye --- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnkkid0944bid$1720dat1642 ___ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
[linux-usb-devel] USB Geeks: HELP in EHCI driver development
Hi, I am relatively a newbie at USB development. My doubts are simple . Can any one shed some lights on these. 1) What is the relevance of suspend and resume call backs that we find in struct device_driver.? There are also the same call backs in struct hc_driver?. What are they used for. ? Are the suspend/resume call backs are in hc_driver are supported for PCI controllers only.. ? 2) When we write a EHCI-HCD driver for a non-pci controller driver , like that one for ARM-AMBA bus, which driver registration structure should we use , Is it struct platform_driver (As used in omap_ohci.c) or struct device_driver (As used in ehci-auxxx.c ) 3) ARC controller has an embedded TT (transaction translators) built in to it.? This allows Low Speed and Full Speed devices to be directly connected to it, which can be identified from the PSPD(port speed bit). My doubt is whether the ehci-hub.c and ehci-hcd.c in linux 2.6.15 and above have been modified to support the operational differnces with respect to QH setup( like setting TTHA). 4) To put the above doubt briefly ,, can i reuse the files in the 2.6.15 and above kernel usb-ehci tree for implementing my controller driver. Please remember that my controller has an embedded TT. (Please has any one worked on ARC USB-OTG controller drivers). This would be of great help... Please mention the files which can be re-used as it is.. ? Thanks Rakesh --- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnkkid0944bid$1720dat1642 ___ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel