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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? mmc_pxa.c

?? linux下mmc_sd卡的驅(qū)動(dòng).rar
?? C
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
	MMC_CMDAT = MMC_CMDAT_R1|MMC_CMDAT_WRITE|MMC_CMDAT_BLOCK|MMC_CMDAT_DATA_EN;#ifndef PIO	MMC_CMDAT |= MMC_CMDAT_MMC_DMA_EN; #endif	MMC_NOB = 1;	MMC_BLKLEN = transfer->blksz;    	MMC_DEBUG( MMC_DEBUG_LEVEL3, "CMD24(0x%04x%04x)\n", argh, argl );	if ( (ret = pxa_mmc_complete_cmd( ctrlr, MMC_R1, FALSE )) )		goto error;    /* transfer the data to the caller supplied buffer */	if ( (ret = pxa_mmc_copy_to_buffer( ctrlr, transfer->type, transfer->buf, transfer->cnt )) < 0 )		goto error;        	if ( (ret = pxa_mmc_write_buffer( ctrlr, ret )) < 0 )		goto error;	transfer->buf += ret;	transfer->cnt -= ret;	transfer->nob -= 1;    	pxa_mmc_set_state( ctrlr, PXA_MMC_FSM_END_IO );	if ( (ret = pxa_mmc_complete_io( ctrlr, transfer->cmd, transfer->mode )) )		goto error;    	ret = 0;    error:	return ret;}/* This procedure sequentally writes data blocks to a card at a given address */static ssize_t pxa_mmc_write_mblock( mmc_controller_t ctrlr, mmc_data_transfer_req_t transfer ){	int ret = -EIO;	u16 argh = 0UL, argl = 0UL;       // printk(KERN_EMERG"%s::%s\n\n", __FILE__, __FUNCTION__);    	/* send CMD16 (SET_BLOCK_LEN) when requested block size is not the default * for the current card */  	if ( transfer->blksz != ctrlr->stack.selected->info.write_bl_len ) {		argh = transfer->blksz >> 16;		argl = transfer->blksz;		if ( (ret = pxa_mmc_stop_bus_clock( ctrlr )) )			goto error;    		MMC_CMD = CMD(16); /* SET_BLOCK_LEN */		MMC_ARGH = argh;		MMC_ARGL = argl;		MMC_CMDAT = MMC_CMDAT_R1;        		MMC_DEBUG( MMC_DEBUG_LEVEL3, "CMD16(0x%04x%04x)\n", argh, argl );		if ( (ret = pxa_mmc_complete_cmd( ctrlr, MMC_R1, FALSE )) )			goto error;	}    	argh = transfer->addr >> 16;	argl = transfer->addr;/* 1. stop bus clock */	if ( (ret = pxa_mmc_stop_bus_clock( ctrlr )) )		goto error;/* 2. setup controller registers to start multiple block transfer */	MMC_CMD = CMD(25); /* WRITE_MULTIPLE_BLOCK */	MMC_ARGH = argh;	MMC_ARGL = argl;	MMC_NOB = transfer->nob;	MMC_BLKLEN = transfer->blksz;	MMC_CMDAT = MMC_CMDAT_R1|MMC_CMDAT_WRITE|MMC_CMDAT_BLOCK|MMC_CMDAT_DATA_EN;#ifndef PIO	MMC_CMDAT |= MMC_CMDAT_MMC_DMA_EN; #endif/* 3. start clock */	if ( (ret = pxa_mmc_start_bus_clock( ctrlr )) )		goto error;    /* 4. wait for cmd to complete */	MMC_DEBUG( MMC_DEBUG_LEVEL3, "CMD25(0x%04x%04x)\n", argh, argl );	if ( (ret = pxa_mmc_complete_cmd( ctrlr, MMC_R1, TRUE )) ) 		goto error;/* 6. transfer the data to the caller supplied buffer */	while ( transfer->cnt > 0 ) {		if ( (ret = pxa_mmc_copy_to_buffer( ctrlr, transfer->type,				transfer->buf, transfer->cnt )) < 0 )			goto error;        		if ( (ret = pxa_mmc_write_buffer( ctrlr, ret )) < 0 )			goto error;		transfer->buf += ret;		transfer->cnt -= ret;	}    	pxa_mmc_set_state( ctrlr, PXA_MMC_FSM_END_IO );	if ( (ret = pxa_mmc_complete_io( ctrlr, transfer->cmd, transfer->mode )) )		goto error;    	ret = 0;    error:	return ret;}static void pxa_mmc_irq( int irq, void *dev_id, struct pt_regs *regs ){	mmc_controller_t ctrlr = (mmc_controller_t)dev_id;	pxa_mmc_hostdata_t hostdata = (pxa_mmc_hostdata_t)ctrlr->host_data;        static int  irq_n=1;#ifdef PIO	register int i, cnt, j;	register char *buf;        unsigned long * posi;        char remain=0;        unsigned long value;#endif   	hostdata->mmc_i_reg = MMC_I_REG;	hostdata->mmc_stat = MMC_STAT;	hostdata->mmc_cmdat = MMC_CMDAT;        hostdata->mmc_cmd = MMC_CMD;          //  printk(KERN_EMERG"NO. %d MMC INTERRUPT OCCOUR \n", irq_n);      /*  printk(KERN_EMERG"%s::%s::MMC_I_MASK=0x%08x\n", __FILE__,__FUNCTION__, MMC_I_MASK);        printk(KERN_EMERG"%s::%s::MMC_I_REG=0x%08x\n", __FILE__,__FUNCTION__,  MMC_I_REG );        printk(KERN_EMERG"%s::%s::MMC_STAT=0x%08x\n", __FILE__, __FUNCTION__, MMC_STAT);        printk(KERN_EMERG"%s::%s::MMC_CMDAT=0x%08x\n", __FILE__, __FUNCTION__, MMC_CMDAT);        printk(KERN_EMERG"%s::%s::MMC_CMD=0x%08x\n", __FILE__, __FUNCTION__, MMC_CMD);       */      //     printk(KERN_EMERG"%s::%s::hostdata->state is 0x%08x\n", __FILE__, __FUNCTION__, hostdata->state);              irq_n++;#if CONFIG_MMC_DEBUG_IRQ 	if ( --hostdata->irqcnt <= 0 ) {		//printk( KERN_INFO __FUNCTION__"(): irqcnt exceeded\n" );		goto complete;	}#endif	switch ( hostdata->state ) {	case PXA_MMC_FSM_IDLE:	case PXA_MMC_FSM_CLK_OFF:	case PXA_MMC_FSM_END_IO:	case PXA_MMC_FSM_END_BUFFER:	case PXA_MMC_FSM_END_CMD:		goto complete;#ifdef PIO          	case PXA_MMC_FSM_BUFFER_IN_TRANSIT:            // printk(KERN_EMERG"PXA_MMC_FSM_BUFFER_IN_TRANSIT\n");        	if ( hostdata->mmc_stat & MMC_STAT_ERRORS )         		goto complete;        		buf = hostdata->iobuf.buf.pos;        	cnt = (hostdata->iobuf.buf.cnt < 32) ? 			hostdata->iobuf.buf.cnt : 32;                		if ( hostdata->mmc_cmdat & MMC_CMDAT_WRITE ) { //printk(KERN_EMERG"EXECUTE THE WRITE OPERATION \n");			/*if ( !(hostdata->mmc_stat & MMC_STAT_XMIT_FIFO_EMPTY) )				break; */                        posi = (unsigned long *) buf;                                                remain = cnt % 4;                        cnt = cnt / 4;                        if (remain) cnt++;                			for ( i = 0; i < cnt; i++ )                              {                                  value  = *posi++;                                  MMC_TXFIFO = value;				//MMC_TXFIFO = *buf++;                             }			if ( remain )		        	MMC_PRTBUF = MMC_PRTBUF_BUF_PART_FULL; 		} else { /* i.e. MMC_CMDAT_READ */			/*if( !(hostdata->mmc_stat & MMC_STAT_RECV_FIFO_FULL) )				break;*/                                // unsigned long  value;                                                                        posi = (unsigned long *) buf;                        remain = cnt % 4;                        cnt = cnt / 4;                          			for( i = 0; i < cnt; i++ )                           {                                 value = MMC_RXFIFO;                                *posi++ = value;                                           			       //*buf = MMC_RXFIFO ;                              // printk("MMC_STAT is 0x%08x, MMC_I_REG is 0x%08x, buf[%d] is 0x%08x\n",MMC_STAT ,MMC_I_REG, i , value);                                //buf++;                                                                                    }                             if (remain)                                 {  value = MMC_RXFIFO;                                   buf = (char *)posi;                                   for(j=0; j<remain; j++ )                                       { *buf++ = (value & 0xff);                                          value = value >>8;                                        }                                                                 }                  		}        		hostdata->iobuf.buf.pos =  (char *)posi;		hostdata->iobuf.buf.cnt -= (i*4 + remain);               // printk("hostdata->iobuf.buf.cnt is %d\n", hostdata->iobuf.buf.cnt);		if ( hostdata->iobuf.buf.cnt <= 0 ) {			pxa_mmc_set_state( ctrlr, PXA_MMC_FSM_END_BUFFER );                        MMC_DEBUG( MMC_DEBUG_LEVEL3, "buffer transferred\n");			goto complete;		}  		break; #endif /* PIO */	default:		MMC_DEBUG( MMC_DEBUG_LEVEL3, "unexpected state %d\n", 				hostdata->state );		goto complete;	}   	return;	complete:   	MMC_I_MASK = MMC_I_MASK_ALL;	complete( &hostdata->completion );	return;}#ifndef PIOstatic void pxa_mmc_dma_irq( int irq, void *dev_id, struct pt_regs *regs ){	mmc_controller_t ctrlr = (mmc_controller_t)dev_id;	pxa_mmc_hostdata_t hostdata = (pxa_mmc_hostdata_t)ctrlr->host_data;	u32 dcsr;	u32 ddadr;	int chan = hostdata->iobuf.buf.chan;		ddadr = DDADR( chan );	dcsr = DCSR( chan );	DCSR( chan ) = dcsr & ~DCSR_STOPIRQEN;		MMC_DEBUG( MMC_DEBUG_LEVEL3, 			"MMC DMA interrupt: chan=%d ddadr=0x%08x "			"dcmd=0x%08x dcsr=0x%08x\n", 			chan, ddadr, DCMD( chan ), dcsr );/* bus error */	if ( dcsr & DCSR_BUSERR ) {		MMC_DEBUG( MMC_DEBUG_LEVEL3, "bus error on DMA channel %d\n",				chan );		pxa_mmc_set_state( ctrlr, PXA_MMC_FSM_ERROR );		goto complete;	}/* data transfer completed */	if ( dcsr & DCSR_ENDINTR ) {		MMC_DEBUG( MMC_DEBUG_LEVEL3, "buffer transferred\n" );		pxa_mmc_set_state( ctrlr, PXA_MMC_FSM_END_BUFFER );		goto complete;	}	return;complete:	complete( &hostdata->completion );	return;}#endifstatic int pxa_mmc_init( mmc_controller_t ctrlr ){	int ret = -ENODEV;	pxa_mmc_hostdata_t hostdata = (pxa_mmc_hostdata_t)ctrlr->host_data;#ifndef PIO	register int i;	register pxa_dma_desc *desc;#endif/* hardware initialization *//* I. prepare to transfer data *//* 1. allocate buffer */#ifndef PIO	hostdata->iobuf.buf.read_desc = consistent_alloc( GFP_KERNEL,				(PXA_MMC_IODATA_SIZE>>5)				* sizeof( pxa_dma_desc ),				&hostdata->iobuf.buf.read_desc_phys_addr, 0 );	if ( !hostdata->iobuf.buf.read_desc ) {		ret = -ENOMEM;		goto error;	}	hostdata->iobuf.buf.write_desc = consistent_alloc( GFP_KERNEL,				(PXA_MMC_IODATA_SIZE>>5)				* sizeof( pxa_dma_desc ),				&hostdata->iobuf.buf.write_desc_phys_addr, 0 );	if ( !hostdata->iobuf.buf.write_desc ) {		ret = -ENOMEM;		goto error;	}	hostdata->iobuf.iodata = consistent_alloc( GFP_ATOMIC, 					PXA_MMC_IODATA_SIZE,					&hostdata->iobuf.buf.phys_addr, 0 );#else	hostdata->iobuf.iodata = kmalloc( PXA_MMC_IODATA_SIZE, GFP_ATOMIC );#endif	if ( !hostdata->iobuf.iodata ) {		ret = -ENOMEM;		goto error;	}/* 2. initialize iobuf */	hostdata->iobuf.blksz = PXA_MMC_BLKSZ_MAX;	hostdata->iobuf.bufsz = PXA_MMC_IODATA_SIZE;	hostdata->iobuf.nob = PXA_MMC_BLOCKS_PER_BUFFER;#ifndef PIO  /* request DMA channel */	if ( (hostdata->iobuf.buf.chan = pxa_request_dma( "MMC", DMA_PRIO_LOW,					pxa_mmc_dma_irq, ctrlr )) < 0 ) {		MMC_ERROR( "failed to request DMA channel\n" );		goto error;	}		DRCMRRXMMC = hostdata->iobuf.buf.chan | DRCMR_MAPVLD;	DRCMRTXMMC = hostdata->iobuf.buf.chan | DRCMR_MAPVLD;		for ( i = 0; i < ((PXA_MMC_IODATA_SIZE>>5) - 1); i++ ) {		desc = &hostdata->iobuf.buf.read_desc[i];		desc->ddadr = hostdata->iobuf.buf.read_desc_phys_addr				+ ((i + 1) * sizeof( pxa_dma_desc ));		desc->dsadr = MMC_RXFIFO_PHYS_ADDR;		desc->dtadr = hostdata->iobuf.buf.phys_addr + (i<<5);		desc->dcmd = DCMD_FLOWSRC|DCMD_INCTRGADDR				|DCMD_WIDTH1|DCMD_BURST32|(1<<5);				desc = &hostdata->iobuf.buf.write_desc[i];		desc->ddadr = hostdata->iobuf.buf.write_desc_phys_addr				+ ((i + 1) * sizeof( pxa_dma_desc ));		desc->dsadr = hostdata->iobuf.buf.phys_addr + (i<<5);		desc->dtadr = MMC_TXFIFO_PHYS_ADDR;		desc->dcmd = DCMD_FLOWTRG|DCMD_INCSRCADDR				|DCMD_WIDTH1|DCMD_BURST32|(1<<5);	}	desc = &hostdata->iobuf.buf.read_desc[i];	desc->ddadr = (hostdata->iobuf.buf.read_desc_phys_addr +				(i + 1) * sizeof( pxa_dma_desc))|DDADR_STOP;	desc->dsadr = MMC_RXFIFO_PHYS_ADDR;	desc->dtadr = hostdata->iobuf.buf.phys_addr + (i<<5);	desc->dcmd = DCMD_FLOWSRC|DCMD_INCTRGADDR			|DCMD_WIDTH1|DCMD_BURST32|(1<<5);			desc = &hostdata->iobuf.buf.write_desc[i];	desc->ddadr = (hostdata->iobuf.buf.write_desc_phys_addr +				(i + 1) * sizeof( pxa_dma_desc))|DDADR_STOP;	desc->dsadr = hostdata->iobuf.buf.phys_addr + (i<<5);	desc->dtadr = MMC_TXFIFO_PHYS_ADDR;	desc->dcmd = DCMD_FLOWTRG|DCMD_INCSRCADDR			|DCMD_WIDTH1|DCMD_BURST32|(1<<5);#endif/* II. MMC *//*  1) request irq */	if ( request_irq( IRQ_MMC, pxa_mmc_irq, 0, "MMC", ctrlr ) ) {		MMC_ERROR( "failed to request IRQ_MMC\n" );		goto error;	}    /*  2) initialize h/w and ctrlr */	//set_GPIO_mode( GPIO6_MMCCLK_MD );        init_gpio( );	CKEN |= CKEN12_MMC; /* enable MMC unit clock */	ret = 0;	goto out;error:#ifndef PIO/* free DMA resources */	if ( hostdata->iobuf.buf.chan >= 0 ) {		DRCMRRXMMC = 0;		DRCMRTXMMC = 0;		pxa_free_dma( hostdata->iobuf.buf.chan );	}	if ( hostdata->iobuf.iodata )		consistent_free( hostdata->iobuf.iodata, 				 PXA_MMC_IODATA_SIZE,				 hostdata->iobuf.buf.phys_addr );	if ( hostdata->iobuf.buf.read_desc )			consistent_free( hostdata->iobuf.buf.read_desc,				(PXA_MMC_IODATA_SIZE>>5)				* sizeof( pxa_dma_desc ),				hostdata->iobuf.buf.read_desc_phys_addr );	if ( hostdata->iobuf.buf.write_desc )			consistent_free( hostdata->iobuf.buf.write_desc,				(PXA_MMC_IODATA_SIZE>>5)				* sizeof( pxa_dma_desc ),				hostdata->iobuf.buf.write_desc_phys_addr );#else	kfree( hostdata->iobuf.iodata );#endifout:	return ret; }static void pxa_mmc_remove( mmc_controller_t ctrlr ){	pxa_mmc_hostdata_t hostdata = (pxa_mmc_hostdata_t)ctrlr->host_data;	/*  1) free buffer(s) */#ifndef PIO	consistent_free( hostdata->iobuf.iodata, PXA_MMC_IODATA_SIZE,			 hostdata->iobuf.buf.phys_addr );	consistent_free( hostdata->iobuf.buf.read_desc,	 		 (PXA_MMC_IODATA_SIZE>>5)			 * sizeof( pxa_dma_desc ),			 hostdata->iobuf.buf.read_desc_phys_addr );	consistent_free( hostdata->iobuf.buf.write_desc,			 (PXA_MMC_IODATA_SIZE>>5)			 * sizeof( pxa_dma_desc ),			 hostdata->iobuf.buf.write_desc_phys_addr );/*  2) release DMA channel */	if ( hostdata->iobuf.buf.chan >= 0 ) {		DRCMRRXMMC = 0;		DRCMRTXMMC = 0;		pxa_free_dma( hostdata->iobuf.buf.chan );	}#else	kfree( hostdata->iobuf.iodata );#endif/* II. MMC *//*  1) release irq */	free_irq( IRQ_MMC, ctrlr );	CKEN &= ~CKEN12_MMC; /* disable MMC unit clock */}static int pxa_mmc_probe( mmc_controller_t ctrlr ){	return 1;}#ifdef CONFIG_PMstatic int pxa_mmc_suspend( mmc_controller_t ctrlr ){	int ret = -EBUSY;	pxa_mmc_hostdata_t hostdata = (pxa_mmc_hostdata_t)ctrlr->host_data;		MMC_DEBUG( MMC_DEBUG_LEVEL2, "state=%s\n", 			PXA_MMC_STATE_LABEL( hostdata->state ) );	if ( hostdata->state == PXA_MMC_FSM_IDLE ) {		/* save registers */		SAVED_MMC_CLKRT = MMC_CLKRT;		SAVED_MMC_RESTO = MMC_RESTO;		SAVED_MMC_SPI = MMC_SPI;		SAVED_DRCMRRXMMC = DRCMRRXMMC;		SAVED_DRCMRTXMMC = DRCMRTXMMC;#if 0 /* FIXME */		/* send CMD0 */		if ( (ret = pxa_mmc_stop_bus_clock( ctrlr )) )			goto error;		MMC_CMD = CMD(0); /* CMD0 with zero argument */		MMC_ARGH = 0UL;		MMC_ARGL = 0UL; 		MMC_

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久九九99视频| 国产三级精品三级在线专区| 欧美精品粉嫩高潮一区二区| 欧美精品丝袜中出| 欧美日韩视频在线一区二区| 91麻豆免费观看| 欧美三级在线看| 久久综合中文字幕| 亚洲老司机在线| 国产精品久久久久毛片软件| 国产亚洲欧洲997久久综合 | 中文字幕一区二区在线播放| 国产精品久久久久久久第一福利| 亚洲乱码中文字幕| 久久精品国产久精国产| 国产乱国产乱300精品| 99在线精品视频| 欧美一级日韩一级| 国产精品二三区| 亚洲h动漫在线| 丝袜a∨在线一区二区三区不卡| 天天色 色综合| 九九在线精品视频| 91成人在线观看喷潮| 欧美日韩一级二级三级| 日韩欧美一区二区在线视频| 亚洲视频在线一区观看| 久久成人免费网| 欧美在线色视频| 亚洲免费资源在线播放| 国产精品99久久久| 欧美精品1区2区3区| 亚洲激情校园春色| 国产盗摄女厕一区二区三区| 色综合久久久久综合99| 国产香蕉久久精品综合网| 偷拍与自拍一区| 欧美在线一二三| 亚洲狠狠丁香婷婷综合久久久| 国产成人免费在线观看| 久久蜜臀中文字幕| 久久99精品国产91久久来源| 欧美变态凌虐bdsm| 亚洲成人福利片| 91麻豆精品国产自产在线| 亚洲婷婷综合久久一本伊一区 | 91国产成人在线| 自拍偷拍欧美精品| 99久久久无码国产精品| 国产精品欧美综合在线| 99久久久久久| 午夜不卡在线视频| 欧美一二三区在线| 成人开心网精品视频| 精品国产污污免费网站入口| 不卡在线视频中文字幕| 亚洲一区在线观看网站| 欧美电影免费提供在线观看| 福利一区在线观看| 成人免费小视频| 欧美性感一类影片在线播放| 轻轻草成人在线| 精品国产网站在线观看| 99这里都是精品| 免费高清在线一区| 136国产福利精品导航| 欧美精品自拍偷拍动漫精品| 美洲天堂一区二卡三卡四卡视频| 久久精品视频免费观看| 日本韩国欧美一区| 视频一区国产视频| 久久精品夜色噜噜亚洲aⅴ| 色综合久久88色综合天天| 久久99精品久久久久久动态图 | 国产精品99久久久久| 首页欧美精品中文字幕| 亚洲制服欧美中文字幕中文字幕| 国产精品久久看| 国产网红主播福利一区二区| 欧美大胆人体bbbb| 欧美精品乱人伦久久久久久| 欧美日韩国产综合一区二区| 成人中文字幕电影| 国产精品亚洲а∨天堂免在线| 日韩av二区在线播放| 亚洲在线观看免费| 一区二区在线观看免费| 国产亚洲人成网站| 国产午夜精品在线观看| 日韩女优制服丝袜电影| 欧美一区二区三区四区五区| 91精品国产欧美一区二区18| 9191国产精品| 日韩欧美另类在线| 国产精品久久久久久久久免费桃花 | 中文字幕乱码久久午夜不卡| 久久综合久久久久88| 欧美成人在线直播| 欧美日韩aaaaaa| 久久久久99精品国产片| 日本一区二区三区电影| 亚洲成人动漫在线免费观看| 美女视频免费一区| 成人激情文学综合网| 色综合久久六月婷婷中文字幕| 欧美亚洲综合色| 精品国产自在久精品国产| 国产亚洲一区字幕| 日韩va欧美va亚洲va久久| 粉嫩av一区二区三区在线播放| 成人看片黄a免费看在线| 欧美一三区三区四区免费在线看| 国产婷婷精品av在线| 一区二区三区国产精品| 久久精品国产一区二区三区免费看| 免费观看久久久4p| 91丨九色porny丨蝌蚪| 9191国产精品| 综合久久国产九一剧情麻豆| 日本欧美大码aⅴ在线播放| 亚洲午夜精品一区二区三区他趣| 国产精品亚洲一区二区三区妖精| 欧美日韩午夜影院| 国产精品每日更新在线播放网址| 欧美aaaaaa午夜精品| 色94色欧美sute亚洲线路一久| 国产女人水真多18毛片18精品视频| 亚洲bt欧美bt精品| 91精品福利在线| 亚洲国产日韩精品| 欧美综合天天夜夜久久| 一区二区三区在线观看网站| 91老师国产黑色丝袜在线| 一区二区在线看| 欧美日韩一区二区三区在线| 婷婷久久综合九色综合伊人色| 欧美少妇一区二区| 免费成人美女在线观看| 久久这里都是精品| 波多野结衣中文字幕一区二区三区| 国产欧美精品一区二区色综合| 北岛玲一区二区三区四区| 成人免费在线视频观看| 欧美日韩国产三级| 麻豆成人久久精品二区三区红| 2024国产精品视频| 99久久伊人网影院| 天天综合网天天综合色| 久久久一区二区三区捆绑**| 国产精品一区专区| 婷婷国产v国产偷v亚洲高清| 久久精品视频一区二区| 欧美网站大全在线观看| 麻豆精品国产传媒mv男同| 国产精品久99| 欧美电影免费观看高清完整版在线观看 | 亚洲欧美一区二区三区久本道91| 欧美精品三级在线观看| 成人激情黄色小说| 蜜桃视频一区二区三区在线观看| 日本一区二区三区四区| 6080yy午夜一二三区久久| 成人免费毛片app| 99视频在线观看一区三区| 91麻豆高清视频| 欧美福利视频导航| 精品国产一区二区国模嫣然| 亚洲精品在线一区二区| 2021久久国产精品不只是精品| 国产人妖乱国产精品人妖| 中文字幕一区在线观看视频| 亚洲免费在线看| 久久电影网电视剧免费观看| a级高清视频欧美日韩| 欧美日韩免费观看一区三区| 欧美精品一区二区三区高清aⅴ| 欧美高清在线精品一区| 日韩在线一二三区| 成人av第一页| 欧美成人一区二区三区| 国产成人在线视频播放| 日韩影视精彩在线| 精品在线一区二区三区| 国产成人av电影在线| 91免费小视频| 欧美一级搡bbbb搡bbbb| 久久尤物电影视频在线观看| 中文字幕乱码久久午夜不卡| 亚洲风情在线资源站| 国产成人在线视频播放| 欧美日韩免费观看一区二区三区| 精品国产精品网麻豆系列 | 成人欧美一区二区三区黑人麻豆| 亚洲美女视频在线观看| 青青草一区二区三区| 风间由美中文字幕在线看视频国产欧美| 成人97人人超碰人人99| 91麻豆精品国产91| 亚洲美女淫视频| 国产在线播放一区|