Hi, > > > 2. I do neither know what is the enqueue() nor do I find an identifier > > with that name. > > But if I understand you right your statement does not answer my > > question. > > I want to know where in usb-uhci.c transfer is triggered (at > > hardwarelevel).( in order to conclude how it is working periodically) > > > > The anterior poster did not find out that, too. Therefore this question > > seems legitimate to me. So, who is going to discover the secret? (: > > UHCI is kickstarted in static void start_hc(struct uhci_hcd *uhci) > But this is a one time thing. There is no need to touch the chip > for an individual transfer. You build a data structure in main memory > which the CPU and UHCI walk. You trigger a transfer over the bus by > altering that data structure. This is done eg. in: > /* Always breadth first */ > uhci_insert_tds_in_qh(qh, urb, UHCI_PTR_BREADTH); > > if (eurb) > uhci_append_queued_urb(uhci, eurb, urb); > else > uhci_insert_qh(uhci, skelqh, urb); > > HTH > Oliver
Ok, your snippet is from uhci.c, meanwhile I work with usb-uhci.c, unfortunately. I understand: the hc, kickstartet in starthc, periodically and autonomously reads mainmemory's data structure, ok? By an interrupt hcd can acknowledge transfer completition to the client driver. The so called IOC. There stay 3 main questions: 1. How is ensured that hcd und hd do not access simultaneously that data structure? 2. This interrupt service routine uhci_interrupt, at least in usb-uhci, has a long, long call to process_urb. "Why process urb when transfer is over?" (: 3.This function uhci_switch_timer_int anywhere there, what does it do? Is there still more code executed that I am not aware of? Thanks for responding Thomas Feldburg ------------------------------------------------------- The SF.Net email is sponsored by EclipseCon 2004 Premiere Conference on Open Tools Development and Integration See the breadth of Eclipse activity. February 3-5 in Anaheim, CA. http://www.eclipsecon.org/osdn _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
