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

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

?? radeon_monitor.c

?? 優(yōu)龍2410linux2.6.8內(nèi)核源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
			if (rinfo->mon1_type == MT_NONE)				rinfo->mon1_type =					radeon_probe_i2c_connector(rinfo, ddc_crt2,								   &rinfo->mon1_EDID);	#endif /* CONFIG_FB_RADEON_I2C */			if (rinfo->mon1_type == MT_NONE)				rinfo->mon1_type = MT_CRT;			goto bail;		}		/*		 * Check for cards with reversed DACs or TMDS controllers using BIOS		 */		if (rinfo->bios_seg &&		    (tmp = BIOS_IN16(rinfo->fp_bios_start + 0x50))) {			for (i = 1; i < 4; i++) {				unsigned int tmp0;				if (!BIOS_IN8(tmp + i*2) && i > 1)					break;				tmp0 = BIOS_IN16(tmp + i*2);				if ((!(tmp0 & 0x01)) && (((tmp0 >> 8) & 0x0f) == ddc_dvi)) {					rinfo->reversed_DAC = 1;					printk(KERN_INFO "radeonfb: Reversed DACs detected\n");				}				if ((((tmp0 >> 8) & 0x0f) == ddc_dvi) && ((tmp0 >> 4) & 0x01)) {					rinfo->reversed_TMDS = 1;					printk(KERN_INFO "radeonfb: Reversed TMDS detected\n");				}			}		}		/*		 * Probe primary head (DVI or laptop internal panel)		 */#ifdef CONFIG_PPC_OF		if (rinfo->mon1_type == MT_NONE)			rinfo->mon1_type = radeon_probe_OF_head(rinfo, 0, &rinfo->mon1_EDID);#endif /* CONFIG_PPC_OF */#ifdef CONFIG_FB_RADEON_I2C		if (rinfo->mon1_type == MT_NONE)			rinfo->mon1_type = radeon_probe_i2c_connector(rinfo, ddc_dvi,								      &rinfo->mon1_EDID);		if (rinfo->mon1_type == MT_NONE) {			rinfo->mon1_type = radeon_probe_i2c_connector(rinfo, ddc_crt2,								      &rinfo->mon1_EDID);			if (rinfo->mon1_type != MT_NONE)				ddc_crt2_used = 1;		}#endif /* CONFIG_FB_RADEON_I2C */		if (rinfo->mon1_type == MT_NONE && rinfo->is_mobility &&		    ((rinfo->bios_seg && (INREG(BIOS_4_SCRATCH) & 4))		     || (INREG(LVDS_GEN_CNTL) & LVDS_ON))) {			rinfo->mon1_type = MT_LCD;			printk("Non-DDC laptop panel detected\n");		}		if (rinfo->mon1_type == MT_NONE)			rinfo->mon1_type = radeon_crt_is_connected(rinfo, rinfo->reversed_DAC);		/*		 * Probe secondary head (mostly VGA, can be DVI)		 */#ifdef CONFIG_PPC_OF		if (rinfo->mon2_type == MT_NONE)			rinfo->mon2_type = radeon_probe_OF_head(rinfo, 1, &rinfo->mon2_EDID);#endif /* CONFIG_PPC_OF */#ifdef CONFIG_FB_RADEON_I2C		if (rinfo->mon2_type == MT_NONE)			rinfo->mon2_type = radeon_probe_i2c_connector(rinfo, ddc_vga,								      &rinfo->mon2_EDID);		if (rinfo->mon2_type == MT_NONE && !ddc_crt2_used)			rinfo->mon2_type = radeon_probe_i2c_connector(rinfo, ddc_crt2,								      &rinfo->mon2_EDID);#endif /* CONFIG_FB_RADEON_I2C */		if (rinfo->mon2_type == MT_NONE)			rinfo->mon2_type = radeon_crt_is_connected(rinfo, !rinfo->reversed_DAC);		/*		 * If we only detected port 2, we swap them, if none detected,		 * assume CRT (maybe fallback to old BIOS_SCRATCH stuff ? or look		 * at FP registers ?)		 */		if (rinfo->mon1_type == MT_NONE) {			if (rinfo->mon2_type != MT_NONE) {				rinfo->mon1_type = rinfo->mon2_type;				rinfo->mon1_EDID = rinfo->mon2_EDID;			} else				rinfo->mon1_type = MT_CRT;			rinfo->mon2_type = MT_NONE;			rinfo->mon2_EDID = NULL;		}		/*		 * Deal with reversed TMDS		 */		if (rinfo->reversed_TMDS) {			/* Always keep internal TMDS as primary head */			if (rinfo->mon1_type == MT_DFP || rinfo->mon2_type == MT_DFP) {				int tmp_type = rinfo->mon1_type;				u8 *tmp_EDID = rinfo->mon1_EDID;				rinfo->mon1_type = rinfo->mon2_type;				rinfo->mon1_EDID = rinfo->mon2_EDID;				rinfo->mon2_type = tmp_type;				rinfo->mon2_EDID = tmp_EDID;				if (rinfo->mon1_type == MT_CRT || rinfo->mon2_type == MT_CRT)					rinfo->reversed_DAC ^= 1;			}		}	}	if (ignore_edid) {		if (rinfo->mon1_EDID)			kfree(rinfo->mon1_EDID);		rinfo->mon1_EDID = NULL;		if (rinfo->mon2_EDID)			kfree(rinfo->mon2_EDID);		rinfo->mon2_EDID = NULL;	} bail:	printk(KERN_INFO "radeonfb: Monitor 1 type %s found\n",	       radeon_get_mon_name(rinfo->mon1_type));	if (rinfo->mon1_EDID)		printk(KERN_INFO "radeonfb: EDID probed\n");	if (!rinfo->has_CRTC2)		return;	printk(KERN_INFO "radeonfb: Monitor 2 type %s found\n",	       radeon_get_mon_name(rinfo->mon2_type));	if (rinfo->mon2_EDID)		printk(KERN_INFO "radeonfb: EDID probed\n");}/* * This functions applyes any arch/model/machine specific fixups * to the panel info. It may eventually alter EDID block as * well or whatever is specific to a given model and not probed * properly by the default code */static void radeon_fixup_panel_info(struct radeonfb_info *rinfo){	/*	 * A few iBook laptop panels seem to need a fixed PLL setting	 *	 * We should probably do this differently based on the panel	 * type/model or eventually some other device-tree informations,	 * but these tweaks below work enough for now. --BenH	 */#ifdef CONFIG_PPC_OF	/* iBook2's */	if (machine_is_compatible("PowerBook4,3")) {		rinfo->panel_info.ref_divider = rinfo->pll.ref_div;		rinfo->panel_info.post_divider = 0x6;		rinfo->panel_info.fbk_divider = 0xad;		rinfo->panel_info.use_bios_dividers = 1;	}	/* Aluminium PowerBook 17" */	if (machine_is_compatible("PowerBook5,3")) {		rinfo->panel_info.ref_divider = rinfo->pll.ref_div;		rinfo->panel_info.post_divider = 0x4;		rinfo->panel_info.fbk_divider = 0x80;		rinfo->panel_info.use_bios_dividers = 1;	}	/* iBook G4 */        if (machine_is_compatible("PowerBook6,3") |            machine_is_compatible("PowerBook6,5")) {		rinfo->panel_info.ref_divider = rinfo->pll.ref_div;		rinfo->panel_info.post_divider = 0x6;		rinfo->panel_info.fbk_divider = 0xad;		rinfo->panel_info.use_bios_dividers = 1;	}#endif /* CONFIG_PPC_OF */}/* * Fill up panel infos from a mode definition, either returned by the EDID * or from the default mode when we can't do any better */static void radeon_var_to_panel_info(struct radeonfb_info *rinfo, struct fb_var_screeninfo *var){	rinfo->panel_info.xres = var->xres;	rinfo->panel_info.yres = var->yres;	rinfo->panel_info.clock = 100000000 / var->pixclock;	rinfo->panel_info.hOver_plus = var->right_margin;	rinfo->panel_info.hSync_width = var->hsync_len;       	rinfo->panel_info.hblank = var->left_margin +		(var->right_margin + var->hsync_len);	rinfo->panel_info.vOver_plus = var->lower_margin;	rinfo->panel_info.vSync_width = var->vsync_len;       	rinfo->panel_info.vblank = var->upper_margin +		(var->lower_margin + var->vsync_len);	rinfo->panel_info.hAct_high =		(var->sync & FB_SYNC_HOR_HIGH_ACT) != 0;	rinfo->panel_info.vAct_high =		(var->sync & FB_SYNC_VERT_HIGH_ACT) != 0;	rinfo->panel_info.valid = 1;	/* We use a default of 200ms for the panel power delay, 	 * I need to have a real schedule() instead of mdelay's in the panel code.	 * we might be possible to figure out a better power delay either from	 * MacOS OF tree or from the EDID block (proprietary extensions ?)	 */	rinfo->panel_info.pwr_delay = 200;}static void radeon_var_to_videomode(struct fb_videomode *mode,				    const struct fb_var_screeninfo *var){    mode->xres = var->xres;    mode->yres = var->yres;    mode->pixclock = var->pixclock;    mode->left_margin = var->left_margin;    mode->right_margin = var->right_margin;    mode->upper_margin = var->upper_margin;    mode->lower_margin = var->lower_margin;    mode->hsync_len = var->hsync_len;    mode->vsync_len = var->vsync_len;    mode->sync = var->sync;    mode->vmode = var->vmode;}static void radeon_videomode_to_var(struct fb_var_screeninfo *var,				    const struct fb_videomode *mode){    var->xres = mode->xres;    var->yres = mode->yres;    var->xres_virtual = mode->xres;    var->yres_virtual = mode->yres;    var->xoffset = 0;    var->yoffset = 0;    var->pixclock = mode->pixclock;    var->left_margin = mode->left_margin;    var->right_margin = mode->right_margin;    var->upper_margin = mode->upper_margin;    var->lower_margin = mode->lower_margin;    var->hsync_len = mode->hsync_len;    var->vsync_len = mode->vsync_len;    var->sync = mode->sync;    var->vmode = mode->vmode;}/* * Build the modedb for head 1 (head 2 will come later), check panel infos * from either BIOS or EDID, and pick up the default mode */void __devinit radeon_check_modes(struct radeonfb_info *rinfo, const char *mode_option){	int has_default_mode = 0;	/*	 * Fill default var first	 */	rinfo->info->var = radeonfb_default_var;	/*	 * First check out what BIOS has to say	 */	if (rinfo->mon1_type == MT_LCD)		radeon_get_panel_info_BIOS(rinfo);	/*	 * Parse EDID detailed timings and deduce panel infos if any. Right now	 * we only deal with first entry returned by parse_EDID, we may do better	 * some day...	 */	if (!rinfo->panel_info.use_bios_dividers && rinfo->mon1_type != MT_CRT	    && rinfo->mon1_EDID) {		struct fb_var_screeninfo var;		RTRACE("Parsing EDID data for panel info\n");		if (fb_parse_edid(rinfo->mon1_EDID, &var) == 0) {			if (var.xres >= rinfo->panel_info.xres &&			    var.yres >= rinfo->panel_info.yres)				radeon_var_to_panel_info(rinfo, &var);		}	}	/*	 * Do any additional platform/arch fixups to the panel infos	 */	radeon_fixup_panel_info(rinfo);	/*	 * If we have some valid panel infos, we setup the default mode based on	 * those	 */	if (rinfo->mon1_type != MT_CRT && rinfo->panel_info.valid) {		struct fb_var_screeninfo *var = &rinfo->info->var;		RTRACE("Setting up default mode based on panel info\n");		var->xres = rinfo->panel_info.xres;		var->yres = rinfo->panel_info.yres;		var->xres_virtual = rinfo->panel_info.xres;		var->yres_virtual = rinfo->panel_info.yres;		var->xoffset = var->yoffset = 0;		var->bits_per_pixel = 8;		var->pixclock = 100000000 / rinfo->panel_info.clock;		var->left_margin = (rinfo->panel_info.hblank - rinfo->panel_info.hOver_plus				    - rinfo->panel_info.hSync_width);		var->right_margin = rinfo->panel_info.hOver_plus;		var->upper_margin = (rinfo->panel_info.vblank - rinfo->panel_info.vOver_plus				     - rinfo->panel_info.vSync_width);		var->lower_margin = rinfo->panel_info.vOver_plus;		var->hsync_len = rinfo->panel_info.hSync_width;		var->vsync_len = rinfo->panel_info.vSync_width;		var->sync = 0;		if (rinfo->panel_info.hAct_high)			var->sync |= FB_SYNC_HOR_HIGH_ACT;		if (rinfo->panel_info.vAct_high)			var->sync |= FB_SYNC_VERT_HIGH_ACT;		var->vmode = 0;		has_default_mode = 1;	}	/*	 * Now build modedb from EDID	 */	if (rinfo->mon1_EDID) {		rinfo->mon1_modedb = fb_create_modedb(rinfo->mon1_EDID,						      &rinfo->mon1_dbsize);		fb_get_monitor_limits(rinfo->mon1_EDID, &rinfo->info->monspecs);	}		/*	 * Finally, if we don't have panel infos we need to figure some (or	 * we try to read it from card), we try to pick a default mode	 * and create some panel infos. Whatever...	 */	if (rinfo->mon1_type != MT_CRT && !rinfo->panel_info.valid) {		struct fb_videomode	*modedb;		int			dbsize;		char			modename[32];		RTRACE("Guessing panel info...\n");		if (rinfo->panel_info.xres == 0 || rinfo->panel_info.yres == 0) {			u32 tmp = INREG(FP_HORZ_STRETCH) & HORZ_PANEL_SIZE;			rinfo->panel_info.xres = ((tmp >> HORZ_PANEL_SHIFT) + 1) * 8;			tmp = INREG(FP_VERT_STRETCH) & VERT_PANEL_SIZE;			rinfo->panel_info.yres = (tmp >> VERT_PANEL_SHIFT) + 1;		}		if (rinfo->panel_info.xres == 0 || rinfo->panel_info.yres == 0) {			printk(KERN_WARNING "radeonfb: Can't find panel size, going back to CRT\n");			rinfo->mon1_type = MT_CRT;			goto pickup_default;		}		printk(KERN_WARNING "radeonfb: Assuming panel size %dx%d\n",		       rinfo->panel_info.xres, rinfo->panel_info.yres);		modedb = rinfo->mon1_modedb;		dbsize = rinfo->mon1_dbsize;		snprintf(modename, 31, "%dx%d", rinfo->panel_info.xres, rinfo->panel_info.yres);		if (fb_find_mode(&rinfo->info->var, rinfo->info, modename,				 modedb, dbsize, NULL, 8) == 0) {			printk(KERN_WARNING "radeonfb: Can't find mode for panel size, going back to CRT\n");			rinfo->mon1_type = MT_CRT;			goto pickup_default;		}		has_default_mode = 1;		radeon_var_to_panel_info(rinfo, &rinfo->info->var);	} pickup_default:	/*	 * Pick up a random default mode	 */	if (!has_default_mode || mode_option) {		struct fb_videomode default_mode;		if (has_default_mode)			radeon_var_to_videomode(&default_mode, &rinfo->info->var);		else			radeon_var_to_videomode(&default_mode, &radeonfb_default_var);		if (fb_find_mode(&rinfo->info->var, rinfo->info, mode_option,				 rinfo->mon1_modedb, rinfo->mon1_dbsize, &default_mode, 8) == 0)			rinfo->info->var = radeonfb_default_var;	}}/* * The code below is used to pick up a mode in check_var and * set_var. It should be made generic *//* * This is used when looking for modes. We assign a "goodness" value * to a mode in the modedb depending how "close" it is from what we * are looking for. * Currently, we don't compare that much, we could do better but * the current fbcon doesn't quite mind ;) */static int radeon_compare_modes(const struct fb_var_screeninfo *var,				const struct fb_videomode *mode){	int goodness = 0;	if (var->yres == mode->yres)		goodness += 10;	if (var->xres == mode->xres)		goodness += 9;	return goodness;}/* * This function is called by check_var, it gets the passed in mode parameter, and * outputs a valid mode matching the passed-in one as closely as possible. * We need something better ultimately. Things like fbcon basically pass us out * current mode with xres/yres hacked, while things like XFree will actually * produce a full timing that we should respect as much as possible. * * This is why I added the FB_ACTIVATE_FIND that is used by fbcon. Without this, * we do a simple spec match, that's all. With it, we actually look for a mode in * either our monitor modedb or the vesa one if none * */int  radeon_match_mode(struct radeonfb_info *rinfo,		       struct fb_var_screeninfo *dest,		       const struct fb_var_screeninfo *src){	const struct fb_videomode	*db = vesa_modes;	int				i, dbsize = 34;	int				has_rmx, native_db = 0;	int				goodness = 0;	const struct fb_videomode	*candidate = NULL;	/* Start with a copy of the requested mode */	memcpy(dest, src, sizeof(struct fb_var_screeninfo));	/* Check if we have a modedb built from EDID */	if (rinfo->mon1_modedb) {		db = rinfo->mon1_modedb;		dbsize = rinfo->mon1_dbsize;		native_db = 1;	}	/* Check if we have a scaler allowing any fancy mode */	has_rmx = rinfo->mon1_type == MT_LCD || rinfo->mon1_type == MT_DFP;	/* If we have a scaler and are passed FB_ACTIVATE_TEST or	 * FB_ACTIVATE_NOW, just do basic checking and return if the	 * mode match	 */	if ((src->activate & FB_ACTIVATE_MASK) == FB_ACTIVATE_TEST ||	    (src->activate & FB_ACTIVATE_MASK) == FB_ACTIVATE_NOW) {		/* We don't have an RMX, validate timings. If we don't have	 	 * monspecs, we should be paranoid and not let use go above		 * 640x480-60, but I assume userland knows what it's doing here		 * (though I may be proven wrong...)		 */		if (has_rmx == 0 && rinfo->mon1_modedb)			if (fb_validate_mode((struct fb_var_screeninfo *)src, rinfo->info))				return -EINVAL;		return 0;	}	/* Now look for a mode in the database */	while (db) {		for (i = 0; i < dbsize; i++) {			int g;			if (db[i].yres < src->yres)				continue;				if (db[i].xres < src->xres)				continue;			g = radeon_compare_modes(src, &db[i]);			/* If the new mode is at least as good as the previous one,			 * then it's our new candidate			 */			if (g >= goodness) {				candidate = &db[i];				goodness = g;			}		}		db = NULL;		/* If we have a scaler, we allow any mode from the database */		if (native_db && has_rmx) {			db = vesa_modes;			dbsize = 34;			native_db = 0;		}	}	/* If we have found a match, return it */	if (candidate != NULL) {		radeon_videomode_to_var(dest, candidate);		return 0;	}	/* If we haven't and don't have a scaler, fail */	if (!has_rmx)		return -EINVAL;	return 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区蜜桃| 国产精品久久国产精麻豆99网站 | 日韩欧美成人激情| 日本一不卡视频| 精品乱人伦小说| 国产99久久久久| ㊣最新国产の精品bt伙计久久| 91在线播放网址| 亚洲电影一区二区三区| 69堂国产成人免费视频| 激情文学综合插| 国产精品国产三级国产普通话三级 | 成人av电影在线播放| 亚洲欧洲精品一区二区三区 | 欧美老肥妇做.爰bbww视频| 天天色天天操综合| 久久综合久久99| 99国产麻豆精品| 亚洲大片一区二区三区| 久久影院午夜论| 色婷婷综合久久| 老司机精品视频线观看86| 国产无一区二区| 在线视频一区二区三区| 经典三级一区二区| 亚洲欧洲www| 91精品久久久久久蜜臀| 高清成人免费视频| 亚洲动漫第一页| 国产欧美一区二区三区网站 | 3751色影院一区二区三区| 国产精品亚洲视频| 午夜私人影院久久久久| 国产欧美一区二区精品忘忧草 | 欧美精三区欧美精三区| 国产不卡视频在线观看| 亚洲成a人v欧美综合天堂下载| 久久久久国色av免费看影院| 在线日韩国产精品| 国产麻豆午夜三级精品| 亚洲一区在线视频| 欧美韩国日本不卡| 欧美肥妇bbw| 一本一道久久a久久精品| 精品一区二区三区免费| 亚州成人在线电影| 亚洲欧洲日韩综合一区二区| 精品国产自在久精品国产| 欧美视频精品在线观看| 成人综合日日夜夜| 狠狠色综合日日| 水蜜桃久久夜色精品一区的特点| 国产精品乱人伦中文| 2020国产精品久久精品美国| 91麻豆精品国产| 欧美性极品少妇| 成人av网在线| 国产成人免费高清| 精品一区二区三区久久久| 亚洲成年人影院| 亚洲视频在线观看三级| 国产日韩欧美高清| 国产亚洲精久久久久久| 精品久久久久久亚洲综合网| 欧美一区二区在线免费播放| 色8久久精品久久久久久蜜| 成人激情免费电影网址| 国产福利精品导航| 国产在线不卡一区| 精品一区二区在线免费观看| 乱一区二区av| 麻豆专区一区二区三区四区五区| 日韩激情视频在线观看| 日韩国产精品久久久久久亚洲| 亚洲成人免费视频| 午夜免费久久看| 无吗不卡中文字幕| 美女视频网站黄色亚洲| 韩国三级中文字幕hd久久精品| 麻豆精品一区二区av白丝在线| 免费成人你懂的| 美日韩一区二区| 久久精品av麻豆的观看方式| 国产精品1区2区3区| 91精品国产综合久久精品图片| 欧美日韩高清在线| 在线电影院国产精品| 欧美挠脚心视频网站| 91麻豆精品国产自产在线| 欧美成人aa大片| 久久久亚洲精品一区二区三区| 久久夜色精品一区| 国产日韩精品一区二区浪潮av| 国产精品网站一区| 亚洲精品你懂的| 三级欧美韩日大片在线看| 奇米777欧美一区二区| 黑人精品欧美一区二区蜜桃| 国产成人免费在线视频| 91麻豆swag| 91麻豆精品国产自产在线 | www成人在线观看| 久久久久久97三级| 亚洲免费毛片网站| 天堂久久一区二区三区| 极品少妇xxxx偷拍精品少妇| 粉嫩高潮美女一区二区三区| 日本韩国一区二区三区视频| 欧美精品一二三| 国产亚洲成年网址在线观看| 亚洲精品综合在线| 麻豆久久一区二区| av一本久道久久综合久久鬼色| 欧美视频一区在线| 精品久久久久久无| 亚洲自拍欧美精品| 国产麻豆午夜三级精品| 在线观看亚洲专区| 久久先锋影音av| 亚洲欧美二区三区| 精品伊人久久久久7777人| 99国产一区二区三精品乱码| 欧美一级高清片在线观看| 中文在线资源观看网站视频免费不卡| 亚洲精品五月天| 国产美女av一区二区三区| 欧美调教femdomvk| 欧美国产日韩一二三区| 日韩av网站在线观看| 91丨九色porny丨蝌蚪| 欧美精品一区二区高清在线观看| 亚洲精品中文字幕在线观看| 国产美女精品人人做人人爽 | 日本aⅴ亚洲精品中文乱码| 成人三级在线视频| 欧美一级爆毛片| 一区二区不卡在线播放| 国产成人免费在线观看| 日韩一区二区三区视频在线| 一区二区三区影院| 国产成人av一区二区| 欧美一区二区三区四区在线观看 | 日韩欧美三级在线| 亚洲一区二区三区在线播放| 不卡的av网站| 国产婷婷色一区二区三区在线| 日韩电影在线一区| 欧美日韩一区二区在线观看| 亚洲欧洲韩国日本视频| 国产成人免费av在线| 欧美精品一区在线观看| 秋霞av亚洲一区二区三| 欧美日韩国产天堂| 亚洲精品免费看| 99国产精品久久久久久久久久久| 国产女人aaa级久久久级| 麻豆免费看一区二区三区| 欧美高清www午色夜在线视频| 亚洲一线二线三线久久久| 99这里都是精品| 中文字幕在线不卡一区二区三区| 国产精品一二三四| 久久蜜臀中文字幕| 久久99九九99精品| 日韩视频在线一区二区| 麻豆成人久久精品二区三区红| 欧美一区二区三区小说| 美女任你摸久久| 精品91自产拍在线观看一区| 久久国产精品露脸对白| 欧美v日韩v国产v| 国产一区二区三区在线观看免费视频 | 91精品国产91久久久久久最新毛片| 亚洲一区二区三区四区五区中文| 欧美中文一区二区三区| 亚洲不卡一区二区三区| 欧美日韩三级一区| 人人狠狠综合久久亚洲| 精品福利一区二区三区| 国产成人啪免费观看软件| 国产精品乱人伦一区二区| 97久久精品人人做人人爽50路| 亚洲欧美国产毛片在线| 欧美疯狂做受xxxx富婆| 美女视频黄频大全不卡视频在线播放| 精品久久久久久最新网址| 国产精品一二三区在线| 欧美激情综合网| 色哟哟精品一区| 五月激情综合网| 日韩一区二区三区视频| 国产高清精品久久久久| 中日韩免费视频中文字幕| 成人午夜大片免费观看| 一区二区三区中文在线观看| 欧美日韩一区二区三区在线| 日本中文在线一区| 国产欧美一区二区精品性色超碰| 成人美女视频在线观看18| 亚洲国产精品ⅴa在线观看|