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

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

?? dvhdmirxutil.c

?? the HDMI(High Definition Multimedia Interface) driver code
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*=================================================================
 *  Copyright 2003-2005, Renesas Technology Corporation
 *  and Renesas Solution Corporation.
 *  All right reserved.
 *===============================================================*/
#include <string.h> 
#include <stdio.h>
#include <stddef.h>
#include "lowlib.h"

#include "itron.h"
#include "kernel.h"
#include "dtvc4_io.h"
#include "dvCom.h"
#include "dvAPI.h"
#include "dvHdmiRx.h"
#include "DTVS_Resource.h"
#include "dvHdmiRxLocal.h"
#include "dvHdmiRxUtil.h"
#include <stdarg.h>

//------------------------------------------------------------------------------
// 僌儘乕僶儖曄悢愰尵
//------------------------------------------------------------------------------
// 僨僶僢僌儗儀儖曄悢 壓婰偺崁栚偺OR傪巜掕偡傞偙偲
// 0x01 ASSERT桳岠 HdmiRxDrvErrCatch
// 0x02 奜晹岞奐API 僩儗乕僗儘僌
// 0x04 撪晹娭悢僩儗乕僗儘僌 HdmiRxDrvDebugPrint
//UB gHdmiRxDrvDbgLvl = 0x0F;
UB gHdmiRxDrvDbgLvl = 0x00;

static T_CBIicSendPrm gWriteCbParam;
static T_CBIicRcvPrm gReadCbParam;
static ID gWupTaskId;
static IW gInitFlag = 0;

// ToDo
// TimeOut抣傪摦揑偵愝掕 1s偼挿偡偓丒丒丒
// IIC捠怣僞僀儉傾僂僩抣
static TMO gIicWrapTimeOut = 1000;
// 僨僶僢僌梡曄悢
static UB gIicWrapDbglv = 0x01;
// IIC忬懺曄壔僐乕儖僶僢僋僷儔儊乕僞
static T_CBIicStsPrm IicChgCbParam;
#ifdef HDMI_IIC_SIMPLE_DLY
static UB gHdmiRxNotifyIicWriteTimeOut = 0;
static UB gHdmiRxNotifyIicReadTimeOut = 0;
#endif

//------------------------------------------------------------------------------
// 撪晹娭悢僾儘僩僞僀僾愰尵
//------------------------------------------------------------------------------
static void NotifyIicWriteCB(T_CBIicSendPrm* pInParam );
static void NotifyIicReadCB(T_CBIicRcvPrm* pInParam );
static void SetWriteParam(T_IicSend* pWriteParam, const TdvHdmiRxIicParam* pUtilParam);
static void SetReadParam(T_IicRcv* pReadParam, TdvHdmiRxIicParam* pUtilParam);
static ID GetSemId(IW ch);
static ER SemOp(ID semid, IW semop, UW timeout);
static IW ParamCheck(TdvHdmiRxIicParam * pInParam, IW rw_mode);
static IW HdmiRxDrvIicWrite( TdvHdmiRxIicParam * pInParam );
static IW HdmiRxDrvIicRead( TdvHdmiRxIicParam * pInParam, UB bReadMode );

void _HdmiRxDrvIicStsChgCB(T_CBIicStsPrm* inParam);

//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//%%%%%%%%%% f-0  捠抦娭悢孮           %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//*******************************************************************
//! @brief		IIC bus忬懺曄壔捠抦CB
//! @retval		<BR>
//! @param		inParam (I)   : IIC僶僗忣曬僷儔儊乕僞
//! @note		<BR>
//! @attention	<BR>
//! @author		Y.Takeuchi
//! @date		2007/3/22
//*******************************************************************
void _HdmiRxDrvIicStsChgCB(T_CBIicStsPrm* inParam)
{
	HdmiRxDrvDebugPrint("----------HdmiRxDrvIicStsChgCB-----------\n");
	HdmiRxDrvDebugPrint("Ch:%d\n", inParam->ch);
	HdmiRxDrvDebugPrint("sts:%d\n", inParam->sts);
}

//*******************************************************************
//! @brief		IIC 彂崬傒僐乕儖僶僢僋娭悢 
//! @retval		<BR>
//! @param		pInParam(I) : IIC捠怣彂崬傒寢壥峔憿懱
//! @note		<BR>
//! @attention	<BR>
//! @author		Y.Takeuchi
//! @date		2007/3/22
//*******************************************************************
static void NotifyIicWriteCB(T_CBIicSendPrm* pInParam )
{
#ifdef HDMI_IIC_SIMPLE_DLY
	if (gHdmiRxNotifyIicWriteTimeOut != 1) {
		SemOp(DV_HDMIRX_DEF_RES_SEM1, DV_HDMIRX_DEF_SEM_UNLOCK, 0);
	}
#else
	wup_tsk(gWupTaskId);
#endif
}

//*******************************************************************
//! @brief		IIC 撉崬傒僐乕儖僶僢僋娭悢 
//! @retval		<BR>
//! @param		pInParam (I) : IIC捠怣撉崬傒寢壥峔憿懱
//! @note		<BR>
//! @attention	<BR>
//! @author		Y.Takeuchi
//! @date		2007/3/22
//*******************************************************************
static void NotifyIicReadCB(T_CBIicRcvPrm* pInParam )
{
#ifdef HDMI_IIC_SIMPLE_DLY
	if (gHdmiRxNotifyIicReadTimeOut != 1) {
		SemOp(DV_HDMIRX_DEF_RES_SEM1, DV_HDMIRX_DEF_SEM_UNLOCK, 0);
	}
#else
	wup_tsk(gWupTaskId);
#endif
}

//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//%%%%%%%%%% f-1  弶婜壔娭悢孮           %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//*******************************************************************
//! @brief		IIC 僶僗弶婜壔  
//! @retval		張棟寢壥<BR>
//! @param		<BR>
//! @note		IIC僶僗攔懠惂屼梡偺僙儅僼僅傪惗惉偡傞<BR>
//! @attention	<BR>
//! @author		Y.Takeuchi
//! @date		2007/3/22
//*******************************************************************
IW _HdmiRxDrvIicInit()
{
	T_CSEM pk_csem;
	T_CCYC pk_ccyc;
	IW ret = HDMIDRV_OK;
	ER ercd;
	T_IicInit in_prm_iicinit;

	// IIC僪儔僀僶 僶僗2偺弶婜壔
	in_prm_iicinit.ch = 2;							// IIC僨僶僀僗偺僠儍儞僱儖斣崋 1
	in_prm_iicinit.adfmt = 0;						// 傾僪儗僗僼僅乕儅僢僩愝掕
	in_prm_iicinit.sad = 0x70;						// 帺僗儗乕僽傾僪儗僗愝掕
	in_prm_iicinit.frq = 400000;					// 僋儘僢僋弌椡廃攇悢愝掕乮扨埵 bps乯
	in_prm_iicinit.scl_id = 0xFF;					// SCL抂巕愙懕梡億乕僩抂巕偺ID斣崋
	in_prm_iicinit.sda_id = 0xFF;					// SDA抂巕愙懕梡億乕僩抂巕偺ID斣崋
	in_prm_iicinit.cbPtr = _HdmiRxDrvIicStsChgCB;	// 僐乕儖僶僢僋娭悢億僀儞僞
	in_prm_iicinit.cbPrm = &IicChgCbParam;			// 僐乕儖僶僢僋娭悢梡 堷悢椞堟 愭摢傾僪儗僗
	HdmiRxDrvDebugPrint( "[  _dvIicInit ] Call ==> " );
	ret = _dvIicInit( (T_IicInit *)&in_prm_iicinit );
	HdmiRxDrvDebugPrint( "Ret(%d)\n",  ret );

	// 弶婜壔嵪傒偺応崌偼OS儕僜乕僗傪惗惉偟側(cè)偄
	if (gInitFlag == 1) {
		return ret;
	}

#ifdef HDMI_IIC_SIMPLE_DLY
	// 攔懠惂屼梡僙儅僼僅惗惉
	pk_csem.sematr = TA_TFIFO;
	pk_csem.isemcnt = 1;
	pk_csem.maxsem = 1;
	ercd = cre_sem(DV_HDMIRX_DEF_RES_SEM1, &pk_csem);
	if (ercd != E_OK) {
		ret = DVHDMI_E_KERNEL;
		goto End_Of_HdmiRxDrvIicInitt;
	}
#endif

	// 撪晹僶僗梡僙儅僼僅惗惉
	pk_csem.sematr = TA_TFIFO;
	pk_csem.isemcnt = 1;
	pk_csem.maxsem = 1;
	ercd = cre_sem(DV_HDMIRX_DEF_RES_SEM2, &pk_csem);
	if (ercd != E_OK) {
		ret = DVHDMI_E_KERNEL;
	} else {
		gInitFlag = 1;
	}
End_Of_HdmiRxDrvIicInitt :
	return ret;
}

//*******************************************************************
//! @brief		GPIO弶婜壔  
//! @retval		張棟寢壥<BR>
//! @param		id(i):懳徾億乕僩抂巕偺ID斣崋<BR>
//! @param		pmux(i):懳徾億乕僩抂巕偺婡擻慖戰(zhàn)<BR>
//! @param		pioe(i):懳徾億乕僩抂巕偺擖弌椡愝掕<BR>
//! @param		ptdata(i):懳徾億乕僩抂巕偺弶婜弌椡僨乕僞愝掕<BR>
//! @attention	<BR>
//! @author		Y.Takeuchi
//! @date		2007/4/23
//*******************************************************************
IW _HdmiRxDrvGpioInit(UB id, UB pmux, UB pioe, UB ptdata)
{
	T_GpioInit port;
	IW ret;

	port.id = id;
	port.pmux = pmux;
	port.pioe = pioe;
	port.ptdata = ptdata;
	ret = _dvGpioInit(&port);

	return ret;
}

//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//%%%%%%%%%% f-2  憖嶌娭悢孮           %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//*******************************************************************
//! @brief		儗僕僗僞彂崬傒乮摨婜乯
//! @retval		張棟寢壥<BR>
//! @param		DevAddr (I):僨僶僀僗傾僪儗僗<BR>
//! @param		Size (I):彂崬傒僨乕僞僒僀僘<BR>
//! @param		Reg (I):彂崬傒僶僢僼傽<BR>
//! @note		IIC捠怣傪峴偄儗僕僗僞偵抣傪彂偒崬傓<BR>
//! @attention	<BR>
//! @author		Y.Takeuchi
//! @date		2007/3/22
//*******************************************************************
IW _HdmiRxDrvRegWrite(UB DevAddr, UB Size, UB* Reg )
{
	IW ret = HDMIDRV_OK;
	UB	i;
#ifdef NOT_USE_IIC
	for (i=0; i<Size; i++) {
		printf("Reg[%d]:%x\n",i, Reg[i]);
	}
#else
	TdvHdmiRxIicParam	iic_pram;
	iic_pram.bCh = DV_HDMIRX_DEF_IIC_CH;		// 巊梡僶僗
	iic_pram.bDevAddr = DevAddr;				// 僨僶僀僗傾僪儗僗
	iic_pram.bNDataSize = Size;					// 彂崬傒僒僀僘(RegAddr+僨乕僞)
	iic_pram.pbData = Reg;						// 彂崬傒僶僢僼傽
	iic_pram.bAck = 1;							// ACK敾掕偁傝
	iic_pram.nTimeOut = 0;						// 僙儅僼僅僞僀儉傾僂僩柍
	iic_pram.bMode = DV_HDMIRX_DEF_WRITE;		// 彂崬傒

#ifdef HDMI_REG_DEBUG
	for (i=0; i<Size; i++) {
		HdmiRxDrvDebugPrint("[HDMI IIC] Write [%d]:%x\n",i, Reg[i]);
	}
#endif
	ret = HdmiRxDrvIicWrite(&iic_pram);
#endif
	return ret;
}
//*******************************************************************
//! @brief		IIC bus 彂崬傒傪峴偆乮摨婜乯
//! @retval		張棟寢壥<BR>
//! @param		pInParam (I/O)	: IIC僨僶僀僗忣曬峔憿懱<BR>
//! @note		IIC捠怣傪峴偄儗僕僗僞偵抣傪彂偒崬傓<BR>
//! @attention	1.杮API傪幚峴偡傞慜偵_IiCWrapInit()傪幚峴偟偰壓偝偄<BR>
//!				2.堷悢偺僨僶僀僗傾僪儗僗偼8bit偱巜掕偡傞偙偲
//!				  (LSB偵偼0傪奿擺偡傞偙偲)
//!				3.儗僕僗僞傾僪儗僗偼彂崬傒僨乕僞偺愭摢偐傜bNRegAddrSize
//!				  僶僀僩偱奿擺
//!				  彂偒崬傒懳徾僨乕僞偼丄僶僢僼傽偺bNRegAddrSize埲崀偵傪
//!				  奿擺偡傞偙偲
//! @author		Y.Takeuchi
//! @date		2007/3/22
//*******************************************************************
IW _HdmiRxDrvIicWrite( TdvHdmiRxIicParam * pInParam )
{
	IW ret = HDMIDRV_OK;
	
	// 僷儔儊乕僞僠僃僢僋
	ret = ParamCheck(pInParam, DV_HDMIRX_DEF_WRITE);
	if (ret != HDMIDRV_OK) {
		return ret;
	}
	ret = HdmiRxDrvIicWrite(pInParam);
	return ret;
}

//*******************************************************************
//! @brief		儗僕僗僞撉崬傒乮摨婜乯
//! @retval		張棟寢壥<BR>
//! @param		DevAddr (I):僨僶僀僗傾僪儗僗<BR>
//! @param		RegAddr (I):撉崬傒儗僕僗僞傾僪儗僗<BR>
//! @param		Size (I):撉崬傒僨乕僞僒僀僘<BR>
//! @param		Reg (I):撉崬傒僶僢僼傽<BR>
//! @note		IIC捠怣傪峴偄儗僕僗僞偵抣傪彂偒崬傓<BR>
//! @attention	<BR>
//! @author		Y.Takeuchi
//! @date		2007/3/22
//*******************************************************************
IW _HdmiRxDrvRegRead(UB DevAddr, UB Size, UB* Reg )
{
	IW ret;
#ifdef NOT_USE_IIC
	ret = HDMIDRV_OK;
#else
	TdvHdmiRxIicParam	iic_pram;

	iic_pram.bCh = DV_HDMIRX_DEF_IIC_CH;		// 巊梡僶僗
	iic_pram.bDevAddr = DevAddr;				// 僨僶僀僗傾僪儗僗
	iic_pram.bNRegAddrSize = 1;					// 儗僕僗僞僒僀僘
	iic_pram.bNDataSize = Size;					// 撉崬傒僒僀僘
	iic_pram.pbData = Reg;						// 彂崬傒僶僢僼傽
	iic_pram.bAck = 1;							// ACK敾掕偁傝
	iic_pram.nTimeOut = 0;						// 僙儅僼僅僞僀儉傾僂僩柍
	iic_pram.bMode = DV_HDMIRX_DEF_READ;		// 撉崬傒

	ret = _HdmiRxDrvIicSpecificSubAddrRead(&iic_pram);
#endif
	return ret;
}

//*******************************************************************
//! @brief		僒僽傾僪儗僗巜掕偱IIC撉崬傒傪峴偆 (摨婜乯
//! @retval		張棟寢壥<BR>
//! @param		pInParam (I/O)	: IIC僨僶僀僗忣曬峔憿懱<BR>
//! @note		IIC捠怣傪峴偄儗僕僗僞偺抣傪撉傒崬傓<BR>
//! @attention	1.杮API傪幚峴偡傞慜偵_IiCWrapInit()傪幚峴偟偰壓偝偄<BR>
//!				2.堷悢偺僨僶僀僗傾僪儗僗偼8bit偱巜掕偡傞偙偲
//!				  (LSB偵偼0傪奿擺偡傞偙偲)
//!				3.撉崬傒梡偺僶僢僼傽偼忋埵懁偱妋曐偡傞偙偲
//!				  僶僀僩偱奿擺
//!				4.撉崬傒僶僢僼傽偺愭摢偐傜儗僕僗僞傾僪儗僗傪奿擺偡傞偙偲
//!				5.杮API偱偼丄儗僕僗僞傾僪儗僗傪彂偒崬傫偩屻偵巜掕儗僕僗僞
//!				  偺抣傪撉崬傓
//! @author		Y.Takeuchi
//! @date		2007/3/22
//*******************************************************************
IW _HdmiRxDrvIicSpecificSubAddrRead( TdvHdmiRxIicParam * pInParam )
{
	IW ret = HDMIDRV_OK;

	// 僷儔儊乕僞僠僃僢僋
	ret = ParamCheck(pInParam, DV_HDMIRX_DEF_READ);
	if (ret != HDMIDRV_OK) {
		return ret;
	}
	// 僒僽傾僪儗僗巜掕偱撉崬傒
	ret = HdmiRxDrvIicRead(pInParam, 0);
	return ret;
}

//*******************************************************************
//! @brief		僒僽傾僪儗僗柍巜掕偱IIC撉崬傒傪峴偆 (摨婜乯
//! @retval		張棟寢壥<BR>
//! @param		pInParam (I/O)	: IIC僨僶僀僗忣曬峔憿懱<BR>
//! @note		IIC捠怣傪峴偄儗僕僗僞偺抣傪撉傒崬傓<BR>
//! @attention	1.杮API傪幚峴偡傞慜偵_IiCWrapInit()傪幚峴偟偰壓偝偄<BR>
//!				2.堷悢偺僨僶僀僗傾僪儗僗偼8bit偱巜掕偡傞偙偲
//!				  (LSB偵偼0傪奿擺偡傞偙偲)
//!				3.杮API偱偼丄僗儗乕僽傾僪儗僗偺傒傪巜掕偟撉崬傒傪峴偆
//!				  (堷悢偺儗僕僗僞傾僪儗僗偼巊梡偟側(cè)偄)
//! @author		Y.Takeuchi
//! @date		2007/3/22
//*******************************************************************
IW _HdmiRxDrvIicRead( TdvHdmiRxIicParam * pInParam )
{
	IW ret = HDMIDRV_OK;

	// 僷儔儊乕僞僠僃僢僋
	ret = ParamCheck(pInParam, DV_HDMIRX_DEF_READ);
	if (ret != HDMIDRV_OK) {
		return ret;
	}
	// 僒僽傾僪儗僗巜掕柍偟偱撉崬傒
	ret = HdmiRxDrvIicRead(pInParam, 1);
	return ret;
}

//*******************************************************************
//! @brief		IIC bus僨僶僀僗偺憲庴怣摦嶌嫮惂廔椆
//! @retval		張棟寢壥<BR>
//! @param		bCh (I) : IIC僶僗 僠儍儞僱儖斣崋<BR>
//! @note		<BR>
//! @attention	<BR>
//! @author		Y.Takeuchi
//! @date		2007/3/22
//*******************************************************************
IW _HdmiRxDrvIicStop(UB bCh)
{
	IW ret = HDMIDRV_OK;
	IW result;
	ID semid;
	ER ercd;

	// 巊梡Bus偑0偱傕1偱傕側(cè)偄応崌
	if (bCh < 0 || bCh > 1) {
		ret =DVHDMI_E_INVAL;
		goto End_Of_HdmiRxDrvIicStop;
	}

	// 弶婜壔嵪傒敾掕
	if (gInitFlag == 0) {
		ret =DVHDMI_E_NONINIT;
		goto End_Of_HdmiRxDrvIicStop;
	}

	// 僙儅僼僅ID偺庢摼
	semid = GetSemId(bCh);
	//僙儅僼僅妉摼
	ercd = SemOp(semid, DV_HDMIRX_DEF_SEM_LOCK, 0);
	switch (ercd) {
		case E_OK :		// 僙儅僼僅妉摼惉岟
			break;
		case E_TMOUT :	// 僙儅僼僅妉摼 僞僀儉傾僂僩
			ret = DVHDMI_E_SEM_TIMEOUT;
			goto End_Of_HdmiRxDrvIicStop;
			break;
		default :		// 僙儅僼僅妉摼 僄儔乕
			ret = DVHDMI_E_KERNEL;
			goto End_Of_HdmiRxDrvIicStop;
			break;
	}
	result = _dvIicStop(bCh);

	// 僙儅僼僅曉媝
	SemOp(semid, DV_HDMIRX_DEF_SEM_UNLOCK, 0);
End_Of_HdmiRxDrvIicStop :
	return ret;		
}

//*******************************************************************
//! @brief		IIC bus僨僶僀僗偺忬懺忣曬庢摼
//! @retval		張棟寢壥<BR>
//! @param		bCh (I) : IIC僶僗 僠儍儞僱儖斣崋<BR>
//!	@param		bcnt(O) : 憲庴怣僨乕僞僶僀僩悢忣曬 
//! @note		<BR>
//! @attention	<BR>
//! @author		Y.Takeuchi
//! @date		2007/3/22
//*******************************************************************
IW _HdmiRxDrvIicGetSts(UB ch, UW *bcnt)
{
	IW ret = HDMIDRV_OK;
	ret = _dvIicGetsts(ch, bcnt);
	return ret;
}

//*******************************************************************
//! @brief		IIC bus僨僶僀僗偺堎忢暅婣
//! @retval		張棟寢壥<BR>
//! @param		bCh (I) : IIC僶僗 僠儍儞僱儖斣崋<BR>

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合欧美在线| 亚洲第一综合色| 国产福利精品一区二区| 久久综合久久99| 欧美亚洲丝袜传媒另类| 亚洲不卡av一区二区三区| 欧美精品第一页| 久久电影国产免费久久电影| 精品福利视频一区二区三区| 国产成人aaaa| 亚洲精品中文字幕在线观看| 欧美色图一区二区三区| 日韩高清国产一区在线| 精品久久久久久亚洲综合网| 国产精品一区在线观看乱码| 国产精品久久久久久久久免费相片 | 懂色av中文一区二区三区| 国产精品久久久久一区二区三区 | 精品国产免费视频| 成人免费视频播放| 亚洲国产欧美日韩另类综合| 欧美一区二区在线视频| 国产精品白丝jk黑袜喷水| 亚洲欧美另类在线| 日韩视频一区二区三区| 成人激情视频网站| 亚洲香肠在线观看| 久久免费看少妇高潮| 91丨porny丨在线| 免费高清视频精品| 国产精品久久久久久妇女6080| 欧美丝袜丝交足nylons图片| 韩国av一区二区三区四区| 亚洲美女屁股眼交| 日韩精品一区二| 在线观看一区二区视频| 欧美午夜寂寞影院| 国产在线播放一区三区四| 一区二区三区 在线观看视频| 精品成人一区二区三区四区| 日本韩国精品在线| 国产成人啪免费观看软件| 日日嗨av一区二区三区四区| 国产精品女人毛片| 日韩欧美一区二区视频| 色哟哟一区二区| 国产不卡在线播放| 免费观看成人av| 亚洲国产日韩综合久久精品| 1024亚洲合集| 国产精品毛片a∨一区二区三区| 欧美一区二区三区日韩| 在线国产亚洲欧美| 91视频免费观看| 成熟亚洲日本毛茸茸凸凹| 麻豆91小视频| 日本aⅴ精品一区二区三区| 亚洲精选免费视频| 亚洲欧洲99久久| 国产精品全国免费观看高清| 久久综合久久综合亚洲| 日韩欧美国产综合| 欧美高清dvd| 欧美精品丝袜久久久中文字幕| 91亚洲精品久久久蜜桃网站| 成人影视亚洲图片在线| 国产一区二区三区黄视频 | 欧美无砖专区一中文字| 99r精品视频| 99久久夜色精品国产网站| 国产精品18久久久久久久久| 国内精品久久久久影院色| 麻豆国产精品777777在线| 欧美aaaaaa午夜精品| 日韩成人午夜电影| 日本美女一区二区三区| 日韩精彩视频在线观看| 午夜精品视频在线观看| 亚洲福利视频一区| 日韩福利视频导航| 日本午夜精品一区二区三区电影 | 在线亚洲高清视频| 日本韩国精品在线| 欧美色精品在线视频| 欧美日韩1区2区| 欧美一级片在线| 精品成人免费观看| 337p日本欧洲亚洲大胆精品| 26uuu另类欧美亚洲曰本| 久久一夜天堂av一区二区三区| 精品盗摄一区二区三区| 久久精品视频一区二区| 国产精品国产三级国产三级人妇 | 久久夜色精品国产欧美乱极品| 精品国产乱码久久久久久图片| 久久久777精品电影网影网| 亚洲国产精品激情在线观看| **性色生活片久久毛片| 亚洲综合另类小说| 日本在线播放一区二区三区| 国产一区欧美日韩| 成人黄色免费短视频| 91免费观看国产| 欧美精品一二三四| 国产日韩成人精品| 亚洲精品国产品国语在线app| 成人午夜看片网址| av网站一区二区三区| 欧美丝袜丝nylons| 久久婷婷久久一区二区三区| 亚洲欧洲另类国产综合| 亚洲成在人线在线播放| 韩日欧美一区二区三区| 99v久久综合狠狠综合久久| 欧美高清视频不卡网| 国产亚洲精品福利| 亚洲一区国产视频| 韩国女主播一区| 91高清在线观看| 精品国产一二三区| 亚洲色大成网站www久久九九| 日韩精品亚洲一区| 成人sese在线| 日韩欧美第一区| 亚洲免费电影在线| 紧缚奴在线一区二区三区| 99re热这里只有精品视频| 欧美一级高清大全免费观看| 一区精品在线播放| 精品一区二区三区免费观看| 日本久久精品电影| 2021久久国产精品不只是精品| 亚洲永久免费视频| 国产成人免费av在线| 欧美夫妻性生活| 亚洲免费在线电影| 国产精品一二三四五| 337p亚洲精品色噜噜狠狠| 国产精品不卡在线| 国产一区二区三区免费在线观看| 欧美四级电影在线观看| 国产精品美女久久久久久久久久久| 热久久一区二区| 欧美性xxxxx极品少妇| 国产精品久久精品日日| 国产一区二区三区在线观看免费视频 | 成人一区在线看| www国产成人免费观看视频 深夜成人网| 亚洲国产精品一区二区久久恐怖片| 欧美一卡二卡在线观看| 一区二区在线电影| 成人aa视频在线观看| 2024国产精品| 黑人精品欧美一区二区蜜桃 | 94-欧美-setu| 欧美激情在线一区二区三区| 久久99精品久久久| 日韩欧美一级片| 蜜桃视频在线一区| 91精品国产福利在线观看| 亚洲一区二区中文在线| 97se狠狠狠综合亚洲狠狠| 欧美国产日韩一二三区| 国精产品一区一区三区mba视频 | 国产iv一区二区三区| 日韩一区二区三区视频在线 | 综合网在线视频| av在线播放一区二区三区| 欧美国产日韩精品免费观看| 国产美女精品在线| 精品久久久久av影院| 欧美aaaaa成人免费观看视频| 欧美日产国产精品| 视频一区视频二区在线观看| 欧美人妇做爰xxxⅹ性高电影| 亚洲主播在线观看| 欧美欧美欧美欧美首页| 日韩中文字幕91| 精品福利一区二区三区免费视频| 久国产精品韩国三级视频| 久久婷婷国产综合精品青草| 福利电影一区二区三区| 中文字幕一区二区在线播放| av日韩在线网站| 亚洲第一电影网| 欧美电视剧在线看免费| 国产精品亚洲一区二区三区妖精| 欧美国产精品劲爆| 日本道精品一区二区三区| 五月激情丁香一区二区三区| 91精品国产91久久久久久一区二区| 捆绑调教一区二区三区| 国产亚洲欧洲一区高清在线观看| 99久久久精品| 视频在线观看一区| 久久精品免视看| 欧美视频在线一区二区三区| 蜜臀久久99精品久久久久久9| 久久嫩草精品久久久久| 91论坛在线播放|