亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? uhci.txt

?? linux 內核源代碼
?? TXT
字號:
Specification and Internals for the New UHCI Driver (Whitepaper...)	brought to you by	Georg Acher, acher@in.tum.de (executive slave) (base guitar)	Deti Fliegl, deti@fliegl.de (executive slave) (lead voice)	Thomas Sailer, sailer@ife.ee.ethz.ch (chief consultant) (cheer leader) 	$Id: README.uhci,v 1.1 1999/12/14 14:03:02 fliegl Exp $This document and the new uhci sources can be found on		http://hotswap.in.tum.de/usb1. General issues1.1 Why a new UHCI driver, we already have one?!?Correct, but its internal structure got more and more mixed up by the (stillongoing) efforts to get isochronous transfers (ISO) to work.Since there is an increasing need for reliable ISO-transfers (especially for USB-audio needed by TS and for a DAB-USB-Receiver build by GA and DF), this state was a bit unsatisfying in our opinion, so we've decided (basedon knowledge and experiences with the old UHCI driver) to start from scratch with a new approach, much simpler but at the same time more powerful.It is inspired by the way Win98/Win2000 handles USB requests via URBs,but it's definitely 100% free of MS-code and doesn't crash while unplugging an used ISO-device like Win98 ;-)Some code for HW setup and root hub management was taken from the original UHCI driver, but heavily modified to fit into the new code.The invention of the basic concept, and major coding were completed in two days (and nights) on the 16th and 17th of October 1999, now known as thegreat USB-October-Revolution started by GA, DF, and TS ;-)Since the concept is in no way UHCI dependent, we hope that it will also be transferred to the OHCI-driver, so both drivers share a common API.1.2. Advantages and disadvantages+ All USB transfer types work now!+ Asynchronous operation+ Simple, but powerful interface (only two calls for start and cancel)+ Easy migration to the new API, simplified by a compatibility API+ Simple usage of ISO transfers+ Automatic linking of requests+ ISO transfers allow variable length for each frame and striping+ No CPU dependent and non-portable atomic memory access, no asm()-inlines+ Tested on x86 and Alpha- Rewriting for ISO transfers needed1.3. Is there some compatibility to the old API?Yes, but only for control, bulk and interrupt transfers. We've implemented some wrapper calls for these transfer types. The usbcore works fine with these wrappers. For ISO there's no compatibility, because the old ISO-API and its semantics were unnecessary complicated in our opinion.1.4. What's really working?As said above, CTRL and BULK already work fine even with the wrappers,so legacy code wouldn't notice the change.Regarding to Thomas, ISO transfers now run stable with USB audio.INT transfers (e.g. mouse driver) work fine, too.1.5. Are there any bugs?No ;-)Hm...Well, of course this implementation needs extensive testing on all availablehardware, but we believe that any fixes shouldn't harm the overall concept.1.6. What should be done next?A large part of the request handling seems to be identical for UHCI and OHCI, so it would be a good idea to extract the common parts and have only the HW specific stuff in uhci.c. Furthermore, all other USB device driversshould need URBification, if they use isochronous or interrupt transfers.One thing missing in the current implementation (and the old UHCI driver) is fair queueing for BULK transfers. Since this would need (in principle) the alteration of already constructed TD chains (to switch from depth to breadth execution), another way has to be found. Maybe some simple heuristics work with the same effect.---------------------------------------------------------------------------2. Internal structure and mechanismsTo get quickly familiar with the internal structures, here's a shortdescription how the new UHCI driver works. However, the ultimate source oftruth is only uhci.c!2.1. Descriptor structure (QHs and TDs)During initialization, the following skeleton is allocated in init_skel:	 framespecific           |           common chain     framelist[][  0 ]-----> TD --> TD -------\[  1 ]-----> TD --> TD --------> TD ----> QH -------> QH -------> QH ---> NULL  ...        TD --> TD -------/[1023]-----> TD --> TD ------/	     	     ^^     ^^           ^^       ^^          ^^          ^^   1024 TDs for   7 TDs for    1 TD for   Start of    Start of    End Chain	    ISO  INT (2-128ms) 1ms-INT    CTRL Chain  BULK ChainFor each CTRL or BULK transfer a new QH is allocated and the containing datatransfers are appended as (vertical) TDs. After building the whole QH with itsdangling TDs, the QH is inserted before the BULK Chain QH (for CTRL) orbefore the End Chain QH (for BULK). Since only the QH->next pointers areaffected, no atomic memory operation is required. The three QHs in thecommon chain are never equipped with TDs!For ISO or INT, the TD for each frame is simply inserted into the appropriateISO/INT-TD-chain for the desired frame. The 7 skeleton INT-TDs are scatteredamong the 1024 frames similar to the old UHCI driver.For CTRL/BULK/ISO, the last TD in the transfer has the IOC-bit set. For INT,every TD (there is only one...) has the IOC-bit set.Besides the data for the UHCI controller (2 or 4 32bit words), the descriptorsare double-linked through the .vertical and .horizontal elements in the SW data of the descriptor (using the double-linked list structures and operations), but SW-linking occurs only in closed domains, i.e. for each ofthe 1024 ISO-chains and the 8 INT-chains there is a closed cycle. This simplifies all insertions and unlinking operations and avoids costly bus_to_virt()-calls.2.2. URB structure and linking to QH/TDsDuring assembly of the QH and TDs of the requested action, these descriptorsare stored in urb->urb_list, so the allocated QH/TD descriptors are bound tothis URB.If the assembly was successful and the descriptors were added to the HW chain,the corresponding URB is inserted into a global URB list for this controller.This list stores all pending URBs.2.3. Interrupt processingSince UHCI provides no means to directly detect completed transactions, thefollowing is done in each UHCI interrupt (uhci_interrupt()):For each URB in the pending queue (process_urb()), the ACTIVE-flag of the associated TDs are processed (depending on the transfer type process_{transfer|interrupt|iso}()). If the TDs are not active anymore, they indicate the completion of the transaction and the status is calculated. Inactive QH/TDs are removed from the HW chain (since the host controlleralready removed the TDs from the QH, no atomic access is needed) and eventually the URB is marked as completed (OK or errors) and removed from the pending queue. Then the next linked URB is submitted. After (or immediately before) that, the completion handler is called.2.4. Unlinking URBsFirst, all QH/TDs stored in the URB are unlinked from the HW chain. To ensure that the host controller really left a vertical TD chain, we wait for one frame. After that, the TDs are physically destroyed.2.5. URB linking and the consequencesSince URBs can be linked and the corresponding submit_urb is called inthe UHCI-interrupt, all work associated with URB/QH/TD assembly has to beinterrupt save. This forces kmalloc to use GFP_ATOMIC in the interrupt.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品国产一区二区三| 中文字幕一区日韩精品欧美| 国产精品成人一区二区艾草 | 日本精品免费观看高清观看| 中文在线免费一区三区高中清不卡| 狠狠色狠狠色综合系列| 国产精品欧美极品| 懂色av一区二区在线播放| 成人黄色国产精品网站大全在线免费观看 | 精品少妇一区二区| 国产呦精品一区二区三区网站| 国产欧美在线观看一区| 91热门视频在线观看| 午夜亚洲福利老司机| 日韩欧美三级在线| 色综合久久中文字幕综合网| 免费观看久久久4p| 亚洲免费观看视频| 2023国产精品| 欧美精三区欧美精三区| caoporn国产精品| 日韩精品成人一区二区在线| 亚洲欧美另类小说视频| 久久久久久麻豆| 欧美一级电影网站| 免费在线观看视频一区| 久久久亚洲精华液精华液精华液| 在线视频欧美精品| av中文字幕不卡| 国产在线国偷精品免费看| 久久夜色精品一区| 2023国产一二三区日本精品2022| 日韩一区二区视频| 日韩一区二区三区电影在线观看| 欧美日韩一二三| 欧美日韩国产精品自在自线| 欧美老年两性高潮| 欧美一级日韩一级| 久久品道一品道久久精品| 精品欧美一区二区三区精品久久| 亚洲精品一区二区三区99| 久久久综合视频| 中文字幕一区二区三区四区不卡| 综合av第一页| 蜜臀久久久久久久| 激情综合色丁香一区二区| 国产自产v一区二区三区c| 国产精品亚洲综合一区在线观看| caoporm超碰国产精品| 亚洲综合无码一区二区| 亚洲成av人片在www色猫咪| 午夜精品久久久久久久久| 久久精品国产亚洲a| 色视频欧美一区二区三区| 欧美日本乱大交xxxxx| 亚洲国产精品激情在线观看| 欧洲激情一区二区| 久久―日本道色综合久久| 中文字幕精品—区二区四季| 午夜国产精品一区| 成人av网站在线观看免费| 欧美一区欧美二区| 亚洲免费观看高清完整版在线观看 | 天天影视色香欲综合网老头| 成人短视频下载| 国产欧美一区二区三区鸳鸯浴| 婷婷国产在线综合| 在线观看日韩国产| 中文字幕色av一区二区三区| 激情国产一区二区| 欧美日韩国产成人在线91| 亚洲精品欧美二区三区中文字幕| 成人丝袜高跟foot| 国产精品99久久久| 久久日韩精品一区二区五区| 婷婷六月综合网| 91精品国产一区二区| 日韩精品视频网站| 91精品国产综合久久精品图片| 亚洲主播在线观看| 91精品国产免费| 日本欧美在线看| 国产超碰在线一区| 欧美国产精品劲爆| 在线看不卡av| 日韩精品亚洲一区二区三区免费| 日韩午夜精品视频| 播五月开心婷婷综合| 精品99一区二区| 成人性色生活片| 视频一区在线播放| 26uuu另类欧美| 欧美色图激情小说| 国产婷婷一区二区| 日本成人在线一区| 久久久91精品国产一区二区精品 | 韩国在线一区二区| 亚洲欧美偷拍三级| 日韩亚洲电影在线| 老司机一区二区| 日本系列欧美系列| 色婷婷久久综合| 亚洲一区二区欧美| 大白屁股一区二区视频| 97精品电影院| 日本不卡不码高清免费观看| 欧美人妇做爰xxxⅹ性高电影| 亚洲视频香蕉人妖| 成人av在线影院| 成人小视频在线| 国产精品一区二区久久精品爱涩| 欧美妇女性影城| 亚洲成人一区二区在线观看| 亚洲乱码国产乱码精品精的特点 | 91精品国产麻豆国产自产在线| 韩国在线一区二区| 亚洲线精品一区二区三区八戒| 色噜噜久久综合| 一本在线高清不卡dvd| 欧美激情资源网| 欧美在线视频日韩| 欧美视频一区二| 国产一区二区三区精品视频| 国产精品国产三级国产有无不卡| 久久天天做天天爱综合色| 日本视频一区二区三区| 中文字幕在线一区| 久久久久久久免费视频了| 制服丝袜亚洲播放| 精品国产免费久久| 欧美色老头old∨ideo| 欧美日韩激情一区二区| 91国在线观看| 精品国产污网站| 在线精品视频一区二区三四| 欧美一区二区三区啪啪| 日韩欧美自拍偷拍| 国产精品污污网站在线观看| 一区二区在线观看不卡| 国产毛片精品国产一区二区三区| 成人爽a毛片一区二区免费| 欧美性受极品xxxx喷水| 一区二区视频在线| 日韩中文字幕不卡| 91影视在线播放| xf在线a精品一区二区视频网站| 国产精品三级av| 国产综合久久久久影院| 制服丝袜中文字幕亚洲| 亚洲激情图片一区| 不卡大黄网站免费看| 国产精品人人做人人爽人人添| 国产精品亚洲成人| 久久综合九色综合97婷婷| 成人h版在线观看| 久久久国际精品| 激情图区综合网| 国产日韩欧美制服另类| 国产精品影视在线| 国产欧美一区二区精品忘忧草| 日韩av一二三| 日韩三级.com| 成人免费视频免费观看| 国产精品乱码久久久久久| 亚洲精品欧美综合四区| 亚洲精品在线免费播放| 99国产精品99久久久久久| 欧美乱妇15p| 国产精品成人网| 日本精品一区二区三区四区的功能| 亚洲自拍另类综合| 国产精品久久久久久久久果冻传媒| 欧美日韩国产另类一区| 一本到三区不卡视频| 欧美一卡2卡三卡4卡5免费| 成人听书哪个软件好| 亚洲资源在线观看| 国产亚洲综合av| 欧美日韩精品高清| 成人在线综合网| 亚洲国产精品视频| 国产三级三级三级精品8ⅰ区| 国产精品国产精品国产专区不蜜| 北条麻妃国产九九精品视频| 日本成人中文字幕| 亚洲精品va在线观看| 国产网站一区二区| 日韩区在线观看| 欧美日本国产一区| 色婷婷久久久综合中文字幕 | 99国产精品视频免费观看| 日韩电影在线观看网站| 亚洲色图在线播放| 国产精品萝li| 国产欧美日韩视频在线观看| 日韩精品一区二区在线观看| 色婷婷激情久久| 91色porny蝌蚪| 在线观看免费成人| 欧美无砖专区一中文字|