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

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

?? gspi_bus_2440.c

?? 244x下marvell 8686模塊wince下驅(qū)動
?? C
?? 第 1 頁 / 共 3 頁
字號:
#if defined(IF_GSPI) && (defined(SC2442_SPI))

#include <Windows.h>
#include <Pkfuncs.h>
#include "s3c2440a.h"
#define SSPreg  S3C2440A_SPI_REG
#define DMAreg  S3C2440A_DMA_REG
#define IOPreg  S3C2440A_IOPORT_REG
#define CLKreg  S3C2440A_CLKPWR_REG
#define SSP_BASE S3C2440A_BASE_REG_PA_SPI
#define IOP_BASE S3C2440A_BASE_REG_PA_IOPORT
#define DMA_BASE S3C2440A_BASE_REG_PA_DMA
#define CLK_BASE S3C2440A_BASE_REG_PA_CLOCK_POWER
#define rGPDDAT GPDDAT
#define rGPDCON GPDCON
#define rGPDUP GPDUP
#define rGPEDAT GPEDAT
#define rGPECON GPECON
#define rGPEUP GPEUP
#define rGPFDAT GPFDAT
#define rGPFCON GPFCON
#define rGPFUP GPFUP
#define rGPGDAT GPGDAT
#define rGPGCON GPGCON
#define rGPGUP GPGUP
#define rGPHDAT GPHDAT
#define rGPHCON GPHCON
#define rGPHUP GPHUP
#define rSPCON0 SPCON0
#define rSPPRE0 SPPRE0
#define rSPPIN0 SPPIN0
#define rSPSTA0 SPSTA0
#define rSPTDAT0 SPTDAT0
#define rSPRDAT0 SPRDAT0
#define rMISCCR MISCCR
#define rEXTINT0 EXTINT0
#define rEXTINT1 EXTINT1
#define rDSTAT1 DSTAT1
#define rDISRC1 DISRC1
#define rDISRCC1 DISRCC1
#define rDIDST1 DIDST1
#define rDIDSTC1 DIDSTC1
#define rDIDSTC1 DIDSTC1
#define rDCON1   DCON1
#define rDMASKTRIG1 DMASKTRIG1
#define rDSTAT3 DSTAT3
#define rDISRC3 DISRC3
#define rDISRCC3 DISRCC3
#define rDIDST3 DIDST3
#define rDIDSTC3 DIDSTC3
#define rDIDSTC3 DIDSTC3
#define rDCON3   DCON3
#define rDMASKTRIG3 DMASKTRIG3

#include "gspi_bus_2440.h"
typedef struct GspiBusDmaData
{
   DWORD   dwDmaIntID;
   HANDLE  hGspiDmaIntrEvent;
   HANDLE  hIstDmaThread;
   HANDLE  hGspiBusSem;
   int     IstPriority;
   BOOLEAN gspi_dma_exit;
} 
GSPI_DMA_DATA,*PGSPI_DMA_DATA;

static SYSTEM_INFO si = {0, 0, 0, 0};

#ifndef DEBUG
#define GSPI_BUS_DELAY(x) gspi_bus_delay(x)	
#else
#define GSPI_BUS_DELAY(x)
#endif 

//#define GSPI_WAIT_FOR_BUS_RDY() while(!(*spi_status_ptr & BIT0))
//#define GSPI_WAIT_FOR_BUS_RDY()		while(!(*((volatile UINT32 *)(&(g_pHwInfo->pSPIRegs->rSPSTA0))) & BIT0))

#if 1
#ifndef DEBUG
#define GSPI_WAIT_FOR_BUS_RDY()  gspi_wait_for_bus_rdy()
#else
#define GSPI_WAIT_FOR_BUS_RDY()  while (!((volatile)(g_pHwInfo->pSPIRegs->rSPSTA0) & BIT0))
#endif 
#endif 
/* ----- Local function declaration -------- */
UINT32 spi_status = 0;

void* MapIOSpace(void* pPhysAddr,
                 DWORD dwSize,
                 DWORD dwFlags);
void UnmapIOSpace(void* pVirtAddr);
DWORD WINAPI GspiBusDmaIST(PVOID pContext);
int GspiBusCtrlInit();
int GspiBusGPIOInit();
int GspiBusDmaInit();
void GspiBusInitRxDMA();
void GspiBusInitTxDMA();
static __inline 
void gspi_bus_delay(int times);
static __inline  
void gspi_wait_for_bus_rdy();
static __inline  
void gspi_xmt_data(UINT16* pData,UINT16 size);
static __inline  
void gspi_recv_data(UINT16* pData,UINT16 size);
int gspi_read_data(UINT16 *data, UINT16 size);
int gspi_bus_write_data(UINT16 *data, UINT16 size);
int gspi_read_data_direct(UCHAR *data, UINT16 reg, UINT16 size);
int gspi_bus_write_data_direct(UCHAR *data, UINT16 reg, UINT16 size);
void gspi_delay(int loop);
unsigned long GspiBusGetBSPDMAIntID();
int GspiBusDmaDeinit();
int GspiBusDmaIntrInit(IN PGSPI_DMA_DATA pDriver);
int GspiBusDmaIntrDeinit(IN PGSPI_DMA_DATA pDriver);
/* ----------------------------------------- */

/* Use default clock rate of 20 Mhz for GSPI. So, clkdiv as 0 */
static int	    clkdiv = 0; 
//extern int				g_spi_dummy_clk_reg;
//extern int				g_spi_dummy_clk_data;
int             g_spi_dummy_clk_reg = 0x05;   //JKU
int     		g_spi_dummy_clk_data = 0x0e;  //JKU
volatile UINT32  *spi_status_ptr;
// Pointers to Hardware register base.
static GSPI_HW_INFO HwInfo;
pGSPI_HW_INFO g_pHwInfo = &HwInfo;
static GSPI_DMA_DATA g_GspiDmaData;

#ifdef BUILT_FOR_LGEVT
volatile BSP_ARGS* g_pBspArgs = NULL;
#endif

//__inline
void GspiBusDMADone()//PSPI_DMA_DATA pDrv);
{    
    ReleaseSemaphore(g_GspiDmaData.hGspiBusSem, 1, NULL);
}

//__inline
int GspiBusWaitForDMA()
{  
   	WaitForSingleObject(g_GspiDmaData.hGspiBusSem, INFINITE);
    return 1;
}
void gspi_set_read_delay(int reg,int io)
{
	g_spi_dummy_clk_reg = reg;
	g_spi_dummy_clk_data = io;
}
void GspiHostSetTst1High()
{
	g_pHwInfo->pGPIORegs->rGPEDAT |= (0x1 << 10); //GPE10
}

void GspiHostSetTst1Low()
{
	g_pHwInfo->pGPIORegs->rGPEDAT &= ~(0x1 << 10); //GPE10 
}
void GspiHostSetTst2Low()
{
  g_pHwInfo->pGPIORegs->rGPEDAT &= ~(0x1 << 9); //GPE9

}
void GspiHostSetTst2High()
{
  g_pHwInfo->pGPIORegs->rGPEDAT |= (0x1 << 9); //GPE9
}
void GspiHostSetTst3High()
{
	g_pHwInfo->pGPIORegs->rGPEDAT |= (0x1 << 8); //GPE8
}
void GspiHostSetTst3Low()
{
	g_pHwInfo->pGPIORegs->rGPEDAT &= ~(0x1 << 8); //GPE8 
}

void GspiHostSetSCSHigh()
{ 
   //g_pHwInfo->pGPIORegs->rGPEDAT |= (0x1 << 9); //GPE9
   g_pHwInfo->pGPIORegs->rGPGDAT |= (0x1 << 2); //nSS0
	gspi_delay(10);
}

void GspiHostSetSCSLow()
{
    //g_pHwInfo->pGPIORegs->rGPEDAT &= ~(0x1 << 9); //GPE9
    g_pHwInfo->pGPIORegs->rGPGDAT &= ~(0x1 << 2); //nSS0
}

void GspiHostSetRSTHigh()
{
	g_pHwInfo->pGPIORegs->rGPHDAT |= (0x1 << 10); //GPH10
}

void GspiHostSetRSTLow()
{
	g_pHwInfo->pGPIORegs->rGPHDAT &= ~(0x1 << 10); //GPH10

}
void GspiHostSetPDHigh()
{
	g_pHwInfo->pGPIORegs->rGPEDAT |= (0x1 << 9); //GPE9
}

void GspiHostSetPDLow()
{
	g_pHwInfo->pGPIORegs->rGPEDAT &= ~(0x1 << 9); //GPE9
}

void GspiHostSetPwrEnHigh()
{
}

void GspiHostSetPwrEnLow()
{

}
static __inline
void prepare_for_spibus(UCHAR *data, UCHAR* source, UINT16 size)
{
    register int ii, jj;
    UINT16 *tmpval = (UINT16*)data;
	
    for (ii = 0; ii < size; ii++)
    {
		jj = 2 * ii;
        tmpval[ii] = (source[jj] << 8) | (source[jj+1] );
    }
}

static __inline 
void GspiBusSetTransmitter(void)
{
    //DBG_PRINT(gDbgInfo,("before SPCON0 =0x%lX\n", (unsigned long)g_pHwInfo->pSPIRegs->rSPCON0));
	g_pHwInfo->pSPIRegs->rSPCON0 = (0x0<<5) | 0x58; //TAGD=0,CPHA=0,CPOL=0,MSTR=1,ENSCK=1, SMOD=DMA
	//DBG_PRINT(gDbgInfo,("after SPCON0 =0x%lX\n", (unsigned long)g_pHwInfo->pSPIRegs->rSPCON0));
}

static __inline 
void GspiBusSetTransmitter_nodma(void)
{
    //DBG_PRINT(gDbgInfo,("before SPCON0 =0x%lX\n", (unsigned long)g_pHwInfo->pSPIRegs->rSPCON0));
	g_pHwInfo->pSPIRegs->rSPCON0 = (0x0<<5) | 0x18; //TAGD=0,CPHA=0,CPOL=0,MSTR=1,ENSCK=1, SMOD=polling
//	g_pHwInfo->pSPIRegs->rSPCON0 = (0x0<<5) | 0x38; //TAGD=0,CPHA=0,CPOL=0,MSTR=1,ENSCK=1, SMOD=Interrupt
	
	//DBG_PRINT(gDbgInfo,("after SPCON0 =0x%lX\n", (unsigned long)g_pHwInfo->pSPIRegs->rSPCON0));
}

static __inline 
void GspiBusResetTransmitter(void)
{
	g_pHwInfo->pSPIRegs->rSPCON0 = (0x0<<5) | 0x18; //TAGD=0,CPHA=0,CPOL=0,MSTR=1,ENSCK=1, SMOD=polling
}

static __inline 
void GspiBusSetReceiver(void)
{
    //DBG_PRINT(gDbgInfo,("before SPCON0 =0x%lX\n", (unsigned long)g_pHwInfo->pSPIRegs->rSPCON0));
	g_pHwInfo->pSPIRegs->rSPCON0 = (0x0<<5) | 0x59; //TAGD=0,CPHA=0,CPOL=0,MSTR=1,ENSCK=1, SMOD=DMA
	//DBG_PRINT(gDbgInfo,("after SPCON0 =0x%lX\n", (unsigned long)g_pHwInfo->pSPIRegs->rSPCON0));
} 

static __inline 
void GspiBusSetReceiver_nodma(void)
{
    //DBG_PRINT(gDbgInfo,("before SPCON0 =0x%lX\n", (unsigned long)g_pHwInfo->pSPIRegs->rSPCON0));
	g_pHwInfo->pSPIRegs->rSPCON0 = (0x0<<5) | 0x19; //TAGD=0,CPHA=0,CPOL=0,MSTR=1,ENSCK=1, SMOD=polling
//	g_pHwInfo->pSPIRegs->rSPCON0 = (0x0<<5) | 0x39; //TAGD=0,CPHA=0,CPOL=0,MSTR=1,ENSCK=1, SMOD=interrupt
	//DBG_PRINT(gDbgInfo,("after SPCON0 =0x%lX\n", (unsigned long)g_pHwInfo->pSPIRegs->rSPCON0));
} 
static __inline 
void GspiBusResetReceiver(void)
{
	g_pHwInfo->pSPIRegs->rSPCON0 = (0x0<<5) | 0x18; //TAGD=0,CPHA=0,CPOL=0,MSTR=1,ENSCK=1, SMOD=polling
}

int GspiCardInit(void)
{
    // take the card out of reset
	GspiHostSetRSTHigh();
	//NdisMSleep(1000);
	Sleep(1);
	GspiHostSetRSTLow();
	//JKU: NdisMSleep(5000);
	Sleep(5);
    GspiHostSetRSTHigh();
	//JKU: NdisMSleep(1000);
  	Sleep(1);
return GSPI_OK;
}

//
// Map H/W registers and DMA pages into the local address space.
//

int GspiMapMemories()
{
    // Map SPI registers into driver address space
    g_pHwInfo->pSPIRegs = (SSPreg*)MapIOSpace(
						(void *)( SSP_BASE ),
						sizeof(SSPreg),
						( PAGE_READWRITE | PAGE_NOCACHE ) 
						);
    if (!g_pHwInfo->pSPIRegs)
    {
        ERRORMSG( TRUE, ( TEXT( "GSPI: ERROR mapping SPI registers.\n" ) ) );
        return !GSPI_OK;
    }
  //  DBG_PRINT(gDbgInfo,("SPI register virtual addr =0x%lX\n", (unsigned long)g_pHwInfo->pSPIRegs));

	// Map gpio register space
    g_pHwInfo->pGPIORegs = (IOPreg*)MapIOSpace(
						(void*)( IOP_BASE ),
						sizeof( IOPreg ),
						PAGE_READWRITE | PAGE_NOCACHE );
    if (!g_pHwInfo->pGPIORegs)
    {
        ERRORMSG( TRUE, ( TEXT( "GSPI: ERROR mapping GPIO registers.\n" ) ) );
        return !GSPI_OK;
    }
//    DBG_PRINT(gDbgInfo,("GPIO register virtual addr =0x%lX\n", (unsigned long)g_pHwInfo->pGPIORegs));

	// Map clock register space	
	 g_pHwInfo->pCLKRegs = (CLKreg*)MapIOSpace(
						(void*)( CLK_BASE ),
						sizeof( CLKreg ),
						PAGE_READWRITE | PAGE_NOCACHE );
    if (!g_pHwInfo->pCLKRegs)
    {
        ERRORMSG( TRUE, ( TEXT( "GSPI: ERROR mapping CLK registers.\n" ) ) );
        return !GSPI_OK;
    }
//    DBG_PRINT(gDbgInfo,("CLK register virtual addr =0x%lX\n", (unsigned long)g_pHwInfo->pCLKRegs));

    // Map DMA registers into driver address space
    g_pHwInfo->pDMARegs = (DMAreg*)MapIOSpace(
                        (void *)( DMA_BASE ),
						sizeof(DMAreg),
						( PAGE_READWRITE | PAGE_NOCACHE ) );
    if (!g_pHwInfo->pDMARegs)
    {
        ERRORMSG( TRUE, ( TEXT( "GSPI: ERROR mapping DMA registers.\n" ) ) );
        return !GSPI_OK;
    }
//    DBG_PRINT(gDbgInfo,("DMA register virtual addr =0x%lX\n", (unsigned long)g_pHwInfo->pDMARegs));
    

    // Allocate a block of virtual memory big enough to hold the DMA buffers
    g_pHwInfo->dmaTxBuf = AllocPhysMem(BSP_GSPI_DMA_TX_BUF_SIZE, ( PAGE_READWRITE | PAGE_NOCACHE ), 0, 0, &g_pHwInfo->dmaPhyTxBuf);
    if (!g_pHwInfo->dmaTxBuf)
    {
        ERRORMSG( TRUE, ( TEXT( "GSPI: ERROR allocate Tx DMA memory.\n" ) ) );
        return !GSPI_OK;
    }
    g_pHwInfo->dmaRxBuf = AllocPhysMem(BSP_GSPI_DMA_RX_BUF_SIZE, ( PAGE_READWRITE | PAGE_NOCACHE ), 0, 0, &g_pHwInfo->dmaPhyRxBuf);
    if (!g_pHwInfo->dmaRxBuf)
    {
        ERRORMSG( TRUE, ( TEXT( "GSPI: ERROR allocate Rx memory.\n" ) ) );
        return !GSPI_OK;
    }
    g_pHwInfo->dmaTxRxBuf = AllocPhysMem(BSP_GSPI_DMA_TX_RX_BUF_SIZE, ( PAGE_READWRITE | PAGE_NOCACHE ), 0, 0, &g_pHwInfo->dmaPhyTxRxBuf);
    if (!g_pHwInfo->dmaTxRxBuf)
    {
        ERRORMSG( TRUE, ( TEXT( "GSPI: ERROR allocate TxRx memory.\n" ) ) );
        return !GSPI_OK;
    }

    memset(g_pHwInfo->dmaTxRxBuf, 0xff, BSP_GSPI_DMA_TX_RX_BUF_SIZE);
//    DBG_PRINT(gDbgInfo,("DMA tx buffer virtual addr =0x%lX, phy addr=0x%x\n", (unsigned long)g_pHwInfo->dmaTxBuf, g_pHwInfo->dmaPhyTxBuf));
//    DBG_PRINT(gDbgInfo,("DMA rx buffer virtual addr =0x%lX, phy addr=0x%x\n", (unsigned long)g_pHwInfo->dmaRxBuf, g_pHwInfo->dmaPhyRxBuf));
//    DBG_PRINT(gDbgInfo,("DMA txrx buffer virtual addr =0x%lX, phy addr=0x%x\n", (unsigned long)g_pHwInfo->dmaTxRxBuf, g_pHwInfo->dmaPhyTxRxBuf));
   
    return GSPI_OK;
}

int GspiUnmapMemories()
{
    // Unmap SPI registers into driver address space
	if(g_pHwInfo->pSPIRegs)
		UnmapIOSpace(g_pHwInfo->pSPIRegs);
	
	// Unmap gpio register space
	if(g_pHwInfo->pGPIORegs)
	   UnmapIOSpace(g_pHwInfo->pGPIORegs);

	// Unmap clock register space
	if(g_pHwInfo->pCLKRegs)
		UnmapIOSpace(g_pHwInfo->pCLKRegs);

    // Map DMA registers into driver address space
	if(g_pHwInfo->pDMARegs)
	  UnmapIOSpace(g_pHwInfo->pDMARegs);

    // Free the  virtual memory allocated for  DMA buffers
  
     if (g_pHwInfo->dmaTxBuf)
		FreePhysMem(g_pHwInfo->dmaTxBuf);

	 if(g_pHwInfo->dmaRxBuf)
		FreePhysMem(g_pHwInfo->dmaRxBuf);

	 if(g_pHwInfo->dmaTxRxBuf)
		FreePhysMem(g_pHwInfo->dmaTxRxBuf);

	 return GSPI_OK;
}

int GspiBusHwReset()
{
	GspiHostSetPDHigh();
	//JKU: NdisMSleep(5000);
	Sleep(5);

	// Initialize SPI controller here
	if(GspiBusGPIOInit() != GSPI_OK)
		return !GSPI_OK;

	if(GspiBusCtrlInit() != GSPI_OK)

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
www国产成人| 久久久久久电影| 国产美女视频一区| 亚洲综合在线第一页| 精品久久久久香蕉网| 色噜噜狠狠一区二区三区果冻| 男女男精品视频| 一二三区精品福利视频| 久久精品免费在线观看| 欧美一级久久久| 91久久香蕉国产日韩欧美9色| 国产成人在线免费观看| 肉肉av福利一精品导航| 亚洲黄一区二区三区| 国产欧美精品国产国产专区| 日韩精品一区二区三区中文不卡| 欧美亚洲综合一区| 成人不卡免费av| 国产iv一区二区三区| 另类小说图片综合网| 亚洲1区2区3区视频| 亚洲乱码国产乱码精品精的特点 | 日本亚洲三级在线| 国产精品久99| 国产嫩草影院久久久久| 精品乱人伦小说| 日韩一区二区三区高清免费看看| 欧美伊人精品成人久久综合97 | 日韩一区二区在线看| 欧美在线|欧美| 91麻豆自制传媒国产之光| 成人a区在线观看| 国产麻豆精品视频| 国产麻豆欧美日韩一区| 国产一区二区在线视频| 狠狠色狠狠色合久久伊人| 免费精品视频在线| 毛片不卡一区二区| 久久国产精品第一页| 麻豆精品在线观看| 精品伊人久久久久7777人| 久久国产婷婷国产香蕉| 韩国在线一区二区| 国产精品乡下勾搭老头1| 日韩不卡一二三区| 欧美日韩免费在线视频| 成人综合日日夜夜| 激情久久五月天| 国产在线一区二区| 国产在线日韩欧美| 福利电影一区二区三区| 国产精品亚洲а∨天堂免在线| 国产激情视频一区二区三区欧美 | 老司机精品视频导航| 久久不见久久见中文字幕免费| 麻豆精品久久久| 国产在线不卡视频| 成人午夜看片网址| 色综合一区二区| 制服丝袜亚洲网站| 精品国产成人系列| 成人免费在线播放视频| 一区二区在线观看av| 免费观看成人av| 国产成人精品免费| 91高清视频在线| 日韩视频一区二区三区在线播放| 久久网站热最新地址| 中文欧美字幕免费| 亚洲国产一区二区在线播放| 久草精品在线观看| www.色精品| 欧美精品乱码久久久久久按摩| 日韩精品一区在线观看| 国产精品国产三级国产a | 国产美女在线精品| 94-欧美-setu| 欧美一区二区在线免费观看| 久久蜜桃一区二区| 亚洲女爱视频在线| 男女激情视频一区| 97精品视频在线观看自产线路二| 91麻豆精品国产91久久久久久| 久久久久国产精品厨房| 一区二区三区欧美激情| 麻豆精品在线播放| 欧美主播一区二区三区| 精品国产一区久久| 亚洲综合在线电影| 国产精品系列在线播放| 欧美三级韩国三级日本一级| 国产清纯白嫩初高生在线观看91 | 欧美日韩在线不卡| 久久久蜜桃精品| 性做久久久久久免费观看| 成人在线视频一区| 538在线一区二区精品国产| 国产精品国产a| 麻豆精品久久精品色综合| 色综合久久久久综合| 久久久久久久久久久久久女国产乱| 一个色综合av| av一二三不卡影片| 久久日一线二线三线suv| 亚洲国产欧美在线| 95精品视频在线| 国产视频一区在线播放| 男人的天堂亚洲一区| 欧美无砖砖区免费| 亚洲欧美综合网| 国产精品一区二区男女羞羞无遮挡 | 蜜臀av一级做a爰片久久| 91免费在线看| 国产精品欧美久久久久无广告| 久久精品国产秦先生| 欧美日韩久久久一区| 亚洲嫩草精品久久| 成人va在线观看| 国产精品天天看| 国产一区二区不卡| 欧美精品一区二区久久婷婷| 天天综合日日夜夜精品| 欧美主播一区二区三区美女| 亚洲日本韩国一区| 91猫先生在线| 亚洲人成网站精品片在线观看| www.亚洲人| 国产精品久久久久7777按摩| 国产91露脸合集magnet| 久久精品免视看| 国产成人在线视频播放| 欧美韩日一区二区三区四区| 国产一区 二区| 久久精品视频免费| 国产乱码精品一品二品| 久久久夜色精品亚洲| 国产一区二区女| 国产日韩精品一区二区三区在线| 狠狠色丁香婷综合久久| 久久久久久亚洲综合影院红桃| 国产在线一区观看| 国产午夜精品在线观看| 成人小视频在线| 欧美国产精品一区二区| 成人免费观看男女羞羞视频| 国产精品伦一区二区三级视频| av动漫一区二区| 一区二区三区四区精品在线视频| 日本伦理一区二区| 午夜电影网亚洲视频| 日韩午夜电影在线观看| 另类小说图片综合网| 国产丝袜美腿一区二区三区| 成人黄页在线观看| 艳妇臀荡乳欲伦亚洲一区| 欧美日韩1区2区| 日韩av在线免费观看不卡| 欧美mv日韩mv国产| 成人性色生活片| 亚洲在线观看免费| 欧美一区二区三区视频免费播放| 久久超碰97中文字幕| 国产精品视频线看| 欧美日韩日本视频| 三级欧美在线一区| 欧美日韩一区高清| 亚洲123区在线观看| 日韩一区和二区| 久久精品亚洲麻豆av一区二区| 蜜臀精品一区二区三区在线观看| 精品国精品国产| 亚洲成a天堂v人片| 91麻豆免费在线观看| 综合婷婷亚洲小说| 91豆麻精品91久久久久久| 亚洲人成人一区二区在线观看| 一本大道av伊人久久综合| 亚洲精品欧美激情| 欧美三级在线视频| 麻豆传媒一区二区三区| 欧美成人在线直播| 国产成人av资源| 日韩一区日韩二区| 欧美综合一区二区三区| 日本不卡一二三| 久久精品人人做人人爽人人| 成人精品视频一区二区三区 | 91黄色免费看| 日韩精品每日更新| 精品久久一区二区三区| 国产高清无密码一区二区三区| 中日韩av电影| 欧美午夜不卡视频| 国产一区二区在线观看免费| 欧美激情艳妇裸体舞| 欧美色综合网站| 在线视频国内自拍亚洲视频| 亚洲一区自拍偷拍| 日韩亚洲欧美在线| 国产精品1区二区.|