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

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

?? net2280.h

?? LINUX2.4.18內核下的usb GADGET驅動程序
?? H
?? 第 1 頁 / 共 3 頁
字號:
struct net2280_ep {	struct usb_ep				ep;	struct net2280_ep_regs			*regs;	struct net2280_dma_regs			*dma;	struct net2280_dma			*dummy;	dma_addr_t				td_dma;	/* of dummy */	struct net2280				*dev;	unsigned long				irqs;	/* analogous to a host-side qh */	struct list_head			queue;	const struct usb_endpoint_descriptor	*desc;	unsigned				num : 8,						fifo_size : 12,						in_fifo_validate : 1,						out_overflow : 1,						stopped : 1,						is_in : 1,						is_iso : 1;};static inline void allow_status (struct net2280_ep *ep){	/* ep0 only */	writel (  (1 << CLEAR_CONTROL_STATUS_PHASE_HANDSHAKE)		| (1 << CLEAR_NAK_OUT_PACKETS)		| (1 << CLEAR_NAK_OUT_PACKETS_MODE)		, &ep->regs->ep_rsp);	ep->stopped = 1;}/* count (<= 4) bytes in the next fifo write will be valid */static inline void set_fifo_bytecount (struct net2280_ep *ep, unsigned count){	writeb (count, 2 + (u8 *) &ep->regs->ep_cfg);}struct net2280_request {	struct usb_request		req;	struct net2280_dma		*td;	dma_addr_t			td_dma;	struct list_head		queue;	unsigned			mapped : 1,					valid : 1;};struct net2280 {	/* each pci device provides one gadget, several endpoints */	struct usb_gadget		gadget;	spinlock_t			lock;	struct net2280_ep		ep [7];	struct usb_gadget_driver 	*driver;	unsigned			enabled : 1,					protocol_stall : 1,					softconnect : 1,					got_irq : 1,					region : 1;	u16				chiprev;	/* pci state used to access those endpoints */	struct pci_dev			*pdev;	struct net2280_regs		*regs;	struct net2280_usb_regs		*usb;	struct net2280_pci_regs		*pci;	struct net2280_dma_regs		*dma;	struct net2280_dep_regs		*dep;	struct net2280_ep_regs		*epregs;	struct pci_pool			*requests;	// statistics...};static inline void set_halt (struct net2280_ep *ep){	/* ep0 and bulk/intr endpoints */	writel (  (1 << CLEAR_CONTROL_STATUS_PHASE_HANDSHAKE)		    /* set NAK_OUT for erratum 0114 */		| ((ep->dev->chiprev == CHIPREV_1) << SET_NAK_OUT_PACKETS)		| (1 << SET_ENDPOINT_HALT)		, &ep->regs->ep_rsp);}static inline void clear_halt (struct net2280_ep *ep){	/* ep0 and bulk/intr endpoints */	writel (  (1 << CLEAR_ENDPOINT_HALT)		| (1 << CLEAR_ENDPOINT_TOGGLE)		    /* unless the gadget driver left a short packet in the		     * fifo, this reverses the erratum 0114 workaround.		     */		| ((ep->dev->chiprev == CHIPREV_1) << CLEAR_NAK_OUT_PACKETS)		, &ep->regs->ep_rsp);}#ifdef USE_RDK_LEDSstatic inline void net2280_led_init (struct net2280 *dev){	/* LED3 (green) is on during USB activity. note erratum 0113. */	writel ((1 << GPIO3_LED_SELECT)		| (1 << GPIO3_OUTPUT_ENABLE)		| (1 << GPIO2_OUTPUT_ENABLE)		| (1 << GPIO1_OUTPUT_ENABLE)		| (1 << GPIO0_OUTPUT_ENABLE)		, &dev->regs->gpioctl);}/* indicate speed with bi-color LED 0/1 */static inlinevoid net2280_led_speed (struct net2280 *dev, enum usb_device_speed speed){	u32	val = readl (&dev->regs->gpioctl);	switch (speed) {	case USB_SPEED_HIGH:		/* green */		val &= ~(1 << GPIO0_DATA);		val |= (1 << GPIO1_DATA);		break;	case USB_SPEED_FULL:		/* red */		val &= ~(1 << GPIO1_DATA);		val |= (1 << GPIO0_DATA);		break;	default:			/* (off/black) */		val &= ~((1 << GPIO1_DATA) | (1 << GPIO0_DATA));		break;	}	writel (val, &dev->regs->gpioctl);}/* indicate power with LED 2 */static inline void net2280_led_active (struct net2280 *dev, int is_active){	u32	val = readl (&dev->regs->gpioctl);	// FIXME this LED never seems to turn on.	if (is_active)		val |= GPIO2_DATA;	else		val &= ~GPIO2_DATA;	writel (val, &dev->regs->gpioctl);}static inline void net2280_led_shutdown (struct net2280 *dev){	/* turn off all four GPIO*_DATA bits */	writel (readl (&dev->regs->gpioctl) & ~0x0f,			&dev->regs->gpioctl);}#else#define net2280_led_init(dev)		do { } while (0)#define net2280_led_speed(dev, speed)	do { } while (0)#define net2280_led_shutdown(dev)	do { } while (0)#endif/*-------------------------------------------------------------------------*/#define xprintk(dev,level,fmt,args...) \	printk(level "%s %s: " fmt , driver_name , \			dev->pdev->slot_name , ## args)#ifdef DEBUG#undef DEBUG#define DEBUG(dev,fmt,args...) \	xprintk(dev , KERN_DEBUG , fmt , ## args)#else#define DEBUG(dev,fmt,args...) \	do { } while (0)#endif /* DEBUG */#ifdef VERBOSE#define VDEBUG DEBUG#else#define VDEBUG(dev,fmt,args...) \	do { } while (0)#endif	/* VERBOSE */#define ERROR(dev,fmt,args...) \	xprintk(dev , KERN_ERR , fmt , ## args)#define WARN(dev,fmt,args...) \	xprintk(dev , KERN_WARNING , fmt , ## args)#define INFO(dev,fmt,args...) \	xprintk(dev , KERN_INFO , fmt , ## args)/*-------------------------------------------------------------------------*/static inline void start_out_naking (struct net2280_ep *ep){	/* NOTE:  hardware races lurk here, and PING protocol issues */	writel ((1 << SET_NAK_OUT_PACKETS), &ep->regs->ep_rsp);	/* synch with device */	readl (&ep->regs->ep_rsp);}#ifdef DEBUGstatic inline void assert_out_naking (struct net2280_ep *ep, const char *where){	u32	tmp = readl (&ep->regs->ep_stat);	if ((tmp & (1 << NAK_OUT_PACKETS)) == 0) {		DEBUG (ep->dev, "%s %s %08x !NAK\n",				ep->ep.name, where, tmp);		writel ((1 << SET_NAK_OUT_PACKETS),			&ep->regs->ep_rsp);	}}#define ASSERT_OUT_NAKING(ep) assert_out_naking(ep,__FUNCTION__)#else#define ASSERT_OUT_NAKING(ep) do {} while (0)#endifstatic inline void stop_out_naking (struct net2280_ep *ep){	u32	tmp;	tmp = readl (&ep->regs->ep_stat);	if ((tmp & (1 << NAK_OUT_PACKETS)) != 0)		writel ((1 << CLEAR_NAK_OUT_PACKETS), &ep->regs->ep_rsp);}/*-------------------------------------------------------------------------*//* 2.5 and 2.4.older portability changes ... */#ifndef container_of#define	container_of	list_entry#endif#ifndef likely#define likely(x) (x)#define unlikely(x) (x)#endif#ifndef BUG_ON#define BUG_ON(condition) do { if (unlikely((condition)!=0)) BUG(); } while(0)#endif#ifndef WARN_ON#define	WARN_ON(x)	do { } while (0)#endif#ifndef	IRQ_NONEtypedef void irqreturn_t;#define IRQ_NONE#define IRQ_HANDLED#define IRQ_RETVAL(x)#endif#endif	/* __KERNEL__ */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
六月婷婷色综合| 日本成人中文字幕| 欧美精品一区二区三区在线播放| 91国偷自产一区二区开放时间| 国产精品99久久久久久久女警| 日韩精品一区第一页| 一区二区三区高清不卡| 亚洲欧洲美洲综合色网| 国产精品视频在线看| 中文一区二区完整视频在线观看| 精品88久久久久88久久久| 欧美变态凌虐bdsm| 欧美videos中文字幕| 日韩视频免费观看高清完整版在线观看| 日本大香伊一区二区三区| 91老师片黄在线观看| 91农村精品一区二区在线| 91啪在线观看| 欧美日韩一级片网站| 欧美日本在线视频| 91极品美女在线| 91在线一区二区| 欧美四级电影网| 7777精品伊人久久久大香线蕉最新版| 欧美美女一区二区三区| 欧美精品自拍偷拍| 精品免费日韩av| 中文字幕精品在线不卡| 亚洲人成人一区二区在线观看| 一区二区在线观看视频在线观看| 一区二区三区不卡视频在线观看| 亚洲在线观看免费| 久久精品久久综合| 国产成人精品一区二区三区四区 | 亚洲国产精品成人综合| 久久欧美中文字幕| 国产精品夫妻自拍| 亚洲国产一区二区在线播放| 青草av.久久免费一区| 精品在线视频一区| 91丨九色丨蝌蚪富婆spa| 欧美疯狂做受xxxx富婆| 国产欧美一区二区精品性| 亚洲乱码国产乱码精品精小说| 日韩专区在线视频| 从欧美一区二区三区| 欧美最新大片在线看| 日韩午夜在线影院| 亚洲少妇30p| 蜜臀91精品一区二区三区| 成人高清免费观看| 欧美一区二区三区免费观看视频 | 91极品美女在线| 欧美v日韩v国产v| 亚洲欧美日本在线| 久久99最新地址| 在线观看区一区二| 久久久亚洲午夜电影| 一区二区欧美国产| 国产凹凸在线观看一区二区| 欧美性受极品xxxx喷水| 中文字幕精品—区二区四季| 日韩和的一区二区| 成人avav影音| 亚洲精品一区在线观看| 亚洲国产精品天堂| 不卡av在线免费观看| 337p粉嫩大胆噜噜噜噜噜91av| 亚洲国产乱码最新视频| 91在线视频免费观看| 久久精品视频在线看| 免费成人你懂的| 欧美日韩一区三区| 亚洲美女屁股眼交| 成人一级视频在线观看| 精品久久久久久久久久久久包黑料| 亚洲一级二级三级| 99久精品国产| 国产精品毛片大码女人| 国产乱码精品一区二区三| 日韩免费看的电影| 日韩国产欧美一区二区三区| 欧美人体做爰大胆视频| 悠悠色在线精品| 一本色道久久综合亚洲aⅴ蜜桃 | 久久se精品一区二区| 欧美人妇做爰xxxⅹ性高电影 | 亚洲一区免费在线观看| 成人免费毛片嘿嘿连载视频| 久久人人97超碰com| 狠狠色丁香婷综合久久| 精品国产一区二区三区av性色| 午夜久久福利影院| 欧美色图在线观看| 无码av免费一区二区三区试看| 欧美性猛片xxxx免费看久爱| 亚洲精品你懂的| 欧美午夜精品理论片a级按摩| 一区二区国产视频| 欧美日韩一本到| 天堂精品中文字幕在线| 欧美精品久久99| 蜜臀av性久久久久蜜臀av麻豆| 欧美丰满一区二区免费视频 | 麻豆精品精品国产自在97香蕉| 日韩一区国产二区欧美三区| 美日韩一区二区三区| 精品国产凹凸成av人网站| 国产在线视频一区二区| 国产精品女人毛片| 色诱视频网站一区| 日韩专区在线视频| 久久久久国产精品人| 波多野结衣中文字幕一区| 亚洲欧洲综合另类| 欧美片在线播放| 韩国理伦片一区二区三区在线播放| 久久久国产午夜精品| caoporm超碰国产精品| 一区二区三区国产精品| 日韩欧美资源站| 丰满放荡岳乱妇91ww| 亚洲综合无码一区二区| 精品日韩在线观看| 99久久综合国产精品| 日韩国产在线一| 国产精品污污网站在线观看| 在线视频一区二区三区| 九九九精品视频| 日韩美女精品在线| 欧美mv和日韩mv的网站| 欧美又粗又大又爽| 国产一区二区在线看| 亚洲欧美日韩小说| 26uuu欧美| 欧美美女一区二区在线观看| 国产成人免费视频一区| 亚洲超丰满肉感bbw| 中文字幕av一区二区三区| 欧美日韩国产一区| 成人黄色a**站在线观看| 日本va欧美va精品| 亚洲天堂2014| 久久久精品国产免大香伊| 欧美午夜电影网| 99久久精品免费观看| 91蝌蚪porny| 麻豆精品精品国产自在97香蕉 | 成人小视频在线| 日韩在线一区二区三区| 国产精品久久久久久久岛一牛影视 | 色综合久久88色综合天天免费| 蜜臀av性久久久久蜜臀aⅴ | 99re在线视频这里只有精品| 日韩激情一二三区| 夜夜精品视频一区二区| 欧美国产乱子伦 | 欧美性视频一区二区三区| 国产91精品精华液一区二区三区 | 国模一区二区三区白浆| 午夜欧美在线一二页| 亚洲老妇xxxxxx| |精品福利一区二区三区| 国产亚洲午夜高清国产拍精品| 欧美一区二区视频在线观看2020 | 亚洲欧洲三级电影| 欧美激情一区二区| 国产亚洲精品bt天堂精选| 欧美v国产在线一区二区三区| 这里只有精品免费| 欧美日韩精品欧美日韩精品| 91亚洲精品久久久蜜桃网站| 成人黄色一级视频| 成人h精品动漫一区二区三区| 国产精品一区二区黑丝 | 亚洲一区二区三区四区在线| 亚洲欧美在线高清| 亚洲欧洲国产日本综合| 综合电影一区二区三区| 亚洲男人天堂一区| 一区二区三区国产| 午夜视频久久久久久| 日本va欧美va精品发布| 久久aⅴ国产欧美74aaa| 国产伦理精品不卡| 成人午夜在线视频| 色域天天综合网| 欧美蜜桃一区二区三区| 欧美一区二区三区视频在线观看 | 成人av高清在线| 99热在这里有精品免费| 99久久国产综合精品麻豆| 99精品久久只有精品| 色综合久久综合| 宅男噜噜噜66一区二区66| 欧美大黄免费观看| 国产精品天美传媒沈樵| 一区二区三区精密机械公司| 日韩精品亚洲一区| 国产精一区二区三区|