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

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

?? sis5513.c

?? ep9315平臺下硬盤驅(qū)動的源碼
?? C
?? 第 1 頁 / 共 3 頁
字號:
			default:	p += sprintf(p, "133+ ?"); break;		}		p += sprintf(p, "\n");	}/* Data Active */	p += sprintf(p, "                Data Active Time   ");	switch(chipset_family) {		case ATA_00:		case ATA_16: /* confirmed */		case ATA_33:		case ATA_66:		case ATA_100a: p += sprintf(p, active_time[reg01 & 0x07]); break;		case ATA_100:		case ATA_133a: p += sprintf(p, active_time[(reg00 & 0x70) >> 4]); break;		case ATA_133:		default: p += sprintf(p, "133+ ?"); break;	}	p += sprintf(p, " \t Data Active Time   ");	switch(chipset_family) {		case ATA_00:		case ATA_16:		case ATA_33:		case ATA_66:		case ATA_100a: p += sprintf(p, active_time[reg11 & 0x07]); break;		case ATA_100:		case ATA_133a: p += sprintf(p, active_time[(reg10 & 0x70) >> 4]); break;		case ATA_133:		default: p += sprintf(p, "133+ ?"); break;	}	p += sprintf(p, "\n");/* Data Recovery */	/* warning: may need (reg&0x07) for pre ATA66 chips */	if (chipset_family < ATA_133) {		p += sprintf(p, "                Data Recovery Time %s \t Data Recovery Time %s\n",			     recovery_time[reg00 & 0x0f], recovery_time[reg10 & 0x0f]);	}	return p;}static char* get_masters_info(char* buffer){	return get_drives_info(buffer, 0);}static char* get_slaves_info(char* buffer){	return get_drives_info(buffer, 1);}/* Main get_info, called on /proc/ide/sis reads */static int sis_get_info (char *buffer, char **addr, off_t offset, int count){	char *p = buffer;	int len;	u8 reg;	u16 reg2, reg3;	p += sprintf(p, "\nSiS 5513 ");	switch(chipset_family) {		case ATA_00: p += sprintf(p, "Unknown???"); break;		case ATA_16: p += sprintf(p, "DMA 16"); break;		case ATA_33: p += sprintf(p, "Ultra 33"); break;		case ATA_66: p += sprintf(p, "Ultra 66"); break;		case ATA_100a:		case ATA_100: p += sprintf(p, "Ultra 100"); break;		case ATA_133a:		case ATA_133: p += sprintf(p, "Ultra 133"); break;		default: p+= sprintf(p, "Unknown???"); break;	}	p += sprintf(p, " chipset\n");	p += sprintf(p, "--------------- Primary Channel "		     "---------------- Secondary Channel "		     "-------------\n");/* Status */	pci_read_config_byte(bmide_dev, 0x4a, &reg);	if (chipset_family == ATA_133) {		pci_read_config_word(bmide_dev, 0x50, &reg2);		pci_read_config_word(bmide_dev, 0x52, &reg3);	}	p += sprintf(p, "Channel Status: ");	if (chipset_family < ATA_66) {		p += sprintf(p, "%s \t \t \t \t %s\n",			     (reg & 0x04) ? "On" : "Off",			     (reg & 0x02) ? "On" : "Off");	} else if (chipset_family < ATA_133) {		p += sprintf(p, "%s \t \t \t \t %s \n",			     (reg & 0x02) ? "On" : "Off",			     (reg & 0x04) ? "On" : "Off");	} else { /* ATA_133 */		p += sprintf(p, "%s \t \t \t \t %s \n",			     (reg2 & 0x02) ? "On" : "Off",			     (reg3 & 0x02) ? "On" : "Off");	}/* Operation Mode */	pci_read_config_byte(bmide_dev, 0x09, &reg);	p += sprintf(p, "Operation Mode: %s \t \t \t %s \n",		     (reg & 0x01) ? "Native" : "Compatible",		     (reg & 0x04) ? "Native" : "Compatible");/* 80-pin cable ? */	if (chipset_family >= ATA_133) {		p += sprintf(p, "Cable Type:     %s \t \t \t %s\n",			     (reg2 & 0x01) ? cable_type[1] : cable_type[0],			     (reg3 & 0x01) ? cable_type[1] : cable_type[0]);	} else if (chipset_family > ATA_33) {		pci_read_config_byte(bmide_dev, 0x48, &reg);		p += sprintf(p, "Cable Type:     %s \t \t \t %s\n",			     (reg & 0x10) ? cable_type[1] : cable_type[0],			     (reg & 0x20) ? cable_type[1] : cable_type[0]);	}/* Prefetch Count */	if (chipset_family < ATA_133) {		pci_read_config_word(bmide_dev, 0x4c, &reg2);		pci_read_config_word(bmide_dev, 0x4e, &reg3);		p += sprintf(p, "Prefetch Count: %d \t \t \t \t %d\n",			     reg2, reg3);	}	p = get_masters_info(p);	p = get_slaves_info(p);	len = (p - buffer) - offset;	*addr = buffer + offset;		return len > count ? count : len;}#endif /* defined(DISPLAY_SIS_TIMINGS) && defined(CONFIG_PROC_FS) */static u8 sis5513_ratemask (ide_drive_t *drive){#if 0	u8 rates[] = { 0, 0, 1, 2, 3, 3, 4, 4 };	u8 mode = rates[chipset_family];#else	u8 mode;	switch(chipset_family) {		case ATA_133:		case ATA_133a:			mode = 4;			break;		case ATA_100:		case ATA_100a:			mode = 3;			break;		case ATA_66:			mode = 2;			break;		case ATA_33:			return 1;		case ATA_16:                case ATA_00:			default:			return 0;	}#endif	if (!eighty_ninty_three(drive))		mode = min(mode, (u8)1);	return mode;}/* * Configuration functions *//* Enables per-drive prefetch and postwrite */static void config_drive_art_rwp (ide_drive_t *drive){	ide_hwif_t *hwif	= HWIF(drive);	struct pci_dev *dev	= hwif->pci_dev;	u8 reg4bh		= 0;	u8 rw_prefetch		= (0x11 << drive->dn);#ifdef DEBUG	printk("SIS5513: config_drive_art_rwp, drive %d\n", drive->dn);	sis5513_load_verify_registers(dev, "config_drive_art_rwp start");#endif	if (drive->media != ide_disk)		return;	pci_read_config_byte(dev, 0x4b, &reg4bh);	if ((reg4bh & rw_prefetch) != rw_prefetch)		pci_write_config_byte(dev, 0x4b, reg4bh|rw_prefetch);#ifdef DEBUG	sis5513_load_verify_registers(dev, "config_drive_art_rwp end");#endif}/* Set per-drive active and recovery time */static void config_art_rwp_pio (ide_drive_t *drive, u8 pio){	ide_hwif_t *hwif	= HWIF(drive);	struct pci_dev *dev	= hwif->pci_dev;	u8			timing, drive_pci, test1, test2;	u16 eide_pio_timing[6] = {600, 390, 240, 180, 120, 90};	u16 xfer_pio = drive->id->eide_pio_modes;#ifdef DEBUG	sis5513_load_verify_registers(dev, "config_drive_art_rwp_pio start");#endif	config_drive_art_rwp(drive);	pio = ide_get_best_pio_mode(drive, 255, pio, NULL);	if (xfer_pio> 4)		xfer_pio = 0;	if (drive->id->eide_pio_iordy > 0) {		for (xfer_pio = 5;			(xfer_pio > 0) &&			(drive->id->eide_pio_iordy > eide_pio_timing[xfer_pio]);			xfer_pio--);	} else {		xfer_pio = (drive->id->eide_pio_modes & 4) ? 0x05 :			   (drive->id->eide_pio_modes & 2) ? 0x04 :			   (drive->id->eide_pio_modes & 1) ? 0x03 : xfer_pio;	}	timing = (xfer_pio >= pio) ? xfer_pio : pio;#ifdef DEBUG	printk("SIS5513: config_drive_art_rwp_pio, "		"drive %d, pio %d, timing %d\n",	       drive->dn, pio, timing);#endif	/* In pre ATA_133 case, drives sit at 0x40 + 4*drive->dn */	drive_pci = 0x40;	/* In SiS962 case drives sit at (0x40 or 0x70) + 8*drive->dn) */	if (chipset_family >= ATA_133) {		u32 reg54h;		pci_read_config_dword(dev, 0x54, &reg54h);		if (reg54h & 0x40000000) drive_pci = 0x70;		drive_pci += ((drive->dn)*0x4);	} else {		drive_pci += ((drive->dn)*0x2);	}	/* register layout changed with newer ATA100 chips */	if (chipset_family < ATA_100) {		pci_read_config_byte(dev, drive_pci, &test1);		pci_read_config_byte(dev, drive_pci+1, &test2);		/* Clear active and recovery timings */		test1 &= ~0x0F;		test2 &= ~0x07;		switch(timing) {			case 4:		test1 |= 0x01; test2 |= 0x03; break;			case 3:		test1 |= 0x03; test2 |= 0x03; break;			case 2:		test1 |= 0x04; test2 |= 0x04; break;			case 1:		test1 |= 0x07; test2 |= 0x06; break;			default:	break;		}		pci_write_config_byte(dev, drive_pci, test1);		pci_write_config_byte(dev, drive_pci+1, test2);	} else if (chipset_family < ATA_133) {		switch(timing) { /*		active  recovery						  v     v */			case 4:		test1 = 0x30|0x01; break;			case 3:		test1 = 0x30|0x03; break;			case 2:		test1 = 0x40|0x04; break;			case 1:		test1 = 0x60|0x07; break;			default:	break;		}		pci_write_config_byte(dev, drive_pci, test1);	} else { /* ATA_133 */		u32 test3;		pci_read_config_dword(dev, drive_pci, &test3);		test3 &= 0xc0c00fff;		if (test3 & 0x08) {			test3 |= (unsigned long)ini_time_value[ATA_133-ATA_00][timing] << 12;			test3 |= (unsigned long)act_time_value[ATA_133-ATA_00][timing] << 16;			test3 |= (unsigned long)rco_time_value[ATA_133-ATA_00][timing] << 24;		} else {			test3 |= (unsigned long)ini_time_value[ATA_100-ATA_00][timing] << 12;			test3 |= (unsigned long)act_time_value[ATA_100-ATA_00][timing] << 16;			test3 |= (unsigned long)rco_time_value[ATA_100-ATA_00][timing] << 24;		}		pci_write_config_dword(dev, drive_pci, test3);	}#ifdef DEBUG	sis5513_load_verify_registers(dev, "config_drive_art_rwp_pio start");#endif}static int config_chipset_for_pio (ide_drive_t *drive, u8 pio){#if 0	config_art_rwp_pio(drive, pio);	return ide_config_drive_speed(drive, (XFER_PIO_0 + pio));#else	u8 speed;	switch(pio) {		case 4:		speed = XFER_PIO_4; break;		case 3:		speed = XFER_PIO_3; break;		case 2:		speed = XFER_PIO_2; break;		case 1:		speed = XFER_PIO_1; break;		default:	speed = XFER_PIO_0; break;	}	config_art_rwp_pio(drive, pio);	return ide_config_drive_speed(drive, speed);#endif}static int sis5513_tune_chipset (ide_drive_t *drive, u8 xferspeed){	ide_hwif_t *hwif	= HWIF(drive);	struct pci_dev *dev	= hwif->pci_dev;	u8 drive_pci, reg, speed;	u32 regdw;#ifdef DEBUG	sis5513_load_verify_registers(dev, "sis5513_tune_chipset start");#endif#ifdef BROKEN_LEVEL#ifdef DEBUG	printk("SIS5513: BROKEN_LEVEL activated, speed=%d -> speed=%d\n", xferspeed, BROKEN_LEVEL);#endif	if (xferspeed > BROKEN_LEVEL) xferspeed = BROKEN_LEVEL;#endif	speed = ide_rate_filter(sis5513_ratemask(drive), xferspeed);#ifdef DEBUG	printk("SIS5513: sis5513_tune_chipset, drive %d, speed %d\n",	       drive->dn, xferspeed);#endif	/* See config_art_rwp_pio for drive pci config registers */	drive_pci = 0x40;	if (chipset_family >= ATA_133) {		u32 reg54h;		pci_read_config_dword(dev, 0x54, &reg54h);		if (reg54h & 0x40000000) drive_pci = 0x70;		drive_pci += ((drive->dn)*0x4);		pci_read_config_dword(dev, (unsigned long)drive_pci, &regdw);		/* Disable UDMA bit for non UDMA modes on UDMA chips */		if (speed < XFER_UDMA_0) {			regdw &= 0xfffffffb;			pci_write_config_dword(dev, (unsigned long)drive_pci, regdw);		}		} else {		drive_pci += ((drive->dn)*0x2);		pci_read_config_byte(dev, drive_pci+1, &reg);		/* Disable UDMA bit for non UDMA modes on UDMA chips */		if ((speed < XFER_UDMA_0) && (chipset_family > ATA_16)) {			reg &= 0x7F;			pci_write_config_byte(dev, drive_pci+1, reg);		}	}	/* Config chip for mode */	switch(speed) {

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲免费观看在线观看| 午夜电影久久久| 欧美日韩国产综合视频在线观看| 国产在线视频一区二区| 亚洲综合自拍偷拍| 国产亚洲精品aa| 91精品午夜视频| 91香蕉视频黄| 国产aⅴ精品一区二区三区色成熟| 亚洲电影一级黄| 中文字幕综合网| 久久久三级国产网站| 欧美一区二区三区四区视频| 色94色欧美sute亚洲线路一久| 激情成人综合网| 日本伊人午夜精品| 亚洲一区免费视频| 亚洲欧洲av在线| 国产农村妇女毛片精品久久麻豆 | 日韩一区二区三区在线| 日本久久电影网| 99这里都是精品| 国产精品一区二区免费不卡| 青青国产91久久久久久| 亚洲综合成人在线视频| 国产精品久久久久久久岛一牛影视 | av在线播放成人| 国产美女在线精品| 精品伊人久久久久7777人| 日韩精品视频网| 日本中文在线一区| 免费观看在线色综合| 视频在线观看一区| 日本视频中文字幕一区二区三区| 亚洲五码中文字幕| 亚洲综合免费观看高清完整版在线| 综合激情成人伊人| 亚洲人123区| 亚洲欧美另类在线| 亚洲综合色自拍一区| 亚洲综合久久久| 亚洲第一av色| 日韩精品91亚洲二区在线观看| 亚洲高清视频中文字幕| 亚洲成人精品一区二区| 亚洲r级在线视频| 日本免费在线视频不卡一不卡二| 丝瓜av网站精品一区二区| 天天av天天翘天天综合网色鬼国产| 亚洲一区中文日韩| 丝袜美腿亚洲综合| 久久国产视频网| 国产精品一区二区久激情瑜伽| 国产伦精品一区二区三区免费 | 麻豆成人久久精品二区三区红| 青青草97国产精品免费观看| 老司机精品视频一区二区三区| 久久99蜜桃精品| 国内精品免费在线观看| 成人午夜精品一区二区三区| 成人性生交大片免费看在线播放| 99久久国产综合精品麻豆| 一本到高清视频免费精品| 欧美三级中文字幕在线观看| 欧美一区二区三区视频在线| 久久色在线观看| 中文字幕一区二区三区不卡| 亚洲一区视频在线| 精品亚洲成a人| 9i在线看片成人免费| 在线观看视频一区二区| 91精品国产综合久久婷婷香蕉| 精品国产乱码久久久久久久久| 欧美韩日一区二区三区四区| 亚洲理论在线观看| 六月丁香综合在线视频| av在线不卡网| 日韩欧美色电影| 国产精品成人免费在线| 日本v片在线高清不卡在线观看| 国内精品伊人久久久久av一坑| 成人激情免费电影网址| 欧美一级黄色大片| 国产精品久久久久久久久快鸭| 亚洲成人午夜影院| 国产91精品精华液一区二区三区| 色狠狠桃花综合| 欧美精品一区二区在线播放| 亚洲免费在线观看| 国产乱人伦精品一区二区在线观看 | 国产精品免费av| 污片在线观看一区二区| 成人免费av在线| 日韩一级片网址| 亚洲男人天堂av| 国产成人综合亚洲网站| 欧美日韩一区高清| 国产精品理论在线观看| 蜜臀91精品一区二区三区| 色综合视频在线观看| 亚洲精品一区二区三区福利| 亚洲国产欧美日韩另类综合 | 中文一区二区完整视频在线观看 | 亚洲成av人片www| 成人小视频免费在线观看| 日韩色在线观看| 亚洲国产精品精华液网站| 高清在线不卡av| 日韩欧美一级在线播放| 亚洲曰韩产成在线| 99国产精品国产精品毛片| 欧美不卡一区二区| 日本麻豆一区二区三区视频| 日本韩国视频一区二区| 国产精品久久久久桃色tv| 久久99国产精品免费| 69精品人人人人| 亚洲高清免费一级二级三级| 99精品久久久久久| 国产免费成人在线视频| 国产美女视频一区| 精品欧美久久久| 免费精品视频最新在线| 欧美一区二区三区四区视频| 舔着乳尖日韩一区| 欧美日韩性生活| 亚洲va天堂va国产va久| 在线亚洲免费视频| 亚洲一区免费在线观看| 欧美在线free| 亚洲第一综合色| 欧美美女直播网站| 午夜伦欧美伦电影理论片| 欧美日韩综合在线免费观看| 一区二区三区不卡视频在线观看| 91在线视频观看| 亚洲品质自拍视频| 色噜噜夜夜夜综合网| 一区二区三区小说| 欧美婷婷六月丁香综合色| 亚洲精品国产高清久久伦理二区| 99国产精品久久久久久久久久| 亚洲欧美色一区| 欧洲一区在线电影| 五月天激情综合网| 日韩区在线观看| 国产在线播放一区| 国产精品午夜免费| 色就色 综合激情| 亚洲欧美日韩一区| 欧洲视频一区二区| 亚洲成av人片在线| 精品少妇一区二区三区免费观看| 免费看欧美女人艹b| 日韩一区和二区| 国产精品一区二区无线| 中文字幕不卡在线观看| 在线影院国内精品| 麻豆精品在线看| 国产欧美视频一区二区三区| 91免费看视频| 三级成人在线视频| 久久久久久一级片| 色综合久久久久| 蜜桃视频第一区免费观看| 精品99999| 99国产精品国产精品毛片| 成人激情免费网站| 亚洲一区二区三区四区在线观看| 欧美一区二区日韩一区二区| 国产精品99久久久久久久女警| 18涩涩午夜精品.www| 欧美日韩一区二区三区在线| 精一区二区三区| 亚洲欧美自拍偷拍| 8x福利精品第一导航| 国产v日产∨综合v精品视频| 亚洲欧洲99久久| 欧美mv日韩mv| 色婷婷综合久色| 久久草av在线| 亚洲免费电影在线| 日韩欧美电影一区| 欧美亚洲综合一区| 国产一二精品视频| 午夜精品久久久久久久久久久 | 亚洲成av人片在线观看无码| 久久精品这里都是精品| 色美美综合视频| 国产91精品一区二区麻豆网站 | 亚洲日本免费电影| 精品免费日韩av| 欧美亚州韩日在线看免费版国语版| 久久99国产精品久久99果冻传媒| 亚洲欧美日韩国产综合在线| 精品1区2区在线观看| 欧美三级在线视频| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 在线日韩av片| 成人av第一页|