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

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

?? mac_esp.c

?? linux和2410結合開發 用他可以生成2410所需的zImage文件
?? C
?? 第 1 頁 / 共 2 頁
字號:
				quick = 0;			} else {				/* q950, 900, 700 */				quick = 1;				writel(0x1d1, 0xf9800024);				esp->dregs = (void *) 0xf9800024;			}		} else { /* chipnum */			quick = 1;			writel(0x1d1, 0xf9800028);			esp->dregs = (void *) 0xf9800028;		} /* chipnum == 0 */		/* use pio for command bytes; pio for message/data: TBI */		esp->do_pio_cmds = 1;		/* Set the command buffer */		esp->esp_command = (volatile unsigned char*) cmd_buffer;		esp->esp_command_dvma = (volatile unsigned char*) cmd_buffer;		/* various functions */		esp->dma_bytes_sent = &dma_bytes_sent;		esp->dma_can_transfer = &dma_can_transfer;		esp->dma_dump_state = &dma_dump_state;		esp->dma_init_read = NULL;		esp->dma_init_write = NULL;		esp->dma_ints_off = &dma_ints_off;		esp->dma_ints_on = &dma_ints_on;		esp->dma_ports_p = &dma_ports_p;		/* Optional functions */		esp->dma_barrier = NULL;		esp->dma_drain = NULL;		esp->dma_invalidate = NULL;		esp->dma_irq_entry = NULL;		esp->dma_irq_exit = NULL;		esp->dma_led_on = NULL;		esp->dma_led_off = NULL;		esp->dma_poll = NULL;		esp->dma_reset = NULL;		/* SCSI chip speed */		/* below esp->cfreq = 40000000; */		if (quick) {			/* 'quick' means there's handshake glue logic like in the 5380 case */			esp->dma_setup = &dma_setup_quick;		} else {			esp->dma_setup = &dma_setup;		}		if (chipnum == 0) {			esp->irq = IRQ_MAC_SCSI;			request_irq(IRQ_MAC_SCSI, esp_intr, 0, "Mac ESP SCSI", esp);#if 0	/* conflicts with IOP ADB */			request_irq(IRQ_MAC_SCSIDRQ, fake_drq, 0, "Mac ESP DRQ", esp);#endif			if (macintosh_config->scsi_type == MAC_SCSI_QUADRA) {				esp->cfreq = 16500000;			} else {				esp->cfreq = 25000000;			}		} else { /* chipnum == 1 */			esp->irq = IRQ_MAC_SCSIDRQ;#if 0	/* conflicts with IOP ADB */			request_irq(IRQ_MAC_SCSIDRQ, esp_intr, 0, "Mac ESP SCSI 2", esp);#endif			esp->cfreq = 25000000;		}		if (quick) {			printk("esp: using quick version\n");		}		printk("esp: addr at 0x%p\n", esp->eregs);		esp->scsi_id = 7;		esp->diff = 0;		esp_initialize(esp);	} /* for chipnum */	if (chipspresent)		printk("\nmac_esp: %d esp controllers found\n", chipspresent);	esp_initialized = chipspresent;	return chipspresent;}/* * I've been wondering what this is supposed to do, for some time. Talking  * to Allen Briggs: These machines have an extra register someplace where the * DRQ pin of the ESP can be monitored. That isn't useful for determining  * anything else (such as reselect interrupt or other magic) though.  * Maybe make the semantics should be changed like  * if (esp->current_SC) *	... check DRQ flag ... * else  *	... disconnected, check pending VIA interrupt ... * * There's a problem with using the dabf flag or mac_irq_pending() here: both * seem to return 1 even though no interrupt is currently pending, resulting * in esp_exec_cmd() holding off the next command, and possibly infinite loops * in esp_intr().  * Short term fix: just use esp_status & ESP_STAT_INTR here, as long as we * use simple PIO. The DRQ status will be important when implementing pseudo * DMA mode (set up ESP transfer count, return, do a batch of bytes in PIO or  * 'hardware handshake' mode upon DRQ). * If you plan on changing this (i.e. to save the esp_status register access in  * favor of a VIA register access or a shadow register for the IFR), make sure * to try a debug version of this first to monitor what registers would be a good * indicator of the ESP interrupt. */static int esp_dafb_dma_irq_p(struct NCR_ESP * esp){	unsigned int ret;	int sreg = esp_read(esp->eregs->esp_status);#ifdef DEBUG_MAC_ESP	printk("mac_esp: esp_dafb_dma_irq_p dafb %d irq %d\n", 		readl(esp->dregs), mac_irq_pending(IRQ_MAC_SCSI));#endif	sreg &= ESP_STAT_INTR;	/*	 * maybe working; this is essentially what's used for iosb_dma_irq_p	 */	if (sreg)		return 1;	else		return 0;	/*	 * didn't work ...	 */#if 0	if (esp->current_SC)		ret = readl(esp->dregs) & 0x200;	else if (esp->disconnected_SC)		ret = 1; /* sreg ?? */	else		ret = mac_irq_pending(IRQ_MAC_SCSI);	return(ret);#endif}/* * See above: testing mac_irq_pending always returned 8 (SCSI IRQ) regardless  * of the actual ESP status. */static int esp_iosb_dma_irq_p(struct NCR_ESP * esp){	int ret  = mac_irq_pending(IRQ_MAC_SCSI) || mac_irq_pending(IRQ_MAC_SCSIDRQ);	int sreg = esp_read(esp->eregs->esp_status);#ifdef DEBUG_MAC_ESP	printk("mac_esp: dma_irq_p drq %d irq %d sreg %x curr %p disc %p\n", 		mac_irq_pending(IRQ_MAC_SCSIDRQ), mac_irq_pending(IRQ_MAC_SCSI), 		sreg, esp->current_SC, esp->disconnected_SC);#endif	sreg &= ESP_STAT_INTR;	if (sreg)		return (sreg);	else		return 0;}/* * This seems to be OK for PIO at least ... usually 0 after PIO. */static int dma_bytes_sent(struct NCR_ESP * esp, int fifo_count){#ifdef DEBUG_MAC_ESP	printk("mac_esp: dma bytes sent = %x\n", fifo_count);#endif	return fifo_count;}/* * dma_can_transfer is used to switch between DMA and PIO, if DMA (pseudo) * is ever implemented. Returning 0 here will use PIO. */static int dma_can_transfer(struct NCR_ESP * esp, Scsi_Cmnd * sp){	unsigned long sz = sp->SCp.this_residual;#if 0	/* no DMA yet; make conditional */	if (sz > 0x10000000) {		sz = 0x10000000;	}	printk("mac_esp: dma can transfer = 0lx%x\n", sz);#else#ifdef DEBUG_MAC_ESP	printk("mac_esp: pio to transfer = %ld\n", sz);#endif	sz = 0;#endif	return sz;}/* * Not yet ... */static void dma_dump_state(struct NCR_ESP * esp){#ifdef DEBUG_MAC_ESP	printk("mac_esp: dma_dump_state: called\n");#endif#if 0	ESPLOG(("esp%d: dma -- cond_reg<%02x>\n",		esp->esp_id, ((struct mac_dma_registers *)		(esp->dregs))->cond_reg));#endif}/* * DMA setup: should be used to set up the ESP transfer count for pseudo * DMA transfers; need a DRQ transfer function to do the actual transfer */static void dma_init_read(struct NCR_ESP * esp, char * vaddress, int length){	printk("mac_esp: dma_init_read\n");}static void dma_init_write(struct NCR_ESP * esp, char * vaddress, int length){	printk("mac_esp: dma_init_write\n");}static void dma_ints_off(struct NCR_ESP * esp){	mac_turnoff_irq(esp->irq);}static void dma_ints_on(struct NCR_ESP * esp){	mac_turnon_irq(esp->irq);}/* * generic dma_irq_p(), unused */static int dma_irq_p(struct NCR_ESP * esp){	int i = esp_read(esp->eregs->esp_status);#ifdef DEBUG_MAC_ESP	printk("mac_esp: dma_irq_p status %d\n", i);#endif	return (i & ESP_STAT_INTR);}static int dma_irq_p_quick(struct NCR_ESP * esp){	/*	 * Copied from iosb_dma_irq_p()	 */	int ret  = mac_irq_pending(IRQ_MAC_SCSI) || mac_irq_pending(IRQ_MAC_SCSIDRQ);	int sreg = esp_read(esp->eregs->esp_status);#ifdef DEBUG_MAC_ESP	printk("mac_esp: dma_irq_p drq %d irq %d sreg %x curr %p disc %p\n", 		mac_irq_pending(IRQ_MAC_SCSIDRQ), mac_irq_pending(IRQ_MAC_SCSI), 		sreg, esp->current_SC, esp->disconnected_SC);#endif	sreg &= ESP_STAT_INTR;	if (sreg)		return (sreg);	else		return 0;}static void dma_led_off(struct NCR_ESP * esp){#ifdef DEBUG_MAC_ESP	printk("mac_esp: dma_led_off: called\n");#endif}static void dma_led_on(struct NCR_ESP * esp){#ifdef DEBUG_MAC_ESP	printk("mac_esp: dma_led_on: called\n");#endif}static int dma_ports_p(struct NCR_ESP * esp){	return 0;}static void dma_setup(struct NCR_ESP * esp, __u32 addr, int count, int write){#ifdef DEBUG_MAC_ESP	printk("mac_esp: dma_setup\n");#endif	if (write) {		dma_init_read(esp, (char *) addr, count);	} else {		dma_init_write(esp, (char *) addr, count);	}}static void dma_setup_quick(struct NCR_ESP * esp, __u32 addr, int count, int write){#ifdef DEBUG_MAC_ESP	printk("mac_esp: dma_setup_quick\n");#endif}static Scsi_Host_Template driver_template = SCSI_MAC_ESP;#include "scsi_module.c"

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人三级在线视频| 国产美女久久久久| 黄色日韩网站视频| 欧美性三三影院| 精品福利一二区| 亚洲国产精品久久不卡毛片| 久久99精品久久只有精品| 色偷偷88欧美精品久久久| 亚洲精品一区二区三区香蕉| 一区二区三区欧美激情| 国产·精品毛片| 欧美电影精品一区二区| 亚洲成a人v欧美综合天堂下载 | 日本不卡视频一二三区| 91国偷自产一区二区开放时间 | 国产精品九色蝌蚪自拍| 久久精品国产一区二区| 欧美福利视频导航| 亚洲乱码一区二区三区在线观看| 国产成人免费在线观看| 精品播放一区二区| 久久99在线观看| 日韩视频一区二区三区在线播放| 亚洲成av人片一区二区梦乃| 欧美性色aⅴ视频一区日韩精品| 亚洲美腿欧美偷拍| 日本黄色一区二区| 亚洲综合色成人| 91视频www| 一区二区欧美视频| 欧美视频一区在线| 一区二区高清免费观看影视大全| 91片在线免费观看| 亚洲靠逼com| 欧美日韩一区二区三区在线| 亚洲主播在线观看| 欧美日韩在线精品一区二区三区激情 | 国产精品一级黄| 久久女同性恋中文字幕| 国产一区二区三区av电影| 国产视频一区二区在线| 成人免费高清在线| 最新热久久免费视频| 欧美主播一区二区三区美女| 亚洲va韩国va欧美va| 日韩一区二区三区三四区视频在线观看| 婷婷国产在线综合| 日韩午夜激情电影| 国产精品资源在线| 中文字幕中文字幕一区二区| 色噜噜狠狠成人中文综合 | 欧美精品1区2区| 日韩av一区二区三区| 2020国产精品久久精品美国| 国产成人av一区| 亚洲男同1069视频| 337p亚洲精品色噜噜噜| 国产成人免费视频网站高清观看视频 | 另类小说图片综合网| 国产偷国产偷亚洲高清人白洁| 99久久国产综合精品女不卡| 五月综合激情日本mⅴ| 精品日产卡一卡二卡麻豆| 成人高清在线视频| 日韩影院免费视频| 中文字幕成人av| 欧美日韩在线亚洲一区蜜芽| 国产一区中文字幕| 美女视频黄频大全不卡视频在线播放| 久久久国产午夜精品| 精品视频色一区| 国产91精品一区二区| 午夜精品成人在线视频| 中文字幕在线不卡一区二区三区| 欧美军同video69gay| 成人av免费在线播放| 老司机免费视频一区二区| 亚洲人吸女人奶水| 久久久久久久综合日本| 欧美日韩国产免费| av在线综合网| 国产激情一区二区三区| 三级影片在线观看欧美日韩一区二区| 中文字幕欧美国产| 日韩欧美中文字幕制服| 在线国产亚洲欧美| 成人自拍视频在线| 狠狠色狠狠色综合系列| 亚洲国产精品自拍| 亚洲色图一区二区三区| 久久久777精品电影网影网| 欧美福利一区二区| 欧美在线观看你懂的| 99久久99精品久久久久久| 韩国女主播成人在线| 奇米影视一区二区三区| 天天综合色天天综合色h| 亚洲乱码国产乱码精品精的特点| 国产日韩视频一区二区三区| 欧美不卡一区二区三区| 欧美人与禽zozo性伦| 欧洲中文字幕精品| 97精品国产97久久久久久久久久久久 | 91视频免费观看| 丁香婷婷综合五月| 国产大片一区二区| 国产精品小仙女| 精品制服美女丁香| 日韩电影在线一区二区三区| 天天免费综合色| 午夜国产精品一区| 丝袜诱惑制服诱惑色一区在线观看| 亚洲日本韩国一区| 亚洲免费av高清| 亚洲精品中文字幕在线观看| 亚洲美女视频在线观看| 亚洲一线二线三线久久久| 亚洲综合在线免费观看| 亚洲高清免费视频| 日日摸夜夜添夜夜添精品视频| 肉丝袜脚交视频一区二区| 免费观看成人鲁鲁鲁鲁鲁视频| 水蜜桃久久夜色精品一区的特点| 丝袜a∨在线一区二区三区不卡| 亚洲高清久久久| 免费日韩伦理电影| 国产在线视频一区二区| 国产成人一区二区精品非洲| 成人国产视频在线观看| 91成人免费在线视频| 精品视频999| 久久综合九色综合97_久久久| 亚洲国产精品成人综合| 亚洲精品视频免费观看| 日本在线观看不卡视频| 国产成人精品一区二区三区四区 | 美女网站视频久久| 激情久久五月天| 99久久婷婷国产精品综合| 在线观看免费一区| 日韩免费视频线观看| 国产精品网曝门| 亚洲国产精品人人做人人爽| 日韩二区三区在线观看| 成人免费av网站| 欧美日韩一区二区三区在线看| 欧美www视频| 亚洲欧美日韩精品久久久久| 日韩精品乱码免费| 成人91在线观看| 51精品秘密在线观看| 欧美国产精品一区二区三区| 一区二区欧美精品| 国内欧美视频一区二区| 色国产精品一区在线观看| 日韩午夜av电影| 亚洲欧美偷拍另类a∨色屁股| 久久精品国产成人一区二区三区| 成人激情电影免费在线观看| 日韩一区二区三区视频在线| 最好看的中文字幕久久| 精品中文av资源站在线观看| 在线欧美一区二区| 欧美激情一区二区三区不卡| 五月激情综合婷婷| av电影天堂一区二区在线| 欧美一级片在线观看| 亚洲欧洲精品一区二区精品久久久 | 日韩免费一区二区三区在线播放| 亚洲日本护士毛茸茸| 国产一区亚洲一区| 欧美丰满一区二区免费视频| 日本欧美大码aⅴ在线播放| 成人国产精品免费网站| 精品福利在线导航| 亚洲国产中文字幕在线视频综合| 懂色av一区二区三区蜜臀| 日韩欧美电影一区| 亚洲h精品动漫在线观看| 本田岬高潮一区二区三区| 久久综合久久综合九色| 三级不卡在线观看| 欧美最猛性xxxxx直播| 国产精品福利影院| 国产成人在线影院 | 国产精品人妖ts系列视频| 麻豆91在线播放免费| 欧美美女bb生活片| 亚洲精品网站在线观看| jvid福利写真一区二区三区| 久久久国产精华| 国产麻豆视频一区二区| 精品久久久网站| 三级亚洲高清视频| 91精品国产综合久久久久久漫画| 五月婷婷久久综合| 欧美视频一区二区三区四区| 一区av在线播放| 精品污污网站免费看| 亚洲第一主播视频|